From 1b1deaffdb70e001bbf9e341e492d311ec0626f5 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 10:59:35 +0000 Subject: [PATCH 001/269] Add travis config --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..4145591e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,2 @@ +language: ruby +rvm: 2.0.0 From 11423b042ad2a81ea3069b61ab52a3ca304138d0 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 12:16:24 +0100 Subject: [PATCH 002/269] Add travis badge --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5cbc4962..19ec19f3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Bourbon Neat](http://neat.bourbon.io/images/logotype.svg)](http://thoughtbot.com/neat) -[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](#) -[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![Gitter](http://img.shields.io/badge/gitter-thoughtbot%2Fneat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) +[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](#) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) +[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) Neat is an open source fluid grid framework built on top of [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. From 447f9747a3701777a66525e5575e7cd38709b808 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 11:23:23 +0000 Subject: [PATCH 003/269] Silence rspec deprecation warnings --- spec/support/matchers/be_contained_in.rb | 2 +- spec/support/matchers/have_rule.rb | 2 +- spec/support/matchers/have_value.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/support/matchers/be_contained_in.rb b/spec/support/matchers/be_contained_in.rb index 683b5aae..28481b4f 100644 --- a/spec/support/matchers/be_contained_in.rb +++ b/spec/support/matchers/be_contained_in.rb @@ -4,7 +4,7 @@ @query.any? end - failure_message_for_should do |actual| + failure_message do |actual| %{expected selector #{actual} to be contained in #{expected}} end end diff --git a/spec/support/matchers/have_rule.rb b/spec/support/matchers/have_rule.rb index e344eb5f..bc444e4d 100644 --- a/spec/support/matchers/have_rule.rb +++ b/spec/support/matchers/have_rule.rb @@ -4,7 +4,7 @@ @rules.include? expected end - failure_message_for_should do |actual| + failure_message do |actual| if @rules.empty? %{no CSS rules for selector #{actual} were found} else diff --git a/spec/support/matchers/have_value.rb b/spec/support/matchers/have_value.rb index ee8b56f5..be869ecd 100644 --- a/spec/support/matchers/have_value.rb +++ b/spec/support/matchers/have_value.rb @@ -9,7 +9,7 @@ end end - failure_message_for_should do |actual| + failure_message do |actual| %{expected variable #{actual} to have value "#{expected}"} end end From ac0bb6fab0732f61fda98c0ca7413f8d4667c4cd Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 12:25:52 +0100 Subject: [PATCH 004/269] Move separator in README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 19ec19f3..8dab82a2 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ [![Bourbon Neat](http://neat.bourbon.io/images/logotype.svg)](http://thoughtbot.com/neat) +- + [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](#) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) Neat is an open source fluid grid framework built on top of [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. -- :warning: Neat **1.6.0** requires Sass **3.3.x**. If you are using **libsass** or **sass-rails** use **1.5.1**. Requirements From 01eabc05473412fb675555614441e367d8761a98 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 12:35:39 +0100 Subject: [PATCH 005/269] Add Stack Overflow badge --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8dab82a2..fd9c2747 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ - [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](#) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) -[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) +[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) +[![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) +[![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) Neat is an open source fluid grid framework built on top of [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. @@ -231,7 +233,7 @@ Links - Read the [online documentation](http://neat.bourbon.io/docs/). - Add the docset to [Dash](http://kapeli.com/dash) 1.8+ (Preferences **>** Downloads **>** + *Add Docset Feed* **>** `http://neat.bourbon.io/docset/Neat.xml`) -- Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat+bourbon). Don't forget to tag them`bourbon` and `neat`. +- Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don't forget to tag them `bourbon` and `neat`. - Suggest features or file bugs in [Issues](https://github.com/thoughtbot/neat/issues). - Read the [contribution guidelines](https://github.com/thoughtbot/neat/blob/master/CONTRIBUTING.md). - Say hi to [@kaishin](https://twitter.com/kaishin) and [@kylefiedler](https://twitter.com/kylefiedler). From ced0c2eef3dba9f22d46a7a76e253ca41ed917d8 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 12:43:49 +0100 Subject: [PATCH 006/269] Link to RubyGems --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd9c2747..b423fe11 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ - -[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](#) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) +[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) From 8e8b69538e098e316ab6d286984e16ad49fc46c2 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 18 Jul 2014 13:48:54 +0000 Subject: [PATCH 007/269] Use improved box-sizing reset - More on the syntax here http://bit.ly/1qk2tVR - Closes #196 --- app/assets/stylesheets/_neat.scss | 2 +- app/assets/stylesheets/grid/_box-sizing.scss | 11 +++++++++++ app/assets/stylesheets/grid/_grid.scss | 5 ----- spec/neat/default_spec.rb | 15 +++++++++++++++ test/_setup.scss | 2 -- test/default.scss | 1 + 6 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 app/assets/stylesheets/grid/_box-sizing.scss delete mode 100644 app/assets/stylesheets/grid/_grid.scss create mode 100644 spec/neat/default_spec.rb create mode 100644 test/default.scss diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 651239a8..d48ef297 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -8,7 +8,7 @@ // Grid @import "grid/private"; @import "grid/reset"; -@import "grid/grid"; +@import "grid/box-sizing"; @import "grid/omega"; @import "grid/outer-container"; @import "grid/span-columns"; diff --git a/app/assets/stylesheets/grid/_box-sizing.scss b/app/assets/stylesheets/grid/_box-sizing.scss new file mode 100644 index 00000000..bc794436 --- /dev/null +++ b/app/assets/stylesheets/grid/_box-sizing.scss @@ -0,0 +1,11 @@ +@if $border-box-sizing == true { + html { // http://bit.ly/1qk2tVR + @include box-sizing(border-box); + } + + * { + &, &:before, &:after { + @include box-sizing(inherit); + } + } +} diff --git a/app/assets/stylesheets/grid/_grid.scss b/app/assets/stylesheets/grid/_grid.scss deleted file mode 100644 index e074b6c5..00000000 --- a/app/assets/stylesheets/grid/_grid.scss +++ /dev/null @@ -1,5 +0,0 @@ -@if $border-box-sizing == true { - * { - @include box-sizing(border-box); - } -} diff --git a/spec/neat/default_spec.rb b/spec/neat/default_spec.rb new file mode 100644 index 00000000..98cdcde9 --- /dev/null +++ b/spec/neat/default_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe "By default" do + before(:all) do + ParserSupport.parse_file("default") + end + + it "sets sizing on the html element to 'border-box'" do + expect('html').to have_rule('box-sizing: border-box') + end + + it "sets sizing on the global selector to 'inherit'" do + expect('*:after').to have_rule('box-sizing: inherit') + end +end diff --git a/test/_setup.scss b/test/_setup.scss index 1da3cbd3..42edf0ca 100644 --- a/test/_setup.scss +++ b/test/_setup.scss @@ -1,4 +1,2 @@ -$border-box-sizing: false; - @import 'bourbon/bourbon'; @import 'app/assets/stylesheets/neat'; diff --git a/test/default.scss b/test/default.scss new file mode 100644 index 00000000..c3658f91 --- /dev/null +++ b/test/default.scss @@ -0,0 +1 @@ +@import 'setup'; From 2615987889892ff772e37059223568032a8c34eb Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 18 Jul 2014 09:18:34 -0400 Subject: [PATCH 008/269] Replace double quotes with single qoutes --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b423fe11..8a4d200c 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,8 @@ neat install In your main stylesheet: ```sass -@import "bourbon/bourbon"; -@import "neat/neat"; +@import 'bourbon/bourbon'; +@import 'neat/neat'; ``` To update Neat files, run: @@ -75,8 +75,8 @@ bundle update sass Within your `application.css.scss` file place the following: ```sass -@import "bourbon"; -@import "neat"; +@import 'bourbon'; +@import 'neat'; ``` Getting started @@ -85,15 +85,15 @@ Getting started First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat: ```scss -@import "bourbon/bourbon"; // or "bourbon" when in Rails -@import "grid-settings"; -@import "neat/neat"; // or "neat" when in Rails +@import 'bourbon/bourbon'; // or 'bourbon' when in Rails +@import 'grid-settings'; +@import 'neat/neat'; // or 'neat' when in Rails ``` In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables: ```scss -@import "neat/neat-helpers"; // or "neat-helpers" when in Rails +@import 'neat/neat-helpers'; // or 'neat-helpers' when in Rails // Change the grid settings $column: 90px; @@ -129,8 +129,10 @@ If the element's parent isn't the top-most container, you need to add the number ```scss div.container { @include outer-container; + div.parent-element { @include span-columns(8); + div.element { @include span-columns(6 of 8); } @@ -196,7 +198,6 @@ splitting](http://simurai.com/blog/2012/08/29/media-query-splitting/). This would guarantee that `omega()` styles are only applied where desired. ```scss - $first-breakpoint-value: 400px; $second-breakpoint-value: 700px; $medium-viewport: new-breakpoint(min-width em($first-breakpoint-value) max-width From 4eb67b8e680a85b1dae3fadf51ff2cfe99a4c2b6 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Sun, 20 Jul 2014 02:18:46 +0000 Subject: [PATCH 009/269] Add display mixin - Closes #100 --- app/assets/stylesheets/_neat.scss | 1 + app/assets/stylesheets/grid/_display.scss | 28 +++++++++++++++++++++++ app/assets/stylesheets/grid/_row.scss | 6 ++++- spec/neat/display_spec.rb | 19 +++++++++++++++ spec/neat/media_spec.rb | 2 +- test/display.scss | 15 ++++++++++++ 6 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 app/assets/stylesheets/grid/_display.scss create mode 100644 spec/neat/display_spec.rb create mode 100644 test/display.scss diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index d48ef297..7fb82bf0 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -19,3 +19,4 @@ @import "grid/media"; @import "grid/to-deprecate"; @import "grid/visual-grid"; +@import "grid/display"; diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display.scss new file mode 100644 index 00000000..23624b55 --- /dev/null +++ b/app/assets/stylesheets/grid/_display.scss @@ -0,0 +1,28 @@ +/** + * Changes the display property used by other mixins called in the code block argument. + * + * @param {String} $display (block) - Display value to be used within the block. Can be `table` or `block`. + * + * @example scss + * @include display(table) { + * .display-table { + * @include span-columns(6); + * } + * } + * + * @example css + * // CSS + * .display-table { + * display: table-cell; + * ... + * } + */ + +@mixin display($display: block) { + $scope-display: $container-display-table; + $container-display-table: if($display == table, true, false) !global; + + @content; + + $container-display-table: $scope-display !global; +} diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index f615a9fc..6569f427 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,6 +1,10 @@ -@mixin row($display: block, $direction: $default-layout-direction) { +@mixin row($display: default, $direction: $default-layout-direction) { $layout-direction: $direction !global; + @if $display != default { + @warn "The $display argument will be deprecated in future versions in favor of the display(){...} mixin." + } + @if $display == table { display: table; @include fill-parent; diff --git a/spec/neat/display_spec.rb b/spec/neat/display_spec.rb new file mode 100644 index 00000000..69bb2aca --- /dev/null +++ b/spec/neat/display_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe "@include display() {...}" do + before(:all) do + ParserSupport.parse_file("display") + end + + context "with argument (table)" do + it "changes display value to table" do + expect('.display-table-block').to have_rule('display: table-cell') + end + end + + context "whith nested call and argument (block)" do + it "changes display value to block" do + expect('.display-nested-block').to have_rule('display: block') + end + end +end diff --git a/spec/neat/media_spec.rb b/spec/neat/media_spec.rb index 62f74bbd..6ab44b5a 100644 --- a/spec/neat/media_spec.rb +++ b/spec/neat/media_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe "@include media()" do +describe "@include media() {...}" do before(:all) do ParserSupport.parse_file("media") end diff --git a/test/display.scss b/test/display.scss new file mode 100644 index 00000000..1f47238c --- /dev/null +++ b/test/display.scss @@ -0,0 +1,15 @@ +@import 'setup'; + +@include display(table) { + .display-table-block { + @include span-columns(6); + } +} + +@include display(table) { + @include display(block) { + .display-nested-block { + @include span-columns(6); + } + } +} From 164d0f60166d0e2bd7cc716b21de072c02b065f7 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 24 Jul 2014 10:14:23 -0400 Subject: [PATCH 010/269] Change to standard CSS comment for manifest version --- app/assets/stylesheets/_neat.scss | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 7fb82bf0..87d921bc 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,6 +1,7 @@ -// Bourbon Neat 1.6.0 -// MIT Licensed -// Copyright (c) 2012-2013 thoughtbot, inc. +/* Neat 1.6.0 + * http://neat.bourbon.io + * Copyright 2012–2014 thoughtbot, inc. + * MIT License */ // Helpers @import "neat-helpers"; From 25496b1cb5a2ac2d76ec00cd4a623826fefea6e4 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 25 Jul 2014 17:04:57 +0000 Subject: [PATCH 011/269] Add direction mixin - Closes #200 --- app/assets/stylesheets/_neat.scss | 1 + .../stylesheets/functions/_private.scss | 8 ++--- app/assets/stylesheets/grid/_direction.scss | 33 +++++++++++++++++++ app/assets/stylesheets/grid/_row.scss | 4 +++ spec/neat/direction_spec.rb | 19 +++++++++++ test/direction.scss | 13 ++++++++ 6 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 app/assets/stylesheets/grid/_direction.scss create mode 100644 spec/neat/direction_spec.rb create mode 100644 test/direction.scss diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 87d921bc..77570c1e 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -21,3 +21,4 @@ @import "grid/to-deprecate"; @import "grid/visual-grid"; @import "grid/display"; +@import "grid/direction"; diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index 8ce57e23..a9c44ca8 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -10,9 +10,9 @@ // Contains display value @function contains-display-value($query) { - @return belongs-to(table, $query) - or belongs-to(block, $query) - or belongs-to(inline-block, $query) + @return belongs-to(table, $query) + or belongs-to(block, $query) + or belongs-to(inline-block, $query) or belongs-to(inline, $query); } @@ -81,7 +81,7 @@ // Layout direction @function get-direction($layout, $default) { $direction: nil; - + @if $layout == LTR or $layout == RTL { $direction: direction-from-layout($layout); } @else { diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction.scss new file mode 100644 index 00000000..ad80209e --- /dev/null +++ b/app/assets/stylesheets/grid/_direction.scss @@ -0,0 +1,33 @@ +/** + * Changes the direction property used by other mixins called in the code block argument. + * + * @param {String} $direction (left-to-right) - Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. + * + * @example scss + * @include direction(right-to-left) { + * .right-to-left-block { + * @include span-columns(6); + * } + * } + * + * @example css + * // CSS + * .right-to-left-block { + * float: right; + * ... + * } + */ + +@mixin direction($direction: left-to-right) { + $scope-direction: $layout-direction; + + @if $direction == left-to-right { + $layout-direction: LTR !global; + } @else if $direction == right-to-left { + $layout-direction: RTL !global; + } + + @content; + + $layout-direction: $scope-direction !global; +} diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 6569f427..680974f1 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,4 +1,8 @@ @mixin row($display: default, $direction: $default-layout-direction) { + @if $direction != $default-layout-direction { + @warn "The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin." + } + $layout-direction: $direction !global; @if $display != default { diff --git a/spec/neat/direction_spec.rb b/spec/neat/direction_spec.rb new file mode 100644 index 00000000..6ee47ec1 --- /dev/null +++ b/spec/neat/direction_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe "@include direction() {...}" do + before(:all) do + ParserSupport.parse_file("direction") + end + + context "with no argument" do + it "uses default direction setting" do + expect('.default-block').to have_rule('float: left') + end + end + + context "whith argument (right-to-left)" do + it "changes direction setting inside the block" do + expect('.right-to-left-block').to have_rule('float: right') + end + end +end diff --git a/test/direction.scss b/test/direction.scss new file mode 100644 index 00000000..969f7b08 --- /dev/null +++ b/test/direction.scss @@ -0,0 +1,13 @@ +@import 'setup'; + +@include direction() { + .default-block { + @include span-columns(6); + } +} + +@include direction(right-to-left) { + .right-to-left-block { + @include span-columns(6); + } +} From af4c2fe5e166d317e5401c028bb93ad4eff09f51 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 1 Aug 2014 12:22:02 +0100 Subject: [PATCH 012/269] Set outer-container max-width with argument Closes #201 --- .../stylesheets/grid/_outer-container.scss | 34 +++++++++++++++++-- spec/neat/container_spec.rb | 6 ++++ test/outer-container.scss | 6 +++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 22c541f4..47b51452 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -1,6 +1,36 @@ -@mixin outer-container { +/** + * Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. + * + * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. + * + * @param {Number} $local-max-width ($max-width) - Max width to be applied to the element. Can be a percentage or a measure. + * + * @example scss + * .element { + * @include outer-container(100%); + * } + * + * @example css + * .element { + * *zoom: 1; + * max-width: 100%; + * margin-left: auto; + * margin-right: auto; + * } + * + * .element:before, .element:after { + * content: " "; + * display: table; + * } + * + * .element:after { + * clear: both; + * } + */ + +@mixin outer-container($local-max-width: $max-width) { @include clearfix; - max-width: $max-width; + max-width: $local-max-width; margin: { left: auto; right: auto; diff --git a/spec/neat/container_spec.rb b/spec/neat/container_spec.rb index fee8c6e4..0c48f30d 100644 --- a/spec/neat/container_spec.rb +++ b/spec/neat/container_spec.rb @@ -12,4 +12,10 @@ it "sets max-width" do expect('.container-default').to have_rule('max-width: 960px') end + + context "with max-width argument: 100%" do + it "sets max-width to 100%" do + expect('.container-custom-width').to have_rule('max-width: 100%') + end + end end diff --git a/test/outer-container.scss b/test/outer-container.scss index 08c83409..eaf15ee4 100644 --- a/test/outer-container.scss +++ b/test/outer-container.scss @@ -3,5 +3,9 @@ $max-width: 960px; .container-default { - @include outer-container; + @include outer-container(); +} + +.container-custom-width { + @include outer-container(100%); } From e1b5e6e5dd2e25a486b5a76d9bae9d5b43a02fe1 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 1 Aug 2014 12:26:45 +0100 Subject: [PATCH 013/269] Add deprecation warnings for resets --- app/assets/stylesheets/grid/_reset.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/grid/_reset.scss b/app/assets/stylesheets/grid/_reset.scss index 496c4a77..f237b716 100644 --- a/app/assets/stylesheets/grid/_reset.scss +++ b/app/assets/stylesheets/grid/_reset.scss @@ -1,9 +1,11 @@ @mixin reset-display { $container-display-table: false !global; + @warn "Resetting $display will be deprecated in future versions in favor of the display(){...} mixin." } @mixin reset-layout-direction { $layout-direction: $default-layout-direction !global; + @warn "Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin." } @mixin reset-all { From 5c337cc8344d9632f0d2fb41cc4c04fc9d665d9b Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 1 Aug 2014 15:57:50 +0100 Subject: [PATCH 014/269] Add setting to silence all deprecation warnings Closes #204 --- app/assets/stylesheets/_neat-helpers.scss | 1 + app/assets/stylesheets/_neat.scss | 1 - app/assets/stylesheets/grid/_omega.scss | 6 +++--- app/assets/stylesheets/grid/_reset.scss | 14 ------------- app/assets/stylesheets/grid/_row.scss | 4 ++-- .../stylesheets/grid/_span-columns.scss | 2 +- .../stylesheets/grid/_to-deprecate.scss | 21 ++++++++++++++++--- .../settings/_disable-warnings.scss | 13 ++++++++++++ test/_setup.scss | 1 + 9 files changed, 39 insertions(+), 24 deletions(-) delete mode 100644 app/assets/stylesheets/grid/_reset.scss create mode 100644 app/assets/stylesheets/settings/_disable-warnings.scss diff --git a/app/assets/stylesheets/_neat-helpers.scss b/app/assets/stylesheets/_neat-helpers.scss index e915c698..9c182d2e 100644 --- a/app/assets/stylesheets/_neat-helpers.scss +++ b/app/assets/stylesheets/_neat-helpers.scss @@ -5,3 +5,4 @@ // Settings @import "settings/grid"; @import "settings/visual-grid"; +@import "settings/disable-warnings"; diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 77570c1e..9c743cdd 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -8,7 +8,6 @@ // Grid @import "grid/private"; -@import "grid/reset"; @import "grid/box-sizing"; @import "grid/omega"; @import "grid/outer-container"; diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index c99ed6cf..18094bd6 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -4,13 +4,13 @@ $auto: if(belongs-to(auto, $query), true, false); @if $direction != default { - @warn "The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead." + @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin."); } @else { $direction: get-direction($layout-direction, $default-layout-direction); } @if $table { - @warn "The omega mixin no longer removes padding in table layouts." + @include -neat-warn("The omega mixin no longer removes padding in table layouts."); } @if length($query) == 1 { @@ -42,7 +42,7 @@ } @else { - @warn "Too many arguments passed to the omega() mixin." + @include -neat-warn("Too many arguments passed to the omega() mixin."); } } diff --git a/app/assets/stylesheets/grid/_reset.scss b/app/assets/stylesheets/grid/_reset.scss deleted file mode 100644 index f237b716..00000000 --- a/app/assets/stylesheets/grid/_reset.scss +++ /dev/null @@ -1,14 +0,0 @@ -@mixin reset-display { - $container-display-table: false !global; - @warn "Resetting $display will be deprecated in future versions in favor of the display(){...} mixin." -} - -@mixin reset-layout-direction { - $layout-direction: $default-layout-direction !global; - @warn "Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin." -} - -@mixin reset-all { - @include reset-display; - @include reset-layout-direction; -} diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 680974f1..7ed86bf0 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,12 +1,12 @@ @mixin row($display: default, $direction: $default-layout-direction) { @if $direction != $default-layout-direction { - @warn "The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin." + @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); } $layout-direction: $direction !global; @if $display != default { - @warn "The $display argument will be deprecated in future versions in favor of the display(){...} mixin." + @include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin."); } @if $display == table { diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index c79193d9..a6b665b4 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -21,7 +21,7 @@ } @if $display == collapse { - @warn "The 'collapse' argument will be deprecated. Use 'block-collapse' instead." + @include -neat-warn("The 'collapse' argument will be deprecated. Use 'block-collapse' instead."); } @if $display == collapse or $display == block-collapse { diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index d0a681fd..8a342c69 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -1,5 +1,5 @@ @mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { - @warn "The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."; + @include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."); @if length($query) == 1 { @media screen and ($default-feature: nth($query, 1)) { @@ -47,11 +47,26 @@ } @else { - @warn "Wrong number of arguments for breakpoint(). Read the documentation for more details."; + @include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details."); } } @mixin nth-omega($nth, $display: block, $direction: default) { - @warn "The nth-omega() mixin is deprecated. Please use omega() instead."; + @include -neat-warn("The nth-omega() mixin is deprecated. Please use omega() instead."); @include omega($nth $display, $direction); } + +@mixin reset-display { + $container-display-table: false !global; + @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin."); +} + +@mixin reset-layout-direction { + $layout-direction: $default-layout-direction !global; + @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin."); +} + +@mixin reset-all { + @include reset-display; + @include reset-layout-direction; +} diff --git a/app/assets/stylesheets/settings/_disable-warnings.scss b/app/assets/stylesheets/settings/_disable-warnings.scss new file mode 100644 index 00000000..055c897c --- /dev/null +++ b/app/assets/stylesheets/settings/_disable-warnings.scss @@ -0,0 +1,13 @@ +/** + * Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. + * + * @type Bool + */ + +$disable-warnings: false !default; + +@mixin -neat-warn($message) { + @if $disable-warnings == false { + @warn "#{$message}"; + } +} diff --git a/test/_setup.scss b/test/_setup.scss index 42edf0ca..a3b1cb83 100644 --- a/test/_setup.scss +++ b/test/_setup.scss @@ -1,2 +1,3 @@ @import 'bourbon/bourbon'; @import 'app/assets/stylesheets/neat'; +$disable-warnings: true !global; From b4b8a1be6c3a4f311b9256720b8797c65d4c89e7 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 1 Aug 2014 16:28:26 +0100 Subject: [PATCH 015/269] Bumpt to 1.7.0.pre --- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 4 ++-- lib/neat/version.rb | 2 +- neat.gemspec | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 9c743cdd..5a7f9130 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -/* Neat 1.6.0 +/* Neat 1.7.0.pre * http://neat.bourbon.io * Copyright 2012–2014 thoughtbot, inc. * MIT License */ diff --git a/bower.json b/bower.json index cee0025a..d98babb9 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "neat", - "version": "1.6.0", + "version": "1.7.0.pre", "homepage": "http://neat.bourbon.io/", "main": "app/assets/stylesheets/_neat.scss", "ignore": [ @@ -15,6 +15,6 @@ "NEWS.md" ], "dependencies": { - "bourbon": ">=3.1" + "bourbon": ">=4.0" } } diff --git a/lib/neat/version.rb b/lib/neat/version.rb index d9bfaaab..23be4434 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.6.0' + VERSION = '1.7.0.pre' end diff --git a/neat.gemspec b/neat.gemspec index 7e67d93b..8f0552ce 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -23,7 +23,7 @@ Neat is an open source grid framework built on top of Bourbon with the aim of be s.require_paths = ['lib'] s.add_dependency('sass', '>= 3.3') - s.add_dependency('bourbon', '>= 3.1') + s.add_dependency('bourbon', '>= 4.0') s.add_development_dependency('aruba', '~> 0.5.0') s.add_development_dependency('rake') From cffe052fa61560aed959d97f43bff07354491cab Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Tue, 5 Aug 2014 19:49:51 +0200 Subject: [PATCH 016/269] Ignore test folders in bower --- bower.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bower.json b/bower.json index d98babb9..e1ef233c 100644 --- a/bower.json +++ b/bower.json @@ -12,7 +12,9 @@ "Rakefile", "neat.gemspec", "CONTRIBUTING.md", - "NEWS.md" + "NEWS.md", + "test", + "spec" ], "dependencies": { "bourbon": ">=4.0" From ec272fadbcd3ea3087bbe793b068a0675bbcf7d6 Mon Sep 17 00:00:00 2001 From: Kyle Fiedler Date: Thu, 7 Aug 2014 16:44:24 -0400 Subject: [PATCH 017/269] Change twitter to point to bourbon account --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a4d200c..0f6800fc 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,6 @@ Links - Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don't forget to tag them `bourbon` and `neat`. - Suggest features or file bugs in [Issues](https://github.com/thoughtbot/neat/issues). - Read the [contribution guidelines](https://github.com/thoughtbot/neat/blob/master/CONTRIBUTING.md). -- Say hi to [@kaishin](https://twitter.com/kaishin) and [@kylefiedler](https://twitter.com/kylefiedler). - Join `#bourbon-neat` on `irc.freenode.net`. @@ -247,5 +246,6 @@ Credits & License ![thoughtbot](http://thoughtbot.com/images/tm/logo.png) Bourbon is maintained and funded by [thoughtbot, inc](http://thoughtbot.com/). Follow [@thoughtbot](http://twitter.com/thoughtbot) on Twitter. +Tweet your questions or suggestions to [@bourbonsass](https://twitter.com/bourbonsass) and while you’re at it follow us too. Bourbon Neat is Copyright © 2012-2014 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file. From 8529892e301edb2b3e9d41ea2f929739d6a2698f Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 8 Aug 2014 11:38:04 +0200 Subject: [PATCH 018/269] Add sache json file --- sache.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 sache.json diff --git a/sache.json b/sache.json new file mode 100644 index 00000000..0494986d --- /dev/null +++ b/sache.json @@ -0,0 +1,5 @@ +{ + "name": "Neat", + "description": "A lightweight, semantic grid framework built on top of Bourbon", + "tags": ["neat", "grid", "layout", "columns", "semantic", "media-queries", "media", "queries", "bourbon"] +} From 3f049a21d89c4ba37ca1bff67672c59f88f577e3 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Sat, 30 Aug 2014 14:47:04 +0200 Subject: [PATCH 019/269] Refactor belongs-to for compatibility with 3.4 Closes #220 --- app/assets/stylesheets/functions/_new-breakpoint.scss | 1 - app/assets/stylesheets/functions/_private.scss | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index a89c9ce6..9fbe7247 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -1,5 +1,4 @@ @function new-breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { - @if length($query) == 1 { $query: $default-feature nth($query, 1) $total-columns; } diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index a9c44ca8..44d2fad8 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -3,9 +3,13 @@ @return $int % 2 == 0 } -// Checks if an element belongs to a list +// Checks if an element belongs to a list or not @function belongs-to($tested-item, $list) { - @return index($list, $tested-item) != false; + @return not not-belongs-to($tested-item, $list); +} + +@function not-belongs-to($tested-item, $list) { + @return not index($list, $tested-item); } // Contains display value From b5b3ba5a9a2be9d7aa324b395bb6cc5fde993d82 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Mon, 1 Sep 2014 11:34:45 +0200 Subject: [PATCH 020/269] Add note about pixel rounding --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f6800fc..4d6662a6 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ To make your layout responsive, use the `media()` mixin to modify both the grid } ``` -By setting `$visual-grid` to `true`, you can display the base grid in the background (default) or as an overlay. You can even change the color and opacity of the grid-lines by overriding the default settings as detailed in the section below. Keep in mind that on Webkit, rounding errors in the fluid grid might result in the overlay being few pixels off. +By setting `$visual-grid` to `true`, you can display the base grid in the background (default) or as an overlay. You can even change the color and opacity of the grid-lines by overriding the default settings as detailed in the section below. The visual grid reflects the changes applied to the grid via the `new-breakpoint()` mixin, as long as the media contexts are defined *before* importing Neat. @@ -221,6 +221,15 @@ If, for some reason, you still think that `omega-reset` is the only way you want check out Josh Fry's [omega-reset](http://joshfry.me/notes/omega-reset-for-bourbon-neat/). +##### Why are the elements not properly aligned with the visual grid? + +The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can't deal with pixel fractions. + +As a result the viusal grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome. + +At this point, writing an internal rounding mechanism is not high priority. + + ##### Framework X has this feature that Neat seems to be missing. Can you add it? Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is From 57b776b559a6508afa2fdd9c399e76e39ccb674f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 8 Aug 2014 11:24:23 -0400 Subject: [PATCH 021/269] README restructure * Make instructions more clear and succinct * Better align with Bourbon README --- README.md | 234 +++++++++++++++++++++++++++++------------------------- 1 file changed, 126 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index 4d6662a6..ff3f39ac 100644 --- a/README.md +++ b/README.md @@ -1,99 +1,130 @@ -[![Bourbon Neat](http://neat.bourbon.io/images/logotype.svg)](http://thoughtbot.com/neat) - -- +[![Neat](http://neat.bourbon.io/images/logotype.svg)](http://neat.bourbon.io) [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) -Neat is an open source fluid grid framework built on top of [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. +*** -:warning: Neat **1.6.0** requires Sass **3.3.x**. If you are using **libsass** or **sass-rails** use **1.5.1**. +## A lightweight, semantic grid framework built on top of Bourbon -Requirements -=== -- Sass 3.3+ -- Bourbon 3.1+ +Neat is a fluid grid framework built on [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. -Install Instructions -=== -Install/update the dependencies first: +#### [Documentation & Demo](http://neat.bourbon.io) -```bash -gem install sass #or gem update sass -gem install bourbon #or gem update bourbon -``` -Install Neat: +#### [Changelog](https://github.com/thoughtbot/neat/releases) -```bash -gem install neat -``` -Then `cd` to your Sass directory and run: +## Requirements -```bash -bourbon install #If not installed -neat install -``` +- [Sass](https://github.com/sass/sass) 3.3+ +- [Bourbon](https://github.com/thoughtbot/bourbon) 3.1+ +- :warning: If you are using Neat with **LibSass**, **sass-rails**, **Compass**, **Foundation** or need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat). -In your main stylesheet: +## Installation -```sass -@import 'bourbon/bourbon'; -@import 'neat/neat'; -``` +Neat uses the [RubyGems](https://rubygems.org) package manager to easily generate a `neat` directory with all of the necessary files. -To update Neat files, run: +1. Install the Neat gem: -```bash -neat update -``` + ```bash + gem install neat + ``` -and to remove them: +2. Install or update Neat’s dependencies: -```bash -neat remove -``` + ```bash + gem install sass # or gem update sass + ``` + ```bash + gem install bourbon # or gem update bourbon + ``` -Ruby on Rails -=== +3. Install the Neat library into the current directory: -In your Gemfile: + ```bash + bourbon install # if not already installed + ``` + ```bash + neat install + ``` -```bash -gem 'neat' -``` +4. Import Neat in your stylesheet, after Bourbon: -After running `bundle install` you will be able to use Bourbon and Neat together. + ```scss + @import "bourbon/bourbon"; + @import "neat/neat"; + ``` -If you see this error `Bundler could not find compatible versions for gem "sass"` run: + It’s not recommended to add or modify the Neat files so that you can update them easily. -```bash -bundle update sass -``` +## Installation for Ruby on Rails + +1. Add Neat to your Gemfile: + + ```ruby + gem 'neat' + ``` + +2. Then run: + + ```bash + bundle install + ``` + + If you see the error `Bundler could not find compatible versions for gem "sass"`, run: + + ```bash + bundle update sass + ``` + +3. Import Neat in your `application.css.scss`, after Bourbon: -Within your `application.css.scss` file place the following: + ```scss + @import "bourbon"; + @import "neat"; + ``` -```sass -@import 'bourbon'; -@import 'neat'; +## Installing older versions of Neat + +1. Uninstall any Neat gem versions you already have: + + ```bash + gem uninstall neat + ``` + +2. Reinstall the Neat gem, using the `-v` flag to specify the version you need: + + ```bash + gem install neat -v 1.5.1 + ``` + +3. Follow the [instructions above](#installation) to install Neat into your project. + +## Command line interface + +```bash +neat install +neat update +neat remove ``` -Getting started -=== +More information can be found in the [wiki](https://github.com/thoughtbot/neat/wiki/Command-Line-Interface). + +## Using Neat First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat: ```scss -@import 'bourbon/bourbon'; // or 'bourbon' when in Rails -@import 'grid-settings'; -@import 'neat/neat'; // or 'neat' when in Rails +@import "bourbon/bourbon"; // or "bourbon" when in Rails +@import "grid-settings"; +@import "neat/neat"; // or "neat" when in Rails ``` In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables: ```scss -@import 'neat/neat-helpers'; // or 'neat-helpers' when in Rails +@import "neat/neat-helpers"; // or "neat-helpers" when in Rails // Change the grid settings $column: 90px; @@ -124,7 +155,7 @@ div.element { } ``` -If the element's parent isn't the top-most container, you need to add the number of columns of the parent element to keep the right proportions: +If the element’s parent isn’t the top-most container, you need to add the number of columns of the parent element to keep the right proportions: ```scss div.container { @@ -167,41 +198,23 @@ By setting `$visual-grid` to `true`, you can display the base grid in the backgr The visual grid reflects the changes applied to the grid via the `new-breakpoint()` mixin, as long as the media contexts are defined *before* importing Neat. -Browser support -=== -- Firefox 3.5+ -- Safari 4.0+ -- Chrome 4.0+ -- Opera 9.5+ -- IE 9+ (Visual grid is IE10 only) -- IE 8 with [selectivizr](http://selectivizr.com) (no `media()` support) - -Frequently asked questions -========================== +## FAQ -##### How do I use `omega()` in a mobile-first workflow? +#### How do I use `omega()` in a mobile-first workflow? -Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow -will cause the style to be applied to wider-viewport media queries as well. That +Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow will cause the style to be applied to wider-viewport media queries as well. That is the cascading nature of CSS. -One solution would be to provide an `omega-reset()` mixin that negates the -effect of `omega()` on that specific `nth-child` pseudo selector. While this is -often the most suggested solution, it is also a lazy hack that outputs ugly code -and can quickly get out of hand in complex layouts. As a general rule, having to -*undo* CSS styles is a sign of poor stylesheet architecture (More about -[CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)). +One solution would be to provide an `omega-reset()` mixin that negates the effect of `omega()` on that specific `nth-child` pseudo selector. While this is +often the most suggested solution, it is also a lazy hack that outputs ugly code and can quickly get out of hand in complex layouts. As a general rule, having to *undo* CSS styles is a sign of poor stylesheet architecture (more about [CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)). -The other, more elegant, solution is to use mutually exclusive media queries, -also referred to as [media-query -splitting](http://simurai.com/blog/2012/08/29/media-query-splitting/). This -would guarantee that `omega()` styles are only applied where desired. +The other, more elegant, solution is to use mutually exclusive media queries, also referred to as [media-query +splitting](http://simurai.com/blog/2012/08/29/media-query-splitting). This would guarantee that `omega()` styles are only applied where desired. ```scss $first-breakpoint-value: 400px; $second-breakpoint-value: 700px; -$medium-viewport: new-breakpoint(min-width em($first-breakpoint-value) max-width -em($second-breakpoint-value)); +$medium-viewport: new-breakpoint(min-width em($first-breakpoint-value) max-width em($second-breakpoint-value)); $large-viewport: new-breakpoint(min-width em($second-breakpoint-value + 1)); .element { @@ -217,44 +230,49 @@ $large-viewport: new-breakpoint(min-width em($second-breakpoint-value + 1)); } ``` -If, for some reason, you still think that `omega-reset` is the only way you want to go, -check out Josh Fry's -[omega-reset](http://joshfry.me/notes/omega-reset-for-bourbon-neat/). +If, for some reason, you still think that `omega-reset` is the only way you want to go, check out Josh Fry’s [omega-reset](http://joshfry.me/blog/2013/05/13/omega-reset-for-bourbon-neat). -##### Why are the elements not properly aligned with the visual grid? +#### Why are the elements not properly aligned with the visual grid? -The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can't deal with pixel fractions. +The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can’t deal with pixel fractions. As a result the viusal grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome. At this point, writing an internal rounding mechanism is not high priority. +#### Framework X has this feature that Neat seems to be missing. Can you add it? -##### Framework X has this feature that Neat seems to be missing. Can you add it? +Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is lightweight and simple compared to other grid frameworks, and strives to remain so. We have plans for adding new features in future versions of the framework, but these will be most likely to support new ways of working with layouts on the Web, not patches to existing ones. -Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is -lightweight and simple compared to other grid frameworks, and strives to -remain so. We have plans for adding new features in future versions of the -framework, but these will be most likely to support new ways of working with -layouts on the Web, not patches to existing ones. +## Links -Links -===== - -- Read the [online documentation](http://neat.bourbon.io/docs/). - Add the docset to [Dash](http://kapeli.com/dash) 1.8+ (Preferences **>** Downloads **>** + *Add Docset Feed* **>** `http://neat.bourbon.io/docset/Neat.xml`) -- Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don't forget to tag them `bourbon` and `neat`. +- Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don’t forget to tag them `bourbon` and `neat`. - Suggest features or file bugs in [Issues](https://github.com/thoughtbot/neat/issues). -- Read the [contribution guidelines](https://github.com/thoughtbot/neat/blob/master/CONTRIBUTING.md). - Join `#bourbon-neat` on `irc.freenode.net`. +## Browser support -Credits & License -================= +- Chrome 4.0+ +- Firefox 3.5+ +- Internet Explorer 9+ (visual grid is IE 10 only) +- Internet Explorer 8 with [selectivizr](http://selectivizr.com) (no `media()` support) +- Opera 9.5+ +- Safari 4.0+ + +## The Bourbon family + +- [Bourbon](http://bourbon.io): A simple and lightweight mixin library for Sass +- [Neat](http://neat.bourbon.io): A lightweight semantic grid framework for Sass and Bourbon +- [Bitters](http://bitters.bourbon.io): Scaffold styles, variables and structure for Bourbon projects +- [Refills](http://refills.bourbon.io): Prepackaged patterns and components, built on top of Bourbon, Bitters & Neat + +## Credits ![thoughtbot](http://thoughtbot.com/images/tm/logo.png) -Bourbon is maintained and funded by [thoughtbot, inc](http://thoughtbot.com/). Follow [@thoughtbot](http://twitter.com/thoughtbot) on Twitter. -Tweet your questions or suggestions to [@bourbonsass](https://twitter.com/bourbonsass) and while you’re at it follow us too. +Neat is maintained and funded by [thoughtbot, inc](http://thoughtbot.com). Tweet your questions or suggestions to [@bourbonsass](https://twitter.com/bourbonsass) and while you’re at it follow us too. + +## License -Bourbon Neat is Copyright © 2012-2014 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file. +Copyright © 2012–2014 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). From c8586c715a1a4cf928e63862156a1686de3ef886 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 13 Sep 2014 17:02:35 -0400 Subject: [PATCH 022/269] Clean up and order gitignore --- .gitignore | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 68c1a20b..765419e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,7 @@ .DS_store -.sass-cache/ -*.scssc -/stylesheets/.sass-cache/ -_site/ -_includes/ -_layouts/ -_sass/ -examples/ -images/ -css/ -_config.yml -index.html -pkg +.sass-cache +*gem +*swp Gemfile.lock +public +tmp From fafa0596b103ca24712dbe5f8cba732576ccfec7 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 19 Sep 2014 13:22:48 +0200 Subject: [PATCH 023/269] Add inline documentation Closes #226 --- app/assets/stylesheets/grid/_direction.scss | 6 +-- app/assets/stylesheets/grid/_display.scss | 2 - app/assets/stylesheets/grid/_fill-parent.scss | 16 ++++++ app/assets/stylesheets/grid/_media.scss | 49 ++++++++++++++++++- app/assets/stylesheets/grid/_omega.scss | 28 ++++++++++- .../stylesheets/grid/_outer-container.scss | 38 +++++++------- app/assets/stylesheets/grid/_pad.scss | 15 ++++++ app/assets/stylesheets/grid/_row.scss | 27 ++++++++++ app/assets/stylesheets/grid/_shift.scss | 30 ++++++++++++ .../stylesheets/grid/_span-columns.scss | 40 ++++++++++++++- .../stylesheets/grid/_to-deprecate.scss | 38 ++++++++++++++ .../settings/_disable-warnings.scss | 1 - app/assets/stylesheets/settings/_grid.scss | 44 +++++++++++++++-- .../stylesheets/settings/_visual-grid.scss | 20 +++++++- 14 files changed, 317 insertions(+), 37 deletions(-) diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction.scss index ad80209e..113b7af9 100644 --- a/app/assets/stylesheets/grid/_direction.scss +++ b/app/assets/stylesheets/grid/_direction.scss @@ -3,21 +3,19 @@ * * @param {String} $direction (left-to-right) - Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. * - * @example scss + * @example scss - Usage * @include direction(right-to-left) { * .right-to-left-block { * @include span-columns(6); * } * } * - * @example css - * // CSS + * @example css - CSS Output * .right-to-left-block { * float: right; * ... * } */ - @mixin direction($direction: left-to-right) { $scope-direction: $layout-direction; diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display.scss index 23624b55..49a87aab 100644 --- a/app/assets/stylesheets/grid/_display.scss +++ b/app/assets/stylesheets/grid/_display.scss @@ -11,13 +11,11 @@ * } * * @example css - * // CSS * .display-table { * display: table-cell; * ... * } */ - @mixin display($display: block) { $scope-display: $container-display-table; $container-display-table: if($display == table, true, false) !global; diff --git a/app/assets/stylesheets/grid/_fill-parent.scss b/app/assets/stylesheets/grid/_fill-parent.scss index 859c9779..9a95556f 100644 --- a/app/assets/stylesheets/grid/_fill-parent.scss +++ b/app/assets/stylesheets/grid/_fill-parent.scss @@ -1,3 +1,19 @@ +/** + * Forces the element to fill its parent container. + * + * @example scss - Usage + * .element { + * @include fill-parent; + * } + * + * @example css - CSS Output + * .element { + * width: 100%; + * -webkit-box-sizing: border-box; + * -moz-box-sizing: border-box; + * box-sizing: border-box; + * } + */ @mixin fill-parent() { width: 100%; diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index bf27f70e..8569c769 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -1,4 +1,51 @@ -@mixin media($query:$feature $value $columns, $total-columns: $grid-columns) { +/** + * Outputs a media-query block with an optional grid context (the total number of columns used in the grid). + * + * @param {List} $query - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). + * + * @param {Number} $total-columns ($grid-columns) - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. + * + * @example scss - Usage + * .responsive-element { + * @include media(769px) { + * @include span-columns(6); + * } + * } + * + * .new-context-element { + * @include media(min-width 320px max-width 480px, 6) { + * @include span-columns(6); + * } + * } + * + * @example css - CSS Output + * @media screen and (min-width: 769px) { + * .responsive-element { + * display: block; + * float: left; + * margin-right: 2.35765%; + * width: 48.82117%; + * } + * + * .responsive-element:last-child { + * margin-right: 0; + * } + * } + * + * @media screen and (min-width: 320px) and (max-width: 480px) { + * .new-context-element { + * display: block; + * float: left; + * margin-right: 4.82916%; + * width: 100%; + * } + * + * .new-context-element:last-child { + * margin-right: 0; + * } + * } + */ +@mixin media($query: $feature $value $columns, $total-columns: $grid-columns) { @if length($query) == 1 { @media screen and ($default-feature: nth($query, 1)) { $default-grid-columns: $grid-columns; diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 18094bd6..e85dab95 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -1,4 +1,30 @@ -// Remove last element gutter +/** + * Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. + * + * @param {List} $query (block) - List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Not that composite arguments such as `2n+1` do not support this feature. **Deprecation warning**: The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead. + * + * @example scss - Usage + * .element { + * @include omega; + * } + * + * .nth-element { + * @include omega(4n); + * } + * + * @example css - CSS Output + * .element { + * margin-right: 0; + * } + * + * .nth-element:nth-child(4n) { + * margin-right: 0; + * } + * + * .nth-element:nth-child(4n+1) { + * clear: left; + * } + */ @mixin omega($query: block, $direction: default) { $table: if(belongs-to(table, $query), true, false); $auto: if(belongs-to(auto, $query), true, false); diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 47b51452..5313cb24 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -1,33 +1,31 @@ /** * Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. - * * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. * * @param {Number} $local-max-width ($max-width) - Max width to be applied to the element. Can be a percentage or a measure. * - * @example scss - * .element { - * @include outer-container(100%); - * } + * @example scss - Usage + * .element { + * @include outer-container(100%); + * } * - * @example css - * .element { - * *zoom: 1; - * max-width: 100%; - * margin-left: auto; - * margin-right: auto; - * } + * @example css - CSS Output + * .element { + * *zoom: 1; + * max-width: 100%; + * margin-left: auto; + * margin-right: auto; + * } * - * .element:before, .element:after { - * content: " "; - * display: table; - * } + * .element:before, .element:after { + * content: " "; + * display: table; + * } * - * .element:after { - * clear: both; - * } + * .element:after { + * clear: both; + * } */ - @mixin outer-container($local-max-width: $max-width) { @include clearfix; max-width: $local-max-width; diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index 3ef5d80e..30fcdc0a 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -1,3 +1,18 @@ +/** + * Adds padding to the element. + * + * @param {List} $padding (flex-gutter()) - A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. + * + * @example scss - Usage + * .element { + * @include pad(30px -20px 10px default); + * } + * + * @example css - CSS Output + * .element { + * padding: 30px -20px 10px 2.35765%; + * } + */ @mixin pad($padding: flex-gutter()) { $padding-list: null; @each $value in $padding { diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 7ed86bf0..1a2141e2 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,3 +1,30 @@ +/** + * Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. + * + * @param {String} $display (default) - Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. + * + * @param {String} $direction ($default-layout-direction) - Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). + * + * @example scss - Usage + * .element { + * @include row(); + * } + * + * @example css - CSS Output + * .element { + * *zoom: 1; + * display: block; + * } + * + * .element:before, .element:after { + * content: " "; + * display: table; + * } + * + * .element:after { + * clear: both; + * } + */ @mixin row($display: default, $direction: $default-layout-direction) { @if $direction != $default-layout-direction { @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index 1d27b9b7..21edda98 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -1,7 +1,37 @@ +/** + * Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. + * + * @param {Number} $n-columns (1) - Number of columns by which the element shifts. + * + * @example scss - Usage + * .element { + * @include shift(-3); + * } + * + * @example css - CSS output + * .element { + * margin-left: -25.58941%; + * } + */ @mixin shift($n-columns: 1) { @include shift-in-context($n-columns); } +/** + * Translates an element horizontally by a number of columns, in a specific nesting context. + * + * @param {List} $shift - A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). The two values can be separated with any string such as `of`, `/`, etc. + * + * @example scss - Usage + * .element { + * @include shift(-3 of 6); + * } + * + * @example css - CSS output + * .element { + * margin-left: -52.41458%; + * } + */ @mixin shift-in-context($shift: $columns of $container-columns) { $n-columns: nth($shift, 1); $parent-columns: container-shift($shift) !global; diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index a6b665b4..f33c7cd1 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -1,8 +1,46 @@ +/** + * Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. + * + * @param {List} $span - A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. The values can be separated with any string such as `of`, `/`, etc. + * + * @param {String} $display (block) - Sets the display property of the element. By default it sets the display propert of the element to `block`. If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. `table` sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. + * + * @example scss - Usage + * .element { + * @include span-columns(6); + + * .nested-element { + * @include span-columns(2 of 6); + * } + * } + * + * @example css - CSS Output + * .element { + * display: block; + * float: left; + * margin-right: 2.35765%; + * width: 48.82117%; + * } + * + * .element:last-child { + * margin-right: 0; + * } + * + * .element .nested-element { + * display: block; + * float: left; + * margin-right: 4.82916%; + * width: 30.11389%; + * } + * + * .element .nested-element:last-child { + * margin-right: 0; + * } + */ @mixin span-columns($span: $columns of $container-columns, $display: block) { $columns: nth($span, 1); $container-columns: container-span($span); - // Set nesting context (used by shift()) $parent-columns: get-parent-columns($container-columns) !global; $direction: get-direction($layout-direction, $default-layout-direction); diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index 8a342c69..ae0f9b58 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -56,16 +56,54 @@ @include omega($nth $display, $direction); } +/** + * Resets the active display property to `block`. Particularly useful when changing the display property in a single row. + * + * @example scss - Usage + * .element { + * @include row(table); + * // Context changed to table display + * } + * + * @include reset-display; + * // Context is reset to block display + */ @mixin reset-display { $container-display-table: false !global; @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin."); } +/** + * Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. + * + * @example scss - Usage + * .element { + * @include row($direction: RTL); + * // Context changed to right-to-left + * } + * + * @include reset-layout-direction; + * // Context is reset to left-to-right + */ @mixin reset-layout-direction { $layout-direction: $default-layout-direction !global; @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin."); } +/** + * Resets both the active layout direction and the active display property. + * + * @param (Type) $name ($default-value) - Description goes here. + * + * @example scss - Usage + * .element { + * @include row(table, RTL); + * // Context changed to table table and right-to-left + * } + * + * @include reset-all; + * // Context is reset to block display and left-to-right + */ @mixin reset-all { @include reset-display; @include reset-layout-direction; diff --git a/app/assets/stylesheets/settings/_disable-warnings.scss b/app/assets/stylesheets/settings/_disable-warnings.scss index 055c897c..15b1b0f4 100644 --- a/app/assets/stylesheets/settings/_disable-warnings.scss +++ b/app/assets/stylesheets/settings/_disable-warnings.scss @@ -3,7 +3,6 @@ * * @type Bool */ - $disable-warnings: false !default; @mixin -neat-warn($message) { diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index f1dcda47..ea68ed17 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,7 +1,41 @@ -$column: golden-ratio(1em, 3) !default; // Column width -$gutter: golden-ratio(1em, 1) !default; // Gutter between each two columns -$grid-columns: 12 !default; // Total number of columns in the grid -$max-width: em(1088) !default; // Max-width of the outer container -$border-box-sizing: true !default; // Makes all elements have a border-box layout +/** + * Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. + */ +$column: golden-ratio(1em, 3) !default; + +/** + * Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag. + */ +$gutter: golden-ratio(1em, 1) !default; + +/** + * Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. + */ +$grid-columns: 12 !default; + +/** + * Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag. + */ +$max-width: em(1088) !default; + +/** + * When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. + * + * @example css - CSS Output + * * { + * -webkit-box-sizing: border-box; + * -moz-box-sizing: border-box; + * box-sizing: border-box; + * } + */ +$border-box-sizing: true !default; + +/** + * Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. + */ $default-feature: min-width; // Default @media feature for the breakpoint() mixin + +/** + * Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. + */ $default-layout-direction: LTR !default; diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss index 611c2b37..e71a6ab4 100644 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ b/app/assets/stylesheets/settings/_visual-grid.scss @@ -1,5 +1,21 @@ -$visual-grid: false !default; // Display the base grid +/** + * Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. + */ +$visual-grid: false !default; + +/** + * Sets the visual grid color. Set with `!global` flag. + */ $visual-grid-color: #EEE !default; -$visual-grid-index: back !default; // Show grid behind content (back) or overlay it over the content (front) + +/** + * Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. + */ +$visual-grid-index: back !default; + +/** + * Sets the opacity property of the visual grid. Set with `!global` flag. + */ $visual-grid-opacity: 0.4 !default; + $visual-grid-breakpoints: () !default; From e4301720ffe3c85421d51d9b2fd5882393e2750a Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 19 Sep 2014 13:50:41 +0200 Subject: [PATCH 024/269] Put param description on a new line --- app/assets/stylesheets/grid/_direction.scss | 3 ++- app/assets/stylesheets/grid/_display.scss | 3 ++- app/assets/stylesheets/grid/_media.scss | 6 ++++-- app/assets/stylesheets/grid/_omega.scss | 3 ++- app/assets/stylesheets/grid/_outer-container.scss | 3 ++- app/assets/stylesheets/grid/_pad.scss | 3 ++- app/assets/stylesheets/grid/_row.scss | 6 ++++-- app/assets/stylesheets/grid/_shift.scss | 6 ++++-- app/assets/stylesheets/grid/_span-columns.scss | 6 ++++-- app/assets/stylesheets/grid/_to-deprecate.scss | 3 ++- 10 files changed, 28 insertions(+), 14 deletions(-) diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction.scss index 113b7af9..e83839b6 100644 --- a/app/assets/stylesheets/grid/_direction.scss +++ b/app/assets/stylesheets/grid/_direction.scss @@ -1,7 +1,8 @@ /** * Changes the direction property used by other mixins called in the code block argument. * - * @param {String} $direction (left-to-right) - Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. + * @param {String} $direction (left-to-right) + * - Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. * * @example scss - Usage * @include direction(right-to-left) { diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display.scss index 49a87aab..4d160d0a 100644 --- a/app/assets/stylesheets/grid/_display.scss +++ b/app/assets/stylesheets/grid/_display.scss @@ -1,7 +1,8 @@ /** * Changes the display property used by other mixins called in the code block argument. * - * @param {String} $display (block) - Display value to be used within the block. Can be `table` or `block`. + * @param {String} $display (block) + * - Display value to be used within the block. Can be `table` or `block`. * * @example scss * @include display(table) { diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 8569c769..ab15a5a8 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -1,9 +1,11 @@ /** * Outputs a media-query block with an optional grid context (the total number of columns used in the grid). * - * @param {List} $query - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). + * @param {List} $query + * - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). * - * @param {Number} $total-columns ($grid-columns) - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. + * @param {Number} $total-columns ($grid-columns) + * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. * * @example scss - Usage * .responsive-element { diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index e85dab95..814d084a 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -1,7 +1,8 @@ /** * Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. * - * @param {List} $query (block) - List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Not that composite arguments such as `2n+1` do not support this feature. **Deprecation warning**: The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead. + * @param {List} $query (block) + * - List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Not that composite arguments such as `2n+1` do not support this feature. **Deprecation warning**: The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 5313cb24..d03fa0ac 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -2,7 +2,8 @@ * Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. * - * @param {Number} $local-max-width ($max-width) - Max width to be applied to the element. Can be a percentage or a measure. + * @param {Number} $local-max-width ($max-width) + * - Max width to be applied to the element. Can be a percentage or a measure. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index 30fcdc0a..0fcf013d 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -1,7 +1,8 @@ /** * Adds padding to the element. * - * @param {List} $padding (flex-gutter()) - A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. + * @param {List} $padding (flex-gutter()) + * - A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 1a2141e2..3bec605e 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,9 +1,11 @@ /** * Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. * - * @param {String} $display (default) - Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. + * @param {String} $display (default) + * - Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. * - * @param {String} $direction ($default-layout-direction) - Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). + * @param {String} $direction ($default-layout-direction) + * - Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index 21edda98..cad3a20c 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -1,7 +1,8 @@ /** * Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. * - * @param {Number} $n-columns (1) - Number of columns by which the element shifts. + * @param {Number} $n-columns (1) + * - Number of columns by which the element shifts. * * @example scss - Usage * .element { @@ -20,7 +21,8 @@ /** * Translates an element horizontally by a number of columns, in a specific nesting context. * - * @param {List} $shift - A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). The two values can be separated with any string such as `of`, `/`, etc. + * @param {List} $shift + * - A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). The two values can be separated with any string such as `of`, `/`, etc. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index f33c7cd1..3b1dbf4e 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -1,9 +1,11 @@ /** * Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. * - * @param {List} $span - A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. The values can be separated with any string such as `of`, `/`, etc. + * @param {List} $span + * - A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. The values can be separated with any string such as `of`, `/`, etc. * - * @param {String} $display (block) - Sets the display property of the element. By default it sets the display propert of the element to `block`. If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. `table` sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. + * @param {String} $display (block) + * - Sets the display property of the element. By default it sets the display propert of the element to `block`. If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. `table` sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index ae0f9b58..4741cf4d 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -93,7 +93,8 @@ /** * Resets both the active layout direction and the active display property. * - * @param (Type) $name ($default-value) - Description goes here. + * @param (Type) $name ($default-value) + * - Description goes here. * * @example scss - Usage * .element { From b9fa091b37982afa5df158dd00b239ab8ff787b5 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 19 Sep 2014 14:00:24 +0200 Subject: [PATCH 025/269] Remove placeholder parameter in docs --- app/assets/stylesheets/grid/_to-deprecate.scss | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index 4741cf4d..fb4ecf6e 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -93,9 +93,6 @@ /** * Resets both the active layout direction and the active display property. * - * @param (Type) $name ($default-value) - * - Description goes here. - * * @example scss - Usage * .element { * @include row(table, RTL); From 8e484471bd1e87486988f86bf4083106197b25f9 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 19 Sep 2014 14:09:09 +0200 Subject: [PATCH 026/269] Add unit info in param and variable type in docs --- app/assets/stylesheets/grid/_media.scss | 2 +- app/assets/stylesheets/grid/_outer-container.scss | 2 +- app/assets/stylesheets/grid/_shift.scss | 2 +- app/assets/stylesheets/settings/_grid.scss | 14 ++++++++++++++ app/assets/stylesheets/settings/_visual-grid.scss | 8 ++++++++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index ab15a5a8..1dc792e6 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -4,7 +4,7 @@ * @param {List} $query * - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). * - * @param {Number} $total-columns ($grid-columns) + * @param {Number (unitless)} $total-columns ($grid-columns) * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. * * @example scss - Usage diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index d03fa0ac..a296ef59 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -2,7 +2,7 @@ * Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. * - * @param {Number} $local-max-width ($max-width) + * @param {Number (unit)} $local-max-width ($max-width) * - Max width to be applied to the element. Can be a percentage or a measure. * * @example scss - Usage diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index cad3a20c..f5410361 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -1,7 +1,7 @@ /** * Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. * - * @param {Number} $n-columns (1) + * @param {Number (unitless)} $n-columns (1) * - Number of columns by which the element shifts. * * @example scss - Usage diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index ea68ed17..9a64a249 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,26 +1,36 @@ /** * Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. + * + * @type Number (Unit) */ $column: golden-ratio(1em, 3) !default; /** * Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag. + * + * @type Number (Unit) */ $gutter: golden-ratio(1em, 1) !default; /** * Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. + * + * @type Number (Unitless) */ $grid-columns: 12 !default; /** * Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag. + * + * @type Number (Unit) */ $max-width: em(1088) !default; /** * When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. * + * @type Bool + * * @example css - CSS Output * * { * -webkit-box-sizing: border-box; @@ -32,10 +42,14 @@ $border-box-sizing: true !default; /** * Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. + * + * @type String */ $default-feature: min-width; // Default @media feature for the breakpoint() mixin /** * Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. + * + * @type String */ $default-layout-direction: LTR !default; diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss index e71a6ab4..b7bd6d7d 100644 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ b/app/assets/stylesheets/settings/_visual-grid.scss @@ -1,20 +1,28 @@ /** * Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. + * + * @type Bool */ $visual-grid: false !default; /** * Sets the visual grid color. Set with `!global` flag. + * + * @type Color */ $visual-grid-color: #EEE !default; /** * Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. + * + * @type String */ $visual-grid-index: back !default; /** * Sets the opacity property of the visual grid. Set with `!global` flag. + * + * @type Number (unitless) */ $visual-grid-opacity: 0.4 !default; From 98171841c3a17145320f57a3b9141d8ca2fa94b2 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 19 Sep 2014 14:37:50 +0200 Subject: [PATCH 027/269] Add inline docs for new-breakpoint --- .../functions/_new-breakpoint.scss | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index 9fbe7247..3fda4d18 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -1,4 +1,35 @@ -@function new-breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { +/** + * Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. + * + * @param {List} $query + * - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). + * + * @param {Number (unitless)} $total-columns ($grid-columns) + * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. + * + * @example scss - Usage + * $mobile: new-breakpoint(max-width 480px 4); + * + * .element { + * @include media($mobile) { + * @include span-columns(4); + * } + * } + * + * @example css - CSS Output + * @media screen and (max-width: 480px) { + * .element { + * display: block; + * float: left; + * margin-right: 7.42297%; + * width: 100%; + * } + * .element:last-child { + * margin-right: 0; + * } + * } + */ +@function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { @if length($query) == 1 { $query: $default-feature nth($query, 1) $total-columns; } From 924df816d59e4458f48bbb3970e4b72bbd96b2b1 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 19 Sep 2014 08:47:11 -0400 Subject: [PATCH 028/269] Replace en-dash with regular dash --- app/assets/stylesheets/_neat.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 5a7f9130..174f832d 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,6 +1,6 @@ /* Neat 1.7.0.pre * http://neat.bourbon.io - * Copyright 2012–2014 thoughtbot, inc. + * Copyright 2012-2014 thoughtbot, inc. * MIT License */ // Helpers From 3d2be9f84c5cd5599d6fd9ad6bc175aba10832bc Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Mon, 22 Sep 2014 19:54:21 +0200 Subject: [PATCH 029/269] Improve docs readability --- app/assets/stylesheets/grid/_direction.scss | 2 +- app/assets/stylesheets/grid/_display.scss | 2 +- app/assets/stylesheets/grid/_media.scss | 8 +++++++- app/assets/stylesheets/grid/_omega.scss | 6 +++++- app/assets/stylesheets/grid/_outer-container.scss | 2 +- app/assets/stylesheets/grid/_pad.scss | 2 +- app/assets/stylesheets/grid/_row.scss | 4 ++-- app/assets/stylesheets/grid/_shift.scss | 6 ++++-- app/assets/stylesheets/grid/_span-columns.scss | 12 ++++++++++-- 9 files changed, 32 insertions(+), 12 deletions(-) diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction.scss index e83839b6..e1de3453 100644 --- a/app/assets/stylesheets/grid/_direction.scss +++ b/app/assets/stylesheets/grid/_direction.scss @@ -2,7 +2,7 @@ * Changes the direction property used by other mixins called in the code block argument. * * @param {String} $direction (left-to-right) - * - Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. + * Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. * * @example scss - Usage * @include direction(right-to-left) { diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display.scss index 4d160d0a..4d0c2994 100644 --- a/app/assets/stylesheets/grid/_display.scss +++ b/app/assets/stylesheets/grid/_display.scss @@ -2,7 +2,7 @@ * Changes the display property used by other mixins called in the code block argument. * * @param {String} $display (block) - * - Display value to be used within the block. Can be `table` or `block`. + * Display value to be used within the block. Can be `table` or `block`. * * @example scss * @include display(table) { diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 1dc792e6..0ea2d257 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -2,7 +2,13 @@ * Outputs a media-query block with an optional grid context (the total number of columns used in the grid). * * @param {List} $query - * - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). + * A list of media query features and values, where each `$feature` should have a corresponding `$value`. + * For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). + * + * If there is only a single `$value` in `$query`, `$default-feature` is going to be used. + * + * The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). + * * * @param {Number (unitless)} $total-columns ($grid-columns) * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 814d084a..2defcd1b 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -2,7 +2,11 @@ * Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. * * @param {List} $query (block) - * - List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Not that composite arguments such as `2n+1` do not support this feature. **Deprecation warning**: The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead. + * List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). + * + * When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. + * + * **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index a296ef59..b2bb729f 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -3,7 +3,7 @@ * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. * * @param {Number (unit)} $local-max-width ($max-width) - * - Max width to be applied to the element. Can be a percentage or a measure. + * Max width to be applied to the element. Can be a percentage or a measure. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index 0fcf013d..e482a922 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -2,7 +2,7 @@ * Adds padding to the element. * * @param {List} $padding (flex-gutter()) - * - A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. + * A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 3bec605e..ebf948dc 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -2,10 +2,10 @@ * Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. * * @param {String} $display (default) - * - Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. + * Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. * * @param {String} $direction ($default-layout-direction) - * - Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). + * Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index f5410361..f8d2f184 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -2,7 +2,7 @@ * Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. * * @param {Number (unitless)} $n-columns (1) - * - Number of columns by which the element shifts. + * Number of columns by which the element shifts. * * @example scss - Usage * .element { @@ -22,7 +22,9 @@ * Translates an element horizontally by a number of columns, in a specific nesting context. * * @param {List} $shift - * - A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). The two values can be separated with any string such as `of`, `/`, etc. + * A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). + * + * The two values can be separated with any string such as `of`, `/`, etc. * * @example scss - Usage * .element { diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index 3b1dbf4e..b15b1244 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -2,10 +2,18 @@ * Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. * * @param {List} $span - * - A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. The values can be separated with any string such as `of`, `/`, etc. + * A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). + * + * If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. + * + * The values can be separated with any string such as `of`, `/`, etc. * * @param {String} $display (block) - * - Sets the display property of the element. By default it sets the display propert of the element to `block`. If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. `table` sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. + * Sets the display property of the element. By default it sets the display propert of the element to `block`. + * + * If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. + * + * If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. * * @example scss - Usage * .element { From 2875ee28b844e6a4bb3506b909661d9d3a484a82 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 3 Oct 2014 17:32:05 +0200 Subject: [PATCH 030/269] Refactor private functions - Closes #243 - Use null instead of nil (closes #234) - Ignore case for string variables (closes #235) - Remove extraneous @else (closes #237) - Use is-even where appropriate (closes #238) - Remove ternaries (closes #239) - Remove camel case (closes #240) - Refactor is-display-table (closes #241) --- .../functions/_new-breakpoint.scss | 2 +- .../stylesheets/functions/_private.scss | 30 +++++++------------ app/assets/stylesheets/grid/_direction.scss | 4 +-- app/assets/stylesheets/grid/_display.scss | 2 +- app/assets/stylesheets/grid/_media.scss | 20 ++++++------- app/assets/stylesheets/grid/_omega.scss | 4 +-- app/assets/stylesheets/grid/_private.scss | 12 ++------ app/assets/stylesheets/grid/_visual-grid.scss | 2 +- 8 files changed, 29 insertions(+), 47 deletions(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index 3fda4d18..cab41e60 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -34,7 +34,7 @@ $query: $default-feature nth($query, 1) $total-columns; } - @else if length($query) % 2 == 0 { + @else if is-even(length($query)) { $query: append($query, $total-columns); } diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index 44d2fad8..0ee224ad 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -25,16 +25,12 @@ @if length($span) == 3 { $container-columns: nth($span, 3); @return $container-columns; - } - - @else if length($span) == 2 { + } @else if length($span) == 2 { $container-columns: nth($span, 2); @return $container-columns; } - @else { - @return $grid-columns; - } + @return $grid-columns; } @function container-shift($shift: $shift) { @@ -43,16 +39,12 @@ @if length($shift) == 3 { $container-columns: nth($shift, 3); @return $container-columns; - } - - @else if length($shift) == 2 { + } @else if length($shift) == 2 { $container-columns: nth($shift, 2); @return $container-columns; } - @else { - @return $parent-columns; - } + @return $parent-columns; } // Generates a striped background @@ -70,9 +62,7 @@ $values: append($values, $transparent $column-offset, comma); $values: append($values, $color $column-offset, comma); $column-offset: $column-offset + $column-width; - } - - @else { + } @else { $values: append($values, $color $column-offset, comma); $values: append($values, $transparent $column-offset, comma); $column-offset: $column-offset + $gutter-width; @@ -84,9 +74,9 @@ // Layout direction @function get-direction($layout, $default) { - $direction: nil; + $direction: null; - @if $layout == LTR or $layout == RTL { + @if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" { $direction: direction-from-layout($layout); } @else { $direction: direction-from-layout($default); @@ -96,9 +86,9 @@ } @function direction-from-layout($layout) { - $direction: nil; + $direction: null; - @if $layout == LTR { + @if to-upper-case($layout) == "LTR" { $direction: right; } @else { $direction: left; @@ -110,7 +100,7 @@ @function get-opposite-direction($direction) { $opposite-direction: left; - @if $direction == left { + @if $direction == "left" { $opposite-direction: right; } diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction.scss index e1de3453..2bda7cb9 100644 --- a/app/assets/stylesheets/grid/_direction.scss +++ b/app/assets/stylesheets/grid/_direction.scss @@ -20,9 +20,9 @@ @mixin direction($direction: left-to-right) { $scope-direction: $layout-direction; - @if $direction == left-to-right { + @if to-lower-case($direction) == "left-to-right" { $layout-direction: LTR !global; - } @else if $direction == right-to-left { + } @else if to-lower-case($direction) == "right-to-left" { $layout-direction: RTL !global; } diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display.scss index 4d0c2994..5dbcee44 100644 --- a/app/assets/stylesheets/grid/_display.scss +++ b/app/assets/stylesheets/grid/_display.scss @@ -19,7 +19,7 @@ */ @mixin display($display: block) { $scope-display: $container-display-table; - $container-display-table: if($display == table, true, false) !global; + $container-display-table: $display == table !global; @content; diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 0ea2d257..b3297d45 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -64,28 +64,28 @@ } @else { - $loopTo: length($query); - $mediaQuery: 'screen and '; + $loop-to: length($query); + $media-query: 'screen and '; $default-grid-columns: $grid-columns; $grid-columns: $total-columns !global; - @if length($query) % 2 != 0 { - $grid-columns: nth($query, $loopTo) !global; - $loopTo: $loopTo - 1; + @if not is-even(length($query)) { + $grid-columns: nth($query, $loop-to) !global; + $loop-to: $loop-to - 1; } $i: 1; - @while $i <= $loopTo { - $mediaQuery: $mediaQuery + '(' + nth($query, $i) + ': ' + nth($query, $i + 1) + ') '; + @while $i <= $loop-to { + $media-query: $media-query + '(' + nth($query, $i) + ': ' + nth($query, $i + 1) + ') '; - @if ($i + 1) != $loopTo { - $mediaQuery: $mediaQuery + 'and '; + @if ($i + 1) != $loop-to { + $media-query: $media-query + 'and '; } $i: $i + 2; } - @media #{$mediaQuery} { + @media #{$media-query} { @content; $grid-columns: $default-grid-columns !global; } diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 2defcd1b..ea1dcbdf 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -31,8 +31,8 @@ * } */ @mixin omega($query: block, $direction: default) { - $table: if(belongs-to(table, $query), true, false); - $auto: if(belongs-to(auto, $query), true, false); + $table: belongs-to(table, $query); + $auto: belongs-to(auto, $query); @if $direction != default { @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin."); diff --git a/app/assets/stylesheets/grid/_private.scss b/app/assets/stylesheets/grid/_private.scss index b1953368..4c4e18c1 100644 --- a/app/assets/stylesheets/grid/_private.scss +++ b/app/assets/stylesheets/grid/_private.scss @@ -3,7 +3,7 @@ $fg-column: $column; $fg-gutter: $gutter; $fg-max-columns: $grid-columns; $container-display-table: false !default; -$layout-direction: nil !default; +$layout-direction: LTR !default; @function flex-grid($columns, $container-columns: $fg-max-columns) { $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; @@ -31,13 +31,5 @@ $layout-direction: nil !default; } @function is-display-table($container-is-display-table, $display) { - $display-table: false; - - @if $container-is-display-table == true { - $display-table: true; - } @else if $display == table { - $display-table: true; - } - - @return $display-table; + @return $container-is-display-table == true or $display == table; } diff --git a/app/assets/stylesheets/grid/_visual-grid.scss b/app/assets/stylesheets/grid/_visual-grid.scss index f06deb80..9a99bfb7 100644 --- a/app/assets/stylesheets/grid/_visual-grid.scss +++ b/app/assets/stylesheets/grid/_visual-grid.scss @@ -30,7 +30,7 @@ } @each $breakpoint in $visual-grid-breakpoints { - @if $breakpoint != nil { + @if $breakpoint { @include media($breakpoint) { @include grid-column-gradient(gradient-stops($grid-columns)); } From 7a66600c7e3df75d5e23c21816ba48b5a5d6d0fb Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 3 Oct 2014 17:48:42 +0200 Subject: [PATCH 031/269] Rename direction and display mixins - Prevents a conflict with Bourbon's `display()` mixin. Closes #231, #228. --- app/assets/stylesheets/_neat.scss | 4 ++-- .../grid/{_direction.scss => _direction-context.scss} | 2 +- .../grid/{_display.scss => _display-context.scss} | 2 +- spec/neat/direction_spec.rb | 4 ++-- spec/neat/display_spec.rb | 4 ++-- test/{direction.scss => direction-context.scss} | 4 ++-- test/{display.scss => display-context.scss} | 6 +++--- 7 files changed, 13 insertions(+), 13 deletions(-) rename app/assets/stylesheets/grid/{_direction.scss => _direction-context.scss} (93%) rename app/assets/stylesheets/grid/{_display.scss => _display-context.scss} (93%) rename test/{direction.scss => direction-context.scss} (64%) rename test/{display.scss => display-context.scss} (59%) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 174f832d..7f8c439e 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -19,5 +19,5 @@ @import "grid/media"; @import "grid/to-deprecate"; @import "grid/visual-grid"; -@import "grid/display"; -@import "grid/direction"; +@import "grid/display-context"; +@import "grid/direction-context"; diff --git a/app/assets/stylesheets/grid/_direction.scss b/app/assets/stylesheets/grid/_direction-context.scss similarity index 93% rename from app/assets/stylesheets/grid/_direction.scss rename to app/assets/stylesheets/grid/_direction-context.scss index 2bda7cb9..8da37606 100644 --- a/app/assets/stylesheets/grid/_direction.scss +++ b/app/assets/stylesheets/grid/_direction-context.scss @@ -17,7 +17,7 @@ * ... * } */ -@mixin direction($direction: left-to-right) { +@mixin direction-context($direction: left-to-right) { $scope-direction: $layout-direction; @if to-lower-case($direction) == "left-to-right" { diff --git a/app/assets/stylesheets/grid/_display.scss b/app/assets/stylesheets/grid/_display-context.scss similarity index 93% rename from app/assets/stylesheets/grid/_display.scss rename to app/assets/stylesheets/grid/_display-context.scss index 5dbcee44..e1d81c9c 100644 --- a/app/assets/stylesheets/grid/_display.scss +++ b/app/assets/stylesheets/grid/_display-context.scss @@ -17,7 +17,7 @@ * ... * } */ -@mixin display($display: block) { +@mixin display-context($display: block) { $scope-display: $container-display-table; $container-display-table: $display == table !global; diff --git a/spec/neat/direction_spec.rb b/spec/neat/direction_spec.rb index 6ee47ec1..9a6d6ea0 100644 --- a/spec/neat/direction_spec.rb +++ b/spec/neat/direction_spec.rb @@ -1,8 +1,8 @@ require 'spec_helper' -describe "@include direction() {...}" do +describe "@include direction-context() {...}" do before(:all) do - ParserSupport.parse_file("direction") + ParserSupport.parse_file("direction-context") end context "with no argument" do diff --git a/spec/neat/display_spec.rb b/spec/neat/display_spec.rb index 69bb2aca..37e56f58 100644 --- a/spec/neat/display_spec.rb +++ b/spec/neat/display_spec.rb @@ -1,8 +1,8 @@ require 'spec_helper' -describe "@include display() {...}" do +describe "@include display-context() {...}" do before(:all) do - ParserSupport.parse_file("display") + ParserSupport.parse_file("display-context") end context "with argument (table)" do diff --git a/test/direction.scss b/test/direction-context.scss similarity index 64% rename from test/direction.scss rename to test/direction-context.scss index 969f7b08..728bb3d4 100644 --- a/test/direction.scss +++ b/test/direction-context.scss @@ -1,12 +1,12 @@ @import 'setup'; -@include direction() { +@include direction-context() { .default-block { @include span-columns(6); } } -@include direction(right-to-left) { +@include direction-context(right-to-left) { .right-to-left-block { @include span-columns(6); } diff --git a/test/display.scss b/test/display-context.scss similarity index 59% rename from test/display.scss rename to test/display-context.scss index 1f47238c..bd2d7b75 100644 --- a/test/display.scss +++ b/test/display-context.scss @@ -1,13 +1,13 @@ @import 'setup'; -@include display(table) { +@include display-context(table) { .display-table-block { @include span-columns(6); } } -@include display(table) { - @include display(block) { +@include display-context(table) { + @include display-context(block) { .display-nested-block { @include span-columns(6); } From 7e5ad82e0c9d539f7664b0ab4c5303441f5d2561 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 3 Oct 2014 17:55:39 +0200 Subject: [PATCH 032/269] Bump to 1.7.0.rc --- lib/neat/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 23be4434..b0220134 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.7.0.pre' + VERSION = '1.7.0.rc' end From 2926b1c4d11e67354f0fac32a39d63e805412064 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Tue, 7 Oct 2014 11:44:54 +0200 Subject: [PATCH 033/269] Update logo and docs in README --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ff3f39ac..9bd86a9c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Neat](http://neat.bourbon.io/images/logotype.svg)](http://neat.bourbon.io) + [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) @@ -244,9 +244,13 @@ At this point, writing an internal rounding mechanism is not high priority. Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is lightweight and simple compared to other grid frameworks, and strives to remain so. We have plans for adding new features in future versions of the framework, but these will be most likely to support new ways of working with layouts on the Web, not patches to existing ones. +## Documentation + +- [Full documentation](http://thoughtbot.github.io/neat-docs/latest/) (latest) +- Neat documentation is now available by default in [Dash](http://kapeli.com/dash) + ## Links -- Add the docset to [Dash](http://kapeli.com/dash) 1.8+ (Preferences **>** Downloads **>** + *Add Docset Feed* **>** `http://neat.bourbon.io/docset/Neat.xml`) - Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don’t forget to tag them `bourbon` and `neat`. - Suggest features or file bugs in [Issues](https://github.com/thoughtbot/neat/issues). - Join `#bourbon-neat` on `irc.freenode.net`. From de840ff558037af35a2bfbe983d3d96ab82f40f3 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 10 Oct 2014 14:12:19 +0200 Subject: [PATCH 034/269] Switch to inline style comments (///) for docs --- .../functions/_new-breakpoint.scss | 65 ++++++----- .../stylesheets/grid/_direction-context.scss | 37 +++--- .../stylesheets/grid/_display-context.scss | 37 +++--- app/assets/stylesheets/grid/_fill-parent.scss | 31 +++-- app/assets/stylesheets/grid/_media.scss | 109 +++++++++--------- app/assets/stylesheets/grid/_omega.scss | 63 +++++----- .../stylesheets/grid/_outer-container.scss | 57 +++++---- app/assets/stylesheets/grid/_pad.scss | 31 +++-- app/assets/stylesheets/grid/_row.scss | 57 +++++---- app/assets/stylesheets/grid/_shift.scss | 66 +++++------ .../stylesheets/grid/_span-columns.scss | 95 ++++++++------- .../stylesheets/grid/_to-deprecate.scss | 69 ++++++----- .../settings/_disable-warnings.scss | 9 +- app/assets/stylesheets/settings/_grid.scss | 77 ++++++------- .../stylesheets/settings/_visual-grid.scss | 36 +++--- 15 files changed, 408 insertions(+), 431 deletions(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index cab41e60..13a3ace1 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -1,34 +1,37 @@ -/** - * Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. - * - * @param {List} $query - * - A list of media query features and values. Each `$feature` should have a corresponding `$value`. If there is only a single `$value` in `$query`, `$default-feature` is going to be used. The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). - * - * @param {Number (unitless)} $total-columns ($grid-columns) - * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. - * - * @example scss - Usage - * $mobile: new-breakpoint(max-width 480px 4); - * - * .element { - * @include media($mobile) { - * @include span-columns(4); - * } - * } - * - * @example css - CSS Output - * @media screen and (max-width: 480px) { - * .element { - * display: block; - * float: left; - * margin-right: 7.42297%; - * width: 100%; - * } - * .element:last-child { - * margin-right: 0; - * } - * } - */ +/// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. +/// +/// @param {List} $query +/// A list of media query features and values. Each `$feature` should have a corresponding `$value`. +/// +/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. +/// +/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// +/// @param {Number (unitless)} $total-columns ($grid-columns) +/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. +/// +/// @example scss - Usage +/// $mobile: new-breakpoint(max-width 480px 4); +/// +/// .element { +/// @include media($mobile) { +/// @include span-columns(4); +/// } +/// } +/// +/// @example css - CSS Output +/// @media screen and (max-width: 480px) { +/// .element { +/// display: block; +/// float: left; +/// margin-right: 7.42297%; +/// width: 100%; +/// } +/// .element:last-child { +/// margin-right: 0; +/// } +/// } + @function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { @if length($query) == 1 { $query: $default-feature nth($query, 1) $total-columns; diff --git a/app/assets/stylesheets/grid/_direction-context.scss b/app/assets/stylesheets/grid/_direction-context.scss index 8da37606..d781c9d2 100644 --- a/app/assets/stylesheets/grid/_direction-context.scss +++ b/app/assets/stylesheets/grid/_direction-context.scss @@ -1,22 +1,21 @@ -/** - * Changes the direction property used by other mixins called in the code block argument. - * - * @param {String} $direction (left-to-right) - * Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. - * - * @example scss - Usage - * @include direction(right-to-left) { - * .right-to-left-block { - * @include span-columns(6); - * } - * } - * - * @example css - CSS Output - * .right-to-left-block { - * float: right; - * ... - * } - */ +/// Changes the direction property used by other mixins called in the code block argument. +/// +/// @param {String} $direction (left-to-right) +/// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. +/// +/// @example scss - Usage +/// @include direction(right-to-left) { +/// .right-to-left-block { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css - CSS Output +/// .right-to-left-block { +/// float: right; +/// ... +/// } + @mixin direction-context($direction: left-to-right) { $scope-direction: $layout-direction; diff --git a/app/assets/stylesheets/grid/_display-context.scss b/app/assets/stylesheets/grid/_display-context.scss index e1d81c9c..f983551b 100644 --- a/app/assets/stylesheets/grid/_display-context.scss +++ b/app/assets/stylesheets/grid/_display-context.scss @@ -1,22 +1,21 @@ -/** - * Changes the display property used by other mixins called in the code block argument. - * - * @param {String} $display (block) - * Display value to be used within the block. Can be `table` or `block`. - * - * @example scss - * @include display(table) { - * .display-table { - * @include span-columns(6); - * } - * } - * - * @example css - * .display-table { - * display: table-cell; - * ... - * } - */ +/// Changes the display property used by other mixins called in the code block argument. +/// +/// @param {String} $display (block) +/// Display value to be used within the block. Can be `table` or `block`. +/// +/// @example scss +/// @include display(table) { +/// .display-table { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css +/// .display-table { +/// display: table-cell; +/// ... +/// } + @mixin display-context($display: block) { $scope-display: $container-display-table; $container-display-table: $display == table !global; diff --git a/app/assets/stylesheets/grid/_fill-parent.scss b/app/assets/stylesheets/grid/_fill-parent.scss index 9a95556f..91559acd 100644 --- a/app/assets/stylesheets/grid/_fill-parent.scss +++ b/app/assets/stylesheets/grid/_fill-parent.scss @@ -1,19 +1,18 @@ -/** - * Forces the element to fill its parent container. - * - * @example scss - Usage - * .element { - * @include fill-parent; - * } - * - * @example css - CSS Output - * .element { - * width: 100%; - * -webkit-box-sizing: border-box; - * -moz-box-sizing: border-box; - * box-sizing: border-box; - * } - */ +/// Forces the element to fill its parent container. +/// +/// @example scss - Usage +/// .element { +/// @include fill-parent; +/// } +/// +/// @example css - CSS Output +/// .element { +/// width: 100%; +/// -webkit-box-sizing: border-box; +/// -moz-box-sizing: border-box; +/// box-sizing: border-box; +/// } + @mixin fill-parent() { width: 100%; diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index b3297d45..467c2aa6 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -1,58 +1,57 @@ -/** - * Outputs a media-query block with an optional grid context (the total number of columns used in the grid). - * - * @param {List} $query - * A list of media query features and values, where each `$feature` should have a corresponding `$value`. - * For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). - * - * If there is only a single `$value` in `$query`, `$default-feature` is going to be used. - * - * The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). - * - * - * @param {Number (unitless)} $total-columns ($grid-columns) - * - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. - * - * @example scss - Usage - * .responsive-element { - * @include media(769px) { - * @include span-columns(6); - * } - * } - * - * .new-context-element { - * @include media(min-width 320px max-width 480px, 6) { - * @include span-columns(6); - * } - * } - * - * @example css - CSS Output - * @media screen and (min-width: 769px) { - * .responsive-element { - * display: block; - * float: left; - * margin-right: 2.35765%; - * width: 48.82117%; - * } - * - * .responsive-element:last-child { - * margin-right: 0; - * } - * } - * - * @media screen and (min-width: 320px) and (max-width: 480px) { - * .new-context-element { - * display: block; - * float: left; - * margin-right: 4.82916%; - * width: 100%; - * } - * - * .new-context-element:last-child { - * margin-right: 0; - * } - * } - */ +/// Outputs a media-query block with an optional grid context (the total number of columns used in the grid). +/// +/// @param {List} $query +/// A list of media query features and values, where each `$feature` should have a corresponding `$value`. +/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// +/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. +/// +/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). +/// +/// +/// @param {Number (unitless)} $total-columns ($grid-columns) +/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. +/// +/// @example scss - Usage +/// .responsive-element { +/// @include media(769px) { +/// @include span-columns(6); +/// } +/// } +/// +/// .new-context-element { +/// @include media(min-width 320px max-width 480px, 6) { +/// @include span-columns(6); +/// } +/// } +/// +/// @example css - CSS Output +/// @media screen and (min-width: 769px) { +/// .responsive-element { +/// display: block; +/// float: left; +/// margin-right: 2.35765%; +/// width: 48.82117%; +/// } +/// +/// .responsive-element:last-child { +/// margin-right: 0; +/// } +/// } +/// +/// @media screen and (min-width: 320px) and (max-width: 480px) { +/// .new-context-element { +/// display: block; +/// float: left; +/// margin-right: 4.82916%; +/// width: 100%; +/// } +/// +/// .new-context-element:last-child { +/// margin-right: 0; +/// } +/// } + @mixin media($query: $feature $value $columns, $total-columns: $grid-columns) { @if length($query) == 1 { @media screen and ($default-feature: nth($query, 1)) { diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index ea1dcbdf..b458963f 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -1,35 +1,34 @@ -/** - * Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. - * - * @param {List} $query (block) - * List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). - * - * When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. - * - * **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. - * - * @example scss - Usage - * .element { - * @include omega; - * } - * - * .nth-element { - * @include omega(4n); - * } - * - * @example css - CSS Output - * .element { - * margin-right: 0; - * } - * - * .nth-element:nth-child(4n) { - * margin-right: 0; - * } - * - * .nth-element:nth-child(4n+1) { - * clear: left; - * } - */ +/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. +/// +/// @param {List} $query (block) +/// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). +/// +/// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. +/// +/// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. +/// +/// @example scss - Usage +/// .element { +/// @include omega; +/// } +/// +/// .nth-element { +/// @include omega(4n); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin-right: 0; +/// } +/// +/// .nth-element:nth-child(4n) { +/// margin-right: 0; +/// } +/// +/// .nth-element:nth-child(4n+1) { +/// clear: left; +/// } + @mixin omega($query: block, $direction: default) { $table: belongs-to(table, $query); $auto: belongs-to(auto, $query); diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index b2bb729f..e50069a5 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -1,32 +1,31 @@ -/** - * Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. - * Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. - * - * @param {Number (unit)} $local-max-width ($max-width) - * Max width to be applied to the element. Can be a percentage or a measure. - * - * @example scss - Usage - * .element { - * @include outer-container(100%); - * } - * - * @example css - CSS Output - * .element { - * *zoom: 1; - * max-width: 100%; - * margin-left: auto; - * margin-right: auto; - * } - * - * .element:before, .element:after { - * content: " "; - * display: table; - * } - * - * .element:after { - * clear: both; - * } - */ +/// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. +/// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. +/// +/// @param {Number (unit)} $local-max-width ($max-width) +/// Max width to be applied to the element. Can be a percentage or a measure. +/// +/// @example scss - Usage +/// .element { +/// @include outer-container(100%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// *zoom: 1; +/// max-width: 100%; +/// margin-left: auto; +/// margin-right: auto; +/// } +/// +/// .element:before, .element:after { +/// content: " "; +/// display: table; +/// } +/// +/// .element:after { +/// clear: both; +/// } + @mixin outer-container($local-max-width: $max-width) { @include clearfix; max-width: $local-max-width; diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index e482a922..c77cd672 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -1,19 +1,18 @@ -/** - * Adds padding to the element. - * - * @param {List} $padding (flex-gutter()) - * A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. - * - * @example scss - Usage - * .element { - * @include pad(30px -20px 10px default); - * } - * - * @example css - CSS Output - * .element { - * padding: 30px -20px 10px 2.35765%; - * } - */ +/// Adds padding to the element. +/// +/// @param {List} $padding (flex-gutter()) +/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. +/// +/// @example scss - Usage +/// .element { +/// @include pad(30px -20px 10px default); +/// } +/// +/// @example css - CSS Output +/// .element { +/// padding: 30px -20px 10px 2.35765%; +/// } + @mixin pad($padding: flex-gutter()) { $padding-list: null; @each $value in $padding { diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index ebf948dc..18a68815 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,32 +1,31 @@ -/** - * Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. - * - * @param {String} $display (default) - * Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. - * - * @param {String} $direction ($default-layout-direction) - * Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). - * - * @example scss - Usage - * .element { - * @include row(); - * } - * - * @example css - CSS Output - * .element { - * *zoom: 1; - * display: block; - * } - * - * .element:before, .element:after { - * content: " "; - * display: table; - * } - * - * .element:after { - * clear: both; - * } - */ +/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. +/// +/// @param {String} $display (default) +/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. +/// +/// @param {String} $direction ($default-layout-direction) +/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). +/// +/// @example scss - Usage +/// .element { +/// @include row(); +/// } +/// +/// @example css - CSS Output +/// .element { +/// *zoom: 1; +/// display: block; +/// } +/// +/// .element:before, .element:after { +/// content: " "; +/// display: table; +/// } +/// +/// .element:after { +/// clear: both; +/// } + @mixin row($display: default, $direction: $default-layout-direction) { @if $direction != $default-layout-direction { @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index f8d2f184..89b71b26 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -1,41 +1,39 @@ -/** - * Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. - * - * @param {Number (unitless)} $n-columns (1) - * Number of columns by which the element shifts. - * - * @example scss - Usage - * .element { - * @include shift(-3); - * } - * - * @example css - CSS output - * .element { - * margin-left: -25.58941%; - * } - */ +/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. +/// +/// @param {Number (unitless)} $n-columns (1) +/// Number of columns by which the element shifts. +/// +/// @example scss - Usage +/// .element { +/// @include shift(-3); +/// } +/// +/// @example css - CSS output +/// .element { +/// margin-left: -25.58941%; +/// } + @mixin shift($n-columns: 1) { @include shift-in-context($n-columns); } -/** - * Translates an element horizontally by a number of columns, in a specific nesting context. - * - * @param {List} $shift - * A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). - * - * The two values can be separated with any string such as `of`, `/`, etc. - * - * @example scss - Usage - * .element { - * @include shift(-3 of 6); - * } - * - * @example css - CSS output - * .element { - * margin-left: -52.41458%; - * } - */ +/// Translates an element horizontally by a number of columns, in a specific nesting context. +/// +/// @param {List} $shift +/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). +/// +/// The two values can be separated with any string such as `of`, `/`, etc. +/// +/// @example scss - Usage +/// .element { +/// @include shift(-3 of 6); +/// } +/// +/// @example css - CSS output +/// .element { +/// margin-left: -52.41458%; +/// } + @mixin shift-in-context($shift: $columns of $container-columns) { $n-columns: nth($shift, 1); $parent-columns: container-shift($shift) !global; diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index b15b1244..05931ab4 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -1,52 +1,51 @@ -/** - * Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. - * - * @param {List} $span - * A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). - * - * If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. - * - * The values can be separated with any string such as `of`, `/`, etc. - * - * @param {String} $display (block) - * Sets the display property of the element. By default it sets the display propert of the element to `block`. - * - * If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. - * - * If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. - * - * @example scss - Usage - * .element { - * @include span-columns(6); +/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. +/// +/// @param {List} $span +/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). +/// +/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. +/// +/// The values can be separated with any string such as `of`, `/`, etc. +/// +/// @param {String} $display (block) +/// Sets the display property of the element. By default it sets the display propert of the element to `block`. +/// +/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. +/// +/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. +/// +/// @example scss - Usage +/// .element { +/// @include span-columns(6); +/// +/// .nested-element { +/// @include span-columns(2 of 6); +/// } +/// } +/// +/// @example css - CSS Output +/// .element { +/// display: block; +/// float: left; +/// margin-right: 2.35765%; +/// width: 48.82117%; +/// } +/// +/// .element:last-child { +/// margin-right: 0; +/// } +/// +/// .element .nested-element { +/// display: block; +/// float: left; +/// margin-right: 4.82916%; +/// width: 30.11389%; +/// } +/// +/// .element .nested-element:last-child { +/// margin-right: 0; +/// } - * .nested-element { - * @include span-columns(2 of 6); - * } - * } - * - * @example css - CSS Output - * .element { - * display: block; - * float: left; - * margin-right: 2.35765%; - * width: 48.82117%; - * } - * - * .element:last-child { - * margin-right: 0; - * } - * - * .element .nested-element { - * display: block; - * float: left; - * margin-right: 4.82916%; - * width: 30.11389%; - * } - * - * .element .nested-element:last-child { - * margin-right: 0; - * } - */ @mixin span-columns($span: $columns of $container-columns, $display: block) { $columns: nth($span, 1); $container-columns: container-span($span); diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index fb4ecf6e..cdd96a10 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -56,52 +56,49 @@ @include omega($nth $display, $direction); } -/** - * Resets the active display property to `block`. Particularly useful when changing the display property in a single row. - * - * @example scss - Usage - * .element { - * @include row(table); - * // Context changed to table display - * } - * - * @include reset-display; - * // Context is reset to block display - */ +/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row. +/// +/// @example scss - Usage +/// .element { +/// @include row(table); +/// // Context changed to table display +/// } +/// +/// @include reset-display; +/// // Context is reset to block display + @mixin reset-display { $container-display-table: false !global; @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin."); } -/** - * Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. - * - * @example scss - Usage - * .element { - * @include row($direction: RTL); - * // Context changed to right-to-left - * } - * - * @include reset-layout-direction; - * // Context is reset to left-to-right - */ +/// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. +/// +/// @example scss - Usage +/// .element { +/// @include row($direction: RTL); +/// // Context changed to right-to-left +/// } +/// +/// @include reset-layout-direction; +/// // Context is reset to left-to-right + @mixin reset-layout-direction { $layout-direction: $default-layout-direction !global; @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin."); } -/** - * Resets both the active layout direction and the active display property. - * - * @example scss - Usage - * .element { - * @include row(table, RTL); - * // Context changed to table table and right-to-left - * } - * - * @include reset-all; - * // Context is reset to block display and left-to-right - */ +/// Resets both the active layout direction and the active display property. +/// +/// @example scss - Usage +/// .element { +/// @include row(table, RTL); +/// // Context changed to table table and right-to-left +/// } +/// +/// @include reset-all; +/// // Context is reset to block display and left-to-right + @mixin reset-all { @include reset-display; @include reset-layout-direction; diff --git a/app/assets/stylesheets/settings/_disable-warnings.scss b/app/assets/stylesheets/settings/_disable-warnings.scss index 15b1b0f4..cf54e14a 100644 --- a/app/assets/stylesheets/settings/_disable-warnings.scss +++ b/app/assets/stylesheets/settings/_disable-warnings.scss @@ -1,8 +1,7 @@ -/** - * Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. - * - * @type Bool - */ +/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. +/// +/// @type Bool + $disable-warnings: false !default; @mixin -neat-warn($message) { diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index 9a64a249..2aa1a990 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,55 +1,48 @@ -/** - * Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. - * - * @type Number (Unit) - */ +/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. +/// +/// @type Number (Unit) + $column: golden-ratio(1em, 3) !default; -/** - * Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag. - * - * @type Number (Unit) - */ +/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag. +/// +/// @type Number (Unit) + $gutter: golden-ratio(1em, 1) !default; -/** - * Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. - * - * @type Number (Unitless) - */ +/// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. +/// +/// @type Number (Unitless) + $grid-columns: 12 !default; -/** - * Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag. - * - * @type Number (Unit) - */ +/// Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag. +/// +/// @type Number (Unit) +/// $max-width: em(1088) !default; -/** - * When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. - * - * @type Bool - * - * @example css - CSS Output - * * { - * -webkit-box-sizing: border-box; - * -moz-box-sizing: border-box; - * box-sizing: border-box; - * } - */ +/// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. +/// +/// @type Bool +/// +/// @example css - CSS Output +/// * { +/// -webkit-box-sizing: border-box; +/// -moz-box-sizing: border-box; +/// box-sizing: border-box; +/// } + $border-box-sizing: true !default; -/** - * Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. - * - * @type String - */ +/// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. +/// +/// @type String + $default-feature: min-width; // Default @media feature for the breakpoint() mixin -/** - * Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. - * - * @type String - */ +///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. +/// +///@type String + $default-layout-direction: LTR !default; diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss index b7bd6d7d..1273c420 100644 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ b/app/assets/stylesheets/settings/_visual-grid.scss @@ -1,29 +1,25 @@ -/** - * Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. - * - * @type Bool - */ +/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. +/// +/// @type Bool + $visual-grid: false !default; -/** - * Sets the visual grid color. Set with `!global` flag. - * - * @type Color - */ +/// Sets the visual grid color. Set with `!global` flag. +/// +/// @type Color + $visual-grid-color: #EEE !default; -/** - * Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. - * - * @type String - */ +/// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. +/// +/// @type String + $visual-grid-index: back !default; -/** - * Sets the opacity property of the visual grid. Set with `!global` flag. - * - * @type Number (unitless) - */ +/// Sets the opacity property of the visual grid. Set with `!global` flag. +/// +/// @type Number (unitless) + $visual-grid-opacity: 0.4 !default; $visual-grid-breakpoints: () !default; From 36be71a50b6168a2069d86042a6f851bd3a26def Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 10 Oct 2014 15:20:11 +0200 Subject: [PATCH 035/269] Update border-box-sizing setting example --- app/assets/stylesheets/settings/_grid.scss | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index 2aa1a990..23c1f9b3 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -27,10 +27,15 @@ $max-width: em(1088) !default; /// @type Bool /// /// @example css - CSS Output -/// * { +/// html { /// -webkit-box-sizing: border-box; /// -moz-box-sizing: border-box; -/// box-sizing: border-box; +/// box-sizing: border-box; } +/// +/// *, *:before, *:after { +/// -webkit-box-sizing: inherit; +/// -moz-box-sizing: inherit; +/// box-sizing: inherit; /// } $border-box-sizing: true !default; From 03295910490f6fcff9bdeaade330f0ad4fd28497 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 17 Oct 2014 14:24:51 +0200 Subject: [PATCH 036/269] Fix libsass compatiblity - Inverting the order of `!default` and `!global` seems to do the job for now. --- app/assets/stylesheets/functions/_private.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index 0ee224ad..e89e68a6 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -34,7 +34,7 @@ } @function container-shift($shift: $shift) { - $parent-columns: $grid-columns !global !default; + $parent-columns: $grid-columns !default !global; @if length($shift) == 3 { $container-columns: nth($shift, 3); From 17b44be25f6810e0329b2a2df5d175770baf2a62 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 17 Oct 2014 14:36:15 +0200 Subject: [PATCH 037/269] Add travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4145591e..295bc75f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,5 @@ language: ruby rvm: 2.0.0 +notifications: + slack: + secure: ROE+Zo+A6JmTjxCRGG539YaoEcLrsInEIrTDQMgtn5ucLaiPiau96VO+GJ4MyxZm2M5qlSRMFCxb3jFexCRVZctuUF2hFcXVi6a/+JGhMmYLd6XMNezhlxWwOoSx6ufSAlrlXEalsdnkzqVHuH2Y50ao/3slNo58DdLoaRJiGAc= From 45426302f81cf00ff48833e9a4be11d56ff79163 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 17 Oct 2014 14:44:08 +0200 Subject: [PATCH 038/269] Use full import path for convenience - This makes it easier to test locally with libsass - Closes #253 --- test/_setup.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/_setup.scss b/test/_setup.scss index a3b1cb83..80df8f84 100644 --- a/test/_setup.scss +++ b/test/_setup.scss @@ -1,3 +1,3 @@ @import 'bourbon/bourbon'; -@import 'app/assets/stylesheets/neat'; +@import '../app/assets/stylesheets/neat'; $disable-warnings: true !global; From f1a5ef8c4fa0de6cb63422725ba948b0e3b244ac Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 17 Oct 2014 15:51:14 +0200 Subject: [PATCH 039/269] Bump to 1.7.0 --- README.md | 6 +++--- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 2 +- lib/neat/version.rb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9bd86a9c..3c0b6828 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,9 @@ Neat is a fluid grid framework built on [Bourbon](http://bourbon.io) with the ai ## Requirements -- [Sass](https://github.com/sass/sass) 3.3+ +- [Sass](https://github.com/sass/sass) 3.3+ ([Use Neat +1.5.1](#installing-older-versions-of-neat) if you are still tied to Sass 3.2) - [Bourbon](https://github.com/thoughtbot/bourbon) 3.1+ -- :warning: If you are using Neat with **LibSass**, **sass-rails**, **Compass**, **Foundation** or need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat). ## Installation @@ -96,7 +96,7 @@ Neat uses the [RubyGems](https://rubygems.org) package manager to easily generat 2. Reinstall the Neat gem, using the `-v` flag to specify the version you need: ```bash - gem install neat -v 1.5.1 + gem install neat -v 1.7.0 ``` 3. Follow the [instructions above](#installation) to install Neat into your project. diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 7f8c439e..5113401c 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -/* Neat 1.7.0.pre +/* Neat 1.7.0 * http://neat.bourbon.io * Copyright 2012-2014 thoughtbot, inc. * MIT License */ diff --git a/bower.json b/bower.json index e1ef233c..58164f7d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "neat", - "version": "1.7.0.pre", + "version": "1.7.0", "homepage": "http://neat.bourbon.io/", "main": "app/assets/stylesheets/_neat.scss", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index b0220134..f8cf9417 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.7.0.rc' + VERSION = '1.7.0' end From 4cc5a327b4af7d6d6d01505b875639890a4bf2c4 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Tue, 21 Oct 2014 19:48:34 +0200 Subject: [PATCH 040/269] Fix documentation for display-context --- app/assets/stylesheets/grid/_display-context.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/grid/_display-context.scss b/app/assets/stylesheets/grid/_display-context.scss index f983551b..a4a1a041 100644 --- a/app/assets/stylesheets/grid/_display-context.scss +++ b/app/assets/stylesheets/grid/_display-context.scss @@ -4,7 +4,7 @@ /// Display value to be used within the block. Can be `table` or `block`. /// /// @example scss -/// @include display(table) { +/// @include display-context(table) { /// .display-table { /// @include span-columns(6); /// } From 21e62026783f8e118e66a9608335fc3222b8feb4 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 7 Nov 2014 14:56:51 +0100 Subject: [PATCH 041/269] Add branhc exceptions to travis --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 295bc75f..ba7c412f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,9 @@ language: ruby rvm: 2.0.0 +branches: + except: + - gh-pages + - gh-pages-dev notifications: slack: secure: ROE+Zo+A6JmTjxCRGG539YaoEcLrsInEIrTDQMgtn5ucLaiPiau96VO+GJ4MyxZm2M5qlSRMFCxb3jFexCRVZctuUF2hFcXVi6a/+JGhMmYLd6XMNezhlxWwOoSx6ufSAlrlXEalsdnkzqVHuH2Y50ao/3slNo58DdLoaRJiGAc= From f987e3a726caf07dd34ce2cc4346cf6341f6cc2f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 16 Sep 2014 09:25:23 -0400 Subject: [PATCH 042/269] Refine docs --- LICENSE => LICENSE.md | 6 ++--- README.md | 61 +++++++++++++++---------------------------- 2 files changed, 24 insertions(+), 43 deletions(-) rename LICENSE => LICENSE.md (79%) diff --git a/LICENSE b/LICENSE.md similarity index 79% rename from LICENSE rename to LICENSE.md index 56f310f1..fddf8ab7 100644 --- a/LICENSE +++ b/LICENSE.md @@ -2,10 +2,10 @@ LICENSE The MIT License -Copyright (c) 2012-2014 thoughtbot, inc. +Copyright © 2012–2014 [thoughtbot, inc.](http://thoughtbot.com) Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +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 @@ -14,7 +14,7 @@ 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 +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 diff --git a/README.md b/README.md index 3c0b6828..35693612 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - +[![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io) [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) @@ -7,23 +7,27 @@ *** -## A lightweight, semantic grid framework built on top of Bourbon +## A lightweight, semantic grid framework built with Bourbon -Neat is a fluid grid framework built on [Bourbon](http://bourbon.io) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. +Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbot/bourbon) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. -#### [Documentation & Demo](http://neat.bourbon.io) - -#### [Changelog](https://github.com/thoughtbot/neat/releases) +- **[Demo](http://neat.bourbon.io)** +- **[Documentation](http://thoughtbot.github.io/neat-docs/latest)** +- **[Changelog](https://github.com/thoughtbot/neat/releases)** +- **[Issues & Bugs](https://github.com/thoughtbot/neat/issues)** +- **`#bourbon-neat`** on `irc.freenode.net` ## Requirements -- [Sass](https://github.com/sass/sass) 3.3+ ([Use Neat -1.5.1](#installing-older-versions-of-neat) if you are still tied to Sass 3.2) +- [Sass](https://github.com/sass/sass) 3.3+ - [Bourbon](https://github.com/thoughtbot/bourbon) 3.1+ +- :warning: If you need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat) ## Installation -Neat uses the [RubyGems](https://rubygems.org) package manager to easily generate a `neat` directory with all of the necessary files. +Neat is distributed using the [RubyGems](https://rubygems.org) package manager, which allows you to easily generate a `neat` directory with all of the necessary files right into your project. Alternatively, you can install Neat with [Bower](http://bower.io). + +For command line help, visit our wiki page on Neat’s [command line interface](https://github.com/thoughtbot/neat/wiki/Command-Line-Interface). 1. Install the Neat gem: @@ -101,16 +105,6 @@ Neat uses the [RubyGems](https://rubygems.org) package manager to easily generat 3. Follow the [instructions above](#installation) to install Neat into your project. -## Command line interface - -```bash -neat install -neat update -neat remove -``` - -More information can be found in the [wiki](https://github.com/thoughtbot/neat/wiki/Command-Line-Interface). - ## Using Neat First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat: @@ -137,7 +131,7 @@ $tablet: new-breakpoint(max-width 768px 8); $mobile: new-breakpoint(max-width 480px 4); ``` -See the [docs](http://neat.bourbon.io/docs/#variables) for a full list of settings. +See the [docs](http://thoughtbot.github.io/neat-docs/latest/#variable) for a full list of settings. Next, include the `outer-container` mixin in the topmost container (to which the `max-width` setting will be applied): @@ -202,11 +196,9 @@ The visual grid reflects the changes applied to the grid via the `new-breakpoint #### How do I use `omega()` in a mobile-first workflow? -Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow will cause the style to be applied to wider-viewport media queries as well. That -is the cascading nature of CSS. +Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow will cause the style to be applied to wider-viewport media queries as well. That is the cascading nature of CSS. -One solution would be to provide an `omega-reset()` mixin that negates the effect of `omega()` on that specific `nth-child` pseudo selector. While this is -often the most suggested solution, it is also a lazy hack that outputs ugly code and can quickly get out of hand in complex layouts. As a general rule, having to *undo* CSS styles is a sign of poor stylesheet architecture (more about [CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)). +One solution would be to provide an `omega-reset()` mixin that negates the effect of `omega()` on that specific `nth-child` pseudo selector. While this is often the most suggested solution, it is also a lazy hack that outputs ugly code and can quickly get out of hand in complex layouts. As a general rule, having to *undo* CSS styles is a sign of poor stylesheet architecture (more about [CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)). The other, more elegant, solution is to use mutually exclusive media queries, also referred to as [media-query splitting](http://simurai.com/blog/2012/08/29/media-query-splitting). This would guarantee that `omega()` styles are only applied where desired. @@ -244,17 +236,6 @@ At this point, writing an internal rounding mechanism is not high priority. Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is lightweight and simple compared to other grid frameworks, and strives to remain so. We have plans for adding new features in future versions of the framework, but these will be most likely to support new ways of working with layouts on the Web, not patches to existing ones. -## Documentation - -- [Full documentation](http://thoughtbot.github.io/neat-docs/latest/) (latest) -- Neat documentation is now available by default in [Dash](http://kapeli.com/dash) - -## Links - -- Ask questions on [Stack Overflow](http://stackoverflow.com/questions/tagged/neat). Don’t forget to tag them `bourbon` and `neat`. -- Suggest features or file bugs in [Issues](https://github.com/thoughtbot/neat/issues). -- Join `#bourbon-neat` on `irc.freenode.net`. - ## Browser support - Chrome 4.0+ @@ -266,14 +247,14 @@ Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), t ## The Bourbon family -- [Bourbon](http://bourbon.io): A simple and lightweight mixin library for Sass -- [Neat](http://neat.bourbon.io): A lightweight semantic grid framework for Sass and Bourbon -- [Bitters](http://bitters.bourbon.io): Scaffold styles, variables and structure for Bourbon projects -- [Refills](http://refills.bourbon.io): Prepackaged patterns and components, built on top of Bourbon, Bitters & Neat +- [Bourbon](https://github.com/thoughtbot/bourbon): A simple and lightweight mixin library for Sass +- [Neat](https://github.com/thoughtbot/neat): A lightweight semantic grid framework for Sass and Bourbon +- [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects +- [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters ## Credits -![thoughtbot](http://thoughtbot.com/images/tm/logo.png) +[![thoughtbot](http://images.thoughtbot.com/bourbon/thoughtbot-logo.svg)](http://thoughtbot.com) Neat is maintained and funded by [thoughtbot, inc](http://thoughtbot.com). Tweet your questions or suggestions to [@bourbonsass](https://twitter.com/bourbonsass) and while you’re at it follow us too. From d5cca2e2776f4b76551709c932dd1aef7e04b00f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 14 Nov 2014 10:44:15 -0500 Subject: [PATCH 043/269] Remove triple asterisk from README --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 35693612..e970bd92 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,6 @@ [![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) -*** - ## A lightweight, semantic grid framework built with Bourbon Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbot/bourbon) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. From 4455d16ea1537228927a419b23d949786fabe989 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Wed, 3 Dec 2014 15:15:02 +0100 Subject: [PATCH 044/269] Add scss-lint - Closes #267 --- .scss-lint.yml | 175 ++++++++++++++++++ app/assets/stylesheets/_neat.scss | 8 +- .../functions/_new-breakpoint.scss | 4 +- .../stylesheets/functions/_private.scss | 2 +- app/assets/stylesheets/grid/_box-sizing.scss | 4 +- app/assets/stylesheets/grid/_media.scss | 10 +- app/assets/stylesheets/grid/_omega.scss | 12 +- app/assets/stylesheets/grid/_row.scss | 4 +- .../stylesheets/grid/_to-deprecate.scss | 20 +- app/assets/stylesheets/grid/_visual-grid.scss | 6 +- .../stylesheets/settings/_visual-grid.scss | 2 +- neat.gemspec | 1 + 12 files changed, 202 insertions(+), 46 deletions(-) create mode 100644 .scss-lint.yml diff --git a/.scss-lint.yml b/.scss-lint.yml new file mode 100644 index 00000000..0e3709ca --- /dev/null +++ b/.scss-lint.yml @@ -0,0 +1,175 @@ +scss_files: "app/assets/stylesheets/**/*.scss" + +linters: + BangFormat: + enabled: true + space_before_bang: true + space_after_bang: false + + BorderZero: + enabled: false + + ColorKeyword: + enabled: true + severity: warning + + Comment: + enabled: true + + DebugStatement: + enabled: true + + DeclarationOrder: + enabled: true + + DuplicateProperty: + enabled: true + + ElsePlacement: + enabled: true + style: same_line + + EmptyLineBetweenBlocks: + enabled: true + ignore_single_line_blocks: true + + EmptyRule: + enabled: true + + FinalNewline: + enabled: true + present: true + + HexLength: + enabled: false + style: short + + HexNotation: + enabled: true + style: lowercase + + HexValidation: + enabled: true + + IdWithExtraneousSelector: + enabled: true + + ImportPath: + enabled: true + leading_underscore: false + filename_extension: false + + Indentation: + enabled: true + character: space + width: 2 + + LeadingZero: + enabled: true + style: include_zero + + MergeableSelector: + enabled: true + force_nesting: true + + NameFormat: + enabled: true + convention: hyphenated_lowercase + + NestingDepth: + enabled: true + max_depth: 4 + severity: warning + + PlaceholderInExtend: + enabled: false + + PropertySortOrder: + enabled: true + ignore_unspecified: false + severity: warning + + PropertySpelling: + enabled: true + extra_properties: [] + + QualifyingElement: + enabled: true + allow_with_attribute: false + allow_with_class: false + allow_with_id: false + severity: warning + + SelectorDepth: + enabled: true + max_depth: 2 + severity: warning + + SelectorFormat: + enabled: true + convention: hyphenated_lowercase + + Shorthand: + enabled: true + severity: warning + + SingleLinePerProperty: + enabled: true + allow_single_line_rule_sets: true + + SingleLinePerSelector: + enabled: true + + SpaceAfterComma: + enabled: true + + SpaceAfterPropertyColon: + enabled: true + style: one_space + + SpaceAfterPropertyName: + enabled: true + + SpaceBeforeBrace: + enabled: true + style: space + allow_single_line_padding: false + + SpaceBetweenParens: + enabled: true + spaces: 0 + + StringQuotes: + enabled: true + style: double_quotes + + TrailingSemicolon: + enabled: true + + TrailingZero: + enabled: false + + UnnecessaryMantissa: + enabled: true + + UnnecessaryParentReference: + enabled: true + + UrlFormat: + enabled: true + + UrlQuotes: + enabled: true + + VendorPrefixes: + enabled: true + identifier_list: bourbon + include: [] + exclude: [] + + ZeroUnit: + enabled: true + severity: warning + + Compass::*: + enabled: false diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 5113401c..bab59ac2 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,7 +1,7 @@ -/* Neat 1.7.0 - * http://neat.bourbon.io - * Copyright 2012-2014 thoughtbot, inc. - * MIT License */ +// Neat 1.7.0 +// http://neat.bourbon.io +// Copyright 2012-2014 thoughtbot, inc. +// MIT License // Helpers @import "neat-helpers"; diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index 13a3ace1..1ebd064d 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -35,9 +35,7 @@ @function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { @if length($query) == 1 { $query: $default-feature nth($query, 1) $total-columns; - } - - @else if is-even(length($query)) { + } @else if is-even(length($query)) { $query: append($query, $total-columns); } diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index e89e68a6..16d5b9bc 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -49,7 +49,7 @@ // Generates a striped background @function gradient-stops($grid-columns, $color: $visual-grid-color) { - $transparent: rgba(0,0,0,0); + $transparent: transparent; $column-width: flex-grid(1, $grid-columns); $gutter-width: flex-gutter($grid-columns); diff --git a/app/assets/stylesheets/grid/_box-sizing.scss b/app/assets/stylesheets/grid/_box-sizing.scss index bc794436..6f1548d4 100644 --- a/app/assets/stylesheets/grid/_box-sizing.scss +++ b/app/assets/stylesheets/grid/_box-sizing.scss @@ -4,7 +4,9 @@ } * { - &, &:before, &:after { + &, + &:before, + &:after { @include box-sizing(inherit); } } diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 467c2aa6..0cc2cb8d 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -60,11 +60,9 @@ @content; $grid-columns: $default-grid-columns !global; } - } - - @else { + } @else { $loop-to: length($query); - $media-query: 'screen and '; + $media-query: "screen and "; $default-grid-columns: $grid-columns; $grid-columns: $total-columns !global; @@ -75,10 +73,10 @@ $i: 1; @while $i <= $loop-to { - $media-query: $media-query + '(' + nth($query, $i) + ': ' + nth($query, $i + 1) + ') '; + $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") "; @if ($i + 1) != $loop-to { - $media-query: $media-query + 'and '; + $media-query: $media-query + "and "; } $i: $i + 2; diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index b458963f..8a238211 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -57,21 +57,15 @@ @else { @include nth-child($query, $direction); } - } - - @else if length($query) == 2 { + } @else if length($query) == 2 { @if $auto { &:last-child { margin-#{$direction}: 0; } - } - - @else { + } @else { @include nth-child(nth($query, 1), $direction); } - } - - @else { + } @else { @include -neat-warn("Too many arguments passed to the omega() mixin."); } } diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 18a68815..3dc56857 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -42,9 +42,7 @@ @include fill-parent; table-layout: fixed; $container-display-table: true !global; - } - - @else { + } @else { @include clearfix; display: block; $container-display-table: false !global; diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index cdd96a10..9398fe19 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -8,45 +8,35 @@ @content; $grid-columns: $default-grid-columns; } - } - - @else if length($query) == 2 { + } @else if length($query) == 2 { @media screen and (nth($query, 1): nth($query, 2)) { $default-grid-columns: $grid-columns; $grid-columns: $total-columns; @content; $grid-columns: $default-grid-columns; } - } - - @else if length($query) == 3 { + } @else if length($query) == 3 { @media screen and (nth($query, 1): nth($query, 2)) { $default-grid-columns: $grid-columns; $grid-columns: nth($query, 3); @content; $grid-columns: $default-grid-columns; } - } - - @else if length($query) == 4 { + } @else if length($query) == 4 { @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { $default-grid-columns: $grid-columns; $grid-columns: $total-columns; @content; $grid-columns: $default-grid-columns; } - } - - @else if length($query) == 5 { + } @else if length($query) == 5 { @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { $default-grid-columns: $grid-columns; $grid-columns: nth($query, 5); @content; $grid-columns: $default-grid-columns; } - } - - @else { + } @else { @include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details."); } } diff --git a/app/assets/stylesheets/grid/_visual-grid.scss b/app/assets/stylesheets/grid/_visual-grid.scss index 9a99bfb7..a1f9deba 100644 --- a/app/assets/stylesheets/grid/_visual-grid.scss +++ b/app/assets/stylesheets/grid/_visual-grid.scss @@ -8,18 +8,18 @@ @if $visual-grid == true or $visual-grid == yes { body:before { - content: ''; - display: inline-block; @include grid-column-gradient(gradient-stops($grid-columns)); + content: ""; + display: inline-block; height: 100%; left: 0; margin: 0 auto; max-width: $max-width; opacity: $visual-grid-opacity; + pointer-events: none; position: fixed; right: 0; width: 100%; - pointer-events: none; @if $visual-grid-index == back { z-index: -1; diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss index 1273c420..ea4f3fb4 100644 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ b/app/assets/stylesheets/settings/_visual-grid.scss @@ -8,7 +8,7 @@ $visual-grid: false !default; /// /// @type Color -$visual-grid-color: #EEE !default; +$visual-grid-color: #eee !default; /// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. /// diff --git a/neat.gemspec b/neat.gemspec index 8f0552ce..9336abb9 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -32,4 +32,5 @@ Neat is an open source grid framework built on top of Bourbon with the aim of be s.add_development_dependency('rdoc') s.add_development_dependency('bundler') s.add_development_dependency('rb-fsevent', '~> 0.9.1') + s.add_development_dependency('scss-lint', '~> 0.29.0') end From abb54b46ecc96b53cabc782c1458b2722d1b227d Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 9 Dec 2014 09:06:49 -0500 Subject: [PATCH 045/269] Specify CSS @charset - Fixes #270 --- app/assets/stylesheets/functions/_new-breakpoint.scss | 2 ++ app/assets/stylesheets/grid/_box-sizing.scss | 2 ++ app/assets/stylesheets/grid/_direction-context.scss | 2 ++ app/assets/stylesheets/grid/_display-context.scss | 2 ++ app/assets/stylesheets/grid/_fill-parent.scss | 2 ++ app/assets/stylesheets/grid/_media.scss | 2 ++ app/assets/stylesheets/grid/_omega.scss | 2 ++ app/assets/stylesheets/grid/_outer-container.scss | 2 ++ app/assets/stylesheets/grid/_pad.scss | 2 ++ app/assets/stylesheets/grid/_row.scss | 3 ++- app/assets/stylesheets/grid/_shift.scss | 2 ++ app/assets/stylesheets/grid/_span-columns.scss | 2 ++ app/assets/stylesheets/grid/_to-deprecate.scss | 2 ++ app/assets/stylesheets/grid/_visual-grid.scss | 2 ++ app/assets/stylesheets/settings/_disable-warnings.scss | 2 ++ app/assets/stylesheets/settings/_grid.scss | 2 ++ app/assets/stylesheets/settings/_visual-grid.scss | 2 ++ 17 files changed, 34 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index 1ebd064d..c00e3ccf 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. /// /// @param {List} $query diff --git a/app/assets/stylesheets/grid/_box-sizing.scss b/app/assets/stylesheets/grid/_box-sizing.scss index 6f1548d4..9ce3219f 100644 --- a/app/assets/stylesheets/grid/_box-sizing.scss +++ b/app/assets/stylesheets/grid/_box-sizing.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @if $border-box-sizing == true { html { // http://bit.ly/1qk2tVR @include box-sizing(border-box); diff --git a/app/assets/stylesheets/grid/_direction-context.scss b/app/assets/stylesheets/grid/_direction-context.scss index d781c9d2..c1be651e 100644 --- a/app/assets/stylesheets/grid/_direction-context.scss +++ b/app/assets/stylesheets/grid/_direction-context.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Changes the direction property used by other mixins called in the code block argument. /// /// @param {String} $direction (left-to-right) diff --git a/app/assets/stylesheets/grid/_display-context.scss b/app/assets/stylesheets/grid/_display-context.scss index a4a1a041..6970a275 100644 --- a/app/assets/stylesheets/grid/_display-context.scss +++ b/app/assets/stylesheets/grid/_display-context.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Changes the display property used by other mixins called in the code block argument. /// /// @param {String} $display (block) diff --git a/app/assets/stylesheets/grid/_fill-parent.scss b/app/assets/stylesheets/grid/_fill-parent.scss index 91559acd..93fdacf4 100644 --- a/app/assets/stylesheets/grid/_fill-parent.scss +++ b/app/assets/stylesheets/grid/_fill-parent.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Forces the element to fill its parent container. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 0cc2cb8d..06f2aa4b 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Outputs a media-query block with an optional grid context (the total number of columns used in the grid). /// /// @param {List} $query diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 8a238211..5e74af06 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. /// /// @param {List} $query (block) diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index e50069a5..8ed32e49 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. /// diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index c77cd672..77fd3386 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Adds padding to the element. /// /// @param {List} $padding (flex-gutter()) diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 3dc56857..e7a65498 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. /// /// @param {String} $display (default) @@ -48,4 +50,3 @@ $container-display-table: false !global; } } - diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index 89b71b26..24a267ba 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. /// /// @param {Number (unitless)} $n-columns (1) diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index 05931ab4..c8f0a379 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. /// /// @param {List} $span diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index 9398fe19..aeea0795 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { @include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."); diff --git a/app/assets/stylesheets/grid/_visual-grid.scss b/app/assets/stylesheets/grid/_visual-grid.scss index a1f9deba..1192d828 100644 --- a/app/assets/stylesheets/grid/_visual-grid.scss +++ b/app/assets/stylesheets/grid/_visual-grid.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @mixin grid-column-gradient($values...) { background-image: -webkit-linear-gradient(left, $values); background-image: -moz-linear-gradient(left, $values); diff --git a/app/assets/stylesheets/settings/_disable-warnings.scss b/app/assets/stylesheets/settings/_disable-warnings.scss index cf54e14a..3f9b92a6 100644 --- a/app/assets/stylesheets/settings/_disable-warnings.scss +++ b/app/assets/stylesheets/settings/_disable-warnings.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. /// /// @type Bool diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index 23c1f9b3..f5191440 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. /// /// @type Number (Unit) diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss index ea4f3fb4..9cd1815a 100644 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ b/app/assets/stylesheets/settings/_visual-grid.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. /// /// @type Bool From 45e5cd9b57dc192ede62b2e602e8836b8f531820 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Wed, 10 Dec 2014 17:05:45 -0500 Subject: [PATCH 046/269] Tweak gem info --- neat.gemspec | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/neat.gemspec b/neat.gemspec index 9336abb9..e5b6073a 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# coding: utf-8 $:.push File.expand_path('../lib', __FILE__) require 'neat/version' @@ -6,13 +6,14 @@ Gem::Specification.new do |s| s.name = 'neat' s.version = Neat::VERSION s.platform = Gem::Platform::RUBY - s.authors = ['Kyle Fiedler', 'Reda Lemeden', 'Joel Oliveira'] - s.email = ['support@thoughtbot.com'] - s.homepage = 'https://github.com/thoughtbot/neat' - s.summary = 'A fluid grid framework on top of Bourbon' + s.authors = ['Joel Oliveira', 'Kyle Fiedler', 'Reda Lemeden'] + s.email = 'design+bourbon@thoughtbot.com' + s.homepage = 'http://neat.bourbon.io' + s.summary = 'A lightweight, semantic grid framework built with Bourbon' s.license = 'MIT' s.description = <<-DESC -Neat is an open source grid framework built on top of Bourbon with the aim of being easy enough to use out of the box and flexible enough to customize down the road. +Neat is a fluid grid framework built with Bourbon with the aim of being easy +enough to use out of the box and flexible enough to customize down the road. DESC s.rubyforge_project = 'neat' From 1a67b1af9b5a7f4c160def474f216f0bcaa10ffb Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 1 Jan 2015 15:46:13 -0500 Subject: [PATCH 047/269] Update copyright to 2015 --- LICENSE.md | 14 ++++++-------- README.md | 8 ++++---- app/assets/stylesheets/_neat.scss | 2 +- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index fddf8ab7..1be2ca78 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,8 +1,6 @@ -LICENSE +The MIT License (MIT) -The MIT License - -Copyright © 2012–2014 [thoughtbot, inc.](http://thoughtbot.com) +Copyright © 2012–2015 [thoughtbot, inc.](http://thoughtbot.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal @@ -11,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/README.md b/README.md index e970bd92..e5152c94 100644 --- a/README.md +++ b/README.md @@ -23,16 +23,16 @@ Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbo ## Installation -Neat is distributed using the [RubyGems](https://rubygems.org) package manager, which allows you to easily generate a `neat` directory with all of the necessary files right into your project. Alternatively, you can install Neat with [Bower](http://bower.io). - For command line help, visit our wiki page on Neat’s [command line interface](https://github.com/thoughtbot/neat/wiki/Command-Line-Interface). -1. Install the Neat gem: +1. Install the Neat gem using the [RubyGems](https://rubygems.org) package manager: ```bash gem install neat ``` + Alternatively, you can install Neat with [Bower](http://bower.io). + 2. Install or update Neat’s dependencies: ```bash @@ -258,4 +258,4 @@ Neat is maintained and funded by [thoughtbot, inc](http://thoughtbot.com). Tweet ## License -Copyright © 2012–2014 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). +Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index bab59ac2..43f7c81b 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,6 +1,6 @@ // Neat 1.7.0 // http://neat.bourbon.io -// Copyright 2012-2014 thoughtbot, inc. +// Copyright 2012-2015 thoughtbot, inc. // MIT License // Helpers From 53e71908afc75c34d802deaf029410eff0bbc971 Mon Sep 17 00:00:00 2001 From: Kenneth Ormandy Date: Fri, 17 Oct 2014 18:55:44 -0700 Subject: [PATCH 048/269] Adds not function for Libsass compatibility - Closes #254 --- .../stylesheets/functions/_new-breakpoint.scss | 2 +- app/assets/stylesheets/functions/_private.scss | 12 +++++++++--- app/assets/stylesheets/grid/_media.scss | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index c00e3ccf..1bebad50 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -41,7 +41,7 @@ $query: append($query, $total-columns); } - @if not belongs-to($query, $visual-grid-breakpoints) { + @if is-not(belongs-to($query, $visual-grid-breakpoints)) { $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; } diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index 16d5b9bc..872d4dc5 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -1,15 +1,21 @@ +// Not function for Libsass compatibility +// https://github.com/sass/libsass/issues/368 +@function is-not($value) { + @return if($value, false, true); +} + // Checks if a number is even @function is-even($int) { - @return $int % 2 == 0 + @return $int % 2 == 0; } // Checks if an element belongs to a list or not @function belongs-to($tested-item, $list) { - @return not not-belongs-to($tested-item, $list); + @return is-not(not-belongs-to($tested-item, $list)); } @function not-belongs-to($tested-item, $list) { - @return not index($list, $tested-item); + @return is-not(index($list, $tested-item)); } // Contains display value diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 06f2aa4b..2c23fb63 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -68,7 +68,7 @@ $default-grid-columns: $grid-columns; $grid-columns: $total-columns !global; - @if not is-even(length($query)) { + @if is-not(is-even(length($query))) { $grid-columns: nth($query, $loop-to) !global; $loop-to: $loop-to - 1; } From 2d932e9c8066c43ba39ef9b1bb172620bffbe2d8 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 11:25:03 +0000 Subject: [PATCH 049/269] Fix bug related to the omega query argument - Closes #280 - Fixes #251 --- app/assets/stylesheets/grid/_omega.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 5e74af06..075c2eed 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -79,7 +79,7 @@ margin-#{$direction}: 0; } - @if type-of($query) == number { + @if type-of($query) == number and unit($query) == "n" { &:nth-child(#{$query}+1) { clear: $opposite-direction; } From df121da64264dd7676053143058a5587b3f69b51 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 11:30:36 +0000 Subject: [PATCH 050/269] Revert Rspec output format --- .rspec | 1 - 1 file changed, 1 deletion(-) diff --git a/.rspec b/.rspec index 16f9cdb0..4e1e0d2f 100644 --- a/.rspec +++ b/.rspec @@ -1,2 +1 @@ --color ---format documentation From 957956c5e20096d4e7afa45a0102fcf6de417f74 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 11:48:54 +0000 Subject: [PATCH 051/269] Fix typo in docs - Fixes #278 --- app/assets/stylesheets/grid/_direction-context.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/grid/_direction-context.scss b/app/assets/stylesheets/grid/_direction-context.scss index c1be651e..99c0faf2 100644 --- a/app/assets/stylesheets/grid/_direction-context.scss +++ b/app/assets/stylesheets/grid/_direction-context.scss @@ -6,7 +6,7 @@ /// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. /// /// @example scss - Usage -/// @include direction(right-to-left) { +/// @include direction-context(right-to-left) { /// .right-to-left-block { /// @include span-columns(6); /// } From 9dd5257297a976f80c03a130b1153748b9979301 Mon Sep 17 00:00:00 2001 From: Prakash Murthy Date: Thu, 25 Dec 2014 12:28:30 -0700 Subject: [PATCH 052/269] Include the step to install the neat library As part of the Installation for Ruby on Rails; causes confusion when not present. Ref: http://stackoverflow.com/questions/27646020/neat-gem-not-installed-correctly/27647313?noredirect=1#comment43717181_27647313 --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e5152c94..ee85599a 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,16 @@ For command line help, visit our wiki page on Neat’s [command line interface]( bundle update sass ``` -3. Import Neat in your `application.css.scss`, after Bourbon: +3. Install the Neat library into the current directory: + + ```bash + bourbon install # if not already installed + ``` + ```bash + neat install + ``` + +4. Import Neat in your `application.css.scss`, after Bourbon: ```scss @import "bourbon"; From dd83ff1c2cacb3900c6c0674c21395f7b936176d Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 12:18:24 +0000 Subject: [PATCH 053/269] Remove IRC references --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index ee85599a..32dc84b6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) [![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) -[![IRC](http://img.shields.io/badge/freenode-%23bourbon--neat-ae3dd2.svg?style=flat)](#) +[![Gitter](http://img.shields.io/badge/gitter-neat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) ## A lightweight, semantic grid framework built with Bourbon @@ -13,7 +13,6 @@ Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbo - **[Documentation](http://thoughtbot.github.io/neat-docs/latest)** - **[Changelog](https://github.com/thoughtbot/neat/releases)** - **[Issues & Bugs](https://github.com/thoughtbot/neat/issues)** -- **`#bourbon-neat`** on `irc.freenode.net` ## Requirements From 95d3d2fe88e4c6d0277ff4d6e943cd921f051d26 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 12:18:57 +0000 Subject: [PATCH 054/269] Remove Code Climate badge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 32dc84b6..c0a4670a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ [![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io) [![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) -[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/neat.svg?style=flat)](https://codeclimate.com/github/thoughtbot/neat) [![Gitter](http://img.shields.io/badge/gitter-neat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) From 5bb3b5635da809f70e479ad0ff43261a3ce42e78 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 12:53:27 +0000 Subject: [PATCH 055/269] Fix spec The build was failing since Bourbon's cleafix was updated to the `::` syntax for the pseudo-selector. --- spec/neat/container_spec.rb | 2 +- spec/neat/row_spec.rb | 2 +- spec/support/bourbon_support.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/neat/container_spec.rb b/spec/neat/container_spec.rb index 0c48f30d..ca770ed9 100644 --- a/spec/neat/container_spec.rb +++ b/spec/neat/container_spec.rb @@ -6,7 +6,7 @@ end it "adds clearfix" do - expect('.container-default:after').to have_rule('clear: both') + expect(".container-default::after").to have_rule("clear: both") end it "sets max-width" do diff --git a/spec/neat/row_spec.rb b/spec/neat/row_spec.rb index 5e8fe9e3..dc9ba29b 100644 --- a/spec/neat/row_spec.rb +++ b/spec/neat/row_spec.rb @@ -7,7 +7,7 @@ context "with no argument" do it "adds clearfix" do - expect('.row-default:after').to have_rule('clear: both') + expect(".row-default::after").to have_rule("clear: both") end it "sets display to block" do diff --git a/spec/support/bourbon_support.rb b/spec/support/bourbon_support.rb index ec980f50..cfef3776 100644 --- a/spec/support/bourbon_support.rb +++ b/spec/support/bourbon_support.rb @@ -1,6 +1,6 @@ module BourbonSupport def install_bourbon_files - `bourbon install --path test` + `bundle exec bourbon install --path test` end def remove_bourbon_files From b3b76ea53c916d60db4967f0a5702323492033bd Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 12:59:33 +0000 Subject: [PATCH 056/269] Use double quotes --- spec/neat/columns_spec.rb | 30 ++++++++++++++--------------- spec/neat/container_spec.rb | 6 +++--- spec/neat/default_spec.rb | 10 +++++----- spec/neat/direction_spec.rb | 6 +++--- spec/neat/display_spec.rb | 6 +++--- spec/neat/media_spec.rb | 20 +++++++++---------- spec/neat/new_breakpoint_spec.rb | 6 +++--- spec/neat/omega_spec.rb | 14 +++++++------- spec/neat/pad_spec.rb | 10 +++++----- spec/neat/row_spec.rb | 12 ++++++------ spec/neat/shift_spec.rb | 14 +++++++------- spec/spec_helper.rb | 10 +++++----- spec/support/bourbon_support.rb | 2 +- spec/support/matchers/have_rule.rb | 2 +- spec/support/matchers/have_value.rb | 4 ++-- spec/support/sass_support.rb | 4 ++-- 16 files changed, 78 insertions(+), 78 deletions(-) diff --git a/spec/neat/columns_spec.rb b/spec/neat/columns_spec.rb index 64e2b3f8..af526f96 100644 --- a/spec/neat/columns_spec.rb +++ b/spec/neat/columns_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include span-columns()" do before(:all) do @@ -7,67 +7,67 @@ context "with argument (6) in a twelve-column grid" do it "sets width in percentage" do - expect('.span-columns-default').to have_rule('width: 48.82117%') + expect(".span-columns-default").to have_rule("width: 48.82117%") end it "sets gutter in percentage" do - expect('.span-columns-default').to have_rule('margin-right: 2.35765%') + expect(".span-columns-default").to have_rule("margin-right: 2.35765%") end it "sets display to block" do - expect('.span-columns-default').to have_rule('display: block') + expect(".span-columns-default").to have_rule("display: block") end it "sets float to left" do - expect('.span-columns-default').to have_rule('float: left') + expect(".span-columns-default").to have_rule("float: left") end it "removes gutter from last element" do - expect('.span-columns-default:last-child').to have_rule('margin-right: 0') + expect(".span-columns-default:last-child").to have_rule("margin-right: 0") end end context "when nested" do it "sets relative width in percentage" do - expect('.span-columns-default .span-columns-nested').to have_rule('width: 30.11389%') + expect(".span-columns-default .span-columns-nested").to have_rule("width: 30.11389%") end it "sets relative gutter in percentage" do - expect('.span-columns-default .span-columns-nested').to have_rule('margin-right: 4.82916%') + expect(".span-columns-default .span-columns-nested").to have_rule("margin-right: 4.82916%") end end context "with argument (table)" do it "sets display to table-cell" do - expect('.span-columns-table').to have_rule('display: table-cell') + expect(".span-columns-table").to have_rule("display: table-cell") end it "sets width evenly between elements" do - expect('.span-columns-table').to have_rule('width: 50%') + expect(".span-columns-table").to have_rule("width: 50%") end end context "with argument (block-collapse)" do it "appends gutter width to column width" do - expect('.span-columns-collapse').to have_rule('width: 51.17883%') + expect(".span-columns-collapse").to have_rule("width: 51.17883%") end it "removes the next gutter" do - expect('.span-columns-collapse').to_not have_rule('margin-right: 2.35765%') + expect(".span-columns-collapse").to_not have_rule("margin-right: 2.35765%") end it "removes gutter percentage from the width of the last child" do - expect('.span-columns-collapse:last-child').to have_rule('width: 48.82117%') + expect(".span-columns-collapse:last-child").to have_rule("width: 48.82117%") end end context "with argument (no-display)" do it "doesn't set display property" do - expect('.span-columns-no-display').to_not have_rule('display: block') + expect(".span-columns-no-display").to_not have_rule("display: block") end it "sets width in percentage based on a block layout" do - expect('.span-columns-no-display').to have_rule('width: 48.82117%') + expect(".span-columns-no-display").to have_rule("width: 48.82117%") end end end diff --git a/spec/neat/container_spec.rb b/spec/neat/container_spec.rb index ca770ed9..147f1cec 100644 --- a/spec/neat/container_spec.rb +++ b/spec/neat/container_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include outer-container()" do before(:all) do @@ -10,12 +10,12 @@ end it "sets max-width" do - expect('.container-default').to have_rule('max-width: 960px') + expect(".container-default").to have_rule("max-width: 960px") end context "with max-width argument: 100%" do it "sets max-width to 100%" do - expect('.container-custom-width').to have_rule('max-width: 100%') + expect(".container-custom-width").to have_rule("max-width: 100%") end end end diff --git a/spec/neat/default_spec.rb b/spec/neat/default_spec.rb index 98cdcde9..050834c2 100644 --- a/spec/neat/default_spec.rb +++ b/spec/neat/default_spec.rb @@ -1,15 +1,15 @@ -require 'spec_helper' +require "spec_helper" describe "By default" do before(:all) do ParserSupport.parse_file("default") end - it "sets sizing on the html element to 'border-box'" do - expect('html').to have_rule('box-sizing: border-box') + it "sets sizing on the html element to border-box" do + expect("html").to have_rule("box-sizing: border-box") end - it "sets sizing on the global selector to 'inherit'" do - expect('*:after').to have_rule('box-sizing: inherit') + it "sets sizing on the global selector to inherit" do + expect("*:after").to have_rule("box-sizing: inherit") end end diff --git a/spec/neat/direction_spec.rb b/spec/neat/direction_spec.rb index 9a6d6ea0..1a39c322 100644 --- a/spec/neat/direction_spec.rb +++ b/spec/neat/direction_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include direction-context() {...}" do before(:all) do @@ -7,13 +7,13 @@ context "with no argument" do it "uses default direction setting" do - expect('.default-block').to have_rule('float: left') + expect(".default-block").to have_rule("float: left") end end context "whith argument (right-to-left)" do it "changes direction setting inside the block" do - expect('.right-to-left-block').to have_rule('float: right') + expect(".right-to-left-block").to have_rule("float: right") end end end diff --git a/spec/neat/display_spec.rb b/spec/neat/display_spec.rb index 37e56f58..51070a2e 100644 --- a/spec/neat/display_spec.rb +++ b/spec/neat/display_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include display-context() {...}" do before(:all) do @@ -7,13 +7,13 @@ context "with argument (table)" do it "changes display value to table" do - expect('.display-table-block').to have_rule('display: table-cell') + expect(".display-table-block").to have_rule("display: table-cell") end end context "whith nested call and argument (block)" do it "changes display value to block" do - expect('.display-nested-block').to have_rule('display: block') + expect(".display-nested-block").to have_rule("display: block") end end end diff --git a/spec/neat/media_spec.rb b/spec/neat/media_spec.rb index 6ab44b5a..620b9c76 100644 --- a/spec/neat/media_spec.rb +++ b/spec/neat/media_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include media() {...}" do before(:all) do @@ -7,49 +7,49 @@ context "with argument (481px)" do it "outputs @media screen and (min-width: 481px)" do - expect('.media-default').to be_contained_in('screen and (min-width: 481px)') + expect(".media-default").to be_contained_in("screen and (min-width: 481px)") end end context "with argument (max-width 480px)" do it "outputs @media screen and (max-width: 480px)" do - expect('.media-max-width').to be_contained_in('screen and (max-width: 480px)') + expect(".media-max-width").to be_contained_in("screen and (max-width: 480px)") end end context "with argument (min-width 320px max-width 480px)" do it "outputs @media screen and (min-width: 320px) and (max-width: 480px)" do - expect('.media-min-max-width').to be_contained_in('screen and (min-width: 320px) and (max-width: 480px)') + expect(".media-min-max-width").to be_contained_in("screen and (min-width: 320px) and (max-width: 480px)") end end context "with argument (481px, 6)" do it "outputs @media screen and (min-width: 481px)" do - expect('.change-media-context').to be_contained_in('screen and (min-width: 481px)') + expect(".change-media-context").to be_contained_in("screen and (min-width: 481px)") end it "uses a 6-column grid" do - expect('.change-media-context').to have_rule('width: 100%') + expect(".change-media-context").to have_rule("width: 100%") end end context "with shorthand argument (max-width 480px 6)" do it "outputs @media screen and (max-width: 480px)" do - expect('.change-media-context-shorthand').to be_contained_in('screen and (max-width: 480px)') + expect(".change-media-context-shorthand").to be_contained_in("screen and (max-width: 480px)") end it "uses a 6-column grid" do - expect('.change-media-context-shorthand').to have_rule('width: 100%') + expect(".change-media-context-shorthand").to have_rule("width: 100%") end end context "with composite argument (max-width 768px min-width 110px orientation portait 6)" do it "outputs @media screen and (max-width: 768px) and (min-width: 110px) and (orientation: portait)" do - expect('.composite-media-query').to be_contained_in('screen and (max-width: 768px) and (min-width: 110px) and (orientation: portait)') + expect(".composite-media-query").to be_contained_in("screen and (max-width: 768px) and (min-width: 110px) and (orientation: portait)") end it "uses a 6-column grid" do - expect('.composite-media-query').to have_rule('width: 100%') + expect(".composite-media-query").to have_rule("width: 100%") end end end diff --git a/spec/neat/new_breakpoint_spec.rb b/spec/neat/new_breakpoint_spec.rb index c2afd331..6b577e7d 100644 --- a/spec/neat/new_breakpoint_spec.rb +++ b/spec/neat/new_breakpoint_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "new-breakpoint()" do before(:all) do @@ -7,11 +7,11 @@ context "with argument (max-width 768px 12)" do it "outputs (max-width 768px)" do - expect('.responsive-element').to be_contained_in('screen and (max-width: 768px)') + expect(".responsive-element").to be_contained_in("screen and (max-width: 768px)") end it "adds (max-width 768px 12) to visual grid breakpoints" do - expect('$visual-grid-breakpoints').to have_value('max-width 768px 12') + expect("$visual-grid-breakpoints").to have_value("max-width 768px 12") end end end diff --git a/spec/neat/omega_spec.rb b/spec/neat/omega_spec.rb index ef7bc38f..68519139 100644 --- a/spec/neat/omega_spec.rb +++ b/spec/neat/omega_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include omega()" do before(:all) do @@ -7,36 +7,36 @@ context "with no argument" do it "removes right margin" do - expect('.omega-default').to have_rule('margin-right: 0') + expect(".omega-default").to have_rule("margin-right: 0") end end context "with argument (4n)" do it "removes right margin of nth-child(4n)" do - expect('.omega-nth-default:nth-child(4n)').to have_rule('margin-right: 0') + expect(".omega-nth-default:nth-child(4n)").to have_rule("margin-right: 0") end it "adds clear to nth-child(4n+1)" do - expect('.omega-nth-default:nth-child(4n+1)').to have_rule('clear: left') + expect(".omega-nth-default:nth-child(4n+1)").to have_rule("clear: left") end end context "with argument ('4n+1')" do it "removes right margin of nth-child(4n+1)" do - expect('.omega-complex-nth:nth-child(4n+1)').to have_rule('margin-right: 0') + expect(".omega-complex-nth:nth-child(4n+1)").to have_rule("margin-right: 0") end end context "when called inside an RTL row" do context "with no argument" do it "removes left margin" do - expect('section .omega-default-left').to have_rule('margin-left: 0') + expect("section .omega-default-left").to have_rule("margin-left: 0") end end context "with argument (4n block)" do it "removes left margin of nth-child(4n)" do - expect('section .omega-nth-default-left:nth-child(4n)').to have_rule('margin-left: 0') + expect("section .omega-nth-default-left:nth-child(4n)").to have_rule("margin-left: 0") end end end diff --git a/spec/neat/pad_spec.rb b/spec/neat/pad_spec.rb index cb8e1491..72685620 100644 --- a/spec/neat/pad_spec.rb +++ b/spec/neat/pad_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include pad()" do before(:all) do @@ -7,25 +7,25 @@ context "with no argument" do it "sets padding to gutter percentage" do - expect('.pad-default').to have_rule('padding: 2.35765%') + expect(".pad-default").to have_rule("padding: 2.35765%") end end context "with argument (20px)" do it "sets padding to 20px" do - expect('.pad-explicit').to have_rule('padding: 20px') + expect(".pad-explicit").to have_rule("padding: 20px") end end context "with argument (30px 20px 10px 5px)" do it "sets padding to 30px 20px 10px 5px" do - expect('.pad-shorthand').to have_rule('padding: 30px 20px 10px 5px') + expect(".pad-shorthand").to have_rule("padding: 30px 20px 10px 5px") end end context "with argument (default)" do it "uses default gutter percentage" do - expect('.pad-shorthand-default').to have_rule('padding: 30px 2.35765% 10px 2.35765%') + expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px 2.35765%") end end end diff --git a/spec/neat/row_spec.rb b/spec/neat/row_spec.rb index dc9ba29b..321f0848 100644 --- a/spec/neat/row_spec.rb +++ b/spec/neat/row_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include row()" do before(:all) do @@ -11,29 +11,29 @@ end it "sets display to block" do - expect('.row-default').to have_rule('display: block') + expect(".row-default").to have_rule("display: block") end end context "with argument (table)" do it "sets display to table" do - expect('.row-table').to have_rule('display: table') + expect(".row-table").to have_rule("display: table") end it "forces table-cell display on child elements" do - expect('.row-table-reset .block-child').to have_rule('display: table-cell') + expect(".row-table-reset .block-child").to have_rule("display: table-cell") end end context "with reset-display()" do it "resets display to block" do - expect('.no-row').to have_rule('display: block') + expect(".no-row").to have_rule("display: block") end end context "with invalid display argument" do it "sets display to block" do - expect('.row-invalid-display').to have_rule('display: block') + expect(".row-invalid-display").to have_rule("display: block") end end end diff --git a/spec/neat/shift_spec.rb b/spec/neat/shift_spec.rb index 292c3dda..23a40fac 100644 --- a/spec/neat/shift_spec.rb +++ b/spec/neat/shift_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require "spec_helper" describe "@include shift()" do before(:all) do @@ -7,35 +7,35 @@ context "with no argument" do it "shifts element one column in the default direction" do - expect('.shift-default').to have_rule('margin-left: 8.5298%') + expect(".shift-default").to have_rule("margin-left: 8.5298%") end end context "with argument (2)" do it "shifts element 2 columns in the default direction" do - expect('.shift-positive').to have_rule('margin-left: 17.05961%') + expect(".shift-positive").to have_rule("margin-left: 17.05961%") end end context "with argument (-3)" do it "shifts element 3 columns in the opposite direction" do - expect('.shift-negative').to have_rule('margin-left: -25.58941%') + expect(".shift-negative").to have_rule("margin-left: -25.58941%") end end context "when nested" do it "shifts element relative to its parent" do - expect('.shifted-parent .shifted-child').to have_rule('margin-left: 34.94305%') + expect(".shifted-parent .shifted-child").to have_rule("margin-left: 34.94305%") end it "resets nesting context" do - expect('.post-nested-shift').to have_rule('margin-left: 17.05961%') + expect(".post-nested-shift").to have_rule("margin-left: 17.05961%") end end context "when layout direction changes" do it "shifts element in the corresponding direction" do - expect('section .shift-negative').to have_rule('margin-right: -25.58941%') + expect("section .shift-negative").to have_rule("margin-right: -25.58941%") end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d6275afc..5fa5a302 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,9 @@ -$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) +$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) $LOAD_PATH.unshift(File.dirname(__FILE__)) -require 'rspec' -require 'neat' -require 'aruba/api' -require 'css_parser' +require "rspec" +require "neat" +require "aruba/api" +require "css_parser" Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } RSpec.configure do |config| diff --git a/spec/support/bourbon_support.rb b/spec/support/bourbon_support.rb index cfef3776..b9a0e6b7 100644 --- a/spec/support/bourbon_support.rb +++ b/spec/support/bourbon_support.rb @@ -4,6 +4,6 @@ def install_bourbon_files end def remove_bourbon_files - FileUtils.rm_rf('test/bourbon') + FileUtils.rm_rf("test/bourbon") end end diff --git a/spec/support/matchers/have_rule.rb b/spec/support/matchers/have_rule.rb index bc444e4d..58300214 100644 --- a/spec/support/matchers/have_rule.rb +++ b/spec/support/matchers/have_rule.rb @@ -24,7 +24,7 @@ def rules_from_selector(selector) def rules(rulesets) rules = [] rulesets.map do |ruleset| - ruleset.split(';').each do |rule| + ruleset.split(";").each do |rule| rules << rule.strip end end diff --git a/spec/support/matchers/have_value.rb b/spec/support/matchers/have_value.rb index be869ecd..8643ec12 100644 --- a/spec/support/matchers/have_value.rb +++ b/spec/support/matchers/have_value.rb @@ -1,10 +1,10 @@ RSpec::Matchers.define :have_value do |expected| match do |actual| - selector_id = actual.sub('$','#') + selector_id = actual.sub("$","#") value_attribute = ParserSupport.parser.find_by_selector(selector_id)[0] unless value_attribute.nil? - actual_value = value_attribute.split(':')[1].strip.sub(';', '') + actual_value = value_attribute.split(":")[1].strip.sub(";", "") actual_value == expected end end diff --git a/spec/support/sass_support.rb b/spec/support/sass_support.rb index afd0f140..bad4a7df 100644 --- a/spec/support/sass_support.rb +++ b/spec/support/sass_support.rb @@ -1,10 +1,10 @@ module SassSupport def generate_css - _mkdir('tmp') + _mkdir("tmp") `sass -I . --update test:tmp` end def clean_up - FileUtils.rm_rf('tmp') + FileUtils.rm_rf("tmp") end end From 53c2c340721f3770d551f741dc83729973c18722 Mon Sep 17 00:00:00 2001 From: Luke Rollans Date: Thu, 1 Jan 2015 17:02:05 +0800 Subject: [PATCH 057/269] Clarify use of Sprockets with SASS @import. Closes #288 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c0a4670a..eb9faae7 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,8 @@ For command line help, visit our wiki page on Neat’s [command line interface]( @import "bourbon"; @import "neat"; ``` + + It should be noted that `@import` rules are not compatible with Sprockets directives. You need to use one or the other. ## Installing older versions of Neat From 078078ffefd74fc27b95ed47625cff7825cd493a Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Fri, 2 Jan 2015 13:18:14 +0000 Subject: [PATCH 058/269] Bump to 1.7.1 --- README.md | 4 ++-- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 1 - lib/neat/version.rb | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index eb9faae7..11b9db67 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbo ## Requirements - [Sass](https://github.com/sass/sass) 3.3+ -- [Bourbon](https://github.com/thoughtbot/bourbon) 3.1+ +- [Bourbon](https://github.com/thoughtbot/bourbon) 4.0+ - :warning: If you need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat) ## Installation @@ -93,7 +93,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( @import "bourbon"; @import "neat"; ``` - + It should be noted that `@import` rules are not compatible with Sprockets directives. You need to use one or the other. ## Installing older versions of Neat diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 43f7c81b..9d9477df 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -// Neat 1.7.0 +// Neat 1.7.1 // http://neat.bourbon.io // Copyright 2012-2015 thoughtbot, inc. // MIT License diff --git a/bower.json b/bower.json index 58164f7d..32ce0dbd 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,5 @@ { "name": "neat", - "version": "1.7.0", "homepage": "http://neat.bourbon.io/", "main": "app/assets/stylesheets/_neat.scss", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index f8cf9417..485f83f3 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.7.0' + VERSION = '1.7.1' end From 121a41beb41c4439393394344e170c06d6b87e7c Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 2 Jan 2015 09:27:51 -0500 Subject: [PATCH 059/269] Remove unneeded install step for Rails --- README.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/README.md b/README.md index 11b9db67..42a64b38 100644 --- a/README.md +++ b/README.md @@ -78,16 +78,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( bundle update sass ``` -3. Install the Neat library into the current directory: - - ```bash - bourbon install # if not already installed - ``` - ```bash - neat install - ``` - -4. Import Neat in your `application.css.scss`, after Bourbon: +3. Import Neat in your `application.scss`, after Bourbon: ```scss @import "bourbon"; From 863c39403193620af200a533ab171b6f911d7ca0 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 1 Jan 2015 16:17:13 -0500 Subject: [PATCH 060/269] Replace golden-ratio function with modular-scale --- app/assets/stylesheets/settings/_grid.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index f5191440..8b390ac4 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,16 +1,16 @@ @charset "UTF-8"; -/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag. +/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag. /// /// @type Number (Unit) -$column: golden-ratio(1em, 3) !default; +$column: modular-scale(3, 1em, $golden) !default; -/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag. +/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag. /// /// @type Number (Unit) -$gutter: golden-ratio(1em, 1) !default; +$gutter: modular-scale(1, 1em, $golden) !default; /// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. /// From 60dc0a38bcabe3b9b1df056237a881590783083a Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 1 Jan 2015 16:00:07 -0500 Subject: [PATCH 061/269] Remove prefixing on box-sizing --- README.md | 6 +++--- app/assets/stylesheets/grid/_box-sizing.scss | 8 ++++---- app/assets/stylesheets/grid/_fill-parent.scss | 4 +--- app/assets/stylesheets/settings/_grid.scss | 6 +----- spec/neat/default_spec.rb | 2 +- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 42a64b38..862e478b 100644 --- a/README.md +++ b/README.md @@ -236,12 +236,12 @@ Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), t ## Browser support -- Chrome 4.0+ -- Firefox 3.5+ +- Chrome 10+ +- Firefox 29+ - Internet Explorer 9+ (visual grid is IE 10 only) - Internet Explorer 8 with [selectivizr](http://selectivizr.com) (no `media()` support) - Opera 9.5+ -- Safari 4.0+ +- Safari 5.1+ ## The Bourbon family diff --git a/app/assets/stylesheets/grid/_box-sizing.scss b/app/assets/stylesheets/grid/_box-sizing.scss index 9ce3219f..b6d3fec3 100644 --- a/app/assets/stylesheets/grid/_box-sizing.scss +++ b/app/assets/stylesheets/grid/_box-sizing.scss @@ -2,14 +2,14 @@ @if $border-box-sizing == true { html { // http://bit.ly/1qk2tVR - @include box-sizing(border-box); + box-sizing: border-box; } * { &, - &:before, - &:after { - @include box-sizing(inherit); + &::after, + &::before { + box-sizing: inherit; } } } diff --git a/app/assets/stylesheets/grid/_fill-parent.scss b/app/assets/stylesheets/grid/_fill-parent.scss index 93fdacf4..415f0b1e 100644 --- a/app/assets/stylesheets/grid/_fill-parent.scss +++ b/app/assets/stylesheets/grid/_fill-parent.scss @@ -10,8 +10,6 @@ /// @example css - CSS Output /// .element { /// width: 100%; -/// -webkit-box-sizing: border-box; -/// -moz-box-sizing: border-box; /// box-sizing: border-box; /// } @@ -19,6 +17,6 @@ width: 100%; @if $border-box-sizing == false { - @include box-sizing(border-box); + box-sizing: border-box; } } diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index 8b390ac4..c4e55dc1 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -30,13 +30,9 @@ $max-width: em(1088) !default; /// /// @example css - CSS Output /// html { -/// -webkit-box-sizing: border-box; -/// -moz-box-sizing: border-box; /// box-sizing: border-box; } /// -/// *, *:before, *:after { -/// -webkit-box-sizing: inherit; -/// -moz-box-sizing: inherit; +/// *, *::after, *::before { /// box-sizing: inherit; /// } diff --git a/spec/neat/default_spec.rb b/spec/neat/default_spec.rb index 050834c2..5714457f 100644 --- a/spec/neat/default_spec.rb +++ b/spec/neat/default_spec.rb @@ -10,6 +10,6 @@ end it "sets sizing on the global selector to inherit" do - expect("*:after").to have_rule("box-sizing: inherit") + expect("*::after").to have_rule("box-sizing: inherit") end end From ba9c78933a7d18e0e6aa3bcf035c486a04b8c8a6 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Fri, 9 Jan 2015 17:02:15 +0100 Subject: [PATCH 062/269] Add note about `span-columns` accepting decimals After trying numerous more complex workarounds for a displaying number of columns that doesn't evenly divide into the grid I finally stumbled upon this: http://thisbythem.com/blog/odd-number-in-even-columns-with-neat/. I figured explicitly calling out the decimal support in the dos could help other users in similar situations. --- app/assets/stylesheets/grid/_span-columns.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index c8f0a379..38b00c12 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -9,6 +9,8 @@ /// /// The values can be separated with any string such as `of`, `/`, etc. /// +/// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns. +/// /// @param {String} $display (block) /// Sets the display property of the element. By default it sets the display propert of the element to `block`. /// From c5b0bce6d51037bb68cd2a212ea60b5795a4eafb Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 6 Feb 2015 10:45:22 -0500 Subject: [PATCH 063/269] Add package info for npm - Unify Bower and sache --- bower.json | 40 ++++++++++++++++++++++++++++++++-------- package.json | 35 +++++++++++++++++++++++++++++++++++ sache.json | 4 ++-- 3 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 package.json diff --git a/bower.json b/bower.json index 32ce0dbd..925fd9fa 100644 --- a/bower.json +++ b/bower.json @@ -1,20 +1,44 @@ { "name": "neat", - "homepage": "http://neat.bourbon.io/", + "description": "A lightweight, semantic grid framework built with Bourbon", + "version": "1.7.1", "main": "app/assets/stylesheets/_neat.scss", + "license": "MIT", "ignore": [ - "bin", - "lib", - ".gitignore", + "**/.*", + "CONTRIBUTING.md", "Gemfile", "Gemfile.lock", + "NEWS.md", "Rakefile", + "bin", + "lib", "neat.gemspec", - "CONTRIBUTING.md", - "NEWS.md", - "test", - "spec" + "sache.json", + "spec", + "test" + ], + "keywords": [ + "bourbon", + "columns", + "grid", + "layout", + "media", + "media-queries", + "neat", + "queries", + "sass", + "scss", + "semantic" + ], + "authors": [ + "thoughtbot (http://thoughtbot.com)" ], + "homepage": "http://neat.bourbon.io", + "repository": { + "type": "git", + "url": "https://github.com/thoughtbot/neat.git" + }, "dependencies": { "bourbon": ">=4.0" } diff --git a/package.json b/package.json new file mode 100644 index 00000000..a3bef3d5 --- /dev/null +++ b/package.json @@ -0,0 +1,35 @@ +{ + "name": "bourbon-neat", + "version": "1.7.1", + "description": "A lightweight, semantic grid framework built with Bourbon", + "keywords": [ + "bourbon", + "columns", + "grid", + "layout", + "media", + "media-queries", + "neat", + "queries", + "sass", + "scss", + "semantic" + ], + "homepage": "http://neat.bourbon.io", + "bugs": { + "url": "https://github.com/thoughtbot/neat/issues" + }, + "license": "MIT", + "author": { + "name": "thoughtbot", + "url": "http://thoughtbot.com" + }, + "main": "app/assets/stylesheets/_neat.scss", + "repository": { + "type": "git", + "url": "https://github.com/thoughtbot/neat.git" + }, + "scripts": { + "test": "echo \"No test specified\"" + } +} diff --git a/sache.json b/sache.json index 0494986d..a2fb2227 100644 --- a/sache.json +++ b/sache.json @@ -1,5 +1,5 @@ { "name": "Neat", - "description": "A lightweight, semantic grid framework built on top of Bourbon", - "tags": ["neat", "grid", "layout", "columns", "semantic", "media-queries", "media", "queries", "bourbon"] + "description": "A lightweight, semantic grid framework built with Bourbon", + "tags": ["bourbon", "columns", "grid", "layout", "media", "media-queries", "neat", "queries", "sass", "scss", "semantic"] } From 84981c0d930cf4649270b3ae9b2debfef9dc5243 Mon Sep 17 00:00:00 2001 From: Veselin Todorov Date: Mon, 2 Feb 2015 11:28:09 +0200 Subject: [PATCH 064/269] Fix indentation --- spec/support/matchers/be_contained_in.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/support/matchers/be_contained_in.rb b/spec/support/matchers/be_contained_in.rb index 28481b4f..01a99f96 100644 --- a/spec/support/matchers/be_contained_in.rb +++ b/spec/support/matchers/be_contained_in.rb @@ -5,6 +5,6 @@ end failure_message do |actual| - %{expected selector #{actual} to be contained in #{expected}} + %{expected selector #{actual} to be contained in #{expected}} end end From bff08df8fec78f1186428aaea49ab79f3a87b398 Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Tue, 10 Feb 2015 17:12:35 +0100 Subject: [PATCH 065/269] Update parameter default syntax --- app/assets/stylesheets/functions/_new-breakpoint.scss | 2 +- app/assets/stylesheets/grid/_direction-context.scss | 2 +- app/assets/stylesheets/grid/_display-context.scss | 2 +- app/assets/stylesheets/grid/_media.scss | 2 +- app/assets/stylesheets/grid/_omega.scss | 2 +- app/assets/stylesheets/grid/_outer-container.scss | 2 +- app/assets/stylesheets/grid/_pad.scss | 2 +- app/assets/stylesheets/grid/_row.scss | 4 ++-- app/assets/stylesheets/grid/_shift.scss | 2 +- app/assets/stylesheets/grid/_span-columns.scss | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss index 1bebad50..41ab9556 100644 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ b/app/assets/stylesheets/functions/_new-breakpoint.scss @@ -9,7 +9,7 @@ /// /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). /// -/// @param {Number (unitless)} $total-columns ($grid-columns) +/// @param {Number (unitless)} $total-columns [$grid-columns] /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_direction-context.scss b/app/assets/stylesheets/grid/_direction-context.scss index 99c0faf2..7b0d46e8 100644 --- a/app/assets/stylesheets/grid/_direction-context.scss +++ b/app/assets/stylesheets/grid/_direction-context.scss @@ -2,7 +2,7 @@ /// Changes the direction property used by other mixins called in the code block argument. /// -/// @param {String} $direction (left-to-right) +/// @param {String} $direction [left-to-right] /// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_display-context.scss b/app/assets/stylesheets/grid/_display-context.scss index 6970a275..ed9b0637 100644 --- a/app/assets/stylesheets/grid/_display-context.scss +++ b/app/assets/stylesheets/grid/_display-context.scss @@ -2,7 +2,7 @@ /// Changes the display property used by other mixins called in the code block argument. /// -/// @param {String} $display (block) +/// @param {String} $display [block] /// Display value to be used within the block. Can be `table` or `block`. /// /// @example scss diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss index 2c23fb63..bd516e99 100644 --- a/app/assets/stylesheets/grid/_media.scss +++ b/app/assets/stylesheets/grid/_media.scss @@ -11,7 +11,7 @@ /// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). /// /// -/// @param {Number (unitless)} $total-columns ($grid-columns) +/// @param {Number (unitless)} $total-columns [$grid-columns] /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 075c2eed..80f918ab 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -2,7 +2,7 @@ /// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. /// -/// @param {List} $query (block) +/// @param {List} $query [block] /// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). /// /// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 8ed32e49..5a375bb1 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -3,7 +3,7 @@ /// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. /// -/// @param {Number (unit)} $local-max-width ($max-width) +/// @param {Number [unit]} $local-max-width [$max-width] /// Max width to be applied to the element. Can be a percentage or a measure. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index 77fd3386..d697e1b9 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -2,7 +2,7 @@ /// Adds padding to the element. /// -/// @param {List} $padding (flex-gutter()) +/// @param {List} $padding [flex-gutter()] /// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index e7a65498..4d913a92 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -2,10 +2,10 @@ /// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. /// -/// @param {String} $display (default) +/// @param {String} $display [default] /// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. /// -/// @param {String} $direction ($default-layout-direction) +/// @param {String} $direction [$default-layout-direction] /// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss index 24a267ba..c0f24cd8 100644 --- a/app/assets/stylesheets/grid/_shift.scss +++ b/app/assets/stylesheets/grid/_shift.scss @@ -2,7 +2,7 @@ /// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. /// -/// @param {Number (unitless)} $n-columns (1) +/// @param {Number (unitless)} $n-columns [1] /// Number of columns by which the element shifts. /// /// @example scss - Usage diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index 38b00c12..f128399a 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -11,7 +11,7 @@ /// /// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns. /// -/// @param {String} $display (block) +/// @param {String} $display [block] /// Sets the display property of the element. By default it sets the display propert of the element to `block`. /// /// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. From 9d3f07553f4f676ed505eb28b6b166462923766a Mon Sep 17 00:00:00 2001 From: Joe Ferris Date: Thu, 12 Mar 2015 17:19:32 -0400 Subject: [PATCH 066/269] Update credits in README * Split up license section * Add "About thoughtbot" section --- README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 862e478b..b6936bde 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,9 @@ Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbo - **[Changelog](https://github.com/thoughtbot/neat/releases)** - **[Issues & Bugs](https://github.com/thoughtbot/neat/issues)** +Follow the [@bourbonsass](https://twitter.com/bourbonsass) Twitter account +for updates. + ## Requirements - [Sass](https://github.com/sass/sass) 3.3+ @@ -250,12 +253,20 @@ Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), t - [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects - [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters -## Credits +## License -[![thoughtbot](http://images.thoughtbot.com/bourbon/thoughtbot-logo.svg)](http://thoughtbot.com) +Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). -Neat is maintained and funded by [thoughtbot, inc](http://thoughtbot.com). Tweet your questions or suggestions to [@bourbonsass](https://twitter.com/bourbonsass) and while you’re at it follow us too. +## About thoughtbot -## License +![thoughtbot](https://thoughtbot.com/logo.png) -Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). +Neat is maintained and funded by thoughtbot, inc. +The names and logos for thoughtbot are trademarks of thoughtbot, inc. + +We love open source software! +See [our other projects][community] or +[hire us][hire] to design, develop, and grow your product. + +[community]: https://thoughtbot.com/community?utm_source=github +[hire]: https://thoughtbot.com/hire-us?utm_source=github From 246166e5ce2e0ae4d7730846d7857991fb07c8cc Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 13 Mar 2015 10:57:15 -0400 Subject: [PATCH 067/269] Neat v1.7.2 --- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index 9d9477df..e46e1693 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -// Neat 1.7.1 +// Neat 1.7.2 // http://neat.bourbon.io // Copyright 2012-2015 thoughtbot, inc. // MIT License diff --git a/bower.json b/bower.json index 925fd9fa..4b9d578b 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework built with Bourbon", - "version": "1.7.1", + "version": "1.7.2", "main": "app/assets/stylesheets/_neat.scss", "license": "MIT", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 485f83f3..31325f13 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.7.1' + VERSION = '1.7.2' end diff --git a/package.json b/package.json index a3bef3d5..ca3090bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "1.7.1", + "version": "1.7.2", "description": "A lightweight, semantic grid framework built with Bourbon", "keywords": [ "bourbon", From 3485c3148203ffdc10f65bd136b096e0d75eee99 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 15 Mar 2015 14:38:02 -0400 Subject: [PATCH 068/269] Upgrade SCSS-Lint config --- .scss-lint.yml | 68 ++++++++++--------------------------- neat.gemspec | 2 +- test/_setup.scss | 4 +-- test/default.scss | 2 +- test/direction-context.scss | 2 +- test/display-context.scss | 2 +- test/media.scss | 2 +- test/new-breakpoint.scss | 2 +- test/omega.scss | 2 +- test/outer-container.scss | 2 +- test/pad.scss | 2 +- test/row.scss | 2 +- test/shift.scss | 2 +- test/span-columns.scss | 2 +- 14 files changed, 31 insertions(+), 65 deletions(-) diff --git a/.scss-lint.yml b/.scss-lint.yml index 0e3709ca..feb63fa2 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -1,175 +1,141 @@ scss_files: "app/assets/stylesheets/**/*.scss" - linters: BangFormat: enabled: true space_before_bang: true space_after_bang: false - BorderZero: enabled: false - + convention: zero ColorKeyword: enabled: true severity: warning - + ColorVariable: + enabled: false Comment: enabled: true - DebugStatement: enabled: true - DeclarationOrder: enabled: true - DuplicateProperty: enabled: true - ElsePlacement: enabled: true style: same_line - EmptyLineBetweenBlocks: enabled: true ignore_single_line_blocks: true - EmptyRule: enabled: true - FinalNewline: enabled: true present: true - HexLength: enabled: false style: short - HexNotation: enabled: true style: lowercase - HexValidation: enabled: true - - IdWithExtraneousSelector: + IdSelector: + enabled: true + ImportantRule: enabled: true - ImportPath: enabled: true leading_underscore: false filename_extension: false - Indentation: enabled: true + allow_non_nested_indentation: false character: space width: 2 - LeadingZero: enabled: true style: include_zero - MergeableSelector: enabled: true force_nesting: true - NameFormat: enabled: true + allow_leading_underscore: true convention: hyphenated_lowercase - NestingDepth: enabled: true max_depth: 4 severity: warning - PlaceholderInExtend: enabled: false - + PropertyCount: + enabled: false PropertySortOrder: enabled: true ignore_unspecified: false severity: warning - + separate_groups: false PropertySpelling: enabled: true extra_properties: [] - QualifyingElement: enabled: true - allow_with_attribute: false - allow_with_class: false - allow_with_id: false + allow_element_with_attribute: false + allow_element_with_class: false + allow_element_with_id: false severity: warning - SelectorDepth: enabled: true max_depth: 2 severity: warning - SelectorFormat: enabled: true convention: hyphenated_lowercase - Shorthand: enabled: true severity: warning - SingleLinePerProperty: enabled: true allow_single_line_rule_sets: true - SingleLinePerSelector: enabled: true - SpaceAfterComma: enabled: true - SpaceAfterPropertyColon: enabled: true style: one_space - SpaceAfterPropertyName: enabled: true - SpaceBeforeBrace: enabled: true style: space allow_single_line_padding: false - SpaceBetweenParens: enabled: true spaces: 0 - StringQuotes: enabled: true style: double_quotes - TrailingSemicolon: enabled: true - TrailingZero: enabled: false - UnnecessaryMantissa: enabled: true - UnnecessaryParentReference: enabled: true - UrlFormat: enabled: true - UrlQuotes: enabled: true - + VariableForProperty: + enabled: false + properties: [] VendorPrefixes: enabled: true identifier_list: bourbon include: [] exclude: [] - ZeroUnit: enabled: true severity: warning - - Compass::*: - enabled: false diff --git a/neat.gemspec b/neat.gemspec index e5b6073a..da023f2a 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -33,5 +33,5 @@ enough to use out of the box and flexible enough to customize down the road. s.add_development_dependency('rdoc') s.add_development_dependency('bundler') s.add_development_dependency('rb-fsevent', '~> 0.9.1') - s.add_development_dependency('scss-lint', '~> 0.29.0') + s.add_development_dependency('scss-lint', '~> 0.34') end diff --git a/test/_setup.scss b/test/_setup.scss index 80df8f84..8ebf065e 100644 --- a/test/_setup.scss +++ b/test/_setup.scss @@ -1,3 +1,3 @@ -@import 'bourbon/bourbon'; -@import '../app/assets/stylesheets/neat'; +@import "bourbon/bourbon"; +@import "../app/assets/stylesheets/neat"; $disable-warnings: true !global; diff --git a/test/default.scss b/test/default.scss index c3658f91..3fe02488 100644 --- a/test/default.scss +++ b/test/default.scss @@ -1 +1 @@ -@import 'setup'; +@import "setup"; diff --git a/test/direction-context.scss b/test/direction-context.scss index 728bb3d4..6ee9b5bf 100644 --- a/test/direction-context.scss +++ b/test/direction-context.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; @include direction-context() { .default-block { diff --git a/test/display-context.scss b/test/display-context.scss index bd2d7b75..42097ed4 100644 --- a/test/display-context.scss +++ b/test/display-context.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; @include display-context(table) { .display-table-block { diff --git a/test/media.scss b/test/media.scss index 95edab01..96437e61 100644 --- a/test/media.scss +++ b/test/media.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; $composite: new-breakpoint(max-width 768px min-width 110px orientation portait 6); diff --git a/test/new-breakpoint.scss b/test/new-breakpoint.scss index ed839b4e..2b3fc18b 100644 --- a/test/new-breakpoint.scss +++ b/test/new-breakpoint.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; $tablet: new-breakpoint(max-width 768px 12); diff --git a/test/omega.scss b/test/omega.scss index 18e79d95..7e82617c 100644 --- a/test/omega.scss +++ b/test/omega.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; .omega-default { @include omega; diff --git a/test/outer-container.scss b/test/outer-container.scss index eaf15ee4..b9a72ca3 100644 --- a/test/outer-container.scss +++ b/test/outer-container.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; $max-width: 960px; diff --git a/test/pad.scss b/test/pad.scss index d2c90b86..d9441e6e 100644 --- a/test/pad.scss +++ b/test/pad.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; .pad-default { @include pad; diff --git a/test/row.scss b/test/row.scss index c7675694..aaba8254 100644 --- a/test/row.scss +++ b/test/row.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; .row-default { @include row; diff --git a/test/shift.scss b/test/shift.scss index 64ad5e3e..6a01b4c1 100644 --- a/test/shift.scss +++ b/test/shift.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; .shift-default { @include shift; diff --git a/test/span-columns.scss b/test/span-columns.scss index 6e82295f..e85bd663 100644 --- a/test/span-columns.scss +++ b/test/span-columns.scss @@ -1,4 +1,4 @@ -@import 'setup'; +@import "setup"; .span-columns-default { @include span-columns(6); From 0debfaec1e7eb97104972c302a42483178143ce0 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Wed, 8 Apr 2015 09:31:24 -0400 Subject: [PATCH 069/269] Add code of conduct to contributing guide --- CONTRIBUTING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d237d44c..d55b7d93 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,7 @@ -We love pull requests. Here's a quick guide: +We love pull requests from everyone. By participating in this project, you +agree to abide by the thoughtbot [code of conduct]. Here’s a quick guide: + +[code of conduct]: https://thoughtbot.com/open-source-code-of-conduct 1. Fork the repository. 2. Make your changes in a topic branch. From 40ae13fefa42114876f0f123cb7d1ca0c1b37f7a Mon Sep 17 00:00:00 2001 From: Luke Melia Date: Thu, 2 Apr 2015 17:16:45 -0400 Subject: [PATCH 070/269] Fix typo --- app/assets/stylesheets/grid/_outer-container.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 5a375bb1..31b0c641 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; -/// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. +/// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. /// /// @param {Number [unit]} $local-max-width [$max-width] From 62fd2116d3985789945afbedfcc509d4d057bf69 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 22 Mar 2015 20:37:22 -0400 Subject: [PATCH 071/269] Remove Bourbon's em() functions --- README.md | 6 +++--- app/assets/stylesheets/settings/_grid.scss | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b6936bde..94a7b9ea 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ In your newly created `_grid-settings.scss`, import `neat-helpers` if you are p $column: 90px; $gutter: 30px; $grid-columns: 10; -$max-width: em(1088); +$max-width: 1200px; // Define your breakpoints $tablet: new-breakpoint(max-width 768px 8); @@ -207,8 +207,8 @@ splitting](http://simurai.com/blog/2012/08/29/media-query-splitting). This would ```scss $first-breakpoint-value: 400px; $second-breakpoint-value: 700px; -$medium-viewport: new-breakpoint(min-width em($first-breakpoint-value) max-width em($second-breakpoint-value)); -$large-viewport: new-breakpoint(min-width em($second-breakpoint-value + 1)); +$medium-viewport: new-breakpoint(min-width $first-breakpoint-value max-width $second-breakpoint-value); +$large-viewport: new-breakpoint(min-width $second-breakpoint-value + 1); .element { @include media($medium-viewport) { diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index c4e55dc1..9a544764 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -18,11 +18,11 @@ $gutter: modular-scale(1, 1em, $golden) !default; $grid-columns: 12 !default; -/// Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag. +/// Sets the max-width property of the element that includes `outer-container()`. Set with the `!global` flag. /// /// @type Number (Unit) /// -$max-width: em(1088) !default; +$max-width: 1200px !default; /// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. /// From 38009b9e60edee99ecf1161629498474d572f40a Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 22 Mar 2015 20:38:47 -0400 Subject: [PATCH 072/269] Format reference to modular-scale function --- app/assets/stylesheets/settings/_grid.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index 9a544764..e2029d01 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,12 +1,12 @@ @charset "UTF-8"; -/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag. +/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag. /// /// @type Number (Unit) $column: modular-scale(3, 1em, $golden) !default; -/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag. +/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag. /// /// @type Number (Unit) From cbb62a50e283fd65f48eba7096c5dc62fc69e809 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 18 Aug 2015 16:23:07 -0400 Subject: [PATCH 073/269] Use SVG thoughtbot logo --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 94a7b9ea..1af00b6b 100644 --- a/README.md +++ b/README.md @@ -259,14 +259,14 @@ Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free ## About thoughtbot -![thoughtbot](https://thoughtbot.com/logo.png) +[thoughtbot logo][hire] Neat is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc. We love open source software! -See [our other projects][community] or -[hire us][hire] to design, develop, and grow your product. +See [our other projects][community] +or [hire us][hire] to design, develop, and grow your product. [community]: https://thoughtbot.com/community?utm_source=github [hire]: https://thoughtbot.com/hire-us?utm_source=github From 155f8c5b2a546af024cfe9e73c20e5a95474e000 Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Sun, 16 Aug 2015 18:13:54 +0200 Subject: [PATCH 074/269] Update scss-lint gem dependency - Update to latest version - Update gem name, as they changed it [ref](https://github.com/brigade/scss-lint/releases/tag/v0.38.0) --- neat.gemspec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/neat.gemspec b/neat.gemspec index da023f2a..2ce3f3ac 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -26,12 +26,12 @@ enough to use out of the box and flexible enough to customize down the road. s.add_dependency('sass', '>= 3.3') s.add_dependency('bourbon', '>= 4.0') + s.add_development_dependency("scss_lint", "~> 0.40") s.add_development_dependency('aruba', '~> 0.5.0') - s.add_development_dependency('rake') - s.add_development_dependency('css_parser') - s.add_development_dependency('rspec') - s.add_development_dependency('rdoc') s.add_development_dependency('bundler') + s.add_development_dependency('css_parser') + s.add_development_dependency('rake') s.add_development_dependency('rb-fsevent', '~> 0.9.1') - s.add_development_dependency('scss-lint', '~> 0.34') + s.add_development_dependency('rdoc') + s.add_development_dependency('rspec') end From 95f624e0ab010c65878d8da288e21dfc6287c4a0 Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Sun, 16 Aug 2015 18:02:27 +0200 Subject: [PATCH 075/269] Upgrade Travis to container-based infrastructure http://docs.travis-ci.com/user/migrating-from-legacy/ --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index ba7c412f..f730332b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: ruby rvm: 2.0.0 +sudo: false branches: except: - gh-pages From 98abc1f1c097e4d9860e62fe832e343416fdc54a Mon Sep 17 00:00:00 2001 From: Kenneth Ormandy Date: Fri, 15 May 2015 13:04:56 -0700 Subject: [PATCH 076/269] Add .npmignore --- .npmignore | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..36acfcec --- /dev/null +++ b/.npmignore @@ -0,0 +1,19 @@ +.gitignore +.rspec +.sass-cache +.scss-lint.yml +.travis.yml +_site +bin/ +bower.json +CONTRIBUTING.md +Gemfile +Gemfile.lock +lib/ +neat.gemspec +NEWS.md +pkg/ +Rakefile +sache.json +spec/ +test/ From 11cd993ebea5d40a258af9c158162809b5db8a94 Mon Sep 17 00:00:00 2001 From: Juan Fernandes Date: Sat, 6 Jun 2015 13:38:21 +0100 Subject: [PATCH 077/269] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1af00b6b..9bca474c 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ If, for some reason, you still think that `omega-reset` is the only way you want The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can’t deal with pixel fractions. -As a result the viusal grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome. +As a result the visual grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome. At this point, writing an internal rounding mechanism is not high priority. From ba6e7944a3a909eef5e54f9b2a7b575e13c68a59 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 27 Nov 2015 12:16:35 -0500 Subject: [PATCH 078/269] Add dependencies to package.json file --- .gitignore | 2 ++ package.json | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 765419e8..493eb9a1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ Gemfile.lock public tmp +contrib/*.css +node_modules diff --git a/package.json b/package.json index ca3090bb..68dc5a9c 100644 --- a/package.json +++ b/package.json @@ -31,5 +31,11 @@ }, "scripts": { "test": "echo \"No test specified\"" - } + }, + "dependencies": { + "gulp": "^3.8.11", + "gulp-autoprefixer": "^2.3.1", + "gulp-connect": "^2.2.0", + "gulp-sass": "^2.0.2", + "node-bourbon": "^4.2.3" } From 2b896334e9b35f66ae50f6b864c3c8adc027e65b Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 27 Nov 2015 12:58:14 -0500 Subject: [PATCH 079/269] Add gulp compiler for static ste --- Gulpfile.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Gulpfile.js diff --git a/Gulpfile.js b/Gulpfile.js new file mode 100644 index 00000000..739b0990 --- /dev/null +++ b/Gulpfile.js @@ -0,0 +1,33 @@ +var gulp = require("gulp"), + autoprefix = require("gulp-autoprefixer"), + sass = require("gulp-sass"), + connect = require("gulp-connect"), + bourbon = require("node-bourbon").includePaths; + +var paths = { + scss: [ + "./app/assets/stylesheets/**/*.scss", + "./contrib/styles.scss"] +}; + +gulp.task("sass", function () { + return gulp.src(paths.scss) + .pipe(sass({ + includePaths: ["styles"].concat(bourbon) + })) + .pipe(autoprefix("last 2 versions")) + .pipe(gulp.dest("./contrib")) + .pipe(connect.reload()); +}); + +gulp.task("connect", function() { + connect.server({ + root: "contrib", + port: 8000, + livereload: true + }); +}); + +gulp.task("default", ["sass", "connect"], function() { + gulp.watch(paths.scss, ["sass"]); +}); From 61cbd6a8d1970e8f9875b699b9e7ce41fd8bada3 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 27 Nov 2015 12:58:35 -0500 Subject: [PATCH 080/269] Copy a bunch of crazy from the neat documentation --- contrib/index.html | 217 +++++++++++++++++++++++++ contrib/styles.scss | 383 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 600 insertions(+) create mode 100644 contrib/index.html create mode 100644 contrib/styles.scss diff --git a/contrib/index.html b/contrib/index.html new file mode 100644 index 00000000..8e37a691 --- /dev/null +++ b/contrib/index.html @@ -0,0 +1,217 @@ + + + + + + + Have fun ♥️ + + + + +
+
+
+

Bourbon Neat Examples

+ View desktop source + View mobile source +
+
+ +

Basic

+ +
+ @include outer-container; +
+ @include span-columns(6); +
+
+ @include span-columns(6);
+
+
+ + +

Multiple rows

+ +
+ @include outer-container; +
+ (1) +
+
+ @include span-columns(11);
+ @include omega();
+
+
+ @include span-columns(2); +
+
+ @include span-columns(10);
+ @include omega();
+
+
+ @include span-columns(3); +
+
+ @include span-columns(9);
+ @include omega();
+
+
+ @include span-columns(4); +
+
+ @include span-columns(8);
+ @include omega();
+
+
+ @include span-columns(5); +
+
+ @include span-columns(7);
+ @include omega();
+
+
+ @include span-columns(6); +
+
+ @include span-columns(6);
+ @include omega();
+
+
+

Nesting columns

+
+ @include outer-container; +
+ @include span-columns(4); +
+
+ @include span-columns(8); + +
+ @include span-columns(4 of 8); +
+
+
+

Table grid

+
+ @include outer-container; +
+ @include fill-parent();
+ @include row(table);
+
+
+ +
+ + @include span-columns(8);
+ @include reset-display;
+ @include pad();
+
+
+
+
+ +

Shifting columns

+ +
+ @include outer-container; +
+ @include span-columns(6);
+ @include shift(3);
+
+
+ +

Automatic rows

+
+ @include outer-container; +
+ +
+
+
+              li.block {
+                @include span-columns(3);
+                @include omega(4n);
+              }
+            
+
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ li.block +
+
+ +

Media Queries

+ +
+
+            @include outer-container;
+            $mobile: new-breakpoint(max-width 500px 4);
+          
+
+
+              @include span-columns(4);
+
+              @include media($mobile) {
+                @include span-columns(3);
+              }
+            
+
+
+
+              @include span-columns(8);
+
+              @include media($mobile) {
+                @include span-columns(3);
+              }
+            
+
+
+
+ + diff --git a/contrib/styles.scss b/contrib/styles.scss new file mode 100644 index 00000000..fb0f4801 --- /dev/null +++ b/contrib/styles.scss @@ -0,0 +1,383 @@ +@import "bourbon"; +@import "../app/assets/stylesheets/neat"; + +$column: 90px; +$gutter: 30px; +$grid-columns: 12; +$max-width: 1200px; + +$mobile: 600px; +$medium-screen: 600px; +$large-screen: 900px; + +$medium-screen-up: new-breakpoint(min-width $medium-screen 4); +$large-screen-up: new-breakpoint(min-width $large-screen 8); + +$base-line-height: 1.625; +$visual-grid: true; + +body { + margin: 0 0 (1.5rem * 2); + font-family: $helvetica; +} + +.container { + @include margin(null auto); + @include padding(null $gutter); + max-width: 500px; + position: relative; +} + +.welcome-message { + @include padding(($base-line-height * 1rem) null); + background-color: #f2f2f2; + margin-bottom: 1.5rem; + text-align: center; +} + +header { + h1 { + float: left; + } + + .source { + float: right; + } +} + +section { + @include outer-container; + text-align: center; + margin-bottom: 3em; + + & > code, code.block { + display: block; + } + + div { + height: $base-line-height * 4rem; + line-height: $base-line-height; + text-align: left; + padding: 1em; + } + + &.zero { + div { + @include span-columns(6); + height: 20em; + } + } + + &.first { + div#alpha { + @include span-columns(1); + } + + div#beta { + @include span-columns(11); + } + + div#gamma { + @include span-columns(2); + } + + div#delta { + @include span-columns(10); + } + + div#epsilon { + @include span-columns(3); + } + + div#zeta { + @include span-columns(9); + } + + div#eta { + @include span-columns(4); + } + + div#theta { + @include span-columns(8); + } + + div#iota { + @include span-columns(5); + } + + div#kappa { + @include span-columns(7); + } + + div#lambda { + @include span-columns(6); + } + + div#mu { + @include span-columns(6); + } + + div#beta, div#delta, div#zeta, div#theta, div#kappa, div#mu { + @include omega; + } + } + + &.second { + div { + height: 20em; + + &#alpha { + @include span-columns(4); + } + + &#beta { + padding: 0; + line-height: $base-line-height * 2; + text-align: center; + @include span-columns(8); + + aside { + @include span-columns(4 of 8); + border: none; + height: 84%; + padding: 1em; + } + + article { + @include span-columns(4 of 8); + height: 84%; + padding: 1em; + } + } + } + } + + &.third { + div#dummy { + border-bottom: 0; + height: 5.5em; + text-align: center; + } + + div#alpha { + @include fill-parent(); + @include row(table); + margin-bottom: 0; + padding: 0; + + aside { + @include span-columns(4); + @include pad(); + border-right: 1px solid rgba(255,255,255, 0.5); + } + + article { + height: 20em; + @include span-columns(8); + @include reset-display; + @include pad(); + } + } + } + + &.fourth { + div.one-column { + @include span-columns(1); + + &.last { + @include omega(); + } + } + + div#alpha { + @include span-columns(6); + @include shift(3); + height: 20em; + text-align: center; + } + } + + &.fifth { + div.box { + font-size: 0.78em; + height: 8em; + margin-top: 2em; + @include span-columns(3); + @include omega(4n); + } + } +} + +div.code { + @include outer-container(); + padding:0.5em; + text-align: center; +} + + +$visual-grid: true; +$visual-grid-color: #E6F6FF; +$visual-grid-opacity: 0.4; +$ltblue: #D5EEFB; +$midblue: #AADBF5; +$dkblue: #41A8DF; +$dkerblue: #298EC3; +$textblue: #072f44; + +body { + color: $textblue; + line-height: $base-line-height; + text-align: center; +} + +h3 { + margin: 1em; +} + +pre { + line-height: 1.6em; +} + +header { + background-color: $dkerblue; + @include clearfix(); + padding: 0.5em 1em; + text-align: center; + + .wrapper { + @include outer-container; + } + + h1 { + color: #fff; + font-family: "helvetica Neue", "Helvetica", sans-serif; + font-weight: 100; + line-height: $base-line-height; + } + + .source { + @include inline-block; + background-color: white; + border-radius: 3px; + color: $dkerblue; + font-size: em(14); + font-weight: bold; + margin-right: .5em; + margin-top: .5em; + padding: .5em 1em; + text-decoration: none; + + &:hover { + background-color: rgba(white, .7); + } + } +} + +section { + background-color: $ltblue; + text-align: center; + line-height: $base-line-height*1.5; + + div { + background-color: $midblue; + font-size: 0.8em; + margin-bottom: 2em; + } + + &.first { + div#gamma { + aside, article { + background-color: #FFF; + } + } + } + + &.second { + div#beta { + aside, article { + background-color: $dkblue; + } + + aside { + border-bottom: 1px solid $dkerblue; + } + } + } + + &.third { + div#dummy { + background-color: $midblue; + margin-bottom: 0; + } + + div#alpha { + aside { + background-color: $dkblue; + border-bottom: 1px solid $dkerblue; + } + + article { + background-color: $dkblue; + } + } + } + + &.sixth { + + > pre { + padding: 10px 0; + } + + @include media($mobile) { + font-size: 0.9em; + line-height: 1.5em; + } + + div { + line-height: 2em; + min-height: 20em; + text-align: left; + padding: 1em; + } + + div#alpha { + @include span-columns(4); + + @include media($mobile) { + @include span-columns(3); + } + } + + div#beta { + @include span-columns(8); + + @include media($mobile) { + @include span-columns(3); + } + } + } +} + +div.code { + background-color: $ltblue; + text-align: center; + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +footer { + padding: 2em; + display: block; + clear: both; + + a.back-button { + text-decoration: none; + color: white; + padding: 0.5em 1em; + background-color: $dkerblue; + + &:hover { + background-color: $textblue; + } + } +} From 065d9c7979fa83ae1646b0ee6887eaf3bcea2bdd Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 27 Nov 2015 16:06:59 -0500 Subject: [PATCH 081/269] Clean styles and html for contrib page --- contrib/index.html | 266 ++++++++++++------------ contrib/styles.scss | 491 ++++++++++++++++++-------------------------- 2 files changed, 337 insertions(+), 420 deletions(-) diff --git a/contrib/index.html b/contrib/index.html index 8e37a691..c24b40ea 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -4,13 +4,13 @@ - Have fun ♥️ + Have fun ❤︎
-
-
-

Bourbon Neat Examples

- View desktop source - View mobile source -
-
-

Basic

- -
+
@include outer-container; -
+
@include span-columns(6);
-
- @include span-columns(6);
+
+ @include span-columns(6);
- -

Multiple rows

- -
- @include outer-container; -
+
+ @include outer-container; +
(1)
-
- @include span-columns(11);
- @include omega();
+
+ + @include span-columns(11);
+ @include omega(); +
-
- @include span-columns(2); +
+ + @include span-columns(2); +
-
- @include span-columns(10);
- @include omega();
+
+ + @include span-columns(10);
+ @include omega(); +
-
- @include span-columns(3); +
+ + @include span-columns(3); +
-
- @include span-columns(9);
- @include omega();
+
+ + @include span-columns(9);
+ @include omega(); +
-
- @include span-columns(4); +
+ + @include span-columns(4); +
-
- @include span-columns(8);
- @include omega();
+
+ + @include span-columns(8);
+ @include omega(); +
-
- @include span-columns(5); +
+ + @include span-columns(5); +
-
- @include span-columns(7);
- @include omega();
+
+ + @include span-columns(7);
+ @include omega(); +
-
- @include span-columns(6); +
+ + @include span-columns(6); +
-
- @include span-columns(6);
- @include omega();
+
+ + @include span-columns(6);
+ @include omega(); +

Nesting columns

-
- @include outer-container; -
+
+ @include outer-container; +
@include span-columns(4);
-
+
@include span-columns(8); -

Table grid

-
+
@include outer-container; -
- @include fill-parent();
- @include row(table);
-
-
- -
+
- @include span-columns(8);
- @include reset-display;
- @include pad();
+ @include fill-parent();
+ @include row(table);
+
+
+ +
+ + @include span-columns(8);
+ @include reset-display; +
-

Shifting columns

- -
+
@include outer-container; -
- @include span-columns(6);
- @include shift(3);
+
+ + @include span-columns(6);
+ @include shift(3); +
-

Automatic rows

@include outer-container;
- -
+
-
-              li.block {
-                @include span-columns(3);
-                @include omega(4n);
-              }
-            
+
+  .box {
+    @include span-columns(3);
+    @include omega(4n);
+  }
+
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-
- li.block +
+ .box
-

Media Queries

+
+
+  @include outer-container;
+  $mobile: new-breakpoint(max-width 500px 4);
+
+
+
+  @include span-columns(4);
 
-        
-
-            @include outer-container;
-            $mobile: new-breakpoint(max-width 500px 4);
-          
-
-
-              @include span-columns(4);
-
-              @include media($mobile) {
-                @include span-columns(3);
-              }
-            
-
-
-
-              @include span-columns(8);
-
-              @include media($mobile) {
-                @include span-columns(3);
-              }
-            
+ @include media($mobile) { + @include span-columns(3); + } +
+
+
+
+  @include span-columns(8);
+  @include media($mobile) {
+    @include span-columns(3);
+  }
+
diff --git a/contrib/styles.scss b/contrib/styles.scss index fb0f4801..335e6d57 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1,26 +1,66 @@ @import "bourbon"; @import "../app/assets/stylesheets/neat"; +// Grid Settings $column: 90px; $gutter: 30px; $grid-columns: 12; $max-width: 1200px; -$mobile: 600px; +// Media $medium-screen: 600px; $large-screen: 900px; $medium-screen-up: new-breakpoint(min-width $medium-screen 4); $large-screen-up: new-breakpoint(min-width $large-screen 8); +// Base $base-line-height: 1.625; +$base-spacing: $base-line-height * 1em; + +// Visual Grid $visual-grid: true; +$visual-grid-color: #e6f6ff; +$visual-grid-opacity: 0.4; + +// Colors +$white: #fafafa; +$lightblue: #d5eefb; +$blue: #aadbf5; +$darkblue: #41a8df; +$darkerblue: #072f44; + +// Base +// ============================================ body { - margin: 0 0 (1.5rem * 2); + color: $darkerblue; font-family: $helvetica; + line-height: $base-line-height; + margin: 0 0 (1.5rem * 2); + text-align: center; +} + +h3 { + margin: 1em; } +a, +a:visited { + color: inherit; +} + +pre { + line-height: 1.6em; +} + +code { + display: block; +} + +// Header +// ============================================ + .container { @include margin(null auto); @include padding(null $gutter); @@ -29,355 +69,224 @@ body { } .welcome-message { - @include padding(($base-line-height * 1rem) null); - background-color: #f2f2f2; + @include clearfix(); + @include padding($base-spacing null); + background-color: $blue; margin-bottom: 1.5rem; text-align: center; } -header { - h1 { - float: left; - } +.welcome-message-title { + font-weight: 200; + line-height: 1; +} - .source { - float: right; - } +// ============================================ + +.code { + @include outer-container(); + background-color: $lightblue; + padding: 0.5em; + text-align: center; } -section { +.page-section { @include outer-container; - text-align: center; + background-color: $lightblue; + line-height: $base-line-height * 1.5; margin-bottom: 3em; + text-align: center; +} - & > code, code.block { - display: block; - } - - div { - height: $base-line-height * 4rem; - line-height: $base-line-height; - text-align: left; - padding: 1em; - } +.page-section-inner { + background-color: $blue; + font-size: 0.8em; + height: $base-line-height * 4rem; + line-height: $base-line-height; + margin-bottom: 2em; + padding: 1em; + text-align: left; +} - &.zero { - div { - @include span-columns(6); - height: 20em; - } - } +// Zero +// ============================================ - &.first { - div#alpha { - @include span-columns(1); - } +.zero-alpha, +.zero-beta { + @include span-columns(6); + height: $base-line-height * 4rem; + line-height: $base-line-height; + padding: 1em; + text-align: left; +} - div#beta { - @include span-columns(11); - } +// First +// ============================================ - div#gamma { - @include span-columns(2); - } +.first-alpha { + @include span-columns(1); +} - div#delta { - @include span-columns(10); - } +.first-beta { + @include span-columns(11); +} - div#epsilon { - @include span-columns(3); - } +.first-gamma { + @include span-columns(2); +} - div#zeta { - @include span-columns(9); - } +.first-delta { + @include span-columns(10); +} - div#eta { - @include span-columns(4); - } +.first-epsilon { + @include span-columns(3); +} - div#theta { - @include span-columns(8); - } +.first-zeta { + @include span-columns(9); +} - div#iota { - @include span-columns(5); - } +.first-eta { + @include span-columns(4); +} - div#kappa { - @include span-columns(7); - } +.first-theta { + @include span-columns(8); +} - div#lambda { - @include span-columns(6); - } +.first-iota { + @include span-columns(5); +} - div#mu { - @include span-columns(6); - } +.first-kappa { + @include span-columns(7); +} - div#beta, div#delta, div#zeta, div#theta, div#kappa, div#mu { - @include omega; - } - } +.first-lambda { + @include span-columns(6); +} - &.second { - div { - height: 20em; - - &#alpha { - @include span-columns(4); - } - - &#beta { - padding: 0; - line-height: $base-line-height * 2; - text-align: center; - @include span-columns(8); - - aside { - @include span-columns(4 of 8); - border: none; - height: 84%; - padding: 1em; - } - - article { - @include span-columns(4 of 8); - height: 84%; - padding: 1em; - } - } - } - } +.first-mu { + @include span-columns(6); +} - &.third { - div#dummy { - border-bottom: 0; - height: 5.5em; - text-align: center; - } - - div#alpha { - @include fill-parent(); - @include row(table); - margin-bottom: 0; - padding: 0; - - aside { - @include span-columns(4); - @include pad(); - border-right: 1px solid rgba(255,255,255, 0.5); - } - - article { - height: 20em; - @include span-columns(8); - @include reset-display; - @include pad(); - } - } - } +.first-beta, +.first-delta, +.first-zeta, +.first-theta, +.first-kappa, +.first-mu { + @include omega; +} - &.fourth { - div.one-column { - @include span-columns(1); - - &.last { - @include omega(); - } - } - - div#alpha { - @include span-columns(6); - @include shift(3); - height: 20em; - text-align: center; - } - } +// Second +// ============================================ - &.fifth { - div.box { - font-size: 0.78em; - height: 8em; - margin-top: 2em; - @include span-columns(3); - @include omega(4n); - } - } +.second-alpha { + @include span-columns(4); } -div.code { - @include outer-container(); - padding:0.5em; +.second-beta { + @include span-columns(8); + line-height: $base-line-height * 2; + padding: 0; text-align: center; } +.second-beta-alpha, +.second-beta-beta { + @include span-columns(4 of 8); + background-color: $lightblue; + height: 84%; + padding: 1em; +} -$visual-grid: true; -$visual-grid-color: #E6F6FF; -$visual-grid-opacity: 0.4; -$ltblue: #D5EEFB; -$midblue: #AADBF5; -$dkblue: #41A8DF; -$dkerblue: #298EC3; -$textblue: #072f44; +// Third +// =================================== -body { - color: $textblue; - line-height: $base-line-height; +.third-dummy { + border-bottom: 0; + height: 5.5em; text-align: center; } -h3 { - margin: 1em; +.third-alpha { + @include fill-parent(); + @include row(table); + margin-bottom: 0; + padding: 0; } -pre { - line-height: 1.6em; +.third-alpha-alpha { + @include span-columns(4); + border-right: 1px solid rgba($white, 0.5); } -header { - background-color: $dkerblue; - @include clearfix(); - padding: 0.5em 1em; - text-align: center; +.third-alpha-beta { + @include reset-display; + @include span-columns(8); + height: 20em; +} - .wrapper { - @include outer-container; - } +// Fourth +// =================================== - h1 { - color: #fff; - font-family: "helvetica Neue", "Helvetica", sans-serif; - font-weight: 100; - line-height: $base-line-height; - } +.fourth { - .source { - @include inline-block; - background-color: white; - border-radius: 3px; - color: $dkerblue; - font-size: em(14); - font-weight: bold; - margin-right: .5em; - margin-top: .5em; - padding: .5em 1em; - text-decoration: none; - - &:hover { - background-color: rgba(white, .7); - } + .fourth-alpha { + @include span-columns(6); + @include shift(3); + height: 20em; + text-align: center; } } -section { - background-color: $ltblue; - text-align: center; - line-height: $base-line-height*1.5; +// Fifth +// =================================== - div { - background-color: $midblue; - font-size: 0.8em; - margin-bottom: 2em; - } - - &.first { - div#gamma { - aside, article { - background-color: #FFF; - } - } - } +.fifth-box { + @include omega(4n); + @include span-columns(3); + font-size: 0.78em; + height: 8em; + margin-top: 2em; +} - &.second { - div#beta { - aside, article { - background-color: $dkblue; - } +// Fifth +// =================================== - aside { - border-bottom: 1px solid $dkerblue; - } - } +.sixth { + @include media($medium-screen) { + font-size: 0.9em; + line-height: 1.5em; } - &.third { - div#dummy { - background-color: $midblue; - margin-bottom: 0; - } - - div#alpha { - aside { - background-color: $dkblue; - border-bottom: 1px solid $dkerblue; - } - - article { - background-color: $dkblue; - } - } + pre { + padding: 10px 0; } +} - &.sixth { - - > pre { - padding: 10px 0; - } - - @include media($mobile) { - font-size: 0.9em; - line-height: 1.5em; - } - - div { - line-height: 2em; - min-height: 20em; - text-align: left; - padding: 1em; - } - - div#alpha { - @include span-columns(4); - - @include media($mobile) { - @include span-columns(3); - } - } +.sixth-alpha, +.sixth-beta { + line-height: 2em; + min-height: 20em; + padding: 1em; + text-align: left; +} - div#beta { - @include span-columns(8); +.sixth-alpha { + @include span-columns(4); - @include media($mobile) { - @include span-columns(3); - } - } + @include media($medium-screen) { + @include span-columns(3); } } -div.code { - background-color: $ltblue; - text-align: center; - padding-top: 0.5em; - padding-bottom: 0.5em; -} - -footer { - padding: 2em; - display: block; - clear: both; - - a.back-button { - text-decoration: none; - color: white; - padding: 0.5em 1em; - background-color: $dkerblue; +.sixth-beta { + @include span-columns(8); - &:hover { - background-color: $textblue; - } + @include media($medium-screen) { + @include span-columns(3); } } From 6bb39e3b364f5a6ddd70d026bb62dcd1877f3dec Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 16 Jan 2016 12:12:26 -0500 Subject: [PATCH 082/269] Update SCSS-Lint to 0.43 --- .scss-lint.yml | 132 +++++++++++++++++++++++++++++++++++++++++-------- neat.gemspec | 2 +- 2 files changed, 113 insertions(+), 21 deletions(-) diff --git a/.scss-lint.yml b/.scss-lint.yml index feb63fa2..13455e27 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -1,141 +1,233 @@ -scss_files: "app/assets/stylesheets/**/*.scss" +scss_files: "**/*.scss" + linters: BangFormat: enabled: true space_before_bang: true space_after_bang: false - BorderZero: + + BemDepth: enabled: false + + BorderZero: + enabled: true convention: zero + + ChainedClasses: + enabled: false + ColorKeyword: enabled: true - severity: warning + ColorVariable: enabled: false + Comment: enabled: true + style: silent + DebugStatement: enabled: true + DeclarationOrder: enabled: true + + DisableLinterReason: + enabled: false + DuplicateProperty: enabled: true + ElsePlacement: enabled: true style: same_line + EmptyLineBetweenBlocks: enabled: true ignore_single_line_blocks: true + EmptyRule: enabled: true + + ExtendDirective: + enabled: false + FinalNewline: enabled: true present: true + HexLength: - enabled: false + enabled: true style: short + HexNotation: enabled: true style: lowercase + HexValidation: enabled: true + IdSelector: enabled: true + ImportantRule: enabled: true + ImportPath: enabled: true leading_underscore: false filename_extension: false + Indentation: enabled: true allow_non_nested_indentation: false character: space width: 2 + LeadingZero: enabled: true style: include_zero + MergeableSelector: enabled: true force_nesting: true + NameFormat: enabled: true allow_leading_underscore: true convention: hyphenated_lowercase + NestingDepth: enabled: true - max_depth: 4 - severity: warning + max_depth: 3 + ignore_parent_selectors: false + PlaceholderInExtend: - enabled: false + enabled: true + PropertyCount: enabled: false + PropertySortOrder: enabled: true ignore_unspecified: false - severity: warning + min_properties: 2 separate_groups: false + PropertySpelling: enabled: true extra_properties: [] + disabled_properties: [] + + PropertyUnits: + enabled: true + global: [ + 'ch', 'em', 'ex', 'rem', + 'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', + 'vh', 'vw', 'vmin', 'vmax', + 'deg', 'grad', 'rad', 'turn', + 'ms', 's', + 'Hz', 'kHz', + 'dpi', 'dpcm', 'dppx', + '%'] + properties: + line-height: [] + + PseudoElement: + enabled: true + QualifyingElement: enabled: true allow_element_with_attribute: false allow_element_with_class: false allow_element_with_id: false - severity: warning + SelectorDepth: enabled: true max_depth: 2 - severity: warning + SelectorFormat: - enabled: true - convention: hyphenated_lowercase + enabled: false + convention: hyphenated_BEM + Shorthand: enabled: true - severity: warning + allowed_shorthands: [1, 2, 3] + SingleLinePerProperty: enabled: true allow_single_line_rule_sets: true + SingleLinePerSelector: enabled: true + SpaceAfterComma: enabled: true + style: one_space + SpaceAfterPropertyColon: enabled: true style: one_space + SpaceAfterPropertyName: enabled: true + + SpaceAfterVariableName: + enabled: true + + SpaceAroundOperator: + enabled: true + style: one_space + SpaceBeforeBrace: enabled: true style: space - allow_single_line_padding: false + allow_single_line_padding: true + SpaceBetweenParens: enabled: true spaces: 0 + StringQuotes: enabled: true style: double_quotes + TrailingSemicolon: enabled: true + + TrailingWhitespace: + enabled: true + TrailingZero: - enabled: false + enabled: true + + TransitionAll: + enabled: true + UnnecessaryMantissa: enabled: true + UnnecessaryParentReference: enabled: true + UrlFormat: enabled: true + UrlQuotes: enabled: true + VariableForProperty: enabled: false properties: [] - VendorPrefixes: + + VendorPrefix: enabled: true - identifier_list: bourbon - include: [] - exclude: [] + identifier_list: base + additional_identifiers: [] + excluded_identifiers: [] + ZeroUnit: enabled: true - severity: warning + + Compass::*: + enabled: false diff --git a/neat.gemspec b/neat.gemspec index 2ce3f3ac..b49d897d 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -26,7 +26,7 @@ enough to use out of the box and flexible enough to customize down the road. s.add_dependency('sass', '>= 3.3') s.add_dependency('bourbon', '>= 4.0') - s.add_development_dependency("scss_lint", "~> 0.40") + s.add_development_dependency("scss_lint", "~> 0.43") s.add_development_dependency('aruba', '~> 0.5.0') s.add_development_dependency('bundler') s.add_development_dependency('css_parser') From 24f5ebadde286a4c2042b1ff9e215238bf6caf20 Mon Sep 17 00:00:00 2001 From: Blake Williams Date: Mon, 21 Dec 2015 15:46:09 -0500 Subject: [PATCH 083/269] Make bourbon-neat a proper npm package When requiring `bourbon-neat` in Node it currently imports `neat.scss`. This changes the entrypoint to `index.js` which exposes `includePaths`. The `includePaths` can be passed to libsass which are used to resolve `@import` declarations. --- index.js | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 index.js diff --git a/index.js b/index.js new file mode 100644 index 00000000..bc76e085 --- /dev/null +++ b/index.js @@ -0,0 +1,7 @@ +var path = require('path'); + +module.exports = { + includePaths: [ + path.join(__dirname, 'app/assets/stylesheets'), + ] +}; diff --git a/package.json b/package.json index 68dc5a9c..a4c61a57 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "name": "thoughtbot", "url": "http://thoughtbot.com" }, - "main": "app/assets/stylesheets/_neat.scss", + "main": "index.js", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From b7abf02ea0be8a259c71a1d92c3462954fe5882f Mon Sep 17 00:00:00 2001 From: Laurens Nienhaus Date: Tue, 9 Feb 2016 00:28:05 +0100 Subject: [PATCH 084/269] Fix typo --- app/assets/stylesheets/grid/_span-columns.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss index f128399a..a7f9b003 100644 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ b/app/assets/stylesheets/grid/_span-columns.scss @@ -12,7 +12,7 @@ /// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns. /// /// @param {String} $display [block] -/// Sets the display property of the element. By default it sets the display propert of the element to `block`. +/// Sets the display property of the element. By default it sets the display property of the element to `block`. /// /// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. /// From f68fdbd586d38492273173cf3f7be2d2a7ac468f Mon Sep 17 00:00:00 2001 From: apostoiis Date: Fri, 5 Feb 2016 09:22:17 +0200 Subject: [PATCH 085/269] Add missing ending bracket --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index a4c61a57..ee681b90 100644 --- a/package.json +++ b/package.json @@ -38,4 +38,5 @@ "gulp-connect": "^2.2.0", "gulp-sass": "^2.0.2", "node-bourbon": "^4.2.3" + } } From 824e86bb8fd799c026cfd5bd53f49d70b8a21116 Mon Sep 17 00:00:00 2001 From: "Jessie A. Young" Date: Thu, 17 Sep 2015 15:18:56 -0700 Subject: [PATCH 086/269] Specify where to set `$visual-grid` to true * Had to watch a YouTube video of Kyle using it to figure out why setting it to true in a random `scss` file wasn't working --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bca474c..e5407fe8 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,11 @@ To make your layout responsive, use the `media()` mixin to modify both the grid } ``` -By setting `$visual-grid` to `true`, you can display the base grid in the background (default) or as an overlay. You can even change the color and opacity of the grid-lines by overriding the default settings as detailed in the section below. +By setting `$visual-grid` to `true` in a file that is imported before +`neat-helpers` (or prior to `neat` itself if you are using the default +breakpoints), you can display the base grid in the background (default) or as an +overlay. You can even change the color and opacity of the grid-lines by +overriding the default settings as detailed in the section below. The visual grid reflects the changes applied to the grid via the `new-breakpoint()` mixin, as long as the media contexts are defined *before* importing Neat. From 2089166472aae63fe7d3bfe3357bafccb3c97bc4 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Thu, 10 Sep 2015 17:06:25 -0700 Subject: [PATCH 087/269] Add eyeglass support --- README.md | 17 +++++++++++++++++ eyeglass-exports.js | 7 +++++++ index.js | 4 ++-- package.json | 8 +++++++- 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 eyeglass-exports.js diff --git a/README.md b/README.md index e5407fe8..3d2bf9b9 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,23 @@ For command line help, visit our wiki page on Neat’s [command line interface]( It should be noted that `@import` rules are not compatible with Sprockets directives. You need to use one or the other. +## Installing with npm and using a Node-based asset pipeline + +1. Add Neat as a dependency: + + ```bash + npm install --save bourbon-neat + ``` + +1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Bourbon and Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. You will also need to ensure that Bourbon is in the `includePaths` passed to node-sass. + +1. Import Neat into your Sass files, after Bourbon: + + ```scss + @import "bourbon"; + @import "neat"; + ``` + ## Installing older versions of Neat 1. Uninstall any Neat gem versions you already have: diff --git a/eyeglass-exports.js b/eyeglass-exports.js new file mode 100644 index 00000000..366249aa --- /dev/null +++ b/eyeglass-exports.js @@ -0,0 +1,7 @@ +var neat = require("./index"); + +module.exports = function(eyeglass, sass) { + return { + sassDir: neat.includePaths[0] + }; +}; diff --git a/index.js b/index.js index bc76e085..c3f1395e 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ -var path = require('path'); +var path = require("path"); module.exports = { includePaths: [ - path.join(__dirname, 'app/assets/stylesheets'), + path.join(__dirname, "app/assets/stylesheets"), ] }; diff --git a/package.json b/package.json index ee681b90..b769375e 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "queries", "sass", "scss", - "semantic" + "semantic", + "eyeglass-module" ], "homepage": "http://neat.bourbon.io", "bugs": { @@ -38,5 +39,10 @@ "gulp-connect": "^2.2.0", "gulp-sass": "^2.0.2", "node-bourbon": "^4.2.3" + }, + "eyeglass": { + "name": "neat", + "needs": "*", + "exports": "eyeglass-exports.js" } } From 4d9f41c7e3e8d527864c76b27007ff1ce0914881 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 12:54:11 -0500 Subject: [PATCH 088/269] Reorganize npm dependencies - Break out development dependencies - Update packages - Swap node-bourbon for bourbon --- Gulpfile.js | 10 +++++----- package.json | 13 ++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Gulpfile.js b/Gulpfile.js index 739b0990..fe9c1f81 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,8 +1,8 @@ -var gulp = require("gulp"), - autoprefix = require("gulp-autoprefixer"), - sass = require("gulp-sass"), - connect = require("gulp-connect"), - bourbon = require("node-bourbon").includePaths; +var bourbon = require("bourbon").includePaths, + autoprefix = require("gulp-autoprefixer"), + connect = require("gulp-connect"), + gulp = require("gulp"), + sass = require("gulp-sass"); var paths = { scss: [ diff --git a/package.json b/package.json index b769375e..dfe150ae 100644 --- a/package.json +++ b/package.json @@ -34,11 +34,14 @@ "test": "echo \"No test specified\"" }, "dependencies": { - "gulp": "^3.8.11", - "gulp-autoprefixer": "^2.3.1", - "gulp-connect": "^2.2.0", - "gulp-sass": "^2.0.2", - "node-bourbon": "^4.2.3" + "bourbon": "^4.2", + "node-sass": "^3.4" + }, + "devDependencies": { + "gulp": "^3.9", + "gulp-autoprefixer": "^3.1", + "gulp-connect": "^2.3", + "gulp-sass": "^2.2" }, "eyeglass": { "name": "neat", From 9149f017723f64087b188293a1405d6068542fad Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 29 Feb 2016 13:24:32 -0500 Subject: [PATCH 089/269] Neat v1.7.3 --- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index e46e1693..d05cb549 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -// Neat 1.7.2 +// Neat 1.7.3 // http://neat.bourbon.io // Copyright 2012-2015 thoughtbot, inc. // MIT License diff --git a/bower.json b/bower.json index 4b9d578b..29afe4ec 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework built with Bourbon", - "version": "1.7.2", + "version": "1.7.3", "main": "app/assets/stylesheets/_neat.scss", "license": "MIT", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 31325f13..7e86a1c3 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = '1.7.2' + VERSION = "1.7.3" end diff --git a/package.json b/package.json index dfe150ae..6d035242 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "1.7.2", + "version": "1.7.3", "description": "A lightweight, semantic grid framework built with Bourbon", "keywords": [ "bourbon", From cdc510e3462c196e7548db199876be014851d170 Mon Sep 17 00:00:00 2001 From: Damian Galarza Date: Fri, 4 Mar 2016 14:23:49 -0500 Subject: [PATCH 090/269] Add sass requirement Neat adds it's stylesheets to the Sass load paths however we are not requiring sass explicitly. Previously, Sass was being required implicitly through bourbon however, as of bourbon-5.0 Sass is no longer required in the gem itself resulting in an error within Neat. Resolves https://github.com/thoughtbot/neat/issues/429 --- lib/neat.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/neat.rb b/lib/neat.rb index c94b7742..a3e1ecc1 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,3 +1,4 @@ +require "sass" require "bourbon" require "neat/generator" From eaf247bfc822861a05d5357e6ada11e7ac1e3f1d Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 4 Mar 2016 15:54:15 -0500 Subject: [PATCH 091/269] Neat v1.7.4 --- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index d05cb549..eef5b9fd 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -// Neat 1.7.3 +// Neat 1.7.4 // http://neat.bourbon.io // Copyright 2012-2015 thoughtbot, inc. // MIT License diff --git a/bower.json b/bower.json index 29afe4ec..50717bb6 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework built with Bourbon", - "version": "1.7.3", + "version": "1.7.4", "main": "app/assets/stylesheets/_neat.scss", "license": "MIT", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 7e86a1c3..7a0639e6 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "1.7.3" + VERSION = "1.7.4" end diff --git a/package.json b/package.json index 6d035242..747a2ab5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "1.7.3", + "version": "1.7.4", "description": "A lightweight, semantic grid framework built with Bourbon", "keywords": [ "bourbon", From 95ef16abe71dee4de79b08b5bdb06b40dfd0dba1 Mon Sep 17 00:00:00 2001 From: Greg McGuirk Date: Sun, 30 Aug 2015 12:17:31 -0700 Subject: [PATCH 092/269] Improve README code snippet Related to issue: https://github.com/thoughtbot/neat/issues/360 The example snippet will cause the error `undefined variable $golden` on the current Rails/Bourbon/Neat versions. It looks like Bourbon just needs to be loaded first, so I want to help others avoid this confusion. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3d2bf9b9..bb115ac3 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ First off, if you are planning to override the default grid settings (12 columns In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables: ```scss +@import "bourbon/bourbon"; // or "bourbon" when in Rails @import "neat/neat-helpers"; // or "neat-helpers" when in Rails // Change the grid settings From 195a00a871cd156c9ab09af7e124fa7d834726e5 Mon Sep 17 00:00:00 2001 From: "Jamie R. Rytlewski" Date: Wed, 17 Jun 2015 10:57:11 -0400 Subject: [PATCH 093/269] Update clearfix output in the documentation The output was not what the current version outputs. The clearfix has changed in bourbon and the zoom:1 is no longer there --- app/assets/stylesheets/grid/_outer-container.scss | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss index 31b0c641..d3f62674 100644 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ b/app/assets/stylesheets/grid/_outer-container.scss @@ -13,19 +13,15 @@ /// /// @example css - CSS Output /// .element { -/// *zoom: 1; /// max-width: 100%; /// margin-left: auto; /// margin-right: auto; /// } /// -/// .element:before, .element:after { -/// content: " "; -/// display: table; -/// } -/// -/// .element:after { +/// .element::after { /// clear: both; +/// content: ""; +/// display: table; /// } @mixin outer-container($local-max-width: $max-width) { From d0978da5b3c1d56f3d52ab79e3438c96703e5c18 Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Sun, 16 Aug 2015 00:34:13 +0200 Subject: [PATCH 094/269] When test fails, output CSS that was found --- spec/support/matchers/have_rule.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spec/support/matchers/have_rule.rb b/spec/support/matchers/have_rule.rb index 58300214..f202f34a 100644 --- a/spec/support/matchers/have_rule.rb +++ b/spec/support/matchers/have_rule.rb @@ -1,14 +1,16 @@ RSpec::Matchers.define :have_rule do |expected| - match do |actual| - @rules = rules_from_selector(actual) + match do |selector| + @rules = rules_from_selector(selector) @rules.include? expected end - failure_message do |actual| + failure_message do |selector| if @rules.empty? - %{no CSS rules for selector #{actual} were found} + %{no CSS for selector #{selector} were found} else - %{expected selector #{actual} to have CSS rule "#{expected}"} + rules = @rules.join("; ") + %{Expected selector #{selector} to have CSS rule "#{expected}". + Had "#{rules}".} end end From 4bef318692d2e0ba62112c6a2e7bc85e1e40f69d Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Mon, 30 Mar 2015 16:45:05 +0200 Subject: [PATCH 095/269] Use Thor and add `--version` command Closes #315 --- bin/neat | 4 ++-- lib/neat/generator.rb | 38 ++++++++++++++++++-------------------- neat.gemspec | 3 ++- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/bin/neat b/bin/neat index a53999df..c6fcdb64 100755 --- a/bin/neat +++ b/bin/neat @@ -1,5 +1,5 @@ #!/usr/bin/env ruby -require "neat" +require File.dirname(__FILE__) + "/../lib/neat.rb" -Neat::Generator.new(ARGV).run +Neat::Generator.start diff --git a/lib/neat/generator.rb b/lib/neat/generator.rb index be8576e8..6d57febb 100644 --- a/lib/neat/generator.rb +++ b/lib/neat/generator.rb @@ -1,21 +1,22 @@ +require "neat/version" require "fileutils" +require "thor" module Neat - class Generator - def initialize(arguments) - @subcommand = arguments.first - end + class Generator < Thor + map ["-v", "--version"] => :version - def run - if @subcommand == "install" - install - elsif @subcommand == "update" - update - elsif @subcommand == "remove" - remove + desc "install", "Install Neat into your project" + def install + if neat_files_already_exist? + puts "Neat files already installed, doing nothing." + else + install_files + puts "Neat files installed to neat/" end end + desc "update", "Update Neat" def update if neat_files_already_exist? remove_neat_directory @@ -26,15 +27,7 @@ def update end end - def install - if neat_files_already_exist? - puts "Neat files already installed, doing nothing." - else - install_files - puts "Neat files installed to neat/" - end - end - + desc "update", "Remove Neat" def remove if neat_files_already_exist? remove_neat_directory @@ -44,6 +37,11 @@ def remove end end + desc "version", "Show Neat version" + def version + say "Neat #{Neat::VERSION}" + end + private def neat_files_already_exist? diff --git a/neat.gemspec b/neat.gemspec index b49d897d..9b9e617c 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -23,8 +23,9 @@ enough to use out of the box and flexible enough to customize down the road. s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ['lib'] - s.add_dependency('sass', '>= 3.3') s.add_dependency('bourbon', '>= 4.0') + s.add_dependency('sass', '>= 3.3') + s.add_dependency("thor", "~> 0.19") s.add_development_dependency("scss_lint", "~> 0.43") s.add_development_dependency('aruba', '~> 0.5.0') From 441549048f59b2cc8264e4a5a4496f9e934d69ef Mon Sep 17 00:00:00 2001 From: Curt Howard Date: Sat, 28 May 2016 17:22:32 -0400 Subject: [PATCH 096/269] Remove Bourbon as a dependency (feelsbadman) but the dependency on Bourbon was technically minimal. By removing the dependency on Bourbon we are able to gain more users and can potentially grow the community. resolves #346 --- Gulpfile.js | 5 ++-- README.md | 24 +++++-------------- Rakefile | 4 ---- app/assets/stylesheets/_neat-helpers.scss | 3 +++ app/assets/stylesheets/mixins/_clearfix.scss | 25 ++++++++++++++++++++ app/assets/stylesheets/settings/_grid.scss | 8 +++---- bower.json | 6 +---- contrib/styles.scss | 9 ++++--- lib/neat.rb | 1 - lib/tasks/install.rake | 24 +++++++++---------- neat.gemspec | 7 +++--- package.json | 4 +--- sache.json | 4 ++-- spec/spec_helper.rb | 3 --- spec/support/bourbon_support.rb | 9 ------- test/_setup.scss | 1 - 16 files changed, 62 insertions(+), 75 deletions(-) create mode 100644 app/assets/stylesheets/mixins/_clearfix.scss delete mode 100644 spec/support/bourbon_support.rb diff --git a/Gulpfile.js b/Gulpfile.js index fe9c1f81..979d6226 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,5 +1,4 @@ -var bourbon = require("bourbon").includePaths, - autoprefix = require("gulp-autoprefixer"), +var autoprefix = require("gulp-autoprefixer"), connect = require("gulp-connect"), gulp = require("gulp"), sass = require("gulp-sass"); @@ -13,7 +12,7 @@ var paths = { gulp.task("sass", function () { return gulp.src(paths.scss) .pipe(sass({ - includePaths: ["styles"].concat(bourbon) + sourcemaps: true })) .pipe(autoprefix("last 2 versions")) .pipe(gulp.dest("./contrib")) diff --git a/README.md b/README.md index bb115ac3..9a966a19 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ [![Gitter](http://img.shields.io/badge/gitter-neat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) -## A lightweight, semantic grid framework built with Bourbon +## A lightweight, semantic grid framework -Neat is a fluid grid framework built with [Bourbon](https://github.com/thoughtbot/bourbon) with the aim of being easy enough to use out of the box and flexible enough to customize down the road. +Neat is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road. - **[Demo](http://neat.bourbon.io)** - **[Documentation](http://thoughtbot.github.io/neat-docs/latest)** @@ -19,7 +19,6 @@ for updates. ## Requirements - [Sass](https://github.com/sass/sass) 3.3+ -- [Bourbon](https://github.com/thoughtbot/bourbon) 4.0+ - :warning: If you need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat) ## Installation @@ -39,23 +38,16 @@ For command line help, visit our wiki page on Neat’s [command line interface]( ```bash gem install sass # or gem update sass ``` - ```bash - gem install bourbon # or gem update bourbon - ``` 3. Install the Neat library into the current directory: - ```bash - bourbon install # if not already installed - ``` ```bash neat install ``` -4. Import Neat in your stylesheet, after Bourbon: +4. Import Neat in your stylesheet: ```scss - @import "bourbon/bourbon"; @import "neat/neat"; ``` @@ -81,10 +73,9 @@ For command line help, visit our wiki page on Neat’s [command line interface]( bundle update sass ``` -3. Import Neat in your `application.scss`, after Bourbon: +3. Import Neat in your `application.scss`: ```scss - @import "bourbon"; @import "neat"; ``` @@ -98,12 +89,11 @@ For command line help, visit our wiki page on Neat’s [command line interface]( npm install --save bourbon-neat ``` -1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Bourbon and Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. You will also need to ensure that Bourbon is in the `includePaths` passed to node-sass. +1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. -1. Import Neat into your Sass files, after Bourbon: +1. Import Neat into your Sass files: ```scss - @import "bourbon"; @import "neat"; ``` @@ -128,7 +118,6 @@ For command line help, visit our wiki page on Neat’s [command line interface]( First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat: ```scss -@import "bourbon/bourbon"; // or "bourbon" when in Rails @import "grid-settings"; @import "neat/neat"; // or "neat" when in Rails ``` @@ -136,7 +125,6 @@ First off, if you are planning to override the default grid settings (12 columns In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables: ```scss -@import "bourbon/bourbon"; // or "bourbon" when in Rails @import "neat/neat-helpers"; // or "neat-helpers" when in Rails // Change the grid settings diff --git a/Rakefile b/Rakefile index f9bb8881..22d3579e 100644 --- a/Rakefile +++ b/Rakefile @@ -8,15 +8,11 @@ RSpec::Core::RakeTask.new(:spec) task :default => :spec task :test do - puts "Creating a Bourbon directory..." - `bourbon install --path test` puts "Generating CSS..." `sass -I . --watch test:css/ --style expanded` end task :clean do - puts "Deleting Bourbon directory..." - `rm -rf test/bourbon` puts "Deleting generated CSS..." `rm -rf css/` end diff --git a/app/assets/stylesheets/_neat-helpers.scss b/app/assets/stylesheets/_neat-helpers.scss index 9c182d2e..2d6d808a 100644 --- a/app/assets/stylesheets/_neat-helpers.scss +++ b/app/assets/stylesheets/_neat-helpers.scss @@ -1,3 +1,6 @@ +// Mixins +@import "mixins/clearfix"; + // Functions @import "functions/private"; @import "functions/new-breakpoint"; diff --git a/app/assets/stylesheets/mixins/_clearfix.scss b/app/assets/stylesheets/mixins/_clearfix.scss new file mode 100644 index 00000000..e68efc44 --- /dev/null +++ b/app/assets/stylesheets/mixins/_clearfix.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides an easy way to include a clearfix for containing floats. +/// +/// @link http://goo.gl/yP5hiZ +/// +/// @example scss +/// .element { +/// @include clearfix; +/// } +/// +/// @example css +/// .element::after { +/// clear: both; +/// content: ""; +/// display: block; +/// } + +@mixin clearfix { + &::after { + clear: both; + content: ""; + display: block; + } +} diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss index e2029d01..c1ab7fdc 100644 --- a/app/assets/stylesheets/settings/_grid.scss +++ b/app/assets/stylesheets/settings/_grid.scss @@ -1,16 +1,16 @@ @charset "UTF-8"; -/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag. +/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. Set with a `!global` flag. /// /// @type Number (Unit) -$column: modular-scale(3, 1em, $golden) !default; +$column: 4.2358em !default; -/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag. +/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. Set with the `!global` flag. /// /// @type Number (Unit) -$gutter: modular-scale(1, 1em, $golden) !default; +$gutter: 1.618em !default; /// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. /// diff --git a/bower.json b/bower.json index 50717bb6..c1dc4763 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "neat", - "description": "A lightweight, semantic grid framework built with Bourbon", + "description": "A lightweight, semantic grid framework", "version": "1.7.4", "main": "app/assets/stylesheets/_neat.scss", "license": "MIT", @@ -19,7 +19,6 @@ "test" ], "keywords": [ - "bourbon", "columns", "grid", "layout", @@ -38,8 +37,5 @@ "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" - }, - "dependencies": { - "bourbon": ">=4.0" } } diff --git a/contrib/styles.scss b/contrib/styles.scss index 335e6d57..9d97a2fc 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1,4 +1,3 @@ -@import "bourbon"; @import "../app/assets/stylesheets/neat"; // Grid Settings @@ -35,7 +34,7 @@ $darkerblue: #072f44; body { color: $darkerblue; - font-family: $helvetica; + font-family: sans-serif; line-height: $base-line-height; margin: 0 0 (1.5rem * 2); text-align: center; @@ -62,17 +61,17 @@ code { // ============================================ .container { - @include margin(null auto); - @include padding(null $gutter); + margin: 0 auto; max-width: 500px; + padding: 0 $gutter; position: relative; } .welcome-message { @include clearfix(); - @include padding($base-spacing null); background-color: $blue; margin-bottom: 1.5rem; + padding: $base-spacing 0; text-align: center; } diff --git a/lib/neat.rb b/lib/neat.rb index a3e1ecc1..3507c0a1 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,5 +1,4 @@ require "sass" -require "bourbon" require "neat/generator" module Neat diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake index 43945f2f..9097f7a8 100644 --- a/lib/tasks/install.rake +++ b/lib/tasks/install.rake @@ -1,20 +1,18 @@ require "fileutils" require "find" -namespace :bourbon do - namespace :neat do - desc "Copy Neat's files to the Rails assets directory." - task :install, [:sass_path] do |t, args| - args.with_defaults(:sass_path => 'public/stylesheets/sass') - source_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) - FileUtils.mkdir_p("#{Rails.root}/#{args.sass_path}/neat") - FileUtils.cp_r("#{source_root}/app/assets/stylesheets/.", "#{Rails.root}/#{args.sass_path}/neat", { :preserve => true }) +namespace :neat do + desc "Copy Neat's files to the Rails assets directory." + task :install, [:sass_path] do |t, args| + args.with_defaults(:sass_path => 'public/stylesheets/sass') + source_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) + FileUtils.mkdir_p("#{Rails.root}/#{args.sass_path}/neat") + FileUtils.cp_r("#{source_root}/app/assets/stylesheets/.", "#{Rails.root}/#{args.sass_path}/neat", { :preserve => true }) - Find.find("#{Rails.root}/#{args.sass_path}/neat") do |path| - if path.end_with?(".css.scss") - path_without_css_extension = path.gsub(/\.css\.scss$/, ".scss") - FileUtils.mv(path, path_without_css_extension) - end + Find.find("#{Rails.root}/#{args.sass_path}/neat") do |path| + if path.end_with?(".css.scss") + path_without_css_extension = path.gsub(/\.css\.scss$/, ".scss") + FileUtils.mv(path, path_without_css_extension) end end end diff --git a/neat.gemspec b/neat.gemspec index 9b9e617c..733862ab 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -9,11 +9,11 @@ Gem::Specification.new do |s| s.authors = ['Joel Oliveira', 'Kyle Fiedler', 'Reda Lemeden'] s.email = 'design+bourbon@thoughtbot.com' s.homepage = 'http://neat.bourbon.io' - s.summary = 'A lightweight, semantic grid framework built with Bourbon' + s.summary = 'A lightweight, semantic grid framework' s.license = 'MIT' s.description = <<-DESC -Neat is a fluid grid framework built with Bourbon with the aim of being easy -enough to use out of the box and flexible enough to customize down the road. +Neat is a fluid grid framework built with the aim of being easy enough to use +out of the box and flexible enough to customize down the road. DESC s.rubyforge_project = 'neat' @@ -23,7 +23,6 @@ enough to use out of the box and flexible enough to customize down the road. s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ['lib'] - s.add_dependency('bourbon', '>= 4.0') s.add_dependency('sass', '>= 3.3') s.add_dependency("thor", "~> 0.19") diff --git a/package.json b/package.json index 747a2ab5..c7b5fe4a 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { "name": "bourbon-neat", "version": "1.7.4", - "description": "A lightweight, semantic grid framework built with Bourbon", + "description": "A lightweight, semantic grid framework", "keywords": [ - "bourbon", "columns", "grid", "layout", @@ -34,7 +33,6 @@ "test": "echo \"No test specified\"" }, "dependencies": { - "bourbon": "^4.2", "node-sass": "^3.4" }, "devDependencies": { diff --git a/sache.json b/sache.json index a2fb2227..fe982e16 100644 --- a/sache.json +++ b/sache.json @@ -1,5 +1,5 @@ { "name": "Neat", - "description": "A lightweight, semantic grid framework built with Bourbon", - "tags": ["bourbon", "columns", "grid", "layout", "media", "media-queries", "neat", "queries", "sass", "scss", "semantic"] + "description": "A lightweight, semantic grid framework", + "tags": ["columns", "grid", "layout", "media", "media-queries", "neat", "queries", "sass", "scss", "semantic"] } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5fa5a302..fbed5955 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -7,19 +7,16 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } RSpec.configure do |config| - config.include BourbonSupport config.include SassSupport config.include CssParser config.include ParserSupport config.include Aruba::Api config.before(:all) do - install_bourbon_files generate_css end config.after(:all) do - remove_bourbon_files clean_up end end diff --git a/spec/support/bourbon_support.rb b/spec/support/bourbon_support.rb deleted file mode 100644 index b9a0e6b7..00000000 --- a/spec/support/bourbon_support.rb +++ /dev/null @@ -1,9 +0,0 @@ -module BourbonSupport - def install_bourbon_files - `bundle exec bourbon install --path test` - end - - def remove_bourbon_files - FileUtils.rm_rf("test/bourbon") - end -end diff --git a/test/_setup.scss b/test/_setup.scss index 8ebf065e..886ff205 100644 --- a/test/_setup.scss +++ b/test/_setup.scss @@ -1,3 +1,2 @@ -@import "bourbon/bourbon"; @import "../app/assets/stylesheets/neat"; $disable-warnings: true !global; From f106739c8c5c3fe5833f960566bde6da2c3e00de Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 21 Jun 2016 09:26:44 -0400 Subject: [PATCH 097/269] Neat v1.8.0 --- app/assets/stylesheets/_neat.scss | 2 +- bower.json | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index eef5b9fd..e1721712 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -1,4 +1,4 @@ -// Neat 1.7.4 +// Neat 1.8.0 // http://neat.bourbon.io // Copyright 2012-2015 thoughtbot, inc. // MIT License diff --git a/bower.json b/bower.json index c1dc4763..4869697c 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "1.7.4", + "version": "1.8.0", "main": "app/assets/stylesheets/_neat.scss", "license": "MIT", "ignore": [ diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 7a0639e6..7608e81f 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "1.7.4" + VERSION = "1.8.0" end diff --git a/package.json b/package.json index c7b5fe4a..3ec3cf73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "1.7.4", + "version": "1.8.0", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From ec3a76672464e114e9eeb600b4c5bd6ebbe1b260 Mon Sep 17 00:00:00 2001 From: Tute Costa Date: Tue, 5 Jul 2016 09:31:59 -0400 Subject: [PATCH 098/269] Fix thoughtbot logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a966a19..9856ea68 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,7 @@ Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free ## About thoughtbot -[thoughtbot logo][hire] +[thoughtbot logo][hire] Neat is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc. From 22b451f5062a0d4370f655c598d0191d96782a3b Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Sun, 16 Aug 2015 00:22:15 +0200 Subject: [PATCH 099/269] Let `pad` mixin accept `null` to skip a side Because this mixin was only outputting `padding` property, it was hard to avoid overriding inherited padding values. Now, we can skip any side by passing `null` in the list of values. `pad` now requires Bourbon's `directional-property` mixin. Fix #113 --- app/assets/stylesheets/grid/_pad.scss | 8 ++++---- spec/neat/pad_spec.rb | 24 +++++++++++++++++++++++- spec/support/matchers/have_ruleset.rb | 20 ++++++++++++++++++++ test/pad.scss | 8 ++++++++ 4 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 spec/support/matchers/have_ruleset.rb diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index d697e1b9..91502c4e 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -3,7 +3,7 @@ /// Adds padding to the element. /// /// @param {List} $padding [flex-gutter()] -/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. +/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. Use a `null` value to “skip” a side. /// /// @example scss - Usage /// .element { @@ -16,10 +16,10 @@ /// } @mixin pad($padding: flex-gutter()) { - $padding-list: null; + $vals: (); @each $value in $padding { $value: if($value == 'default', flex-gutter(), $value); - $padding-list: join($padding-list, $value); + $vals: append($vals, $value); } - padding: $padding-list; + @include directional-property(padding, false, $vals); } diff --git a/spec/neat/pad_spec.rb b/spec/neat/pad_spec.rb index 72685620..755ac822 100644 --- a/spec/neat/pad_spec.rb +++ b/spec/neat/pad_spec.rb @@ -25,7 +25,29 @@ context "with argument (default)" do it "uses default gutter percentage" do - expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px 2.35765%") + expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px") + end + end + + context "with argument (null)" do + it "ignores rules with null values" do + ruleset = "padding-right: 10px; " + + "padding-left: 10px;" + bad_rule = "padding-top: null;" + + expect(".pad-null-values").to have_ruleset(ruleset) + expect(".pad-null-values").to_not have_rule(bad_rule) + end + end + + context "with argument (null default)" do + it "sets right and left paddings to gutter percentage" do + ruleset = "padding-right: 2.35765%; " + + "padding-left: 2.35765%;" + bad_rule = "padding-top: null;" + + expect(".pad-null-and-default").to have_ruleset(ruleset) + expect(".pad-null-and-default").to_not have_rule(bad_rule) end end end diff --git a/spec/support/matchers/have_ruleset.rb b/spec/support/matchers/have_ruleset.rb new file mode 100644 index 00000000..c2218823 --- /dev/null +++ b/spec/support/matchers/have_ruleset.rb @@ -0,0 +1,20 @@ +RSpec::Matchers.define :have_ruleset do |expected| + match do |selector| + @ruleset = rules_from_selector(selector) + @ruleset.join("; ") == expected + end + + failure_message do |selector| + if @ruleset.empty? + %{no CSS for selector #{selector} were found} + else + ruleset = @ruleset.join("; ") + %{Expected selector #{selector} to have CSS rule "#{expected}". + Had "#{ruleset}".} + end + end + + def rules_from_selector(selector) + ParserSupport.parser.find_by_selector(selector) + end +end diff --git a/test/pad.scss b/test/pad.scss index d9441e6e..33a63d77 100644 --- a/test/pad.scss +++ b/test/pad.scss @@ -15,3 +15,11 @@ .pad-shorthand-default { @include pad(30px default 10px default); } + +.pad-null-values { + @include pad(null 10px null 10px); +} + +.pad-null-and-default { + @include pad(null default); +} From e9b3f36c27fc07019938dcea793a78fa2b5bbeae Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 7 Jul 2016 14:22:17 -0400 Subject: [PATCH 100/269] Revert "Let `pad` mixin accept `null` to skip a side" This reverts commit 22b451f5062a0d4370f655c598d0191d96782a3b. Unfortely, now that bourbon is no longer a dependancy, this chage no longer functions. If this functionality is required for your project, use bourbon and import the `padding()` mixin. --- app/assets/stylesheets/grid/_pad.scss | 8 ++++---- spec/neat/pad_spec.rb | 24 +----------------------- spec/support/matchers/have_ruleset.rb | 20 -------------------- test/pad.scss | 8 -------- 4 files changed, 5 insertions(+), 55 deletions(-) delete mode 100644 spec/support/matchers/have_ruleset.rb diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss index 91502c4e..d697e1b9 100644 --- a/app/assets/stylesheets/grid/_pad.scss +++ b/app/assets/stylesheets/grid/_pad.scss @@ -3,7 +3,7 @@ /// Adds padding to the element. /// /// @param {List} $padding [flex-gutter()] -/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. Use a `null` value to “skip” a side. +/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. /// /// @example scss - Usage /// .element { @@ -16,10 +16,10 @@ /// } @mixin pad($padding: flex-gutter()) { - $vals: (); + $padding-list: null; @each $value in $padding { $value: if($value == 'default', flex-gutter(), $value); - $vals: append($vals, $value); + $padding-list: join($padding-list, $value); } - @include directional-property(padding, false, $vals); + padding: $padding-list; } diff --git a/spec/neat/pad_spec.rb b/spec/neat/pad_spec.rb index 755ac822..72685620 100644 --- a/spec/neat/pad_spec.rb +++ b/spec/neat/pad_spec.rb @@ -25,29 +25,7 @@ context "with argument (default)" do it "uses default gutter percentage" do - expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px") - end - end - - context "with argument (null)" do - it "ignores rules with null values" do - ruleset = "padding-right: 10px; " + - "padding-left: 10px;" - bad_rule = "padding-top: null;" - - expect(".pad-null-values").to have_ruleset(ruleset) - expect(".pad-null-values").to_not have_rule(bad_rule) - end - end - - context "with argument (null default)" do - it "sets right and left paddings to gutter percentage" do - ruleset = "padding-right: 2.35765%; " + - "padding-left: 2.35765%;" - bad_rule = "padding-top: null;" - - expect(".pad-null-and-default").to have_ruleset(ruleset) - expect(".pad-null-and-default").to_not have_rule(bad_rule) + expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px 2.35765%") end end end diff --git a/spec/support/matchers/have_ruleset.rb b/spec/support/matchers/have_ruleset.rb deleted file mode 100644 index c2218823..00000000 --- a/spec/support/matchers/have_ruleset.rb +++ /dev/null @@ -1,20 +0,0 @@ -RSpec::Matchers.define :have_ruleset do |expected| - match do |selector| - @ruleset = rules_from_selector(selector) - @ruleset.join("; ") == expected - end - - failure_message do |selector| - if @ruleset.empty? - %{no CSS for selector #{selector} were found} - else - ruleset = @ruleset.join("; ") - %{Expected selector #{selector} to have CSS rule "#{expected}". - Had "#{ruleset}".} - end - end - - def rules_from_selector(selector) - ParserSupport.parser.find_by_selector(selector) - end -end diff --git a/test/pad.scss b/test/pad.scss index 33a63d77..d9441e6e 100644 --- a/test/pad.scss +++ b/test/pad.scss @@ -15,11 +15,3 @@ .pad-shorthand-default { @include pad(30px default 10px default); } - -.pad-null-values { - @include pad(null 10px null 10px); -} - -.pad-null-and-default { - @include pad(null default); -} From 80a98eea1ad44f627c3cf6454c025a8cd32af9c2 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 7 Jul 2016 13:20:13 -0400 Subject: [PATCH 101/269] Remove deprecation warning from reset-display - https://github.com/thoughtbot/neat/issues/338 --- app/assets/stylesheets/_neat.scss | 1 + app/assets/stylesheets/grid/_reset-display.scss | 14 ++++++++++++++ app/assets/stylesheets/grid/_row.scss | 7 ------- app/assets/stylesheets/grid/_to-deprecate.scss | 16 ---------------- contrib/styles.scss | 6 ++++-- 5 files changed, 19 insertions(+), 25 deletions(-) create mode 100644 app/assets/stylesheets/grid/_reset-display.scss diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss index e1721712..a44f6e2c 100644 --- a/app/assets/stylesheets/_neat.scss +++ b/app/assets/stylesheets/_neat.scss @@ -17,6 +17,7 @@ @import "grid/pad"; @import "grid/fill-parent"; @import "grid/media"; +@import "grid/reset-display"; @import "grid/to-deprecate"; @import "grid/visual-grid"; @import "grid/display-context"; diff --git a/app/assets/stylesheets/grid/_reset-display.scss b/app/assets/stylesheets/grid/_reset-display.scss new file mode 100644 index 00000000..b8332b87 --- /dev/null +++ b/app/assets/stylesheets/grid/_reset-display.scss @@ -0,0 +1,14 @@ +/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row. +/// +/// @example scss - Usage +/// .element { +/// @include row(table); +/// // Context changed to table display +/// } +/// +/// @include reset-display; +/// // Context is reset to block display + +@mixin reset-display { + $container-display-table: false !global; +} diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss index 4d913a92..81501607 100644 --- a/app/assets/stylesheets/grid/_row.scss +++ b/app/assets/stylesheets/grid/_row.scss @@ -29,16 +29,9 @@ /// } @mixin row($display: default, $direction: $default-layout-direction) { - @if $direction != $default-layout-direction { - @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin."); - } $layout-direction: $direction !global; - @if $display != default { - @include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin."); - } - @if $display == table { display: table; @include fill-parent; diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss index aeea0795..b46d9760 100644 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ b/app/assets/stylesheets/grid/_to-deprecate.scss @@ -48,22 +48,6 @@ @include omega($nth $display, $direction); } -/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row. -/// -/// @example scss - Usage -/// .element { -/// @include row(table); -/// // Context changed to table display -/// } -/// -/// @include reset-display; -/// // Context is reset to block display - -@mixin reset-display { - $container-display-table: false !global; - @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin."); -} - /// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. /// /// @example scss - Usage diff --git a/contrib/styles.scss b/contrib/styles.scss index 9d97a2fc..0576b53b 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1,4 +1,4 @@ -@import "../app/assets/stylesheets/neat"; +$visual-grid: true !global; // Grid Settings $column: 90px; @@ -10,6 +10,8 @@ $max-width: 1200px; $medium-screen: 600px; $large-screen: 900px; +@import "../app/assets/stylesheets/neat"; + $medium-screen-up: new-breakpoint(min-width $medium-screen 4); $large-screen-up: new-breakpoint(min-width $large-screen 8); @@ -18,7 +20,7 @@ $base-line-height: 1.625; $base-spacing: $base-line-height * 1em; // Visual Grid -$visual-grid: true; + $visual-grid-color: #e6f6ff; $visual-grid-opacity: 0.4; From 443c44bb65bfc9d477738a9926a8c5428d00140b Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Sat, 15 Aug 2015 19:45:34 +0200 Subject: [PATCH 102/269] Alternate the background color for visual grid columns Based on @aubricus suggestion in #164 --- app/assets/stylesheets/functions/_private.scss | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index 872d4dc5..a61acc1d 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -56,22 +56,26 @@ // Generates a striped background @function gradient-stops($grid-columns, $color: $visual-grid-color) { $transparent: transparent; + $alt-color: darken($color, 10%); $column-width: flex-grid(1, $grid-columns); $gutter-width: flex-gutter($grid-columns); $column-offset: $column-width; + $alternate: false; - $values: ($transparent 0, $color 0); + $values: ($transparent 0, if($alternate, $color, $alt-color) 0); @for $i from 1 to $grid-columns*2 { @if is-even($i) { $values: append($values, $transparent $column-offset, comma); - $values: append($values, $color $column-offset, comma); + $values: append($values, if($alternate, $color, $alt-color) $column-offset, comma); $column-offset: $column-offset + $column-width; } @else { - $values: append($values, $color $column-offset, comma); + $values: append($values, if($alternate, $color, $alt-color) $column-offset, comma); $values: append($values, $transparent $column-offset, comma); $column-offset: $column-offset + $gutter-width; + + $alternate: not $alternate; } } From a818981c7c172882383c8d4c6fc1638749d99019 Mon Sep 17 00:00:00 2001 From: Kite Date: Sun, 3 Jul 2016 19:52:42 +0900 Subject: [PATCH 103/269] Fix the description of `neat remove` --- lib/neat/generator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/neat/generator.rb b/lib/neat/generator.rb index 6d57febb..417bef4f 100644 --- a/lib/neat/generator.rb +++ b/lib/neat/generator.rb @@ -27,7 +27,7 @@ def update end end - desc "update", "Remove Neat" + desc "remove", "Remove Neat" def remove if neat_files_already_exist? remove_neat_directory From 1047d6ed99fb7ece8a599f54b11bd55cf534f229 Mon Sep 17 00:00:00 2001 From: Tobias Adam Date: Wed, 6 Apr 2016 16:00:53 +0200 Subject: [PATCH 104/269] Clarify how the grid calculation functions works The function `grid-width` was unused but defined. I renamed it to `flex-width` to be consistent in naming with the other grid functions and used it to calculate the width values that are used in `flex-grid` and `flex-gutter` because the way these calculations work is always the same. --- app/assets/stylesheets/grid/_private.scss | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/grid/_private.scss b/app/assets/stylesheets/grid/_private.scss index 4c4e18c1..51224274 100644 --- a/app/assets/stylesheets/grid/_private.scss +++ b/app/assets/stylesheets/grid/_private.scss @@ -6,18 +6,18 @@ $container-display-table: false !default; $layout-direction: LTR !default; @function flex-grid($columns, $container-columns: $fg-max-columns) { - $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + $width: flex-width($columns); + $container-width: flex-width($container-columns); @return percentage($width / $container-width); } @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + $container-width: flex-width($container-columns); @return percentage($gutter / $container-width); } -@function grid-width($n) { - @return $n * $gw-column + ($n - 1) * $gw-gutter; +@function flex-width($n, $column-width: $fg-column, $gutter-width: $fg-gutter) { + @return $n * $column-width + ($n - 1) * $gutter-width; } @function get-parent-columns($columns) { From 0bd8027f7f29aa19e17df1205fa8f5cba1ab68a3 Mon Sep 17 00:00:00 2001 From: Joshua Ogle Date: Mon, 27 Apr 2015 15:55:07 -0600 Subject: [PATCH 105/269] Add support for complex nth-child selectors in omega() --- .../stylesheets/functions/_private.scss | 36 +++++++++++++++++++ app/assets/stylesheets/grid/_omega.scss | 27 +++++++++++++- spec/neat/omega_spec.rb | 35 ++++++++++++++---- test/omega.scss | 4 +++ 4 files changed, 95 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss index a61acc1d..9a6cd2f1 100644 --- a/app/assets/stylesheets/functions/_private.scss +++ b/app/assets/stylesheets/functions/_private.scss @@ -116,3 +116,39 @@ @return $opposite-direction; } + + +@function to-number($string) { + $string: str-replace($string, " ", ""); + $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; + $numbers: 0 1 2 3 4 5 6 7 8 9; + $result: 0; + + @for $i from 1 through str-length($string) { + $character: str-slice($string, $i, $i); + $index: index($strings, $character); + + @if not $index { + @warn "Unknown character `#{$character}`."; + @return false; + } + + $number: nth($numbers, $index); + $result: $result * 10 + $number; + } + + @return $result; +} + +@function str-replace($string, $search, $replace: "") { + $index: str-index($string, $search); + + @if $index { + $first: str-slice($string, 1, $index - 1); + $last-slice: str-slice($string, $index + str-length($search)); + $last: str-replace($last-slice, $search, $replace); + @return $first + $replace + $last; + } + + @return $string; +} diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss index 80f918ab..f18e0f00 100644 --- a/app/assets/stylesheets/grid/_omega.scss +++ b/app/assets/stylesheets/grid/_omega.scss @@ -79,7 +79,32 @@ margin-#{$direction}: 0; } - @if type-of($query) == number and unit($query) == "n" { + @if type-of($query) == string { + $query: str-replace($query, " ", ""); + $operator: false; + + @if str_index($query, "+") { + $operator: "+"; + } @else if str_index($query, "-") { + $operator: "-"; + } + + @if $operator { + $operator-index: str_index($query, $operator); + $first: str-slice($query, 0, ($operator-index - 1)); + $last: to-number(str-slice($query, ($operator-index + 1), -1)); + @if $operator == "+" { + $last: $last + 1; + } @else if $operator == "-" { + $last: $last - 1; + } + $nth: "#{$first}#{$operator}#{$last}"; + + &:nth-child(#{$nth}) { + clear: $opposite-direction; + } + } + } @else if type-of($query) == number && unit($query) == "n" { &:nth-child(#{$query}+1) { clear: $opposite-direction; } diff --git a/spec/neat/omega_spec.rb b/spec/neat/omega_spec.rb index 68519139..137d2673 100644 --- a/spec/neat/omega_spec.rb +++ b/spec/neat/omega_spec.rb @@ -7,36 +7,59 @@ context "with no argument" do it "removes right margin" do - expect(".omega-default").to have_rule("margin-right: 0") + selector = ".omega-default" + expect(selector).to have_rule("margin-right: 0") end end context "with argument (4n)" do it "removes right margin of nth-child(4n)" do - expect(".omega-nth-default:nth-child(4n)").to have_rule("margin-right: 0") + selector = ".omega-nth-default:nth-child(4n)" + expect(selector).to have_rule("margin-right: 0") end it "adds clear to nth-child(4n+1)" do - expect(".omega-nth-default:nth-child(4n+1)").to have_rule("clear: left") + selector = ".omega-nth-default:nth-child(4n+1)" + expect(selector).to have_rule("clear: left") end end context "with argument ('4n+1')" do it "removes right margin of nth-child(4n+1)" do - expect(".omega-complex-nth:nth-child(4n+1)").to have_rule("margin-right: 0") + selector = ".omega-complex-nth:nth-child(4n+1)" + expect(selector).to have_rule("margin-right: 0") + end + + it "adds clear to nth-child('4n+2')" do + selector = ".omega-complex-nth:nth-child(4n+2)" + expect(selector).to have_rule("clear: left") + end + end + + context "with argument ('3n-1')" do + it "removes right margin of nth-child(3n-1)" do + selector = ".omega-complex-nth-negative:nth-child(3n-1)" + expect(selector).to have_rule("margin-right: 0") + end + + it "adds clear to nth-child('3n-0')" do + selector = ".omega-complex-nth-negative:nth-child(3n-0)" + expect(selector).to have_rule("clear: left") end end context "when called inside an RTL row" do context "with no argument" do it "removes left margin" do - expect("section .omega-default-left").to have_rule("margin-left: 0") + selector = "section .omega-default-left" + expect(selector).to have_rule("margin-left: 0") end end context "with argument (4n block)" do it "removes left margin of nth-child(4n)" do - expect("section .omega-nth-default-left:nth-child(4n)").to have_rule("margin-left: 0") + selector = "section .omega-nth-default-left:nth-child(4n)" + expect(selector).to have_rule("margin-left: 0") end end end diff --git a/test/omega.scss b/test/omega.scss index 7e82617c..c527bf10 100644 --- a/test/omega.scss +++ b/test/omega.scss @@ -12,6 +12,10 @@ @include omega("4n+1"); } +.omega-complex-nth-negative { + @include omega("3n-1"); +} + section { @include row($direction: RTL); From 624d1b8c19769dfed6f2d1d60f9f8148cee4de33 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Mon, 12 Sep 2016 10:49:44 -0400 Subject: [PATCH 106/269] Update logo thoughtbot logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9856ea68..04d77a2b 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,7 @@ Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free ## About thoughtbot -[thoughtbot logo][hire] +[thoughtbot logo][hire] Neat is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc. From dc32fe6bef6722a78366a63acf6177132febcd9c Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 7 Nov 2016 19:38:39 -0500 Subject: [PATCH 107/269] Specify Ruby version --- .ruby-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .ruby-version diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..2bf1c1cc --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.3.1 From bf871e1b806db79c85d61b9c57b16c9a132cf6d0 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:46:23 -0500 Subject: [PATCH 108/269] Remove all Neat Sass --- app/assets/stylesheets/_neat-helpers.scss | 11 -- app/assets/stylesheets/_neat.scss | 24 --- .../functions/_new-breakpoint.scss | 49 ------ .../stylesheets/functions/_private.scss | 154 ------------------ app/assets/stylesheets/grid/_box-sizing.scss | 15 -- .../stylesheets/grid/_direction-context.scss | 33 ---- .../stylesheets/grid/_display-context.scss | 28 ---- app/assets/stylesheets/grid/_fill-parent.scss | 22 --- app/assets/stylesheets/grid/_media.scss | 92 ----------- app/assets/stylesheets/grid/_omega.scss | 112 ------------- .../stylesheets/grid/_outer-container.scss | 34 ---- app/assets/stylesheets/grid/_pad.scss | 25 --- app/assets/stylesheets/grid/_private.scss | 35 ---- .../stylesheets/grid/_reset-display.scss | 14 -- app/assets/stylesheets/grid/_row.scss | 45 ----- app/assets/stylesheets/grid/_shift.scss | 50 ------ .../stylesheets/grid/_span-columns.scss | 94 ----------- .../stylesheets/grid/_to-deprecate.scss | 81 --------- app/assets/stylesheets/grid/_visual-grid.scss | 42 ----- app/assets/stylesheets/mixins/_clearfix.scss | 25 --- .../settings/_disable-warnings.scss | 13 -- app/assets/stylesheets/settings/_grid.scss | 51 ------ .../stylesheets/settings/_visual-grid.scss | 27 --- 23 files changed, 1076 deletions(-) delete mode 100644 app/assets/stylesheets/_neat-helpers.scss delete mode 100644 app/assets/stylesheets/_neat.scss delete mode 100644 app/assets/stylesheets/functions/_new-breakpoint.scss delete mode 100644 app/assets/stylesheets/functions/_private.scss delete mode 100644 app/assets/stylesheets/grid/_box-sizing.scss delete mode 100644 app/assets/stylesheets/grid/_direction-context.scss delete mode 100644 app/assets/stylesheets/grid/_display-context.scss delete mode 100644 app/assets/stylesheets/grid/_fill-parent.scss delete mode 100644 app/assets/stylesheets/grid/_media.scss delete mode 100644 app/assets/stylesheets/grid/_omega.scss delete mode 100644 app/assets/stylesheets/grid/_outer-container.scss delete mode 100644 app/assets/stylesheets/grid/_pad.scss delete mode 100644 app/assets/stylesheets/grid/_private.scss delete mode 100644 app/assets/stylesheets/grid/_reset-display.scss delete mode 100644 app/assets/stylesheets/grid/_row.scss delete mode 100644 app/assets/stylesheets/grid/_shift.scss delete mode 100644 app/assets/stylesheets/grid/_span-columns.scss delete mode 100644 app/assets/stylesheets/grid/_to-deprecate.scss delete mode 100644 app/assets/stylesheets/grid/_visual-grid.scss delete mode 100644 app/assets/stylesheets/mixins/_clearfix.scss delete mode 100644 app/assets/stylesheets/settings/_disable-warnings.scss delete mode 100644 app/assets/stylesheets/settings/_grid.scss delete mode 100644 app/assets/stylesheets/settings/_visual-grid.scss diff --git a/app/assets/stylesheets/_neat-helpers.scss b/app/assets/stylesheets/_neat-helpers.scss deleted file mode 100644 index 2d6d808a..00000000 --- a/app/assets/stylesheets/_neat-helpers.scss +++ /dev/null @@ -1,11 +0,0 @@ -// Mixins -@import "mixins/clearfix"; - -// Functions -@import "functions/private"; -@import "functions/new-breakpoint"; - -// Settings -@import "settings/grid"; -@import "settings/visual-grid"; -@import "settings/disable-warnings"; diff --git a/app/assets/stylesheets/_neat.scss b/app/assets/stylesheets/_neat.scss deleted file mode 100644 index a44f6e2c..00000000 --- a/app/assets/stylesheets/_neat.scss +++ /dev/null @@ -1,24 +0,0 @@ -// Neat 1.8.0 -// http://neat.bourbon.io -// Copyright 2012-2015 thoughtbot, inc. -// MIT License - -// Helpers -@import "neat-helpers"; - -// Grid -@import "grid/private"; -@import "grid/box-sizing"; -@import "grid/omega"; -@import "grid/outer-container"; -@import "grid/span-columns"; -@import "grid/row"; -@import "grid/shift"; -@import "grid/pad"; -@import "grid/fill-parent"; -@import "grid/media"; -@import "grid/reset-display"; -@import "grid/to-deprecate"; -@import "grid/visual-grid"; -@import "grid/display-context"; -@import "grid/direction-context"; diff --git a/app/assets/stylesheets/functions/_new-breakpoint.scss b/app/assets/stylesheets/functions/_new-breakpoint.scss deleted file mode 100644 index 41ab9556..00000000 --- a/app/assets/stylesheets/functions/_new-breakpoint.scss +++ /dev/null @@ -1,49 +0,0 @@ -@charset "UTF-8"; - -/// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat. -/// -/// @param {List} $query -/// A list of media query features and values. Each `$feature` should have a corresponding `$value`. -/// -/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. -/// -/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). -/// -/// @param {Number (unitless)} $total-columns [$grid-columns] -/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. -/// -/// @example scss - Usage -/// $mobile: new-breakpoint(max-width 480px 4); -/// -/// .element { -/// @include media($mobile) { -/// @include span-columns(4); -/// } -/// } -/// -/// @example css - CSS Output -/// @media screen and (max-width: 480px) { -/// .element { -/// display: block; -/// float: left; -/// margin-right: 7.42297%; -/// width: 100%; -/// } -/// .element:last-child { -/// margin-right: 0; -/// } -/// } - -@function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { - @if length($query) == 1 { - $query: $default-feature nth($query, 1) $total-columns; - } @else if is-even(length($query)) { - $query: append($query, $total-columns); - } - - @if is-not(belongs-to($query, $visual-grid-breakpoints)) { - $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; - } - - @return $query; -} diff --git a/app/assets/stylesheets/functions/_private.scss b/app/assets/stylesheets/functions/_private.scss deleted file mode 100644 index 9a6cd2f1..00000000 --- a/app/assets/stylesheets/functions/_private.scss +++ /dev/null @@ -1,154 +0,0 @@ -// Not function for Libsass compatibility -// https://github.com/sass/libsass/issues/368 -@function is-not($value) { - @return if($value, false, true); -} - -// Checks if a number is even -@function is-even($int) { - @return $int % 2 == 0; -} - -// Checks if an element belongs to a list or not -@function belongs-to($tested-item, $list) { - @return is-not(not-belongs-to($tested-item, $list)); -} - -@function not-belongs-to($tested-item, $list) { - @return is-not(index($list, $tested-item)); -} - -// Contains display value -@function contains-display-value($query) { - @return belongs-to(table, $query) - or belongs-to(block, $query) - or belongs-to(inline-block, $query) - or belongs-to(inline, $query); -} - -// Parses the first argument of span-columns() -@function container-span($span: $span) { - @if length($span) == 3 { - $container-columns: nth($span, 3); - @return $container-columns; - } @else if length($span) == 2 { - $container-columns: nth($span, 2); - @return $container-columns; - } - - @return $grid-columns; -} - -@function container-shift($shift: $shift) { - $parent-columns: $grid-columns !default !global; - - @if length($shift) == 3 { - $container-columns: nth($shift, 3); - @return $container-columns; - } @else if length($shift) == 2 { - $container-columns: nth($shift, 2); - @return $container-columns; - } - - @return $parent-columns; -} - -// Generates a striped background -@function gradient-stops($grid-columns, $color: $visual-grid-color) { - $transparent: transparent; - $alt-color: darken($color, 10%); - - $column-width: flex-grid(1, $grid-columns); - $gutter-width: flex-gutter($grid-columns); - $column-offset: $column-width; - $alternate: false; - - $values: ($transparent 0, if($alternate, $color, $alt-color) 0); - - @for $i from 1 to $grid-columns*2 { - @if is-even($i) { - $values: append($values, $transparent $column-offset, comma); - $values: append($values, if($alternate, $color, $alt-color) $column-offset, comma); - $column-offset: $column-offset + $column-width; - } @else { - $values: append($values, if($alternate, $color, $alt-color) $column-offset, comma); - $values: append($values, $transparent $column-offset, comma); - $column-offset: $column-offset + $gutter-width; - - $alternate: not $alternate; - } - } - - @return $values; -} - -// Layout direction -@function get-direction($layout, $default) { - $direction: null; - - @if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" { - $direction: direction-from-layout($layout); - } @else { - $direction: direction-from-layout($default); - } - - @return $direction; -} - -@function direction-from-layout($layout) { - $direction: null; - - @if to-upper-case($layout) == "LTR" { - $direction: right; - } @else { - $direction: left; - } - - @return $direction; -} - -@function get-opposite-direction($direction) { - $opposite-direction: left; - - @if $direction == "left" { - $opposite-direction: right; - } - - @return $opposite-direction; -} - - -@function to-number($string) { - $string: str-replace($string, " ", ""); - $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; - $numbers: 0 1 2 3 4 5 6 7 8 9; - $result: 0; - - @for $i from 1 through str-length($string) { - $character: str-slice($string, $i, $i); - $index: index($strings, $character); - - @if not $index { - @warn "Unknown character `#{$character}`."; - @return false; - } - - $number: nth($numbers, $index); - $result: $result * 10 + $number; - } - - @return $result; -} - -@function str-replace($string, $search, $replace: "") { - $index: str-index($string, $search); - - @if $index { - $first: str-slice($string, 1, $index - 1); - $last-slice: str-slice($string, $index + str-length($search)); - $last: str-replace($last-slice, $search, $replace); - @return $first + $replace + $last; - } - - @return $string; -} diff --git a/app/assets/stylesheets/grid/_box-sizing.scss b/app/assets/stylesheets/grid/_box-sizing.scss deleted file mode 100644 index b6d3fec3..00000000 --- a/app/assets/stylesheets/grid/_box-sizing.scss +++ /dev/null @@ -1,15 +0,0 @@ -@charset "UTF-8"; - -@if $border-box-sizing == true { - html { // http://bit.ly/1qk2tVR - box-sizing: border-box; - } - - * { - &, - &::after, - &::before { - box-sizing: inherit; - } - } -} diff --git a/app/assets/stylesheets/grid/_direction-context.scss b/app/assets/stylesheets/grid/_direction-context.scss deleted file mode 100644 index 7b0d46e8..00000000 --- a/app/assets/stylesheets/grid/_direction-context.scss +++ /dev/null @@ -1,33 +0,0 @@ -@charset "UTF-8"; - -/// Changes the direction property used by other mixins called in the code block argument. -/// -/// @param {String} $direction [left-to-right] -/// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. -/// -/// @example scss - Usage -/// @include direction-context(right-to-left) { -/// .right-to-left-block { -/// @include span-columns(6); -/// } -/// } -/// -/// @example css - CSS Output -/// .right-to-left-block { -/// float: right; -/// ... -/// } - -@mixin direction-context($direction: left-to-right) { - $scope-direction: $layout-direction; - - @if to-lower-case($direction) == "left-to-right" { - $layout-direction: LTR !global; - } @else if to-lower-case($direction) == "right-to-left" { - $layout-direction: RTL !global; - } - - @content; - - $layout-direction: $scope-direction !global; -} diff --git a/app/assets/stylesheets/grid/_display-context.scss b/app/assets/stylesheets/grid/_display-context.scss deleted file mode 100644 index ed9b0637..00000000 --- a/app/assets/stylesheets/grid/_display-context.scss +++ /dev/null @@ -1,28 +0,0 @@ -@charset "UTF-8"; - -/// Changes the display property used by other mixins called in the code block argument. -/// -/// @param {String} $display [block] -/// Display value to be used within the block. Can be `table` or `block`. -/// -/// @example scss -/// @include display-context(table) { -/// .display-table { -/// @include span-columns(6); -/// } -/// } -/// -/// @example css -/// .display-table { -/// display: table-cell; -/// ... -/// } - -@mixin display-context($display: block) { - $scope-display: $container-display-table; - $container-display-table: $display == table !global; - - @content; - - $container-display-table: $scope-display !global; -} diff --git a/app/assets/stylesheets/grid/_fill-parent.scss b/app/assets/stylesheets/grid/_fill-parent.scss deleted file mode 100644 index 415f0b1e..00000000 --- a/app/assets/stylesheets/grid/_fill-parent.scss +++ /dev/null @@ -1,22 +0,0 @@ -@charset "UTF-8"; - -/// Forces the element to fill its parent container. -/// -/// @example scss - Usage -/// .element { -/// @include fill-parent; -/// } -/// -/// @example css - CSS Output -/// .element { -/// width: 100%; -/// box-sizing: border-box; -/// } - -@mixin fill-parent() { - width: 100%; - - @if $border-box-sizing == false { - box-sizing: border-box; - } -} diff --git a/app/assets/stylesheets/grid/_media.scss b/app/assets/stylesheets/grid/_media.scss deleted file mode 100644 index bd516e99..00000000 --- a/app/assets/stylesheets/grid/_media.scss +++ /dev/null @@ -1,92 +0,0 @@ -@charset "UTF-8"; - -/// Outputs a media-query block with an optional grid context (the total number of columns used in the grid). -/// -/// @param {List} $query -/// A list of media query features and values, where each `$feature` should have a corresponding `$value`. -/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). -/// -/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. -/// -/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). -/// -/// -/// @param {Number (unitless)} $total-columns [$grid-columns] -/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. -/// -/// @example scss - Usage -/// .responsive-element { -/// @include media(769px) { -/// @include span-columns(6); -/// } -/// } -/// -/// .new-context-element { -/// @include media(min-width 320px max-width 480px, 6) { -/// @include span-columns(6); -/// } -/// } -/// -/// @example css - CSS Output -/// @media screen and (min-width: 769px) { -/// .responsive-element { -/// display: block; -/// float: left; -/// margin-right: 2.35765%; -/// width: 48.82117%; -/// } -/// -/// .responsive-element:last-child { -/// margin-right: 0; -/// } -/// } -/// -/// @media screen and (min-width: 320px) and (max-width: 480px) { -/// .new-context-element { -/// display: block; -/// float: left; -/// margin-right: 4.82916%; -/// width: 100%; -/// } -/// -/// .new-context-element:last-child { -/// margin-right: 0; -/// } -/// } - -@mixin media($query: $feature $value $columns, $total-columns: $grid-columns) { - @if length($query) == 1 { - @media screen and ($default-feature: nth($query, 1)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns !global; - @content; - $grid-columns: $default-grid-columns !global; - } - } @else { - $loop-to: length($query); - $media-query: "screen and "; - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns !global; - - @if is-not(is-even(length($query))) { - $grid-columns: nth($query, $loop-to) !global; - $loop-to: $loop-to - 1; - } - - $i: 1; - @while $i <= $loop-to { - $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") "; - - @if ($i + 1) != $loop-to { - $media-query: $media-query + "and "; - } - - $i: $i + 2; - } - - @media #{$media-query} { - @content; - $grid-columns: $default-grid-columns !global; - } - } -} diff --git a/app/assets/stylesheets/grid/_omega.scss b/app/assets/stylesheets/grid/_omega.scss deleted file mode 100644 index f18e0f00..00000000 --- a/app/assets/stylesheets/grid/_omega.scss +++ /dev/null @@ -1,112 +0,0 @@ -@charset "UTF-8"; - -/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts. -/// -/// @param {List} $query [block] -/// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`). -/// -/// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature. -/// -/// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead. -/// -/// @example scss - Usage -/// .element { -/// @include omega; -/// } -/// -/// .nth-element { -/// @include omega(4n); -/// } -/// -/// @example css - CSS Output -/// .element { -/// margin-right: 0; -/// } -/// -/// .nth-element:nth-child(4n) { -/// margin-right: 0; -/// } -/// -/// .nth-element:nth-child(4n+1) { -/// clear: left; -/// } - -@mixin omega($query: block, $direction: default) { - $table: belongs-to(table, $query); - $auto: belongs-to(auto, $query); - - @if $direction != default { - @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin."); - } @else { - $direction: get-direction($layout-direction, $default-layout-direction); - } - - @if $table { - @include -neat-warn("The omega mixin no longer removes padding in table layouts."); - } - - @if length($query) == 1 { - @if $auto { - &:last-child { - margin-#{$direction}: 0; - } - } - - @else if contains-display-value($query) and $table == false { - margin-#{$direction}: 0; - } - - @else { - @include nth-child($query, $direction); - } - } @else if length($query) == 2 { - @if $auto { - &:last-child { - margin-#{$direction}: 0; - } - } @else { - @include nth-child(nth($query, 1), $direction); - } - } @else { - @include -neat-warn("Too many arguments passed to the omega() mixin."); - } -} - -@mixin nth-child($query, $direction) { - $opposite-direction: get-opposite-direction($direction); - - &:nth-child(#{$query}) { - margin-#{$direction}: 0; - } - - @if type-of($query) == string { - $query: str-replace($query, " ", ""); - $operator: false; - - @if str_index($query, "+") { - $operator: "+"; - } @else if str_index($query, "-") { - $operator: "-"; - } - - @if $operator { - $operator-index: str_index($query, $operator); - $first: str-slice($query, 0, ($operator-index - 1)); - $last: to-number(str-slice($query, ($operator-index + 1), -1)); - @if $operator == "+" { - $last: $last + 1; - } @else if $operator == "-" { - $last: $last - 1; - } - $nth: "#{$first}#{$operator}#{$last}"; - - &:nth-child(#{$nth}) { - clear: $opposite-direction; - } - } - } @else if type-of($query) == number && unit($query) == "n" { - &:nth-child(#{$query}+1) { - clear: $opposite-direction; - } - } -} diff --git a/app/assets/stylesheets/grid/_outer-container.scss b/app/assets/stylesheets/grid/_outer-container.scss deleted file mode 100644 index d3f62674..00000000 --- a/app/assets/stylesheets/grid/_outer-container.scss +++ /dev/null @@ -1,34 +0,0 @@ -@charset "UTF-8"; - -/// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. -/// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. -/// -/// @param {Number [unit]} $local-max-width [$max-width] -/// Max width to be applied to the element. Can be a percentage or a measure. -/// -/// @example scss - Usage -/// .element { -/// @include outer-container(100%); -/// } -/// -/// @example css - CSS Output -/// .element { -/// max-width: 100%; -/// margin-left: auto; -/// margin-right: auto; -/// } -/// -/// .element::after { -/// clear: both; -/// content: ""; -/// display: table; -/// } - -@mixin outer-container($local-max-width: $max-width) { - @include clearfix; - max-width: $local-max-width; - margin: { - left: auto; - right: auto; - } -} diff --git a/app/assets/stylesheets/grid/_pad.scss b/app/assets/stylesheets/grid/_pad.scss deleted file mode 100644 index d697e1b9..00000000 --- a/app/assets/stylesheets/grid/_pad.scss +++ /dev/null @@ -1,25 +0,0 @@ -@charset "UTF-8"; - -/// Adds padding to the element. -/// -/// @param {List} $padding [flex-gutter()] -/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. -/// -/// @example scss - Usage -/// .element { -/// @include pad(30px -20px 10px default); -/// } -/// -/// @example css - CSS Output -/// .element { -/// padding: 30px -20px 10px 2.35765%; -/// } - -@mixin pad($padding: flex-gutter()) { - $padding-list: null; - @each $value in $padding { - $value: if($value == 'default', flex-gutter(), $value); - $padding-list: join($padding-list, $value); - } - padding: $padding-list; -} diff --git a/app/assets/stylesheets/grid/_private.scss b/app/assets/stylesheets/grid/_private.scss deleted file mode 100644 index 51224274..00000000 --- a/app/assets/stylesheets/grid/_private.scss +++ /dev/null @@ -1,35 +0,0 @@ -$parent-columns: $grid-columns !default; -$fg-column: $column; -$fg-gutter: $gutter; -$fg-max-columns: $grid-columns; -$container-display-table: false !default; -$layout-direction: LTR !default; - -@function flex-grid($columns, $container-columns: $fg-max-columns) { - $width: flex-width($columns); - $container-width: flex-width($container-columns); - @return percentage($width / $container-width); -} - -@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { - $container-width: flex-width($container-columns); - @return percentage($gutter / $container-width); -} - -@function flex-width($n, $column-width: $fg-column, $gutter-width: $fg-gutter) { - @return $n * $column-width + ($n - 1) * $gutter-width; -} - -@function get-parent-columns($columns) { - @if $columns != $grid-columns { - $parent-columns: $columns !global; - } @else { - $parent-columns: $grid-columns !global; - } - - @return $parent-columns; -} - -@function is-display-table($container-is-display-table, $display) { - @return $container-is-display-table == true or $display == table; -} diff --git a/app/assets/stylesheets/grid/_reset-display.scss b/app/assets/stylesheets/grid/_reset-display.scss deleted file mode 100644 index b8332b87..00000000 --- a/app/assets/stylesheets/grid/_reset-display.scss +++ /dev/null @@ -1,14 +0,0 @@ -/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row. -/// -/// @example scss - Usage -/// .element { -/// @include row(table); -/// // Context changed to table display -/// } -/// -/// @include reset-display; -/// // Context is reset to block display - -@mixin reset-display { - $container-display-table: false !global; -} diff --git a/app/assets/stylesheets/grid/_row.scss b/app/assets/stylesheets/grid/_row.scss deleted file mode 100644 index 81501607..00000000 --- a/app/assets/stylesheets/grid/_row.scss +++ /dev/null @@ -1,45 +0,0 @@ -@charset "UTF-8"; - -/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout. -/// -/// @param {String} $display [default] -/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`. -/// -/// @param {String} $direction [$default-layout-direction] -/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left). -/// -/// @example scss - Usage -/// .element { -/// @include row(); -/// } -/// -/// @example css - CSS Output -/// .element { -/// *zoom: 1; -/// display: block; -/// } -/// -/// .element:before, .element:after { -/// content: " "; -/// display: table; -/// } -/// -/// .element:after { -/// clear: both; -/// } - -@mixin row($display: default, $direction: $default-layout-direction) { - - $layout-direction: $direction !global; - - @if $display == table { - display: table; - @include fill-parent; - table-layout: fixed; - $container-display-table: true !global; - } @else { - @include clearfix; - display: block; - $container-display-table: false !global; - } -} diff --git a/app/assets/stylesheets/grid/_shift.scss b/app/assets/stylesheets/grid/_shift.scss deleted file mode 100644 index c0f24cd8..00000000 --- a/app/assets/stylesheets/grid/_shift.scss +++ /dev/null @@ -1,50 +0,0 @@ -@charset "UTF-8"; - -/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction. -/// -/// @param {Number (unitless)} $n-columns [1] -/// Number of columns by which the element shifts. -/// -/// @example scss - Usage -/// .element { -/// @include shift(-3); -/// } -/// -/// @example css - CSS output -/// .element { -/// margin-left: -25.58941%; -/// } - -@mixin shift($n-columns: 1) { - @include shift-in-context($n-columns); -} - -/// Translates an element horizontally by a number of columns, in a specific nesting context. -/// -/// @param {List} $shift -/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`). -/// -/// The two values can be separated with any string such as `of`, `/`, etc. -/// -/// @example scss - Usage -/// .element { -/// @include shift(-3 of 6); -/// } -/// -/// @example css - CSS output -/// .element { -/// margin-left: -52.41458%; -/// } - -@mixin shift-in-context($shift: $columns of $container-columns) { - $n-columns: nth($shift, 1); - $parent-columns: container-shift($shift) !global; - - $direction: get-direction($layout-direction, $default-layout-direction); - $opposite-direction: get-opposite-direction($direction); - - margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns); - - // Reset nesting context - $parent-columns: $grid-columns !global; -} diff --git a/app/assets/stylesheets/grid/_span-columns.scss b/app/assets/stylesheets/grid/_span-columns.scss deleted file mode 100644 index a7f9b003..00000000 --- a/app/assets/stylesheets/grid/_span-columns.scss +++ /dev/null @@ -1,94 +0,0 @@ -@charset "UTF-8"; - -/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well. -/// -/// @param {List} $span -/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). -/// -/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. -/// -/// The values can be separated with any string such as `of`, `/`, etc. -/// -/// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns. -/// -/// @param {String} $display [block] -/// Sets the display property of the element. By default it sets the display property of the element to `block`. -/// -/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width. -/// -/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid. -/// -/// @example scss - Usage -/// .element { -/// @include span-columns(6); -/// -/// .nested-element { -/// @include span-columns(2 of 6); -/// } -/// } -/// -/// @example css - CSS Output -/// .element { -/// display: block; -/// float: left; -/// margin-right: 2.35765%; -/// width: 48.82117%; -/// } -/// -/// .element:last-child { -/// margin-right: 0; -/// } -/// -/// .element .nested-element { -/// display: block; -/// float: left; -/// margin-right: 4.82916%; -/// width: 30.11389%; -/// } -/// -/// .element .nested-element:last-child { -/// margin-right: 0; -/// } - -@mixin span-columns($span: $columns of $container-columns, $display: block) { - $columns: nth($span, 1); - $container-columns: container-span($span); - - $parent-columns: get-parent-columns($container-columns) !global; - - $direction: get-direction($layout-direction, $default-layout-direction); - $opposite-direction: get-opposite-direction($direction); - - $display-table: is-display-table($container-display-table, $display); - - @if $display-table { - display: table-cell; - width: percentage($columns / $container-columns); - } @else { - float: #{$opposite-direction}; - - @if $display != no-display { - display: block; - } - - @if $display == collapse { - @include -neat-warn("The 'collapse' argument will be deprecated. Use 'block-collapse' instead."); - } - - @if $display == collapse or $display == block-collapse { - width: flex-grid($columns, $container-columns) + flex-gutter($container-columns); - - &:last-child { - width: flex-grid($columns, $container-columns); - } - - } @else { - margin-#{$direction}: flex-gutter($container-columns); - width: flex-grid($columns, $container-columns); - - &:last-child { - margin-#{$direction}: 0; - } - } - } -} diff --git a/app/assets/stylesheets/grid/_to-deprecate.scss b/app/assets/stylesheets/grid/_to-deprecate.scss deleted file mode 100644 index b46d9760..00000000 --- a/app/assets/stylesheets/grid/_to-deprecate.scss +++ /dev/null @@ -1,81 +0,0 @@ -@charset "UTF-8"; - -@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { - @include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."); - - @if length($query) == 1 { - @media screen and ($default-feature: nth($query, 1)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } @else if length($query) == 2 { - @media screen and (nth($query, 1): nth($query, 2)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } @else if length($query) == 3 { - @media screen and (nth($query, 1): nth($query, 2)) { - $default-grid-columns: $grid-columns; - $grid-columns: nth($query, 3); - @content; - $grid-columns: $default-grid-columns; - } - } @else if length($query) == 4 { - @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } @else if length($query) == 5 { - @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { - $default-grid-columns: $grid-columns; - $grid-columns: nth($query, 5); - @content; - $grid-columns: $default-grid-columns; - } - } @else { - @include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details."); - } -} - -@mixin nth-omega($nth, $display: block, $direction: default) { - @include -neat-warn("The nth-omega() mixin is deprecated. Please use omega() instead."); - @include omega($nth $display, $direction); -} - -/// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row. -/// -/// @example scss - Usage -/// .element { -/// @include row($direction: RTL); -/// // Context changed to right-to-left -/// } -/// -/// @include reset-layout-direction; -/// // Context is reset to left-to-right - -@mixin reset-layout-direction { - $layout-direction: $default-layout-direction !global; - @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin."); -} - -/// Resets both the active layout direction and the active display property. -/// -/// @example scss - Usage -/// .element { -/// @include row(table, RTL); -/// // Context changed to table table and right-to-left -/// } -/// -/// @include reset-all; -/// // Context is reset to block display and left-to-right - -@mixin reset-all { - @include reset-display; - @include reset-layout-direction; -} diff --git a/app/assets/stylesheets/grid/_visual-grid.scss b/app/assets/stylesheets/grid/_visual-grid.scss deleted file mode 100644 index 1192d828..00000000 --- a/app/assets/stylesheets/grid/_visual-grid.scss +++ /dev/null @@ -1,42 +0,0 @@ -@charset "UTF-8"; - -@mixin grid-column-gradient($values...) { - background-image: -webkit-linear-gradient(left, $values); - background-image: -moz-linear-gradient(left, $values); - background-image: -ms-linear-gradient(left, $values); - background-image: -o-linear-gradient(left, $values); - background-image: unquote("linear-gradient(to left, #{$values})"); -} - -@if $visual-grid == true or $visual-grid == yes { - body:before { - @include grid-column-gradient(gradient-stops($grid-columns)); - content: ""; - display: inline-block; - height: 100%; - left: 0; - margin: 0 auto; - max-width: $max-width; - opacity: $visual-grid-opacity; - pointer-events: none; - position: fixed; - right: 0; - width: 100%; - - @if $visual-grid-index == back { - z-index: -1; - } - - @else if $visual-grid-index == front { - z-index: 9999; - } - - @each $breakpoint in $visual-grid-breakpoints { - @if $breakpoint { - @include media($breakpoint) { - @include grid-column-gradient(gradient-stops($grid-columns)); - } - } - } - } -} diff --git a/app/assets/stylesheets/mixins/_clearfix.scss b/app/assets/stylesheets/mixins/_clearfix.scss deleted file mode 100644 index e68efc44..00000000 --- a/app/assets/stylesheets/mixins/_clearfix.scss +++ /dev/null @@ -1,25 +0,0 @@ -@charset "UTF-8"; - -/// Provides an easy way to include a clearfix for containing floats. -/// -/// @link http://goo.gl/yP5hiZ -/// -/// @example scss -/// .element { -/// @include clearfix; -/// } -/// -/// @example css -/// .element::after { -/// clear: both; -/// content: ""; -/// display: block; -/// } - -@mixin clearfix { - &::after { - clear: both; - content: ""; - display: block; - } -} diff --git a/app/assets/stylesheets/settings/_disable-warnings.scss b/app/assets/stylesheets/settings/_disable-warnings.scss deleted file mode 100644 index 3f9b92a6..00000000 --- a/app/assets/stylesheets/settings/_disable-warnings.scss +++ /dev/null @@ -1,13 +0,0 @@ -@charset "UTF-8"; - -/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. -/// -/// @type Bool - -$disable-warnings: false !default; - -@mixin -neat-warn($message) { - @if $disable-warnings == false { - @warn "#{$message}"; - } -} diff --git a/app/assets/stylesheets/settings/_grid.scss b/app/assets/stylesheets/settings/_grid.scss deleted file mode 100644 index c1ab7fdc..00000000 --- a/app/assets/stylesheets/settings/_grid.scss +++ /dev/null @@ -1,51 +0,0 @@ -@charset "UTF-8"; - -/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. Set with a `!global` flag. -/// -/// @type Number (Unit) - -$column: 4.2358em !default; - -/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. Set with the `!global` flag. -/// -/// @type Number (Unit) - -$gutter: 1.618em !default; - -/// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag. -/// -/// @type Number (Unitless) - -$grid-columns: 12 !default; - -/// Sets the max-width property of the element that includes `outer-container()`. Set with the `!global` flag. -/// -/// @type Number (Unit) -/// -$max-width: 1200px !default; - -/// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag. -/// -/// @type Bool -/// -/// @example css - CSS Output -/// html { -/// box-sizing: border-box; } -/// -/// *, *::after, *::before { -/// box-sizing: inherit; -/// } - -$border-box-sizing: true !default; - -/// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag. -/// -/// @type String - -$default-feature: min-width; // Default @media feature for the breakpoint() mixin - -///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag. -/// -///@type String - -$default-layout-direction: LTR !default; diff --git a/app/assets/stylesheets/settings/_visual-grid.scss b/app/assets/stylesheets/settings/_visual-grid.scss deleted file mode 100644 index 9cd1815a..00000000 --- a/app/assets/stylesheets/settings/_visual-grid.scss +++ /dev/null @@ -1,27 +0,0 @@ -@charset "UTF-8"; - -/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. -/// -/// @type Bool - -$visual-grid: false !default; - -/// Sets the visual grid color. Set with `!global` flag. -/// -/// @type Color - -$visual-grid-color: #eee !default; - -/// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. -/// -/// @type String - -$visual-grid-index: back !default; - -/// Sets the opacity property of the visual grid. Set with `!global` flag. -/// -/// @type Number (unitless) - -$visual-grid-opacity: 0.4 !default; - -$visual-grid-breakpoints: () !default; From 164d908ba695bba4b7cbc394a12441ed4ced2542 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:47:12 -0500 Subject: [PATCH 109/269] Remove all tests --- .npmignore | 2 - .rspec | 1 - bower.json | 3 +- spec/.keep | 0 spec/neat/columns_spec.rb | 73 ------------------------ spec/neat/container_spec.rb | 21 ------- spec/neat/default_spec.rb | 15 ----- spec/neat/direction_spec.rb | 19 ------ spec/neat/display_spec.rb | 19 ------ spec/neat/media_spec.rb | 55 ------------------ spec/neat/new_breakpoint_spec.rb | 17 ------ spec/neat/omega_spec.rb | 66 --------------------- spec/neat/pad_spec.rb | 32 ----------- spec/neat/row_spec.rb | 39 ------------- spec/neat/shift_spec.rb | 41 ------------- spec/spec_helper.rb | 22 ------- spec/support/matchers/be_contained_in.rb | 10 ---- spec/support/matchers/have_rule.rb | 35 ------------ spec/support/matchers/have_value.rb | 15 ----- spec/support/parser_support.rb | 9 --- spec/support/sass_support.rb | 10 ---- test/default.scss | 1 - test/direction-context.scss | 13 ----- test/display-context.scss | 15 ----- test/media.scss | 39 ------------- test/new-breakpoint.scss | 13 ----- test/outer-container.scss | 11 ---- test/pad.scss | 17 ------ test/row.scss | 26 --------- test/shift.scss | 36 ------------ test/span-columns.scss | 21 ------- 31 files changed, 1 insertion(+), 695 deletions(-) delete mode 100644 .rspec create mode 100644 spec/.keep delete mode 100644 spec/neat/columns_spec.rb delete mode 100644 spec/neat/container_spec.rb delete mode 100644 spec/neat/default_spec.rb delete mode 100644 spec/neat/direction_spec.rb delete mode 100644 spec/neat/display_spec.rb delete mode 100644 spec/neat/media_spec.rb delete mode 100644 spec/neat/new_breakpoint_spec.rb delete mode 100644 spec/neat/omega_spec.rb delete mode 100644 spec/neat/pad_spec.rb delete mode 100644 spec/neat/row_spec.rb delete mode 100644 spec/neat/shift_spec.rb delete mode 100644 spec/spec_helper.rb delete mode 100644 spec/support/matchers/be_contained_in.rb delete mode 100644 spec/support/matchers/have_rule.rb delete mode 100644 spec/support/matchers/have_value.rb delete mode 100644 spec/support/parser_support.rb delete mode 100644 spec/support/sass_support.rb delete mode 100644 test/default.scss delete mode 100644 test/direction-context.scss delete mode 100644 test/display-context.scss delete mode 100644 test/media.scss delete mode 100644 test/new-breakpoint.scss delete mode 100644 test/outer-container.scss delete mode 100644 test/pad.scss delete mode 100644 test/row.scss delete mode 100644 test/shift.scss delete mode 100644 test/span-columns.scss diff --git a/.npmignore b/.npmignore index 36acfcec..d4ee49e6 100644 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,4 @@ .gitignore -.rspec .sass-cache .scss-lint.yml .travis.yml @@ -16,4 +15,3 @@ pkg/ Rakefile sache.json spec/ -test/ diff --git a/.rspec b/.rspec deleted file mode 100644 index 4e1e0d2f..00000000 --- a/.rspec +++ /dev/null @@ -1 +0,0 @@ ---color diff --git a/bower.json b/bower.json index 4869697c..ae4ff9b1 100644 --- a/bower.json +++ b/bower.json @@ -15,8 +15,7 @@ "lib", "neat.gemspec", "sache.json", - "spec", - "test" + "spec" ], "keywords": [ "columns", diff --git a/spec/.keep b/spec/.keep new file mode 100644 index 00000000..e69de29b diff --git a/spec/neat/columns_spec.rb b/spec/neat/columns_spec.rb deleted file mode 100644 index af526f96..00000000 --- a/spec/neat/columns_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -require "spec_helper" - -describe "@include span-columns()" do - before(:all) do - ParserSupport.parse_file("span-columns") - end - - context "with argument (6) in a twelve-column grid" do - it "sets width in percentage" do - expect(".span-columns-default").to have_rule("width: 48.82117%") - end - - it "sets gutter in percentage" do - expect(".span-columns-default").to have_rule("margin-right: 2.35765%") - end - - it "sets display to block" do - expect(".span-columns-default").to have_rule("display: block") - end - - it "sets float to left" do - expect(".span-columns-default").to have_rule("float: left") - end - - it "removes gutter from last element" do - expect(".span-columns-default:last-child").to have_rule("margin-right: 0") - end - end - - context "when nested" do - it "sets relative width in percentage" do - expect(".span-columns-default .span-columns-nested").to have_rule("width: 30.11389%") - end - - it "sets relative gutter in percentage" do - expect(".span-columns-default .span-columns-nested").to have_rule("margin-right: 4.82916%") - end - end - - context "with argument (table)" do - it "sets display to table-cell" do - expect(".span-columns-table").to have_rule("display: table-cell") - end - - it "sets width evenly between elements" do - expect(".span-columns-table").to have_rule("width: 50%") - end - end - - context "with argument (block-collapse)" do - it "appends gutter width to column width" do - expect(".span-columns-collapse").to have_rule("width: 51.17883%") - end - - it "removes the next gutter" do - expect(".span-columns-collapse").to_not have_rule("margin-right: 2.35765%") - end - - it "removes gutter percentage from the width of the last child" do - expect(".span-columns-collapse:last-child").to have_rule("width: 48.82117%") - end - end - - context "with argument (no-display)" do - it "doesn't set display property" do - expect(".span-columns-no-display").to_not have_rule("display: block") - end - - it "sets width in percentage based on a block layout" do - expect(".span-columns-no-display").to have_rule("width: 48.82117%") - end - end -end diff --git a/spec/neat/container_spec.rb b/spec/neat/container_spec.rb deleted file mode 100644 index 147f1cec..00000000 --- a/spec/neat/container_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -require "spec_helper" - -describe "@include outer-container()" do - before(:all) do - ParserSupport.parse_file("outer-container") - end - - it "adds clearfix" do - expect(".container-default::after").to have_rule("clear: both") - end - - it "sets max-width" do - expect(".container-default").to have_rule("max-width: 960px") - end - - context "with max-width argument: 100%" do - it "sets max-width to 100%" do - expect(".container-custom-width").to have_rule("max-width: 100%") - end - end -end diff --git a/spec/neat/default_spec.rb b/spec/neat/default_spec.rb deleted file mode 100644 index 5714457f..00000000 --- a/spec/neat/default_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -require "spec_helper" - -describe "By default" do - before(:all) do - ParserSupport.parse_file("default") - end - - it "sets sizing on the html element to border-box" do - expect("html").to have_rule("box-sizing: border-box") - end - - it "sets sizing on the global selector to inherit" do - expect("*::after").to have_rule("box-sizing: inherit") - end -end diff --git a/spec/neat/direction_spec.rb b/spec/neat/direction_spec.rb deleted file mode 100644 index 1a39c322..00000000 --- a/spec/neat/direction_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -require "spec_helper" - -describe "@include direction-context() {...}" do - before(:all) do - ParserSupport.parse_file("direction-context") - end - - context "with no argument" do - it "uses default direction setting" do - expect(".default-block").to have_rule("float: left") - end - end - - context "whith argument (right-to-left)" do - it "changes direction setting inside the block" do - expect(".right-to-left-block").to have_rule("float: right") - end - end -end diff --git a/spec/neat/display_spec.rb b/spec/neat/display_spec.rb deleted file mode 100644 index 51070a2e..00000000 --- a/spec/neat/display_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -require "spec_helper" - -describe "@include display-context() {...}" do - before(:all) do - ParserSupport.parse_file("display-context") - end - - context "with argument (table)" do - it "changes display value to table" do - expect(".display-table-block").to have_rule("display: table-cell") - end - end - - context "whith nested call and argument (block)" do - it "changes display value to block" do - expect(".display-nested-block").to have_rule("display: block") - end - end -end diff --git a/spec/neat/media_spec.rb b/spec/neat/media_spec.rb deleted file mode 100644 index 620b9c76..00000000 --- a/spec/neat/media_spec.rb +++ /dev/null @@ -1,55 +0,0 @@ -require "spec_helper" - -describe "@include media() {...}" do - before(:all) do - ParserSupport.parse_file("media") - end - - context "with argument (481px)" do - it "outputs @media screen and (min-width: 481px)" do - expect(".media-default").to be_contained_in("screen and (min-width: 481px)") - end - end - - context "with argument (max-width 480px)" do - it "outputs @media screen and (max-width: 480px)" do - expect(".media-max-width").to be_contained_in("screen and (max-width: 480px)") - end - end - - context "with argument (min-width 320px max-width 480px)" do - it "outputs @media screen and (min-width: 320px) and (max-width: 480px)" do - expect(".media-min-max-width").to be_contained_in("screen and (min-width: 320px) and (max-width: 480px)") - end - end - - context "with argument (481px, 6)" do - it "outputs @media screen and (min-width: 481px)" do - expect(".change-media-context").to be_contained_in("screen and (min-width: 481px)") - end - - it "uses a 6-column grid" do - expect(".change-media-context").to have_rule("width: 100%") - end - end - - context "with shorthand argument (max-width 480px 6)" do - it "outputs @media screen and (max-width: 480px)" do - expect(".change-media-context-shorthand").to be_contained_in("screen and (max-width: 480px)") - end - - it "uses a 6-column grid" do - expect(".change-media-context-shorthand").to have_rule("width: 100%") - end - end - - context "with composite argument (max-width 768px min-width 110px orientation portait 6)" do - it "outputs @media screen and (max-width: 768px) and (min-width: 110px) and (orientation: portait)" do - expect(".composite-media-query").to be_contained_in("screen and (max-width: 768px) and (min-width: 110px) and (orientation: portait)") - end - - it "uses a 6-column grid" do - expect(".composite-media-query").to have_rule("width: 100%") - end - end -end diff --git a/spec/neat/new_breakpoint_spec.rb b/spec/neat/new_breakpoint_spec.rb deleted file mode 100644 index 6b577e7d..00000000 --- a/spec/neat/new_breakpoint_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require "spec_helper" - -describe "new-breakpoint()" do - before(:all) do - ParserSupport.parse_file("new-breakpoint") - end - - context "with argument (max-width 768px 12)" do - it "outputs (max-width 768px)" do - expect(".responsive-element").to be_contained_in("screen and (max-width: 768px)") - end - - it "adds (max-width 768px 12) to visual grid breakpoints" do - expect("$visual-grid-breakpoints").to have_value("max-width 768px 12") - end - end -end diff --git a/spec/neat/omega_spec.rb b/spec/neat/omega_spec.rb deleted file mode 100644 index 137d2673..00000000 --- a/spec/neat/omega_spec.rb +++ /dev/null @@ -1,66 +0,0 @@ -require "spec_helper" - -describe "@include omega()" do - before(:all) do - ParserSupport.parse_file("omega") - end - - context "with no argument" do - it "removes right margin" do - selector = ".omega-default" - expect(selector).to have_rule("margin-right: 0") - end - end - - context "with argument (4n)" do - it "removes right margin of nth-child(4n)" do - selector = ".omega-nth-default:nth-child(4n)" - expect(selector).to have_rule("margin-right: 0") - end - - it "adds clear to nth-child(4n+1)" do - selector = ".omega-nth-default:nth-child(4n+1)" - expect(selector).to have_rule("clear: left") - end - end - - context "with argument ('4n+1')" do - it "removes right margin of nth-child(4n+1)" do - selector = ".omega-complex-nth:nth-child(4n+1)" - expect(selector).to have_rule("margin-right: 0") - end - - it "adds clear to nth-child('4n+2')" do - selector = ".omega-complex-nth:nth-child(4n+2)" - expect(selector).to have_rule("clear: left") - end - end - - context "with argument ('3n-1')" do - it "removes right margin of nth-child(3n-1)" do - selector = ".omega-complex-nth-negative:nth-child(3n-1)" - expect(selector).to have_rule("margin-right: 0") - end - - it "adds clear to nth-child('3n-0')" do - selector = ".omega-complex-nth-negative:nth-child(3n-0)" - expect(selector).to have_rule("clear: left") - end - end - - context "when called inside an RTL row" do - context "with no argument" do - it "removes left margin" do - selector = "section .omega-default-left" - expect(selector).to have_rule("margin-left: 0") - end - end - - context "with argument (4n block)" do - it "removes left margin of nth-child(4n)" do - selector = "section .omega-nth-default-left:nth-child(4n)" - expect(selector).to have_rule("margin-left: 0") - end - end - end -end diff --git a/spec/neat/pad_spec.rb b/spec/neat/pad_spec.rb deleted file mode 100644 index 72685620..00000000 --- a/spec/neat/pad_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require "spec_helper" - -describe "@include pad()" do - before(:all) do - ParserSupport.parse_file("pad") - end - - context "with no argument" do - it "sets padding to gutter percentage" do - expect(".pad-default").to have_rule("padding: 2.35765%") - end - end - - context "with argument (20px)" do - it "sets padding to 20px" do - expect(".pad-explicit").to have_rule("padding: 20px") - end - end - - context "with argument (30px 20px 10px 5px)" do - it "sets padding to 30px 20px 10px 5px" do - expect(".pad-shorthand").to have_rule("padding: 30px 20px 10px 5px") - end - end - - context "with argument (default)" do - it "uses default gutter percentage" do - expect(".pad-shorthand-default").to have_rule("padding: 30px 2.35765% 10px 2.35765%") - end - end -end - diff --git a/spec/neat/row_spec.rb b/spec/neat/row_spec.rb deleted file mode 100644 index 321f0848..00000000 --- a/spec/neat/row_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -require "spec_helper" - -describe "@include row()" do - before(:all) do - ParserSupport.parse_file("row") - end - - context "with no argument" do - it "adds clearfix" do - expect(".row-default::after").to have_rule("clear: both") - end - - it "sets display to block" do - expect(".row-default").to have_rule("display: block") - end - end - - context "with argument (table)" do - it "sets display to table" do - expect(".row-table").to have_rule("display: table") - end - - it "forces table-cell display on child elements" do - expect(".row-table-reset .block-child").to have_rule("display: table-cell") - end - end - - context "with reset-display()" do - it "resets display to block" do - expect(".no-row").to have_rule("display: block") - end - end - - context "with invalid display argument" do - it "sets display to block" do - expect(".row-invalid-display").to have_rule("display: block") - end - end -end diff --git a/spec/neat/shift_spec.rb b/spec/neat/shift_spec.rb deleted file mode 100644 index 23a40fac..00000000 --- a/spec/neat/shift_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -require "spec_helper" - -describe "@include shift()" do - before(:all) do - ParserSupport.parse_file("shift") - end - - context "with no argument" do - it "shifts element one column in the default direction" do - expect(".shift-default").to have_rule("margin-left: 8.5298%") - end - end - - context "with argument (2)" do - it "shifts element 2 columns in the default direction" do - expect(".shift-positive").to have_rule("margin-left: 17.05961%") - end - end - - context "with argument (-3)" do - it "shifts element 3 columns in the opposite direction" do - expect(".shift-negative").to have_rule("margin-left: -25.58941%") - end - end - - context "when nested" do - it "shifts element relative to its parent" do - expect(".shifted-parent .shifted-child").to have_rule("margin-left: 34.94305%") - end - - it "resets nesting context" do - expect(".post-nested-shift").to have_rule("margin-left: 17.05961%") - end - end - - context "when layout direction changes" do - it "shifts element in the corresponding direction" do - expect("section .shift-negative").to have_rule("margin-right: -25.58941%") - end - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb deleted file mode 100644 index fbed5955..00000000 --- a/spec/spec_helper.rb +++ /dev/null @@ -1,22 +0,0 @@ -$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) -$LOAD_PATH.unshift(File.dirname(__FILE__)) -require "rspec" -require "neat" -require "aruba/api" -require "css_parser" -Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } - -RSpec.configure do |config| - config.include SassSupport - config.include CssParser - config.include ParserSupport - config.include Aruba::Api - - config.before(:all) do - generate_css - end - - config.after(:all) do - clean_up - end -end diff --git a/spec/support/matchers/be_contained_in.rb b/spec/support/matchers/be_contained_in.rb deleted file mode 100644 index 01a99f96..00000000 --- a/spec/support/matchers/be_contained_in.rb +++ /dev/null @@ -1,10 +0,0 @@ -RSpec::Matchers.define :be_contained_in do |expected| - match do |actual| - @query = ParserSupport.parser.find_by_selector(actual, expected) - @query.any? - end - - failure_message do |actual| - %{expected selector #{actual} to be contained in #{expected}} - end -end diff --git a/spec/support/matchers/have_rule.rb b/spec/support/matchers/have_rule.rb deleted file mode 100644 index f202f34a..00000000 --- a/spec/support/matchers/have_rule.rb +++ /dev/null @@ -1,35 +0,0 @@ -RSpec::Matchers.define :have_rule do |expected| - match do |selector| - @rules = rules_from_selector(selector) - @rules.include? expected - end - - failure_message do |selector| - if @rules.empty? - %{no CSS for selector #{selector} were found} - else - rules = @rules.join("; ") - %{Expected selector #{selector} to have CSS rule "#{expected}". - Had "#{rules}".} - end - end - - def rules_from_selector(selector) - rulesets = ParserSupport.parser.find_by_selector(selector) - if rulesets.empty? - [] - else - rules(rulesets) - end - end - - def rules(rulesets) - rules = [] - rulesets.map do |ruleset| - ruleset.split(";").each do |rule| - rules << rule.strip - end - end - rules - end -end diff --git a/spec/support/matchers/have_value.rb b/spec/support/matchers/have_value.rb deleted file mode 100644 index 8643ec12..00000000 --- a/spec/support/matchers/have_value.rb +++ /dev/null @@ -1,15 +0,0 @@ -RSpec::Matchers.define :have_value do |expected| - match do |actual| - selector_id = actual.sub("$","#") - value_attribute = ParserSupport.parser.find_by_selector(selector_id)[0] - - unless value_attribute.nil? - actual_value = value_attribute.split(":")[1].strip.sub(";", "") - actual_value == expected - end - end - - failure_message do |actual| - %{expected variable #{actual} to have value "#{expected}"} - end -end diff --git a/spec/support/parser_support.rb b/spec/support/parser_support.rb deleted file mode 100644 index 3f68df42..00000000 --- a/spec/support/parser_support.rb +++ /dev/null @@ -1,9 +0,0 @@ -module ParserSupport - def self.parser - @parser ||= CssParser::Parser.new - end - - def self.parse_file(identifier) - self.parser.load_file!("tmp/#{identifier}.css") - end -end diff --git a/spec/support/sass_support.rb b/spec/support/sass_support.rb deleted file mode 100644 index bad4a7df..00000000 --- a/spec/support/sass_support.rb +++ /dev/null @@ -1,10 +0,0 @@ -module SassSupport - def generate_css - _mkdir("tmp") - `sass -I . --update test:tmp` - end - - def clean_up - FileUtils.rm_rf("tmp") - end -end diff --git a/test/default.scss b/test/default.scss deleted file mode 100644 index 3fe02488..00000000 --- a/test/default.scss +++ /dev/null @@ -1 +0,0 @@ -@import "setup"; diff --git a/test/direction-context.scss b/test/direction-context.scss deleted file mode 100644 index 6ee9b5bf..00000000 --- a/test/direction-context.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import "setup"; - -@include direction-context() { - .default-block { - @include span-columns(6); - } -} - -@include direction-context(right-to-left) { - .right-to-left-block { - @include span-columns(6); - } -} diff --git a/test/display-context.scss b/test/display-context.scss deleted file mode 100644 index 42097ed4..00000000 --- a/test/display-context.scss +++ /dev/null @@ -1,15 +0,0 @@ -@import "setup"; - -@include display-context(table) { - .display-table-block { - @include span-columns(6); - } -} - -@include display-context(table) { - @include display-context(block) { - .display-nested-block { - @include span-columns(6); - } - } -} diff --git a/test/media.scss b/test/media.scss deleted file mode 100644 index 96437e61..00000000 --- a/test/media.scss +++ /dev/null @@ -1,39 +0,0 @@ -@import "setup"; - -$composite: new-breakpoint(max-width 768px min-width 110px orientation portait 6); - -.media-default { - @include media(481px) { - color: #000; - } -} - -.media-max-width { - @include media(max-width 480px) { - position: relative; - } -} - -.media-min-max-width { - @include media(min-width 320px max-width 480px) { - position: relative; - } -} - -.change-media-context { - @include media(481px, 6) { - @include span-columns(6); - } -} - -.change-media-context-shorthand { - @include media(max-width 480px 6) { - @include span-columns(6); - } -} - -.composite-media-query { - @include media($composite) { - @include span-columns(6); - } -} diff --git a/test/new-breakpoint.scss b/test/new-breakpoint.scss deleted file mode 100644 index 2b3fc18b..00000000 --- a/test/new-breakpoint.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import "setup"; - -$tablet: new-breakpoint(max-width 768px 12); - -.responsive-element { - @include media($tablet) { - color: #000; - } -} - -#visual-grid-breakpoints { - value: $visual-grid-breakpoints -} diff --git a/test/outer-container.scss b/test/outer-container.scss deleted file mode 100644 index b9a72ca3..00000000 --- a/test/outer-container.scss +++ /dev/null @@ -1,11 +0,0 @@ -@import "setup"; - -$max-width: 960px; - -.container-default { - @include outer-container(); -} - -.container-custom-width { - @include outer-container(100%); -} diff --git a/test/pad.scss b/test/pad.scss deleted file mode 100644 index d9441e6e..00000000 --- a/test/pad.scss +++ /dev/null @@ -1,17 +0,0 @@ -@import "setup"; - -.pad-default { - @include pad; -} - -.pad-explicit { - @include pad(20px); -} - -.pad-shorthand { - @include pad(30px 20px 10px 5px); -} - -.pad-shorthand-default { - @include pad(30px default 10px default); -} diff --git a/test/row.scss b/test/row.scss deleted file mode 100644 index aaba8254..00000000 --- a/test/row.scss +++ /dev/null @@ -1,26 +0,0 @@ -@import "setup"; - -.row-default { - @include row; -} - -.row-table { - @include row(table); -} - -.row-invalid-display { - @include row(invalid-argument); -} - -.row-table-reset { - @include row(table); - - .block-child { - @include span-columns(4, block); - @include reset-display; - } -} - -.no-row { - @include span-columns(4); -} diff --git a/test/shift.scss b/test/shift.scss deleted file mode 100644 index 6a01b4c1..00000000 --- a/test/shift.scss +++ /dev/null @@ -1,36 +0,0 @@ -@import "setup"; - -.shift-default { - @include shift; -} - -.shift-positive { - @include shift(2); -} - -.shift-negative { - @include shift(-3); -} - -// Nesting -.shifted-parent { - @include span-columns(6); - - .shifted-child { - @include shift(2 of 6); - } -} - -.post-nested-shift { - @include shift(2); -} - -// Changing direction -section { - @include row($direction: RTL); - - .shift-negative { - @include shift(-3); - @include reset-layout-direction; - } -} diff --git a/test/span-columns.scss b/test/span-columns.scss deleted file mode 100644 index e85bd663..00000000 --- a/test/span-columns.scss +++ /dev/null @@ -1,21 +0,0 @@ -@import "setup"; - -.span-columns-default { - @include span-columns(6); - - .span-columns-nested { - @include span-columns(2 of 6); - } -} - -.span-columns-table { - @include span-columns(6, table); -} - -.span-columns-collapse { - @include span-columns(6, block-collapse); -} - -.span-columns-no-display { - @include span-columns(6, no-display); -} From 5da00ce3d2e652be3fc774e087ec178379ace9c2 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:51:04 -0500 Subject: [PATCH 110/269] Remove Sache --- .npmignore | 1 - bower.json | 1 - sache.json | 5 ----- 3 files changed, 7 deletions(-) delete mode 100644 sache.json diff --git a/.npmignore b/.npmignore index d4ee49e6..04903abc 100644 --- a/.npmignore +++ b/.npmignore @@ -13,5 +13,4 @@ neat.gemspec NEWS.md pkg/ Rakefile -sache.json spec/ diff --git a/bower.json b/bower.json index ae4ff9b1..293dfcf6 100644 --- a/bower.json +++ b/bower.json @@ -14,7 +14,6 @@ "bin", "lib", "neat.gemspec", - "sache.json", "spec" ], "keywords": [ diff --git a/sache.json b/sache.json deleted file mode 100644 index fe982e16..00000000 --- a/sache.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Neat", - "description": "A lightweight, semantic grid framework", - "tags": ["columns", "grid", "layout", "media", "media-queries", "neat", "queries", "sass", "scss", "semantic"] -} From 33c840a41daea1234ace6da19fac1fe4d851b439 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:53:08 -0500 Subject: [PATCH 111/269] Clear out contributing files --- .gitignore | 8 +- Gulpfile.js | 2 +- contrib/styles.scss | 294 +------------------------------------------- 3 files changed, 6 insertions(+), 298 deletions(-) diff --git a/.gitignore b/.gitignore index 493eb9a1..500787ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ -.DS_store -.sass-cache *gem *swp +.DS_store +.sass-cache +contrib/*.css Gemfile.lock +node_modules public tmp -contrib/*.css -node_modules diff --git a/Gulpfile.js b/Gulpfile.js index 979d6226..fac7baa3 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -5,7 +5,7 @@ var autoprefix = require("gulp-autoprefixer"), var paths = { scss: [ - "./app/assets/stylesheets/**/*.scss", + "./core/**/*.scss", "./contrib/styles.scss"] }; diff --git a/contrib/styles.scss b/contrib/styles.scss index 0576b53b..b2a82536 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1,293 +1 @@ -$visual-grid: true !global; - -// Grid Settings -$column: 90px; -$gutter: 30px; -$grid-columns: 12; -$max-width: 1200px; - -// Media -$medium-screen: 600px; -$large-screen: 900px; - -@import "../app/assets/stylesheets/neat"; - -$medium-screen-up: new-breakpoint(min-width $medium-screen 4); -$large-screen-up: new-breakpoint(min-width $large-screen 8); - -// Base -$base-line-height: 1.625; -$base-spacing: $base-line-height * 1em; - -// Visual Grid - -$visual-grid-color: #e6f6ff; -$visual-grid-opacity: 0.4; - -// Colors -$white: #fafafa; -$lightblue: #d5eefb; -$blue: #aadbf5; -$darkblue: #41a8df; -$darkerblue: #072f44; - -// Base -// ============================================ - -body { - color: $darkerblue; - font-family: sans-serif; - line-height: $base-line-height; - margin: 0 0 (1.5rem * 2); - text-align: center; -} - -h3 { - margin: 1em; -} - -a, -a:visited { - color: inherit; -} - -pre { - line-height: 1.6em; -} - -code { - display: block; -} - -// Header -// ============================================ - -.container { - margin: 0 auto; - max-width: 500px; - padding: 0 $gutter; - position: relative; -} - -.welcome-message { - @include clearfix(); - background-color: $blue; - margin-bottom: 1.5rem; - padding: $base-spacing 0; - text-align: center; -} - -.welcome-message-title { - font-weight: 200; - line-height: 1; -} - -// ============================================ - -.code { - @include outer-container(); - background-color: $lightblue; - padding: 0.5em; - text-align: center; -} - -.page-section { - @include outer-container; - background-color: $lightblue; - line-height: $base-line-height * 1.5; - margin-bottom: 3em; - text-align: center; -} - -.page-section-inner { - background-color: $blue; - font-size: 0.8em; - height: $base-line-height * 4rem; - line-height: $base-line-height; - margin-bottom: 2em; - padding: 1em; - text-align: left; -} - -// Zero -// ============================================ - -.zero-alpha, -.zero-beta { - @include span-columns(6); - height: $base-line-height * 4rem; - line-height: $base-line-height; - padding: 1em; - text-align: left; -} - -// First -// ============================================ - -.first-alpha { - @include span-columns(1); -} - -.first-beta { - @include span-columns(11); -} - -.first-gamma { - @include span-columns(2); -} - -.first-delta { - @include span-columns(10); -} - -.first-epsilon { - @include span-columns(3); -} - -.first-zeta { - @include span-columns(9); -} - -.first-eta { - @include span-columns(4); -} - -.first-theta { - @include span-columns(8); -} - -.first-iota { - @include span-columns(5); -} - -.first-kappa { - @include span-columns(7); -} - -.first-lambda { - @include span-columns(6); -} - -.first-mu { - @include span-columns(6); -} - -.first-beta, -.first-delta, -.first-zeta, -.first-theta, -.first-kappa, -.first-mu { - @include omega; -} - -// Second -// ============================================ - -.second-alpha { - @include span-columns(4); -} - -.second-beta { - @include span-columns(8); - line-height: $base-line-height * 2; - padding: 0; - text-align: center; -} - -.second-beta-alpha, -.second-beta-beta { - @include span-columns(4 of 8); - background-color: $lightblue; - height: 84%; - padding: 1em; -} - -// Third -// =================================== - -.third-dummy { - border-bottom: 0; - height: 5.5em; - text-align: center; -} - -.third-alpha { - @include fill-parent(); - @include row(table); - margin-bottom: 0; - padding: 0; -} - -.third-alpha-alpha { - @include span-columns(4); - border-right: 1px solid rgba($white, 0.5); -} - -.third-alpha-beta { - @include reset-display; - @include span-columns(8); - height: 20em; -} - -// Fourth -// =================================== - -.fourth { - - .fourth-alpha { - @include span-columns(6); - @include shift(3); - height: 20em; - text-align: center; - } -} - -// Fifth -// =================================== - -.fifth-box { - @include omega(4n); - @include span-columns(3); - font-size: 0.78em; - height: 8em; - margin-top: 2em; -} - -// Fifth -// =================================== - -.sixth { - @include media($medium-screen) { - font-size: 0.9em; - line-height: 1.5em; - } - - pre { - padding: 10px 0; - } -} - -.sixth-alpha, -.sixth-beta { - line-height: 2em; - min-height: 20em; - padding: 1em; - text-align: left; -} - -.sixth-alpha { - @include span-columns(4); - - @include media($medium-screen) { - @include span-columns(3); - } -} - -.sixth-beta { - @include span-columns(8); - - @include media($medium-screen) { - @include span-columns(3); - } -} +@import "../core/neat"; From f87b3ae17c32b488a3fb5a23b7dee39fd0b0da0a Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:53:30 -0500 Subject: [PATCH 112/269] Use https for RubyGems gem source --- Gemfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 755701e0..b4e2a20b 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,3 @@ -source "http://rubygems.org" +source "https://rubygems.org" -# Specify your gem's dependencies in neat.gemspec gemspec From 89a4576b2ce78ec6ba44fa213abee0510c0338d3 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 11:54:26 -0500 Subject: [PATCH 113/269] ABC --- bower.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index 293dfcf6..14281e35 100644 --- a/bower.json +++ b/bower.json @@ -6,14 +6,15 @@ "license": "MIT", "ignore": [ "**/.*", + "bin", + "bin", "CONTRIBUTING.md", "Gemfile", "Gemfile.lock", - "NEWS.md", - "Rakefile", - "bin", "lib", "neat.gemspec", + "NEWS.md", + "Rakefile", "spec" ], "keywords": [ From 8c23faa3fd5afd05e2d7b5a8497d5f30ccd974e8 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 3 Feb 2017 17:10:15 -0500 Subject: [PATCH 114/269] Remove Bourbon dependency --- neat.gemspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/neat.gemspec b/neat.gemspec index 733862ab..5ea24c20 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -9,11 +9,11 @@ Gem::Specification.new do |s| s.authors = ['Joel Oliveira', 'Kyle Fiedler', 'Reda Lemeden'] s.email = 'design+bourbon@thoughtbot.com' s.homepage = 'http://neat.bourbon.io' - s.summary = 'A lightweight, semantic grid framework' + s.summary = 'A lightweight grid framework' s.license = 'MIT' s.description = <<-DESC -Neat is a fluid grid framework built with the aim of being easy enough to use -out of the box and flexible enough to customize down the road. +Neat is a fluid grid framework with the aim of being easy +enough to use out of the box and flexible enough to customize down the road. DESC s.rubyforge_project = 'neat' From fd8efe97beac9e543e351994b1d38c4c110d409c Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 12:03:06 -0500 Subject: [PATCH 115/269] Update and clear out readme --- README.md | 174 +++++++----------------------------------------------- 1 file changed, 20 insertions(+), 154 deletions(-) diff --git a/README.md b/README.md index 04d77a2b..92e8a612 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( 1. Add Neat to your Gemfile: ```ruby - gem 'neat' + gem "neat" ``` 2. Then run: @@ -113,149 +113,6 @@ For command line help, visit our wiki page on Neat’s [command line interface]( 3. Follow the [instructions above](#installation) to install Neat into your project. -## Using Neat - -First off, if you are planning to override the default grid settings (12 columns), it is recommended to create a `_grid-settings.scss` file for that purpose. Make sure to import it right *before* importing Neat: - -```scss -@import "grid-settings"; -@import "neat/neat"; // or "neat" when in Rails -``` - -In your newly created `_grid-settings.scss`, import `neat-helpers` if you are planning to use `new-breakpoint()`, then define your new variables: - -```scss -@import "neat/neat-helpers"; // or "neat-helpers" when in Rails - -// Change the grid settings -$column: 90px; -$gutter: 30px; -$grid-columns: 10; -$max-width: 1200px; - -// Define your breakpoints -$tablet: new-breakpoint(max-width 768px 8); -$mobile: new-breakpoint(max-width 480px 4); -``` - -See the [docs](http://thoughtbot.github.io/neat-docs/latest/#variable) for a full list of settings. - -Next, include the `outer-container` mixin in the topmost container (to which the `max-width` setting will be applied): - -```scss -div.container { - @include outer-container; -} -``` - -Then use `span-columns` on any element to specify the number of columns it should span: - -```scss -div.element { - @include span-columns(6); -} -``` - -If the element’s parent isn’t the top-most container, you need to add the number of columns of the parent element to keep the right proportions: - -```scss -div.container { - @include outer-container; - - div.parent-element { - @include span-columns(8); - - div.element { - @include span-columns(6 of 8); - } - } -} -``` - -To make your layout responsive, use the `media()` mixin to modify both the grid and the layout: - -```scss -.my-class { - @include media($mobile) { // As defined in _grid-settings.scss - @include span-columns(2); - } -} - -// Compiled CSS -@media screen and (max-width: 480px) { - .my-class { - display: block; - float: left; - margin-right: 7.42297%; - width: 46.28851%; // 2 columns of the total 4 in this media context - } - .my-class:last-child { - margin-right: 0; - } -} -``` - -By setting `$visual-grid` to `true` in a file that is imported before -`neat-helpers` (or prior to `neat` itself if you are using the default -breakpoints), you can display the base grid in the background (default) or as an -overlay. You can even change the color and opacity of the grid-lines by -overriding the default settings as detailed in the section below. - -The visual grid reflects the changes applied to the grid via the `new-breakpoint()` mixin, as long as the media contexts are defined *before* importing Neat. - -## FAQ - -#### How do I use `omega()` in a mobile-first workflow? - -Using `omega()` with an `nth-child` pseudo selector in a mobile-first workflow will cause the style to be applied to wider-viewport media queries as well. That is the cascading nature of CSS. - -One solution would be to provide an `omega-reset()` mixin that negates the effect of `omega()` on that specific `nth-child` pseudo selector. While this is often the most suggested solution, it is also a lazy hack that outputs ugly code and can quickly get out of hand in complex layouts. As a general rule, having to *undo* CSS styles is a sign of poor stylesheet architecture (more about [CSS code smells](http://csswizardry.com/2012/11/code-smells-in-css/)). - -The other, more elegant, solution is to use mutually exclusive media queries, also referred to as [media-query -splitting](http://simurai.com/blog/2012/08/29/media-query-splitting). This would guarantee that `omega()` styles are only applied where desired. - -```scss -$first-breakpoint-value: 400px; -$second-breakpoint-value: 700px; -$medium-viewport: new-breakpoint(min-width $first-breakpoint-value max-width $second-breakpoint-value); -$large-viewport: new-breakpoint(min-width $second-breakpoint-value + 1); - -.element { - @include media($medium-viewport) { - @include span-columns(6); - @include omega(2n); - } - - @include media($large-viewport) { - @include span-columns(4); - @include omega(3n); - } -} -``` - -If, for some reason, you still think that `omega-reset` is the only way you want to go, check out Josh Fry’s [omega-reset](http://joshfry.me/blog/2013/05/13/omega-reset-for-bourbon-neat). - -#### Why are the elements not properly aligned with the visual grid? - -The visual grid is built using CSS gradients whose stops might contain decimal values depending on the default settings of your grid. In order to render the gradient, browsers round the pixel values since they can’t deal with pixel fractions. - -As a result the visual grid might be few pixels off in some browsers. The result is also inconsistent across browsers. For best results, preview your website on Firefox as it renders closest to the expected outcome. - -At this point, writing an internal rounding mechanism is not high priority. - -#### Framework X has this feature that Neat seems to be missing. Can you add it? - -Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), the answer is most likely going to be no. Neat is lightweight and simple compared to other grid frameworks, and strives to remain so. We have plans for adding new features in future versions of the framework, but these will be most likely to support new ways of working with layouts on the Web, not patches to existing ones. - -## Browser support - -- Chrome 10+ -- Firefox 29+ -- Internet Explorer 9+ (visual grid is IE 10 only) -- Internet Explorer 8 with [selectivizr](http://selectivizr.com) (no `media()` support) -- Opera 9.5+ -- Safari 5.1+ - ## The Bourbon family - [Bourbon](https://github.com/thoughtbot/bourbon): A simple and lightweight mixin library for Sass @@ -263,20 +120,29 @@ Unless you [open a pull request](https://github.com/thoughtbot/neat/compare/), t - [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects - [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters +Also check out [Proteus](https://github.com/thoughtbot/proteus), a collection of useful starter kits to help you prototype faster. Each kit comes with Bourbon, Neat and Bitters out-of-the-box. + +## Contributing + +See the [contributing] document. Thank you, [contributors]! + + [contributing]: CONTRIBUTING.md + [contributors]: https://github.com/thoughtbot/bourbon/graphs/contributors + ## License -Copyright © 2012–2015 [thoughtbot, inc](http://thoughtbot.com). Neat is free software, and may be redistributed under the terms specified in the [license](LICENSE.md). +Neat is copyright © 2011 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license]. + + [license]: LICENSE.md -## About thoughtbot +## About -[thoughtbot logo][hire] +Bourbon is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. -Neat is maintained and funded by thoughtbot, inc. -The names and logos for thoughtbot are trademarks of thoughtbot, inc. +[thoughtbot logo][thoughtbot] -We love open source software! -See [our other projects][community] -or [hire us][hire] to design, develop, and grow your product. +We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. -[community]: https://thoughtbot.com/community?utm_source=github -[hire]: https://thoughtbot.com/hire-us?utm_source=github + [thoughtbot]: https://thoughtbot.com?utm_source=github + [community]: https://thoughtbot.com/community?utm_source=github + [hire]: https://thoughtbot.com/hire-us?utm_source=github From f44d3eb20d651439bc05fa977b316ce916540280 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 12:04:16 -0500 Subject: [PATCH 116/269] Update SCSS-Lint to 0.44 --- .scss-lint.yml | 2 ++ neat.gemspec | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.scss-lint.yml b/.scss-lint.yml index 13455e27..e9144049 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -1,5 +1,7 @@ scss_files: "**/*.scss" +severity: warning + linters: BangFormat: enabled: true diff --git a/neat.gemspec b/neat.gemspec index 5ea24c20..3e2009dc 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -26,7 +26,7 @@ enough to use out of the box and flexible enough to customize down the road. s.add_dependency('sass', '>= 3.3') s.add_dependency("thor", "~> 0.19") - s.add_development_dependency("scss_lint", "~> 0.43") + s.add_development_dependency("scss_lint", "~> 0.44") s.add_development_dependency('aruba', '~> 0.5.0') s.add_development_dependency('bundler') s.add_development_dependency('css_parser') From 377f62e4cf4b6f412b2e7efcf48532978857beb0 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 24 Jan 2016 12:14:52 -0500 Subject: [PATCH 117/269] Update gemspec Reference: http://guides.rubygems.org/specification-reference/ --- neat.gemspec | 60 +++++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/neat.gemspec b/neat.gemspec index 3e2009dc..21da1e2f 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -1,37 +1,31 @@ -# coding: utf-8 -$:.push File.expand_path('../lib', __FILE__) -require 'neat/version' +$:.push File.expand_path("../lib", __FILE__) +require "neat/version" Gem::Specification.new do |s| - s.name = 'neat' - s.version = Neat::VERSION - s.platform = Gem::Platform::RUBY - s.authors = ['Joel Oliveira', 'Kyle Fiedler', 'Reda Lemeden'] - s.email = 'design+bourbon@thoughtbot.com' - s.homepage = 'http://neat.bourbon.io' - s.summary = 'A lightweight grid framework' - s.license = 'MIT' - s.description = <<-DESC -Neat is a fluid grid framework with the aim of being easy -enough to use out of the box and flexible enough to customize down the road. - DESC - - s.rubyforge_project = 'neat' - - s.files = `git ls-files`.split("\n") - s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.add_development_dependency "aruba", "~> 0.5.0" + s.add_development_dependency "css_parser" + s.add_development_dependency "rake" + s.add_development_dependency "rspec" + s.add_development_dependency "scss_lint", "~> 0.44" + s.add_runtime_dependency "sass", "~> 3.4" + s.add_runtime_dependency "thor", "~> 0.19" + s.authors = [ + "Joel Oliveira", + "Joshua Ogle", + "Kyle Fiedler", + "Reda Lemeden", + "Tyson Gach", + "Ward Penney", + "Will McMahan" + ] + s.email = "design+neat@thoughtbot.com" s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } - s.require_paths = ['lib'] - - s.add_dependency('sass', '>= 3.3') - s.add_dependency("thor", "~> 0.19") - - s.add_development_dependency("scss_lint", "~> 0.44") - s.add_development_dependency('aruba', '~> 0.5.0') - s.add_development_dependency('bundler') - s.add_development_dependency('css_parser') - s.add_development_dependency('rake') - s.add_development_dependency('rb-fsevent', '~> 0.9.1') - s.add_development_dependency('rdoc') - s.add_development_dependency('rspec') + s.files = `git ls-files`.split("\n") + s.homepage = "http://neat.bourbon.io" + s.license = "MIT" + s.name = "neat" + s.platform = Gem::Platform::RUBY + s.require_paths = ["lib"] + s.summary = "A lightweight Sass grid framework" + s.version = Neat::VERSION end From c3166e9b9bf0a8f98b1d9afe38fb3c02b876a5c0 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 29 Jan 2016 17:01:57 -0500 Subject: [PATCH 118/269] Use core/ as the primary Neat source directory --- bower.json | 2 +- core/.keep | 0 core/_neat.scss | 0 lib/neat.rb | 2 +- lib/tasks/install.rake | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 core/.keep create mode 100644 core/_neat.scss diff --git a/bower.json b/bower.json index 14281e35..73cea63a 100644 --- a/bower.json +++ b/bower.json @@ -2,7 +2,7 @@ "name": "neat", "description": "A lightweight, semantic grid framework", "version": "1.8.0", - "main": "app/assets/stylesheets/_neat.scss", + "main": "core/_neat.scss", "license": "MIT", "ignore": [ "**/.*", diff --git a/core/.keep b/core/.keep new file mode 100644 index 00000000..e69de29b diff --git a/core/_neat.scss b/core/_neat.scss new file mode 100644 index 00000000..e69de29b diff --git a/lib/neat.rb b/lib/neat.rb index 3507c0a1..82aeada4 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -15,6 +15,6 @@ class Railtie < ::Rails::Railtie end end else - Sass.load_paths << File.expand_path("../../app/assets/stylesheets", __FILE__) + Sass.load_paths << File.expand_path("../../core", __FILE__) end end diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake index 9097f7a8..c0ae7d70 100644 --- a/lib/tasks/install.rake +++ b/lib/tasks/install.rake @@ -7,7 +7,7 @@ namespace :neat do args.with_defaults(:sass_path => 'public/stylesheets/sass') source_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) FileUtils.mkdir_p("#{Rails.root}/#{args.sass_path}/neat") - FileUtils.cp_r("#{source_root}/app/assets/stylesheets/.", "#{Rails.root}/#{args.sass_path}/neat", { :preserve => true }) + FileUtils.cp_r("#{source_root}/core/.", "#{Rails.root}/#{args.sass_path}/neat", { :preserve => true }) Find.find("#{Rails.root}/#{args.sass_path}/neat") do |path| if path.end_with?(".css.scss") From 813a6931910fa34f4a136b92a2c87dcab92e1dfb Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 17:37:26 -0500 Subject: [PATCH 119/269] Remove Travis --- .npmignore | 1 - .travis.yml | 10 ---------- README.md | 2 +- 3 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 .travis.yml diff --git a/.npmignore b/.npmignore index 04903abc..329ad9d6 100644 --- a/.npmignore +++ b/.npmignore @@ -1,7 +1,6 @@ .gitignore .sass-cache .scss-lint.yml -.travis.yml _site bin/ bower.json diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f730332b..00000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: ruby -rvm: 2.0.0 -sudo: false -branches: - except: - - gh-pages - - gh-pages-dev -notifications: - slack: - secure: ROE+Zo+A6JmTjxCRGG539YaoEcLrsInEIrTDQMgtn5ucLaiPiau96VO+GJ4MyxZm2M5qlSRMFCxb3jFexCRVZctuUF2hFcXVi6a/+JGhMmYLd6XMNezhlxWwOoSx6ufSAlrlXEalsdnkzqVHuH2Y50ao/3slNo58DdLoaRJiGAc= diff --git a/README.md b/README.md index 92e8a612..5209fdb0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io) -[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Travis](http://img.shields.io/travis/thoughtbot/neat.svg?style=flat)](https://travis-ci.org/thoughtbot/neat) +[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) [![Gitter](http://img.shields.io/badge/gitter-neat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) [![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) From edcd916e62c4b191919f56fb8e1dc5ef408b43a8 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 17:38:10 -0500 Subject: [PATCH 120/269] Remove readme badges --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 5209fdb0..79254923 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ [![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io) -[![Gem Version](http://img.shields.io/gem/v/neat.svg?style=flat)](https://rubygems.org/gems/neat) -[![Gitter](http://img.shields.io/badge/gitter-neat-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/neat) -[![Stack Overflow](http://img.shields.io/badge/stack%20overflow-neat-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/neat) - ## A lightweight, semantic grid framework Neat is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road. From aa4aeafa53e4aafdcb723fee8e747e1ec2efac49 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 17:40:40 -0500 Subject: [PATCH 121/269] Clean up requirements - Remove Sass 3.2 support - Add LibSass requirement --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 79254923..8bc281fa 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,7 @@ for updates. ## Requirements -- [Sass](https://github.com/sass/sass) 3.3+ -- :warning: If you need **Sass 3.2 support**, you should [use Neat 1.5.1](#installing-older-versions-of-neat) +- Sass 3.4+ or LibSass 3.3+ ## Installation From 1218c616d16de2d53d73feeac847dd5e5b1e8e86 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 17:42:52 -0500 Subject: [PATCH 122/269] Neat, not Bourbon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8bc281fa..d81719ee 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Neat is copyright © 2011 [thoughtbot, inc.][thoughtbot] It is free software, an ## About -Bourbon is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. +Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. [thoughtbot logo][thoughtbot] From 6006f4d5d29f353b15d7b6e0f31f6a95b68eb048 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 11:22:53 -0500 Subject: [PATCH 123/269] Remove engine, Railtie, and install task This is an artifact left from the days before the Rails Assets Pipeline. Moving forward, this option of install will no longer be available and we'll only support Rails 4.2+. --- lib/neat.rb | 20 ++------------------ lib/neat/engine.rb | 5 ----- lib/tasks/install.rake | 19 ------------------- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 lib/neat/engine.rb delete mode 100644 lib/tasks/install.rake diff --git a/lib/neat.rb b/lib/neat.rb index 82aeada4..7f9ad1bd 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,20 +1,4 @@ -require "sass" require "neat/generator" -module Neat - if defined?(Rails) && defined?(Rails::Engine) - class Engine < ::Rails::Engine - require 'neat/engine' - end - - module Rails - class Railtie < ::Rails::Railtie - rake_tasks do - load "tasks/install.rake" - end - end - end - else - Sass.load_paths << File.expand_path("../../core", __FILE__) - end -end +neat_path = File.expand_path("../../core", __FILE__) +ENV["SASS_PATH"] = File.join([ENV["SASS_PATH"], neat_path].compact) diff --git a/lib/neat/engine.rb b/lib/neat/engine.rb deleted file mode 100644 index 11650d68..00000000 --- a/lib/neat/engine.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Neat - class Engine < Rails::Engine - # auto wire - end -end diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake deleted file mode 100644 index c0ae7d70..00000000 --- a/lib/tasks/install.rake +++ /dev/null @@ -1,19 +0,0 @@ -require "fileutils" -require "find" - -namespace :neat do - desc "Copy Neat's files to the Rails assets directory." - task :install, [:sass_path] do |t, args| - args.with_defaults(:sass_path => 'public/stylesheets/sass') - source_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) - FileUtils.mkdir_p("#{Rails.root}/#{args.sass_path}/neat") - FileUtils.cp_r("#{source_root}/core/.", "#{Rails.root}/#{args.sass_path}/neat", { :preserve => true }) - - Find.find("#{Rails.root}/#{args.sass_path}/neat") do |path| - if path.end_with?(".css.scss") - path_without_css_extension = path.gsub(/\.css\.scss$/, ".scss") - FileUtils.mv(path, path_without_css_extension) - end - end - end -end From 44319dfe8ef5f0d319b06dc993c5f71188377582 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 28 Feb 2016 11:25:04 -0500 Subject: [PATCH 124/269] Mention Rails version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d81719ee..ad23491d 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( It’s not recommended to add or modify the Neat files so that you can update them easily. -## Installation for Ruby on Rails +## Installation for Ruby on Rails 4.2+ 1. Add Neat to your Gemfile: From a22d3930df898807030f131ad2555439982fbb24 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 29 Feb 2016 19:08:29 -0500 Subject: [PATCH 125/269] Update path --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index c3f1395e..6443bccc 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,6 @@ var path = require("path"); module.exports = { includePaths: [ - path.join(__dirname, "app/assets/stylesheets"), + path.join(__dirname, "core") ] }; From 4959eb337736ef379ed8885c017d56f42a615d0b Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 29 Feb 2016 20:58:59 -0500 Subject: [PATCH 126/269] Update copyright year --- LICENSE.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 1be2ca78..198a9e32 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright © 2012–2015 [thoughtbot, inc.](http://thoughtbot.com) +Copyright © 2012 [thoughtbot, inc.](http://thoughtbot.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal diff --git a/README.md b/README.md index ad23491d..7ec1b287 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ See the [contributing] document. Thank you, [contributors]! ## License -Neat is copyright © 2011 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license]. +Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license]. [license]: LICENSE.md From 3e5e71bc6eb68080599924d398c270339daf1f55 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 29 Feb 2016 20:55:46 -0500 Subject: [PATCH 127/269] Clean up Rakefile --- Rakefile | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/Rakefile b/Rakefile index 22d3579e..1f920cad 100644 --- a/Rakefile +++ b/Rakefile @@ -1,18 +1,8 @@ -require 'rubygems' -require 'bundler' -require 'rspec/core/rake_task' +require "bundler" +require "rspec/core/rake_task" + Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new(:spec) task :default => :spec - -task :test do - puts "Generating CSS..." - `sass -I . --watch test:css/ --style expanded` -end - -task :clean do - puts "Deleting generated CSS..." - `rm -rf css/` -end From 07e015e0fb3e8e4749ece70f9a95cfe586583d73 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 11 Feb 2016 04:04:55 -0500 Subject: [PATCH 128/269] Add core grid functionality These changes introduce the use of `calc` within Neat, allowing for more flexible use of the system. This includes the use of static values (ie 1.25rem) for the grid's gutters, while having percentage values for a column's width, like 1/3 or 25%. --- core/.keep | 0 core/_neat.scss | 9 +++++++ core/neat/mixins/_grid-column.scss | 39 ++++++++++++++++++++++++++++++ core/neat/settings/_settings.scss | 17 +++++++++++++ 4 files changed, 65 insertions(+) delete mode 100644 core/.keep create mode 100644 core/neat/mixins/_grid-column.scss create mode 100644 core/neat/settings/_settings.scss diff --git a/core/.keep b/core/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/core/_neat.scss b/core/_neat.scss index e69de29b..93a18170 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -0,0 +1,9 @@ +@charset "UTF-8"; +// Neat 2.0.0-alpha.0 +// http://neat.bourbon.io +// Copyright 2012 thoughtbot, inc. +// MIT License + +@import "neat/settings/settings"; + +@import "neat/mixins/grid-column"; diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss new file mode 100644 index 00000000..3fcde592 --- /dev/null +++ b/core/neat/mixins/_grid-column.scss @@ -0,0 +1,39 @@ +@charset "UTF-8"; +/// Creates Neat a grid column of requested size. +/// +/// @argument {number (unitless)} $columns [1] +/// +/// @argument {map} $grid [$neat-default-grid] +/// The grid to be used to generate the column. By default, the global +/// `$neat-default-grid` will be used. +/// +/// @example scss +/// .element { +/// @include grid-column(3); +/// } +/// +/// @example css +/// .element { +/// width: calc(25% - 25px); +/// float: left; +/// margin-left: 20px; +/// } + +@mixin grid-column($columns: 1, $grid: $neat-default-grid) { + $_grid-columns: map-get($grid, columns); + $_grid-gutter: map-get($grid, gutter); + + $_column-ratio: $columns / $_grid-columns; + + @if $_grid-gutter > 0 { + $_gutter-affordance: $_grid-gutter + ($_grid-gutter * $_column-ratio); + $_column-width-calc: unquote("#{percentage($_column-ratio)} - #{$_gutter-affordance}"); + + width: calc(#{$_column-width-calc}); + } @else { + width: percentage($_column-ratio); + } + + float: left; + margin-left: $_grid-gutter; +} diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss new file mode 100644 index 00000000..7edda896 --- /dev/null +++ b/core/neat/settings/_settings.scss @@ -0,0 +1,17 @@ +@charset "UTF-8"; +/// Neat default grid. +/// +/// @type map +/// +/// @property {number (unitless)} columns 12 +/// Number of grid columns +/// +/// @property {number (with unit)} gutter 40px +/// Grid gutter width. +/// +/// @access private + +$neat-default-grid: ( + columns: 12, + gutter: 20px +); From 821160f0735819caaf39b655bd1c1f5ae6596905 Mon Sep 17 00:00:00 2001 From: Ward Penney Date: Tue, 1 Mar 2016 14:15:16 -0500 Subject: [PATCH 129/269] Contrib script and instructions --- CONTRIBUTING.md | 12 ++++++++++++ package.json | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d55b7d93..994a9bc8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,3 +36,15 @@ Some things that will increase the chance that your pull request is accepted: * Declarations within a block should be ordered alphabetically. * Blank lines between rules. * No trailing whitespace. Blank lines should not have any space. + +**Contrib examples** + +For user-facing changes, please provide an example in sample page contained in +the `./contrib` folder. Also, please put a screenshot of the changes into the +Pull Request. + +To see the `./contrib` example page: + +1. Install node +* Run `npm install` +* Run `npm run contrib` diff --git a/package.json b/package.json index 3ec3cf73..51f21a25 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "url": "https://github.com/thoughtbot/neat.git" }, "scripts": { - "test": "echo \"No test specified\"" + "test": "echo \"No test specified\"", + "contrib": "gulp" }, "dependencies": { "node-sass": "^3.4" From 33c76b977c67b900648d5c4508592ff01b241063 Mon Sep 17 00:00:00 2001 From: Ward Penney Date: Tue, 1 Mar 2016 14:15:27 -0500 Subject: [PATCH 130/269] Create container for floated grid * Add to contrib --- contrib/base/_grids.scss | 4 + contrib/base/_variables.scss | 3 + contrib/index.html | 269 +++++--------------------- contrib/patterns/_box.scss | 10 + contrib/patterns/_global.scss | 5 + contrib/patterns/_grid-nested.scss | 7 + contrib/patterns/_grid.scss | 15 ++ contrib/styles.scss | 8 + core/_neat.scss | 1 + core/neat/mixins/_grid-container.scss | 28 +++ 10 files changed, 127 insertions(+), 223 deletions(-) create mode 100644 contrib/base/_grids.scss create mode 100644 contrib/base/_variables.scss create mode 100644 contrib/patterns/_box.scss create mode 100644 contrib/patterns/_global.scss create mode 100644 contrib/patterns/_grid-nested.scss create mode 100644 contrib/patterns/_grid.scss create mode 100644 core/neat/mixins/_grid-container.scss diff --git a/contrib/base/_grids.scss b/contrib/base/_grids.scss new file mode 100644 index 00000000..73806731 --- /dev/null +++ b/contrib/base/_grids.scss @@ -0,0 +1,4 @@ +$grid--nested: ( + columns: 3, + gutter: 0, +); diff --git a/contrib/base/_variables.scss b/contrib/base/_variables.scss new file mode 100644 index 00000000..41cb5435 --- /dev/null +++ b/contrib/base/_variables.scss @@ -0,0 +1,3 @@ +$color-neat-blue: #53aee0; +$color-neat-orange: #ff7c56; +$color-white: #fff; diff --git a/contrib/index.html b/contrib/index.html index c24b40ea..2a38d52a 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -1,225 +1,48 @@ - - - - - - - Have fun ❤︎ - - - - -
-

Basic

-
- @include outer-container; -
- @include span-columns(6); -
-
- @include span-columns(6); -
-
-

Multiple rows

-
- @include outer-container; -
- (1) -
-
- - @include span-columns(11);
- @include omega(); -
-
-
- - @include span-columns(2); - -
-
- - @include span-columns(10);
- @include omega(); -
-
-
- - @include span-columns(3); - -
-
- - @include span-columns(9);
- @include omega(); -
-
-
- - @include span-columns(4); - -
-
- - @include span-columns(8);
- @include omega(); -
-
-
- - @include span-columns(5); - -
-
- - @include span-columns(7);
- @include omega(); -
-
-
- - @include span-columns(6); - -
-
- - @include span-columns(6);
- @include omega(); -
-
-
-

Nesting columns

-
- @include outer-container; -
- @include span-columns(4); -
-
- @include span-columns(8); - -
- @include span-columns(4 of 8); -
-
-
-

Table grid

-
- @include outer-container; -
- - @include fill-parent();
- @include row(table); -
-
-
- -
- - @include span-columns(8);
- @include reset-display; -
-
-
-
-

Shifting columns

-
- @include outer-container; -
- - @include span-columns(6);
- @include shift(3); -
-
-
-

Automatic rows

-
- @include outer-container; +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-  .box {
-    @include span-columns(3);
-    @include omega(4n);
-  }
-
-
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
- .box -
-
-

Media Queries

-
-
-  @include outer-container;
-  $mobile: new-breakpoint(max-width 500px 4);
-
-
-
-  @include span-columns(4);
-
-  @include media($mobile) {
-    @include span-columns(3);
-  }
-
-
-
-
-  @include span-columns(8);
-  @include media($mobile) {
-    @include span-columns(3);
-  }
-
-
-
-
- - +
+
+ + + + diff --git a/contrib/patterns/_box.scss b/contrib/patterns/_box.scss new file mode 100644 index 00000000..b3a52e3f --- /dev/null +++ b/contrib/patterns/_box.scss @@ -0,0 +1,10 @@ +.box { + background-color: $color-neat-blue; + height: 30px; + margin-bottom: 10px; +} + +.box--alt { + @extend .box; + border: 2px solid $color-neat-orange; +} diff --git a/contrib/patterns/_global.scss b/contrib/patterns/_global.scss new file mode 100644 index 00000000..0e2948b0 --- /dev/null +++ b/contrib/patterns/_global.scss @@ -0,0 +1,5 @@ +*, +*::before, +*::after { + box-sizing: border-box; +} diff --git a/contrib/patterns/_grid-nested.scss b/contrib/patterns/_grid-nested.scss new file mode 100644 index 00000000..703c09bb --- /dev/null +++ b/contrib/patterns/_grid-nested.scss @@ -0,0 +1,7 @@ +.grid--nested { + @include grid-container($grid--nested); +} + +.grid--nested__column { + @include grid-column(1, $grid--nested); +} diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss new file mode 100644 index 00000000..a3d6d304 --- /dev/null +++ b/contrib/patterns/_grid.scss @@ -0,0 +1,15 @@ +.grid { + @include grid-container; +} + +.grid__column { + @include grid-column; +} + +.grid__column--thirds { + @include grid-column(4); +} + +.grid__column--full { + @include grid-column(12); +} diff --git a/contrib/styles.scss b/contrib/styles.scss index b2a82536..a58782cd 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1 +1,9 @@ @import "../core/neat"; + +@import "base/grids"; +@import "base/variables"; + +@import "patterns/box"; +@import "patterns/global"; +@import "patterns/grid"; +@import "patterns/grid-nested"; diff --git a/core/_neat.scss b/core/_neat.scss index 93a18170..8e4323fd 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -7,3 +7,4 @@ @import "neat/settings/settings"; @import "neat/mixins/grid-column"; +@import "neat/mixins/grid-container"; diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss new file mode 100644 index 00000000..9b0dfc73 --- /dev/null +++ b/core/neat/mixins/_grid-container.scss @@ -0,0 +1,28 @@ +@charset "UTF-8"; +/// Creates Neat grid container with clearfix. +/// +/// @argument {map} $grid [$neat-default-grid] +/// The type of grid for this column. By default, the global +/// `$neat-default-grid` will be used. +/// +/// @example scss +/// .element { +/// @include grid-container; +/// } +/// +/// @example css +/// .element { +/// &::after { +/// clear: both; +/// content: ""; +/// display: block; +/// } +/// } + +@mixin grid-container($grid: $neat-default-grid) { + &::after { + clear: both; + content: ""; + display: block; + } +} From 432df2e586ecb8bf1e6254a2ddf6816e6d043d63 Mon Sep 17 00:00:00 2001 From: Ward Penney Date: Tue, 1 Mar 2016 14:15:30 -0500 Subject: [PATCH 131/269] Configure hound --- .hound.yml | 5 +++++ .scss-lint.yml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .hound.yml diff --git a/.hound.yml b/.hound.yml new file mode 100644 index 00000000..75e96ff9 --- /dev/null +++ b/.hound.yml @@ -0,0 +1,5 @@ +ruby: + enabled: true +scss: + config_file: .scss-lint.yml + enabled: true diff --git a/.scss-lint.yml b/.scss-lint.yml index e9144049..6936acae 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -149,7 +149,7 @@ linters: max_depth: 2 SelectorFormat: - enabled: false + enabled: true convention: hyphenated_BEM Shorthand: From f5fab068cf981cc707781e832002894b12cf4162 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 29 Feb 2016 20:50:12 -0500 Subject: [PATCH 132/269] Add releasing information --- RELEASING.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 RELEASING.md diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 00000000..b56a0734 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,27 @@ +# Releasing + +1. Update the version number in these places: + - `lib/neat/version.rb` + - `core/neat/_neat.scss` + - `package.json` + - `bower.json` + +1. Update `NEWS.md` + +1. Commit changes. Use the convention “Neat vX.X.X” in your commit message. + There shouldn’t be code changes, and thus CI doesn’t need to run. + +1. Run `rake release`, which tags the release, pushes the tag to GitHub, and + pushes the gem to RubyGems.org. + +1. Run `npm publish`, which pushes the new version to npm’s registry (if + releasing a pre-release, run `npm publish --tag beta`). + +1. Add a [new GitHub release](//github.com/thoughtbot/neat/releases/new). + +1. Re-generate and publish + the [documentation website](//github.com/thoughtbot/neat-docs), + using the available Gulp tasks. + +1. Announce the new release, making sure to say “thank you” to the contributors + who helped shape this version! From 9317ab68a271fa2ae7c73e02e61134548f25fd0f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 1 Mar 2016 14:14:09 -0500 Subject: [PATCH 133/269] Fix and improve documentation --- core/neat/mixins/_grid-column.scss | 3 +-- core/neat/mixins/_grid-container.scss | 15 ++++++--------- core/neat/settings/_settings.scss | 8 ++++---- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 3fcde592..00486e8d 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -4,8 +4,7 @@ /// @argument {number (unitless)} $columns [1] /// /// @argument {map} $grid [$neat-default-grid] -/// The grid to be used to generate the column. By default, the global -/// `$neat-default-grid` will be used. +/// The grid used to generate the column. /// /// @example scss /// .element { diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index 9b0dfc73..46a1fac1 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -1,9 +1,8 @@ @charset "UTF-8"; -/// Creates Neat grid container with clearfix. +/// Creates a Neat grid container with clearfix. /// /// @argument {map} $grid [$neat-default-grid] -/// The type of grid for this column. By default, the global -/// `$neat-default-grid` will be used. +/// The type of grid for this column. /// /// @example scss /// .element { @@ -11,12 +10,10 @@ /// } /// /// @example css -/// .element { -/// &::after { -/// clear: both; -/// content: ""; -/// display: block; -/// } +/// .element::after { +/// clear: both; +/// content: ""; +/// display: block; /// } @mixin grid-container($grid: $neat-default-grid) { diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 7edda896..f7494198 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -1,12 +1,12 @@ @charset "UTF-8"; -/// Neat default grid. +/// Neat’s default grid. /// /// @type map /// -/// @property {number (unitless)} columns 12 -/// Number of grid columns +/// @property {number (unitless)} columns [12] +/// Number of grid columns. /// -/// @property {number (with unit)} gutter 40px +/// @property {number (with unit)} gutter [20px] /// Grid gutter width. /// /// @access private From 442b10446e7b26c245ebcc9d9ea8d81d42526bf8 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 7 Mar 2016 10:35:26 -0500 Subject: [PATCH 134/269] Add bundle exec for rake release task --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index b56a0734..193dd407 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -11,7 +11,7 @@ 1. Commit changes. Use the convention “Neat vX.X.X” in your commit message. There shouldn’t be code changes, and thus CI doesn’t need to run. -1. Run `rake release`, which tags the release, pushes the tag to GitHub, and +1. Run `bundle exec rake release`, which tags the release, pushes the tag to GitHub, and pushes the gem to RubyGems.org. 1. Run `npm publish`, which pushes the new version to npm’s registry (if From ea449f494248db73d96a3e5f8b145334c8818f68 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 16 Jun 2016 09:52:39 -0400 Subject: [PATCH 135/269] Add push grid functionality --- contrib/index.html | 1 + contrib/patterns/_grid-push.scss | 3 +++ contrib/styles.scss | 1 + core/_neat.scss | 1 + core/neat/mixins/_grid-push.scss | 35 ++++++++++++++++++++++++++++++++ 5 files changed, 41 insertions(+) create mode 100644 contrib/patterns/_grid-push.scss create mode 100644 core/neat/mixins/_grid-push.scss diff --git a/contrib/index.html b/contrib/index.html index 2a38d52a..f5595ebc 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -42,6 +42,7 @@

Basic Floated Grid

+
diff --git a/contrib/patterns/_grid-push.scss b/contrib/patterns/_grid-push.scss new file mode 100644 index 00000000..0abd42b0 --- /dev/null +++ b/contrib/patterns/_grid-push.scss @@ -0,0 +1,3 @@ +.grid-push--3 { + @include grid-push(3); +} diff --git a/contrib/styles.scss b/contrib/styles.scss index a58782cd..80f13d90 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -7,3 +7,4 @@ @import "patterns/global"; @import "patterns/grid"; @import "patterns/grid-nested"; +@import "patterns/grid-push"; diff --git a/core/_neat.scss b/core/_neat.scss index 8e4323fd..eef4abc6 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -8,3 +8,4 @@ @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; +@import "neat/mixins/grid-push"; diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss new file mode 100644 index 00000000..3fcd97e1 --- /dev/null +++ b/core/neat/mixins/_grid-push.scss @@ -0,0 +1,35 @@ +@charset "UTF-8"; +/// Push or pull a Neat grid column. +/// +/// @argument {number (unitless)} $push [false] +/// +/// @argument {map} $grid [$neat-default-grid] +/// The grid to be used to generate the column. By default, the global +/// `$neat-default-grid` will be used. +/// +/// @example scss +/// .element { +/// @include grid-push(3); +/// } +/// +/// @example css +/// .element { +/// margin-left: calc((100% - (260px)) * 0.25 + 80px); +/// } + +@mixin grid-push($push: false, $grid: $neat-default-grid) { + $_grid-columns: map-get($grid, columns); + $_grid-gutter: map-get($grid, gutter); + + @if $push { + $_push-column-ratio: $push / $_grid-columns; + $_total-gutters: ($_grid-columns + 1) * $_grid-gutter; + $_gutter-affordance: $_grid-gutter * ($push + 1); + $_total-columns: "(100% - #{$_total-gutters})"; + $_margin-value: calc(#{unquote($_total-columns)} * #{$_push-column-ratio} + #{$_gutter-affordance}); + + margin-left: $_margin-value; + } @else { + margin-left: $_grid-gutter; + } +} From 98fd6e12f3d4dbfa608480d0d2e5b54cb4fc0ee5 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 11 Jul 2016 09:59:46 -0400 Subject: [PATCH 136/269] Fix SASS_PATH History: - We tried simplifying this in Bourbon and then also brought that change here to Neat: https://github.com/thoughtbot/bourbon/commit/73b09f618bd3189bf5af6f639e3df07680ed4fc7 - It then broke the world: https://github.com/thoughtbot/bourbon/pull/879 - We then went back: https://github.com/thoughtbot/bourbon/commit/a462ed2ac92db0e40ea2a7716eb7f5628e3ea523 This brings the fix update that we put in Bourbon here to Neat. --- lib/neat.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/neat.rb b/lib/neat.rb index 7f9ad1bd..f0b7c5ca 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,4 +1,7 @@ require "neat/generator" neat_path = File.expand_path("../../core", __FILE__) -ENV["SASS_PATH"] = File.join([ENV["SASS_PATH"], neat_path].compact) +ENV["SASS_PATH"] = [ + ENV["SASS_PATH"], + neat_path, +].compact.join(File::PATH_SEPARATOR) From 7a87e0e7520337f622da066c32b2c095e1af7a7b Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 8 Jul 2016 10:34:52 -0400 Subject: [PATCH 137/269] Add retrieve-neat-setting function `retrieve-neat-setting` takes the default map `$_neat-grid-default` and merges it with the map passed in to it (typically `$neat-grid`) and then retrieves the value for the key passed into it. --- core/_neat.scss | 2 ++ .../functions/_retrieve-neat-settings.scss | 18 ++++++++++++++++++ core/neat/mixins/_grid-column.scss | 8 ++++---- core/neat/mixins/_grid-container.scss | 4 ++-- core/neat/mixins/_grid-push.scss | 18 +++++++++--------- core/neat/settings/_settings.scss | 14 +++++++++++++- 6 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 core/neat/functions/_retrieve-neat-settings.scss diff --git a/core/_neat.scss b/core/_neat.scss index eef4abc6..69f3fdad 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -6,6 +6,8 @@ @import "neat/settings/settings"; +@import "neat/functions/retrieve-neat-settings"; + @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; @import "neat/mixins/grid-push"; diff --git a/core/neat/functions/_retrieve-neat-settings.scss b/core/neat/functions/_retrieve-neat-settings.scss new file mode 100644 index 00000000..fc196c85 --- /dev/null +++ b/core/neat/functions/_retrieve-neat-settings.scss @@ -0,0 +1,18 @@ +@charset "UTF-8"; +/// Return a Neat setting. +/// +/// @argument {map} $grid +/// +/// @argument {string} $setting +/// +/// @return {boolean | color | list | number | string} +/// +/// @example scss +/// _retrieve-neat-setting($neat-grid, columns) +/// +/// @access private + +@function _retrieve-neat-setting($grid, $setting) { + $_grid-settings: map-merge($_neat-grid-defaults, $grid); + @return map-get($_grid-settings, $setting); +} diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 00486e8d..1c4b1dad 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -3,7 +3,7 @@ /// /// @argument {number (unitless)} $columns [1] /// -/// @argument {map} $grid [$neat-default-grid] +/// @argument {map} $grid [$neat-grid] /// The grid used to generate the column. /// /// @example scss @@ -18,9 +18,9 @@ /// margin-left: 20px; /// } -@mixin grid-column($columns: 1, $grid: $neat-default-grid) { - $_grid-columns: map-get($grid, columns); - $_grid-gutter: map-get($grid, gutter); +@mixin grid-column($columns: 1, $grid: $neat-grid) { + $_grid-columns: _retrieve-neat-setting($grid, columns); + $_grid-gutter: _retrieve-neat-setting($grid, gutter); $_column-ratio: $columns / $_grid-columns; diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index 46a1fac1..ee1c18b6 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; /// Creates a Neat grid container with clearfix. /// -/// @argument {map} $grid [$neat-default-grid] +/// @argument {map} $grid [$neat-grid] /// The type of grid for this column. /// /// @example scss @@ -16,7 +16,7 @@ /// display: block; /// } -@mixin grid-container($grid: $neat-default-grid) { +@mixin grid-container($grid: $neat-grid) { &::after { clear: both; content: ""; diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index 3fcd97e1..6846268f 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -1,11 +1,11 @@ @charset "UTF-8"; /// Push or pull a Neat grid column. /// -/// @argument {number (unitless)} $push [false] +/// @argument {number (unitless)} $_push [false] /// -/// @argument {map} $grid [$neat-default-grid] +/// @argument {map} $_grid [$neat-grid] /// The grid to be used to generate the column. By default, the global -/// `$neat-default-grid` will be used. +/// `$neat-grid` will be used. /// /// @example scss /// .element { @@ -17,14 +17,14 @@ /// margin-left: calc((100% - (260px)) * 0.25 + 80px); /// } -@mixin grid-push($push: false, $grid: $neat-default-grid) { - $_grid-columns: map-get($grid, columns); - $_grid-gutter: map-get($grid, gutter); +@mixin grid-push($_push: false, $_grid: $neat-grid) { + $_grid-columns: _retrieve-neat-setting($_grid, columns); + $_grid-gutter: _retrieve-neat-setting($_grid, gutter); - @if $push { - $_push-column-ratio: $push / $_grid-columns; + @if $_push { + $_push-column-ratio: $_push / $_grid-columns; $_total-gutters: ($_grid-columns + 1) * $_grid-gutter; - $_gutter-affordance: $_grid-gutter * ($push + 1); + $_gutter-affordance: $_grid-gutter * ($_push + 1); $_total-columns: "(100% - #{$_total-gutters})"; $_margin-value: calc(#{unquote($_total-columns)} * #{$_push-column-ratio} + #{$_gutter-affordance}); diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index f7494198..dbeaeb44 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -11,7 +11,19 @@ /// /// @access private -$neat-default-grid: ( +$_neat-grid-defaults: ( columns: 12, gutter: 20px ); + +/// User overrides of Bourbon configuration settings. +/// +/// @type map +/// +/// @property {number (unitless)} columns [12] +/// Number of grid columns. +/// +/// @property {number (with unit)} gutter [20px] +/// Grid gutter width. + +$neat-grid: () !default; From facdd8989d5a8cbb573614dd70bcb9a1bcefc50d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 13 Jul 2016 16:26:07 -0400 Subject: [PATCH 138/269] Add `grid-calc` to abstract the calculation of column widths --- core/_neat.scss | 1 + core/neat/functions/_grid-calc.scss | 21 +++++++++++++++++++ core/neat/mixins/_grid-column.scss | 4 +--- core/neat/mixins/_grid-push.scss | 31 +++++++++++++---------------- 4 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 core/neat/functions/_grid-calc.scss diff --git a/core/_neat.scss b/core/_neat.scss index 69f3fdad..26754dae 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -7,6 +7,7 @@ @import "neat/settings/settings"; @import "neat/functions/retrieve-neat-settings"; +@import "neat/functions/grid-calc"; @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; diff --git a/core/neat/functions/_grid-calc.scss b/core/neat/functions/_grid-calc.scss new file mode 100644 index 00000000..a986c79e --- /dev/null +++ b/core/neat/functions/_grid-calc.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; +/// Return a calulated column width that can then be passed in to a `calc()`. +/// +/// @argument {map} $grid +/// +/// @argument {number} $columns +/// +/// @return {string} +/// +/// @example scss +/// _grid-calc($neat-grid, 4) +/// +/// @access private + +@function grid-calc($grid, $columns) { + $_column-ratio: $columns / _retrieve-neat-setting($grid, columns); + $_gutter: _retrieve-neat-setting($grid, gutter); + $_gutter-affordance: $_gutter + ($_gutter * $_column-ratio); + + @return unquote("#{percentage($_column-ratio)} - #{$_gutter-affordance}"); +} diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 1c4b1dad..ce87bde2 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -25,10 +25,8 @@ $_column-ratio: $columns / $_grid-columns; @if $_grid-gutter > 0 { - $_gutter-affordance: $_grid-gutter + ($_grid-gutter * $_column-ratio); - $_column-width-calc: unquote("#{percentage($_column-ratio)} - #{$_gutter-affordance}"); - width: calc(#{$_column-width-calc}); + width: calc(#{grid-calc($grid, $columns)}); } @else { width: percentage($_column-ratio); } diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index 6846268f..fe7e422b 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -1,11 +1,11 @@ @charset "UTF-8"; -/// Push or pull a Neat grid column. +/// Push or pull a Neat grid column by manipulating its left margin. /// -/// @argument {number (unitless)} $_push [false] +/// @argument {number (unitless)} $push [false] /// -/// @argument {map} $_grid [$neat-grid] -/// The grid to be used to generate the column. By default, the global -/// `$neat-grid` will be used. +/// @argument {map} $grid [$neat-grid] +/// The grid to be used to generate the column. +/// By default, the global `$neat-grid` will be used. /// /// @example scss /// .element { @@ -14,22 +14,19 @@ /// /// @example css /// .element { -/// margin-left: calc((100% - (260px)) * 0.25 + 80px); +/// margin-left: calc(25% - 25px + 40px); /// } -@mixin grid-push($_push: false, $_grid: $neat-grid) { - $_grid-columns: _retrieve-neat-setting($_grid, columns); - $_grid-gutter: _retrieve-neat-setting($_grid, gutter); - - @if $_push { - $_push-column-ratio: $_push / $_grid-columns; - $_total-gutters: ($_grid-columns + 1) * $_grid-gutter; - $_gutter-affordance: $_grid-gutter * ($_push + 1); - $_total-columns: "(100% - #{$_total-gutters})"; - $_margin-value: calc(#{unquote($_total-columns)} * #{$_push-column-ratio} + #{$_gutter-affordance}); +@mixin grid-push($push: false, $grid: $neat-grid) { + $_grid-columns: _retrieve-neat-setting($grid, columns); + $_grid-gutter: _retrieve-neat-setting($grid, gutter); + @if $push { + $_gutter-affordance: $_grid-gutter * 2; + $_margin-value: calc(#{unquote(grid-calc($grid, $push))} + #{$_gutter-affordance}); margin-left: $_margin-value; } @else { - margin-left: $_grid-gutter; + $_margin-value: _retrieve-neat-setting($grid, gutter); + margin-left: $_margin-value; } } From 0c0c53589a54fb7f91f8100c5a3d4929bd00f1ff Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 14 Jul 2016 08:44:36 -0400 Subject: [PATCH 139/269] Update gulpfile to watch contrib styles and not just core project files --- Gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gulpfile.js b/Gulpfile.js index fac7baa3..69931047 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -6,7 +6,7 @@ var autoprefix = require("gulp-autoprefixer"), var paths = { scss: [ "./core/**/*.scss", - "./contrib/styles.scss"] + "./contrib/**/*.scss"] }; gulp.task("sass", function () { From c0477db7998a9c14e52c6b56fdd4366ea9e1c212 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 13 Jul 2016 19:53:42 -0400 Subject: [PATCH 140/269] Update naming of `grid-calc()` to `_neat-column-width()` Naming a function "-grid-calc" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. --- core/_neat.scss | 2 +- .../functions/{_grid-calc.scss => _neat-column-width.scss} | 4 ++-- core/neat/mixins/_grid-column.scss | 2 +- core/neat/mixins/_grid-push.scss | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename core/neat/functions/{_grid-calc.scss => _neat-column-width.scss} (84%) diff --git a/core/_neat.scss b/core/_neat.scss index 26754dae..d730c0b7 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -7,7 +7,7 @@ @import "neat/settings/settings"; @import "neat/functions/retrieve-neat-settings"; -@import "neat/functions/grid-calc"; +@import "neat/functions/neat-column-width"; @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; diff --git a/core/neat/functions/_grid-calc.scss b/core/neat/functions/_neat-column-width.scss similarity index 84% rename from core/neat/functions/_grid-calc.scss rename to core/neat/functions/_neat-column-width.scss index a986c79e..e3c563d0 100644 --- a/core/neat/functions/_grid-calc.scss +++ b/core/neat/functions/_neat-column-width.scss @@ -8,11 +8,11 @@ /// @return {string} /// /// @example scss -/// _grid-calc($neat-grid, 4) +/// _neat-column-width($neat-grid, 4) /// /// @access private -@function grid-calc($grid, $columns) { +@function _neat-column-width($grid, $columns) { $_column-ratio: $columns / _retrieve-neat-setting($grid, columns); $_gutter: _retrieve-neat-setting($grid, gutter); $_gutter-affordance: $_gutter + ($_gutter * $_column-ratio); diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index ce87bde2..659eb5d9 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -26,7 +26,7 @@ @if $_grid-gutter > 0 { - width: calc(#{grid-calc($grid, $columns)}); + width: calc(#{_neat-column-width($grid, $columns)}); } @else { width: percentage($_column-ratio); } diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index fe7e422b..ce4bbfaf 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -23,7 +23,7 @@ @if $push { $_gutter-affordance: $_grid-gutter * 2; - $_margin-value: calc(#{unquote(grid-calc($grid, $push))} + #{$_gutter-affordance}); + $_margin-value: calc(#{_neat-column-width($grid, $push)} + #{$_gutter-affordance}); margin-left: $_margin-value; } @else { $_margin-value: _retrieve-neat-setting($grid, gutter); From 141cbbd7667386b8931580d374e52b601f5276bc Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 13 Jul 2016 22:07:28 -0400 Subject: [PATCH 141/269] Added a shorthand for custom grids like `2 of 5` This feature is a carryover from Neat 1.x. While it should be considered an advanced feature, It can be useful on a component level. The "official" way to do this is to create a map for your sub-grid and pass it in to the mixin. To achieve this, `neat-column-ratio` determines the ratio of the `$column` to the total columns as defined in `$neat-grid` if it detects multiple values (a list), it will pass the value to the `neat-parse-column`. This function will return the third value assuming this is meant to be the total column value. --- contrib/index.html | 12 ++++++++++ contrib/patterns/_grid-push.scss | 4 ++++ contrib/patterns/_grid.scss | 8 +++++++ core/_neat.scss | 2 ++ core/neat/functions/_neat-column-ratio.scss | 24 ++++++++++++++++++++ core/neat/functions/_neat-column-width.scss | 2 +- core/neat/functions/_neat-parse-columns.scss | 22 ++++++++++++++++++ 7 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 core/neat/functions/_neat-column-ratio.scss create mode 100644 core/neat/functions/_neat-parse-columns.scss diff --git a/contrib/index.html b/contrib/index.html index f5595ebc..4b120434 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -35,6 +35,9 @@

Basic Floated Grid

+
+

Nested Grid

+
@@ -42,7 +45,16 @@

Basic Floated Grid

+
+

Push Grid

+
+
+

Shorthand Sub-Grid

+
+
+
+
diff --git a/contrib/patterns/_grid-push.scss b/contrib/patterns/_grid-push.scss index 0abd42b0..8e016f57 100644 --- a/contrib/patterns/_grid-push.scss +++ b/contrib/patterns/_grid-push.scss @@ -1,3 +1,7 @@ .grid-push--3 { @include grid-push(3); } + +.grid-push--2-of-5 { + @include grid-push(2 of 5); +} diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss index a3d6d304..8b96f18a 100644 --- a/contrib/patterns/_grid.scss +++ b/contrib/patterns/_grid.scss @@ -13,3 +13,11 @@ .grid__column--full { @include grid-column(12); } + +.grid__column--3-of-5 { + @include grid-column(3 of 5); +} + +.grid__column--2-of-5 { + @include grid-column(2 of 5); +} diff --git a/core/_neat.scss b/core/_neat.scss index d730c0b7..21fe3394 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -8,6 +8,8 @@ @import "neat/functions/retrieve-neat-settings"; @import "neat/functions/neat-column-width"; +@import "neat/functions/neat-column-ratio"; +@import "neat/functions/neat-parse-columns"; @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; diff --git a/core/neat/functions/_neat-column-ratio.scss b/core/neat/functions/_neat-column-ratio.scss new file mode 100644 index 00000000..f55934de --- /dev/null +++ b/core/neat/functions/_neat-column-ratio.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; +/// Determine the ratio of `$columns` to the total column count. +/// If `$columns` is more than one value, they are handed to +/// `_neat-parse-columns()` which will detirmine the total columns and use this +/// value instead of `total-columns`. +/// +/// @argument {map} $grid +/// +/// @argument {number | list} $columns +/// +/// @return {number} +/// +/// @example scss +/// _neat-column-ratio($grid, 3) +/// +/// @access private + +@function _neat-column-ratio($grid, $columns) { + @if length($columns) > 1 { + @return nth($columns, 1) / _neat-parse-columns($columns); + } @else if $columns { + @return $columns / _retrieve-neat-setting($grid, columns); + } +} diff --git a/core/neat/functions/_neat-column-width.scss b/core/neat/functions/_neat-column-width.scss index e3c563d0..1a22c1d2 100644 --- a/core/neat/functions/_neat-column-width.scss +++ b/core/neat/functions/_neat-column-width.scss @@ -13,7 +13,7 @@ /// @access private @function _neat-column-width($grid, $columns) { - $_column-ratio: $columns / _retrieve-neat-setting($grid, columns); + $_column-ratio: _neat-column-ratio($grid, $columns); $_gutter: _retrieve-neat-setting($grid, gutter); $_gutter-affordance: $_gutter + ($_gutter * $_column-ratio); diff --git a/core/neat/functions/_neat-parse-columns.scss b/core/neat/functions/_neat-parse-columns.scss new file mode 100644 index 00000000..e46fccf3 --- /dev/null +++ b/core/neat/functions/_neat-parse-columns.scss @@ -0,0 +1,22 @@ +@charset "UTF-8"; +/// Parse a column count like `3 of 5` and retur the total coloumn count. +/// This is to allow a shorthand for custom grids without using a settings map. +/// +/// +/// @argument {list} $span +/// +/// @return {number} +/// +/// @example scss +/// _neat-parse-columns(3 of 5) +/// +/// @access private + +@function _neat-parse-columns($span) { + @if length($span) == 3 { + $_total-columns: nth($span, 3); + @return $_total-columns; + } @else if length($span) == 2 or if length($span) >= 3 { + @error "`$column` should contain 2 values, seperated by an `of`"; + } +} From 98d3f8c5b60e430007eb044535d9289a6bbd4e05 Mon Sep 17 00:00:00 2001 From: Ward Penney Date: Tue, 1 Mar 2016 13:18:44 -0500 Subject: [PATCH 142/269] Remove unused dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51f21a25..b7e695ed 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "contrib": "gulp" }, "dependencies": { - "node-sass": "^3.4" + "node-sass": "^3.8" }, "devDependencies": { "gulp": "^3.9", From 20b9d0663195f441552707f96d4729db69bcdf3a Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 14 Jul 2016 14:14:42 -0400 Subject: [PATCH 143/269] Rename NEWS to CHANGELOG and bring content up to date --- NEWS.md => CHANGELOG.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename NEWS.md => CHANGELOG.md (100%) diff --git a/NEWS.md b/CHANGELOG.md similarity index 100% rename from NEWS.md rename to CHANGELOG.md From 7805dbb132b060e5f1b93e4a5a0e5f75b6e1ee93 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 14 Jul 2016 21:01:50 -0400 Subject: [PATCH 144/269] Update changelog content --- CHANGELOG.md | 299 +++++++++++++++++++++++++++++++++++++++++++++------ RELEASING.md | 2 +- 2 files changed, 267 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 076a75a4..e40927dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,47 +1,280 @@ -### 1.3.0 (2013-05-03) +# Change Log - * New: Add global RTL layout support - * New: Add row-specific RTL layout support - * New: Add auto-clearing for elements using `omega(nth-child)` (works only with simple nth-child arguments due to limited string operations in Sass) - * New: `reset-display`, `reset-layout-direction`, and `reset-all` for all your reset needs! - * Fix: The visual grid no longer blocks user interactions - * Deprecate: `omega()` will no longer take `$direction` in favor of `row($direction)` or `$default-layout-direction` +All notable changes to this project will be documented in this file. This +project adheres to [Semantic Versioning](http://semver.org). -### 1.2.1 (2013-04-04) +## [Unreleased] - * New: Add stylesheets path to Sass.load_paths - * Fixed: Force full-width and fixed table-layout on `row(table)` - * Official Docset +### Added -### 1.2.0 (2013-02-18) +- Added core grid functionality in `grid-column` +- Added improved documentation and releasing information +- Added `grid-container` for floated grid which contains a simple clearfix +- Added `grid-push` functionality +- Added `neat-setting-retrieve` function +- Added `grid-calc` to abstract the calculation of column widths - * New: Auto-detect table layout when `span-columns()` is called inside `row(table)` - * Fix: Make `shift()` reset context after each nested call +### Changed -### 1.1.0 (2013-01-09) - - * New: `pad()` takes shorthand arguments - * Refactor: Merge `omega()` and `nth-omega()` - * Fix: Last child in table layouts keeps its right-padding +- Use `core/` as the primary Neat source directory -### 1.0.2 (2012-11-19) +### Removed - * Fix: Add explicit require to the bourbon gem [#38](https://github.com/thoughtbot/neat/issues/38) +- Removed all previous Neat Sass + - Mixins + - `direction-context` has been removed + - `display-context` has been removed + - `fill-parent` has been removed + - `media` has been removed + - `omega` has been removed + - `outer-container` has been removed + - `pad` has been removed + - `row` has been removed + - `shift` has been removed + - `shift-in-context` has been removed + - `span-columns` has been removed + - `reset-display` has been removed + - `reset-layout-direction` has been removed + - `reset-all` has been removed + - Functions + - `new-breakpoint` has been removed + - Variables + - `$disable-warnings` has been removed + - `$column` has been removed + - `$gutter` has been removed + - `$grid-columns` has been removed + - `$max-width` has been removed + - `$border-box-sizing` has been removed + - `$default-feature` has been removed + - `$default-layout-direction` has been removed + - `$visual-grid` has been removed + - `$visual-grid-color` has been removed + - `$visual-grid-index` has been removed + - `$visual-grid-opacity` has been removed -### 1.0.1 (2012-11-06) +## 1.8.0 - 2016-06-21 - * Fix: Make `em()` always return a number - * Fix: Relative path imports in Rails +### Added -### 1.0.0 (2012-10-29) +- Added `--version` and `-v` options to the CLI now has that show the version of + Neat you have installed - * New: Add executable for non-Rails projects - * New: Add visual grid - * New: Add `media` and `new-breakpoint` mixins - * New: Add `_neat-helpers.scss` as a public interface for Neat - * Fix: Make `shift()` work properly in nested contexts - * Refactor: Remove typography mixins and settings +### Removed -### 0.4.2 (2012-08-31) +- Neat no longer requires Bourbon - * Initial release +## 1.7.4 - 2016-03-04 + +### Added + +- Added an explicit sass requirement + +## 1.7.3 - 2016-02-29 + +### Added + +- Added eyeglass support + +### Changed + +- Neat's npm package now includes the proper Sass paths +- The default `$max-width` is now `1200px` + +## 1.7.2 - 2015-03-13 + +### Added + +- Added Bourbon's updated `modular-scale` function for grid settings + +### Removed + +- Removed prefixes for `box-sizing` + +## 1.7.1 - 2015-01-02 + +### Added + +- Added custom `not` function for Libsass 3.0 compatibility + +### Changed + +- Fixed bug related to the `omega`'s query argument + +## 1.7.0 - 2014-10-17 + +### Added + +- Full compatibility with Sass 3.4+ and Libsass 3.0+ + +### Changed + +- `direction-context` mixin changes the direction inside an entire block. +- `display-context` mixin changes the display property inside an entire block. +- `outer-container` now takes a max-width argument + +### Removed + +- Removed `reset-direction` +- Removed `reset-display` + +## 1.5.1 - 2014-04-06 + +### Added + +- Restore compatibility with Sass 3.2.x + +## 1.6.0 - 2014-03-28 + +### Added +- Added multiple media queries support to the `media` mixin, including queries + such as orientation + +### Changed +- Updated to Sass 3.3 and silence `!global` variable warnings +- Use absolute percentage widths for table displays + +### Removed + +- Passing table no longer adds padding to elements +- Omega no longer supports table display + +## 1.6.0.pre2 - 2014-03-21 + +### Changed + +- Use Sass 3.3 and silence global variable warnings + +## 1.6.0.pre - 2014-02-10 + +### Added + +- Added multiple media queries support to the `media` mixin, including queries + such as orientation + +### Changed + +- Use absolute percentage widths for table displays + +### Removed + +- Passing table no longer adds padding to elements +- Omega no longer supports table display + +## 1.5.0 - 2013-22-15 + +### Added + +- Added the ability for `span-columns` to omit display property from the output +- Improved browser support + +### Changed + +- Renamed `span-columns` collapse argument to block-collapse +- Made `shift` take parent column argument (useful when other `span-columns` + calls override the nesting context) + +## 1.4.0 - 2013-08-28 + +### Added + +- Added collapse argument to `span-columns` in order to remove gutter + +### Changed + +- Fixed visual grid overrides by reordering breakpoints +- Unified padding across table cells +- Specified comma as separator for gradient-stops append for libsass + +### Removed + +## 1.3.0 - 2013-05-03 + +### Added + +- Added global RTL layout support +- Added row-specific RTL layout support +- Added auto-clearing for elements using `omega(nth-child)` (works only with + simple `nth-child` arguments due to limited string operations in Sass) + +### Changed + +- `reset-display`, `reset-layout-direction`, and `reset-all` for all your reset needs! + +### Removed + +- The visual grid no longer blocks user interactions +- `omega` will no longer take `$direction` in favor of `row($direction)` or + `$default-layout-direction` + + +## 1.2.1 - 2013-04-04 + +### Added + +- Added stylesheets path to `Sass.load_paths` +- Official Docset + +### Changed + +- Force full-width and fixed table-layout on `row(table)` + +## 1.2.0 - 2013-02-18 + +### Added + +- Auto-detect table layout when `span-columns` is called inside `row(table)` + +### Changed + +- Make `shift` reset context after each nested call + +## 1.1.0 - 2013-01-09 + +### Added + +- `pad` takes shorthand arguments + +### Changed + +- Merge `omega` and `nth-omega` +- Last child in table layouts keeps its right-padding + +## 1.0.2 - 2012-11-19 + +### Added + +- Add explicit require to the bourbon gem + [#38](https://github.com/thoughtbot/neat/issues/38) + +## 1.0.1 - 2012-11-06 + +### Added + +- Relative path imports in Rails + +### Changed + +- Make `em` always return a number + +## 1.0.0 - 2012-10-29 + +### Added + +- Added executable for non-Rails projects +- Added visual grid +- Added `media` and `new-breakpoint` mixins +- Added `_neat-helpers.scss` as a public interface for Neat + +### Changed + +- Made `shift` work properly in nested contexts + +### Removed + +- Removed typography mixins and settings + +## 0.4.2 - 2012-08-31 + +- Initial release + +[Unreleased]: https://github.com/thoughtbot/neat/compare/v1.8.0...neat-2.0.0 diff --git a/RELEASING.md b/RELEASING.md index 193dd407..a1a7ec80 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -6,7 +6,7 @@ - `package.json` - `bower.json` -1. Update `NEWS.md` +1. Update `CHANGELOG.md` 1. Commit changes. Use the convention “Neat vX.X.X” in your commit message. There shouldn’t be code changes, and thus CI doesn’t need to run. From 870993ae0def680a45f19509eea4938c7a2063f6 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 16:35:22 -0400 Subject: [PATCH 145/269] Remove private functions from changelog --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e40927dc..877077fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,11 @@ project adheres to [Semantic Versioning](http://semver.org). ### Added +- Added `$neat-grid` map to store user defined default grid properties - Added core grid functionality in `grid-column` - Added improved documentation and releasing information - Added `grid-container` for floated grid which contains a simple clearfix - Added `grid-push` functionality -- Added `neat-setting-retrieve` function -- Added `grid-calc` to abstract the calculation of column widths ### Changed From 01299d518a897110d845400e402bbe17854ce515 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 12:49:23 -0400 Subject: [PATCH 146/269] Update `neat-settings` documentation --- core/neat/settings/_settings.scss | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index dbeaeb44..da52011e 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -4,19 +4,21 @@ /// @type map /// /// @property {number (unitless)} columns [12] -/// Number of grid columns. +/// Deefault number of grid columns. /// /// @property {number (with unit)} gutter [20px] -/// Grid gutter width. +/// Default grid gutter width. /// /// @access private $_neat-grid-defaults: ( columns: 12, - gutter: 20px + gutter: 20px, ); -/// User overrides of Bourbon configuration settings. +/// This variable is a sass map that overrides Neat's default grid settings. +/// Use this to define your project's grid properties incluting gutters, and +/// total column count. /// /// @type map /// @@ -25,5 +27,11 @@ $_neat-grid-defaults: ( /// /// @property {number (with unit)} gutter [20px] /// Grid gutter width. +/// +/// @example scss +/// $neat-grid: ( +/// columns: 12, +/// gutter: 20px, +/// ); $neat-grid: () !default; From 12e64577437cddf6c566afb5d0ffd767194eb71b Mon Sep 17 00:00:00 2001 From: Joshua Ogle Date: Fri, 15 Jul 2016 13:01:36 -0600 Subject: [PATCH 147/269] Add tests - Restore test suite from pre-2.0 with updates from Bourbon tests - Add tests for grid-calc - Add tests for retrieve-neat-settings - Add tests for grid-columns - Add tests for grid-container - Add tests for grid-push - Rename spec files from grid calc to neat-column-width --- circle.yml | 13 +++ package.json | 4 +- spec/fixtures/_setup.scss | 1 + .../fixtures/functions/neat-column-width.scss | 30 +++++++ .../functions/retrieve-neat-settings.scss | 22 +++++ spec/fixtures/mixins/grid-column.scss | 47 ++++++++++ spec/fixtures/mixins/grid-container.scss | 5 ++ spec/fixtures/mixins/grid-push.scss | 30 +++++++ spec/neat/functions/neat_column_width_spec.rb | 47 ++++++++++ .../functions/retrieve_neat_settings_spec.rb | 35 ++++++++ spec/neat/mixins/grid_column_spec.rb | 85 +++++++++++++++++++ spec/neat/mixins/grid_container_spec.rb | 17 ++++ spec/neat/mixins/grid_push_spec.rb | 47 ++++++++++ spec/spec_helper.rb | 22 +++++ spec/support/matchers/be_contained_in.rb | 10 +++ spec/support/matchers/have_rule.rb | 35 ++++++++ spec/support/matchers/have_ruleset.rb | 20 +++++ spec/support/matchers/have_value.rb | 17 ++++ spec/support/parser_support.rb | 16 ++++ spec/support/sass_support.rb | 10 +++ 20 files changed, 511 insertions(+), 2 deletions(-) create mode 100644 circle.yml create mode 100644 spec/fixtures/_setup.scss create mode 100644 spec/fixtures/functions/neat-column-width.scss create mode 100644 spec/fixtures/functions/retrieve-neat-settings.scss create mode 100644 spec/fixtures/mixins/grid-column.scss create mode 100644 spec/fixtures/mixins/grid-container.scss create mode 100644 spec/fixtures/mixins/grid-push.scss create mode 100644 spec/neat/functions/neat_column_width_spec.rb create mode 100644 spec/neat/functions/retrieve_neat_settings_spec.rb create mode 100644 spec/neat/mixins/grid_column_spec.rb create mode 100644 spec/neat/mixins/grid_container_spec.rb create mode 100644 spec/neat/mixins/grid_push_spec.rb create mode 100644 spec/spec_helper.rb create mode 100644 spec/support/matchers/be_contained_in.rb create mode 100644 spec/support/matchers/have_rule.rb create mode 100644 spec/support/matchers/have_ruleset.rb create mode 100644 spec/support/matchers/have_value.rb create mode 100644 spec/support/parser_support.rb create mode 100644 spec/support/sass_support.rb diff --git a/circle.yml b/circle.yml new file mode 100644 index 00000000..ab27bd71 --- /dev/null +++ b/circle.yml @@ -0,0 +1,13 @@ +dependencies: + override: + - bundle install + - npm install -g sassdoc +general: + branches: + ignore: + - gh-pages +test: + override: + - bundle exec rake + post: + - sassdoc core/ --parse --verbose --strict diff --git a/package.json b/package.json index b7e695ed..5679ae29 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ "url": "https://github.com/thoughtbot/neat.git" }, "scripts": { - "test": "echo \"No test specified\"", - "contrib": "gulp" + "contrib": "gulp", + "test": "bundle exec rake" }, "dependencies": { "node-sass": "^3.8" diff --git a/spec/fixtures/_setup.scss b/spec/fixtures/_setup.scss new file mode 100644 index 00000000..2dca0eea --- /dev/null +++ b/spec/fixtures/_setup.scss @@ -0,0 +1 @@ +@import "core/neat"; diff --git a/spec/fixtures/functions/neat-column-width.scss b/spec/fixtures/functions/neat-column-width.scss new file mode 100644 index 00000000..d7f9d46f --- /dev/null +++ b/spec/fixtures/functions/neat-column-width.scss @@ -0,0 +1,30 @@ +@import "setup"; + +$six-grid: ( + columns: 6, + gutter: 10px +); + +.neat-column-width-1-of-12 { + width: calc(#{_neat-column-width($neat-grid, 1)}); +} + +.neat-column-width-6-of-12 { + width: calc(#{_neat-column-width($neat-grid, 6)}); +} + +.neat-column-width-12-of-12 { + width: calc(#{_neat-column-width($neat-grid, 12)}); +} + +.neat-column-width-1-of-6 { + width: calc(#{_neat-column-width($six-grid, 1)}); +} + +.neat-column-width-2-of-6 { + width: calc(#{_neat-column-width($six-grid, 2)}); +} + +.neat-column-width-6-of-6 { + width: calc(#{_neat-column-width($six-grid, 6)}); +} diff --git a/spec/fixtures/functions/retrieve-neat-settings.scss b/spec/fixtures/functions/retrieve-neat-settings.scss new file mode 100644 index 00000000..eee68fa1 --- /dev/null +++ b/spec/fixtures/functions/retrieve-neat-settings.scss @@ -0,0 +1,22 @@ +@import "setup"; + +$eighteen-grid: ( + columns: 18, + gutter: 33px +); + +.neat-settings-default-columns { + content: _retrieve-neat-setting($neat-grid, columns); +} + +.neat-settings-default-gutter { + content: _retrieve-neat-setting($neat-grid, gutter); +} + +.neat-settings-eighteen-columns { + content: _retrieve-neat-setting($eighteen-grid, columns); +} + +.neat-settings-eighteen-gutter { + content: _retrieve-neat-setting($eighteen-grid, gutter); +} diff --git a/spec/fixtures/mixins/grid-column.scss b/spec/fixtures/mixins/grid-column.scss new file mode 100644 index 00000000..c55c6309 --- /dev/null +++ b/spec/fixtures/mixins/grid-column.scss @@ -0,0 +1,47 @@ +@import "setup"; + +$six-grid: ( + columns: 6, + gutter: 1em +); + +$seventeen-grid: ( + columns: 17, + gutter: 10px +); + +.grid-column-1-of-default { + @include grid-column(1); +} + +.grid-column-6-of-default { + @include grid-column(6); +} + +.grid-column-12-of-default { + @include grid-column(12); +} + +.grid-column-1-of-6 { + @include grid-column(1, $six-grid); +} + +.grid-column-4-of-6 { + @include grid-column(4, $six-grid); +} + +.grid-column-6-of-6 { + @include grid-column(6, $six-grid); +} + +.grid-column-5-of-17 { + @include grid-column(1, $seventeen-grid); +} + +.grid-column-11-of-17 { + @include grid-column(6, $seventeen-grid); +} + +.grid-column-13-of-17 { + @include grid-column(12, $seventeen-grid); +} diff --git a/spec/fixtures/mixins/grid-container.scss b/spec/fixtures/mixins/grid-container.scss new file mode 100644 index 00000000..1557ec35 --- /dev/null +++ b/spec/fixtures/mixins/grid-container.scss @@ -0,0 +1,5 @@ +@import "setup"; + +.grid-container { + @include grid-container; +} diff --git a/spec/fixtures/mixins/grid-push.scss b/spec/fixtures/mixins/grid-push.scss new file mode 100644 index 00000000..47561525 --- /dev/null +++ b/spec/fixtures/mixins/grid-push.scss @@ -0,0 +1,30 @@ +@import "setup"; + +$six-grid: ( + columns: 6, + gutter: 2rem +); + +.grid-push-default { + @include grid-push; +} + +.grid-push-1-default { + @include grid-push(1); +} + +.grid-push-6-default { + @include grid-push(6); +} + +.grid-push-0-six { + @include grid-push(false, $six-grid); +} + +.grid-push-1-six { + @include grid-push(1, $six-grid); +} + +.grid-push-3-six { + @include grid-push(3, $six-grid); +} diff --git a/spec/neat/functions/neat_column_width_spec.rb b/spec/neat/functions/neat_column_width_spec.rb new file mode 100644 index 00000000..a51e657f --- /dev/null +++ b/spec/neat/functions/neat_column_width_spec.rb @@ -0,0 +1,47 @@ +require "spec_helper" + +describe "neat-column-width" do + before(:all) do + ParserSupport.parse_file("functions/neat-column-width") + end + + context "called with a default twelve column grid" do + it "applies one column" do + rule = "width: calc(8.33333% - 21.66667px)" + + expect(".neat-column-width-1-of-12").to have_rule(rule) + end + + it "applies six columns" do + rule = "width: calc(50% - 30px)" + + expect(".neat-column-width-6-of-12").to have_rule(rule) + end + + it "applies twelve columns" do + rule = "width: calc(100% - 40px)" + + expect(".neat-column-width-12-of-12").to have_rule(rule) + end + end + + context "called with a custom 6 column grid" do + it "applies one column" do + rule = "width: calc(16.66667% - 11.66667px)" + + expect(".neat-column-width-1-of-6").to have_rule(rule) + end + + it "applies six columns" do + rule = "width: calc(33.33333% - 13.33333px)" + + expect(".neat-column-width-2-of-6").to have_rule(rule) + end + + it "applies twelve columns" do + rule = "width: calc(100% - 20px)" + + expect(".neat-column-width-6-of-6").to have_rule(rule) + end + end +end diff --git a/spec/neat/functions/retrieve_neat_settings_spec.rb b/spec/neat/functions/retrieve_neat_settings_spec.rb new file mode 100644 index 00000000..207e32b1 --- /dev/null +++ b/spec/neat/functions/retrieve_neat_settings_spec.rb @@ -0,0 +1,35 @@ +require "spec_helper" + +describe "retrieve-neat-settings" do + before(:all) do + ParserSupport.parse_file("functions/retrieve-neat-settings") + end + + context "called with default settings" do + it "gets default columns" do + rule = "content: 12" + + expect(".neat-settings-default-columns").to have_rule(rule) + end + + it "gets default gutter" do + rule = "content: 20px" + + expect(".neat-settings-default-gutter").to have_rule(rule) + end + end + + context "called with custom settings" do + it "gets default columns" do + rule = "content: 18" + + expect(".neat-settings-eighteen-columns").to have_rule(rule) + end + + it "gets default gutter" do + rule = "content: 33px" + + expect(".neat-settings-eighteen-gutter").to have_rule(rule) + end + end +end diff --git a/spec/neat/mixins/grid_column_spec.rb b/spec/neat/mixins/grid_column_spec.rb new file mode 100644 index 00000000..4590757c --- /dev/null +++ b/spec/neat/mixins/grid_column_spec.rb @@ -0,0 +1,85 @@ +require "spec_helper" + +describe "grid-column" do + before(:all) do + ParserSupport.parse_file("mixins/grid-column") + end + + context "called without a specified grid" do + it "applies one column in the default 12-column grid" do + ruleset = "width: calc(8.33333% - 21.66667px); " + + "float: left; " + + "margin-left: 20px;" + + expect(".grid-column-1-of-default").to have_ruleset(ruleset) + end + + it "applies six columns in the default 12-column grid" do + ruleset = "width: calc(50% - 30px); " + + "float: left; " + + "margin-left: 20px;" + + expect(".grid-column-6-of-default").to have_ruleset(ruleset) + end + + it "applies twelve columns in the default 12-column grid" do + ruleset = "width: calc(100% - 40px); " + + "float: left; " + + "margin-left: 20px;" + + expect(".grid-column-12-of-default").to have_ruleset(ruleset) + end + end + + context "called with a custom grid" do + it "applies one column" do + ruleset = "width: calc(16.66667% - 1.16667em); " + + "float: left; " + + "margin-left: 1em;" + + expect(".grid-column-1-of-6").to have_ruleset(ruleset) + end + + it "applies four columns" do + ruleset = "width: calc(66.66667% - 1.66667em); " + + "float: left; " + + "margin-left: 1em;" + + expect(".grid-column-4-of-6").to have_ruleset(ruleset) + end + + it "applies six columns" do + ruleset = "width: calc(100% - 2em); " + + "float: left; " + + "margin-left: 1em;" + + expect(".grid-column-6-of-6").to have_ruleset(ruleset) + end + end + + context "called with a weirder custom grid" do + it "applies five columns" do + ruleset = "width: calc(5.88235% - 10.58824px); " + + "float: left; " + + "margin-left: 10px;" + + expect(".grid-column-5-of-17").to have_ruleset(ruleset) + end + + it "applies eleven columns" do + ruleset = "width: calc(35.29412% - 13.52941px); " + + "float: left; " + + "margin-left: 10px;" + + expect(".grid-column-11-of-17").to have_ruleset(ruleset) + end + + it "applies thirteen columns" do + ruleset = "width: calc(70.58824% - 17.05882px); " + + "float: left; " + + "margin-left: 10px;" + + expect(".grid-column-13-of-17").to have_ruleset(ruleset) + end + end +end diff --git a/spec/neat/mixins/grid_container_spec.rb b/spec/neat/mixins/grid_container_spec.rb new file mode 100644 index 00000000..1a4516e3 --- /dev/null +++ b/spec/neat/mixins/grid_container_spec.rb @@ -0,0 +1,17 @@ +require "spec_helper" + +describe "grid-container" do + before(:all) do + ParserSupport.parse_file("mixins/grid-container") + end + + context "called with default settings" do + it "adds after element" do + ruleset = "clear: both; " + + "content: \"\"; " + + "display: block;" + + expect(".grid-container::after").to have_ruleset(ruleset) + end + end +end diff --git a/spec/neat/mixins/grid_push_spec.rb b/spec/neat/mixins/grid_push_spec.rb new file mode 100644 index 00000000..ec7616cd --- /dev/null +++ b/spec/neat/mixins/grid_push_spec.rb @@ -0,0 +1,47 @@ +require "spec_helper" + +describe "grid-push" do + before(:all) do + ParserSupport.parse_file("mixins/grid-push") + end + + context "called with default settings" do + it "adds margin for just the gutter with no specified column" do + rule = "margin-left: 20px" + + expect(".grid-push-default").to have_rule(rule) + end + + it "adds margin for one column" do + rule = "margin-left: calc(8.33333% - 21.66667px + 40px)" + + expect(".grid-push-1-default").to have_rule(rule) + end + + it "adds margin for six columns" do + rule = "margin-left: calc(50% - 30px + 40px)" + + expect(".grid-push-6-default").to have_rule(rule) + end + end + + context "called with custom settings" do + it "adds margin for just the gutter with no specified column" do + rule = "margin-left: 2rem" + + expect(".grid-push-0-six").to have_rule(rule) + end + + it "adds margin for one column" do + rule = "margin-left: calc(16.66667% - 2.33333rem + 4rem)" + + expect(".grid-push-1-six").to have_rule(rule) + end + + it "adds margin for three columns" do + rule = "margin-left: calc(50% - 3rem + 4rem)" + + expect(".grid-push-3-six").to have_rule(rule) + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 00000000..fbed5955 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,22 @@ +$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) +$LOAD_PATH.unshift(File.dirname(__FILE__)) +require "rspec" +require "neat" +require "aruba/api" +require "css_parser" +Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } + +RSpec.configure do |config| + config.include SassSupport + config.include CssParser + config.include ParserSupport + config.include Aruba::Api + + config.before(:all) do + generate_css + end + + config.after(:all) do + clean_up + end +end diff --git a/spec/support/matchers/be_contained_in.rb b/spec/support/matchers/be_contained_in.rb new file mode 100644 index 00000000..01a99f96 --- /dev/null +++ b/spec/support/matchers/be_contained_in.rb @@ -0,0 +1,10 @@ +RSpec::Matchers.define :be_contained_in do |expected| + match do |actual| + @query = ParserSupport.parser.find_by_selector(actual, expected) + @query.any? + end + + failure_message do |actual| + %{expected selector #{actual} to be contained in #{expected}} + end +end diff --git a/spec/support/matchers/have_rule.rb b/spec/support/matchers/have_rule.rb new file mode 100644 index 00000000..f202f34a --- /dev/null +++ b/spec/support/matchers/have_rule.rb @@ -0,0 +1,35 @@ +RSpec::Matchers.define :have_rule do |expected| + match do |selector| + @rules = rules_from_selector(selector) + @rules.include? expected + end + + failure_message do |selector| + if @rules.empty? + %{no CSS for selector #{selector} were found} + else + rules = @rules.join("; ") + %{Expected selector #{selector} to have CSS rule "#{expected}". + Had "#{rules}".} + end + end + + def rules_from_selector(selector) + rulesets = ParserSupport.parser.find_by_selector(selector) + if rulesets.empty? + [] + else + rules(rulesets) + end + end + + def rules(rulesets) + rules = [] + rulesets.map do |ruleset| + ruleset.split(";").each do |rule| + rules << rule.strip + end + end + rules + end +end diff --git a/spec/support/matchers/have_ruleset.rb b/spec/support/matchers/have_ruleset.rb new file mode 100644 index 00000000..c2218823 --- /dev/null +++ b/spec/support/matchers/have_ruleset.rb @@ -0,0 +1,20 @@ +RSpec::Matchers.define :have_ruleset do |expected| + match do |selector| + @ruleset = rules_from_selector(selector) + @ruleset.join("; ") == expected + end + + failure_message do |selector| + if @ruleset.empty? + %{no CSS for selector #{selector} were found} + else + ruleset = @ruleset.join("; ") + %{Expected selector #{selector} to have CSS rule "#{expected}". + Had "#{ruleset}".} + end + end + + def rules_from_selector(selector) + ParserSupport.parser.find_by_selector(selector) + end +end diff --git a/spec/support/matchers/have_value.rb b/spec/support/matchers/have_value.rb new file mode 100644 index 00000000..93e14264 --- /dev/null +++ b/spec/support/matchers/have_value.rb @@ -0,0 +1,17 @@ +RSpec::Matchers.define :have_value do |expected| + match do |variable| + selector_class = variable.sub("$", ".") + @value_attribute = ParserSupport.parser.find_by_selector(selector_class)[0] + + unless @value_attribute.nil? + actual_value = @value_attribute.split(":")[1].strip.sub(";", "") + actual_value == expected + end + end + + failure_message do |variable_name| + value_attribute = @value_attribute.to_s + %{Expected variable #{variable_name} to have value "#{expected}". + Had "#{value_attribute}".} + end +end diff --git a/spec/support/parser_support.rb b/spec/support/parser_support.rb new file mode 100644 index 00000000..37b3d063 --- /dev/null +++ b/spec/support/parser_support.rb @@ -0,0 +1,16 @@ +module ParserSupport + def self.parser + @parser ||= CssParser::Parser.new + end + + def self.parse_file(identifier) + parser.load_file!("tmp/#{identifier}.css") + end + + def self.show_contents(identifier) + css_file_contents = File.open("tmp/#{identifier}.css").read + css_file_contents.each_line do |line| + puts line + end + end +end diff --git a/spec/support/sass_support.rb b/spec/support/sass_support.rb new file mode 100644 index 00000000..4893ece9 --- /dev/null +++ b/spec/support/sass_support.rb @@ -0,0 +1,10 @@ +module SassSupport + def generate_css + _mkdir("tmp") + `sass -I . --update spec/fixtures:tmp --quiet` + end + + def clean_up + FileUtils.rm_rf("tmp") + end +end From 16498ab83d54bdae5c140cfb28706588f1761b6e Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 20 Jul 2016 21:07:16 -0400 Subject: [PATCH 148/269] Add test coverage for negative values and shorthand - `grid-push` accepst negative values. This is now tested. - `grid-column` shorthand (`3 of 5` for example) is now tested with both the default and custom grids. --- spec/fixtures/mixins/grid-column.scss | 14 ++++++++++++-- spec/fixtures/mixins/grid-push.scss | 10 +++++++++- spec/neat/mixins/grid_column_spec.rb | 16 ++++++++++++++++ spec/neat/mixins/grid_push_spec.rb | 12 ++++++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/spec/fixtures/mixins/grid-column.scss b/spec/fixtures/mixins/grid-column.scss index c55c6309..42e52102 100644 --- a/spec/fixtures/mixins/grid-column.scss +++ b/spec/fixtures/mixins/grid-column.scss @@ -2,12 +2,12 @@ $six-grid: ( columns: 6, - gutter: 1em + gutter: 1em, ); $seventeen-grid: ( columns: 17, - gutter: 10px + gutter: 10px, ); .grid-column-1-of-default { @@ -22,6 +22,10 @@ $seventeen-grid: ( @include grid-column(12); } +.grid-column-3-of-5-shorthand { + @include grid-column(3 of 5); +} + .grid-column-1-of-6 { @include grid-column(1, $six-grid); } @@ -34,6 +38,10 @@ $seventeen-grid: ( @include grid-column(6, $six-grid); } +.grid-column-3-of-5-shorthand-six-grid { + @include grid-column(3 of 5, $six-grid); +} + .grid-column-5-of-17 { @include grid-column(1, $seventeen-grid); } @@ -45,3 +53,5 @@ $seventeen-grid: ( .grid-column-13-of-17 { @include grid-column(12, $seventeen-grid); } + + diff --git a/spec/fixtures/mixins/grid-push.scss b/spec/fixtures/mixins/grid-push.scss index 47561525..42e17078 100644 --- a/spec/fixtures/mixins/grid-push.scss +++ b/spec/fixtures/mixins/grid-push.scss @@ -2,7 +2,7 @@ $six-grid: ( columns: 6, - gutter: 2rem + gutter: 2rem, ); .grid-push-default { @@ -17,6 +17,10 @@ $six-grid: ( @include grid-push(6); } +.grid-push-neg-6-default { + @include grid-push(-6); +} + .grid-push-0-six { @include grid-push(false, $six-grid); } @@ -28,3 +32,7 @@ $six-grid: ( .grid-push-3-six { @include grid-push(3, $six-grid); } + +.grid-push-neg-3-six { + @include grid-push(-3, $six-grid); +} diff --git a/spec/neat/mixins/grid_column_spec.rb b/spec/neat/mixins/grid_column_spec.rb index 4590757c..e35b7657 100644 --- a/spec/neat/mixins/grid_column_spec.rb +++ b/spec/neat/mixins/grid_column_spec.rb @@ -29,6 +29,14 @@ expect(".grid-column-12-of-default").to have_ruleset(ruleset) end + + it "applies a three fifths column in shorthand with the default grid" do + ruleset = "width: calc(60% - 32px); " + + "float: left; " + + "margin-left: 20px;" + + expect(".grid-column-3-of-5-shorthand").to have_ruleset(ruleset) + end end context "called with a custom grid" do @@ -55,6 +63,14 @@ expect(".grid-column-6-of-6").to have_ruleset(ruleset) end + + it "applies a three fifths column in shorthand" do + ruleset = "width: calc(60% - 1.6em); " + + "float: left; " + + "margin-left: 1em;" + + expect(".grid-column-3-of-5-shorthand-six-grid").to have_ruleset(ruleset) + end end context "called with a weirder custom grid" do diff --git a/spec/neat/mixins/grid_push_spec.rb b/spec/neat/mixins/grid_push_spec.rb index ec7616cd..07d492b2 100644 --- a/spec/neat/mixins/grid_push_spec.rb +++ b/spec/neat/mixins/grid_push_spec.rb @@ -23,6 +23,12 @@ expect(".grid-push-6-default").to have_rule(rule) end + + it "adds margin for negative six columns" do + rule = "margin-left: calc(-50% - 10px + 40px)" + + expect(".grid-push-neg-6-default").to have_rule(rule) + end end context "called with custom settings" do @@ -43,5 +49,11 @@ expect(".grid-push-3-six").to have_rule(rule) end + + it "adds margin for negative three columns" do + rule = "margin-left: calc(-50% - 1rem + 4rem)" + + expect(".grid-push-neg-3-six").to have_rule(rule) + end end end From 809f58a61c980a6ea10f79542bde71714b44dd6d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 22:06:58 -0400 Subject: [PATCH 149/269] Refactor `neat-column-width` to check if gutter is zero While `span-columns` contained a check for when the gutter equals zero. Since calc operations fail when you attempt to add or subtract zero, an operation like `calc(100% - 0)` would need to be output as `calc(100%)`. This opperation has been moved to the `neat-column-width` function so it can be used by the other mixins. --- core/neat/functions/_neat-column-width.scss | 8 ++++++-- core/neat/mixins/_grid-column.scss | 10 +--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/core/neat/functions/_neat-column-width.scss b/core/neat/functions/_neat-column-width.scss index 1a22c1d2..eb8b8f12 100644 --- a/core/neat/functions/_neat-column-width.scss +++ b/core/neat/functions/_neat-column-width.scss @@ -15,7 +15,11 @@ @function _neat-column-width($grid, $columns) { $_column-ratio: _neat-column-ratio($grid, $columns); $_gutter: _retrieve-neat-setting($grid, gutter); - $_gutter-affordance: $_gutter + ($_gutter * $_column-ratio); - @return unquote("#{percentage($_column-ratio)} - #{$_gutter-affordance}"); + @if $_gutter == 0 { + @return unquote("#{percentage($_column-ratio)}"); + } @else { + $_gutter-affordance: $_gutter + ($_gutter * $_column-ratio); + @return unquote("#{percentage($_column-ratio)} - #{$_gutter-affordance}"); + } } diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 659eb5d9..0f5ef7d4 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -22,15 +22,7 @@ $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); - $_column-ratio: $columns / $_grid-columns; - - @if $_grid-gutter > 0 { - - width: calc(#{_neat-column-width($grid, $columns)}); - } @else { - width: percentage($_column-ratio); - } - + width: calc(#{_neat-column-width($grid, $columns)}); float: left; margin-left: $_grid-gutter; } From 6e546d09862e230c3e1a76fcc6066b8657c403a5 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 23:15:40 -0400 Subject: [PATCH 150/269] Add full width default for `grid-column` on `null` `grid-column` now defaults to a full width grid object. This will likely also help avoid people using private functions to retrive grid settings. --- contrib/patterns/_grid.scss | 2 +- core/_neat.scss | 1 + core/neat/functions/_neat-column-default.scss | 23 ++++++++++++ core/neat/mixins/_grid-column.scss | 5 +-- .../functions/neat-column-default.scss | 22 ++++++++++++ .../functions/neat_column_default_spec.rb | 35 +++++++++++++++++++ 6 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 core/neat/functions/_neat-column-default.scss create mode 100644 spec/fixtures/functions/neat-column-default.scss create mode 100644 spec/neat/functions/neat_column_default_spec.rb diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss index 8b96f18a..78c29a04 100644 --- a/contrib/patterns/_grid.scss +++ b/contrib/patterns/_grid.scss @@ -3,7 +3,7 @@ } .grid__column { - @include grid-column; + @include grid-column(1); } .grid__column--thirds { diff --git a/core/_neat.scss b/core/_neat.scss index 21fe3394..b36371cd 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -7,6 +7,7 @@ @import "neat/settings/settings"; @import "neat/functions/retrieve-neat-settings"; +@import "neat/functions/neat-column-default"; @import "neat/functions/neat-column-width"; @import "neat/functions/neat-column-ratio"; @import "neat/functions/neat-parse-columns"; diff --git a/core/neat/functions/_neat-column-default.scss b/core/neat/functions/_neat-column-default.scss new file mode 100644 index 00000000..4d687d3d --- /dev/null +++ b/core/neat/functions/_neat-column-default.scss @@ -0,0 +1,23 @@ +@charset "UTF-8"; +/// Determine if a column count has been given. +/// If no columns have been given return the grid's total column count. +/// +/// @argument {map} $grid +/// +/// @argument {number (unitless) | null} $columns +/// +/// @return {number} +/// +/// @example scss +/// _neat-column-default($neat-grid, 4) +/// +/// @access private + +@function _neat-column-default($grid, $columns) { + @if $columns == null { + $_grid-columns: _retrieve-neat-setting($grid, columns); + @return $_grid-columns; + } @else { + @return $columns; + } +} diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 0f5ef7d4..61427fc4 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; /// Creates Neat a grid column of requested size. /// -/// @argument {number (unitless)} $columns [1] +/// @argument {number (unitless)} $columns [null] /// /// @argument {map} $grid [$neat-grid] /// The grid used to generate the column. @@ -18,7 +18,8 @@ /// margin-left: 20px; /// } -@mixin grid-column($columns: 1, $grid: $neat-grid) { +@mixin grid-column($columns: null, $grid: $neat-grid) { + $columns: _neat-column-default($grid, $columns); $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); diff --git a/spec/fixtures/functions/neat-column-default.scss b/spec/fixtures/functions/neat-column-default.scss new file mode 100644 index 00000000..7439d37c --- /dev/null +++ b/spec/fixtures/functions/neat-column-default.scss @@ -0,0 +1,22 @@ +@import "setup"; + +$eighteen-grid: ( + columns: 18, + gutter: 33px, +); + +.neat-column-default-grid { + content: _neat-column-default($neat-grid, null); +} + +.neat-column-default-grid-custom-col { + content: _neat-column-default($neat-grid, 10); +} + +.neat-column-custom-grid { + content: _neat-column-default($eighteen-grid, null); +} + +.neat-column-custom-grid-custom-col { + content: _neat-column-default($eighteen-grid, 10); +} diff --git a/spec/neat/functions/neat_column_default_spec.rb b/spec/neat/functions/neat_column_default_spec.rb new file mode 100644 index 00000000..dffba559 --- /dev/null +++ b/spec/neat/functions/neat_column_default_spec.rb @@ -0,0 +1,35 @@ +require "spec_helper" + +describe "neat-column-default" do + before(:all) do + ParserSupport.parse_file("functions/neat-column-default") + end + + context "called with default grid" do + it "gets default columns" do + rule = "content: 12" + + expect(".neat-column-default-grid").to have_rule(rule) + end + + it "gets custom columns" do + rule = "content: 10" + + expect(".neat-column-default-grid-custom-col").to have_rule(rule) + end + end + + context "called with custom grid" do + it "gets default columns" do + rule = "content: 18" + + expect(".neat-column-custom-grid").to have_rule(rule) + end + + it "gets custom columns" do + rule = "content: 10" + + expect(".neat-column-custom-grid-custom-col").to have_rule(rule) + end + end +end From b629626face659da60d8d8f6d6383bd9311471b2 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 14:10:26 -0400 Subject: [PATCH 151/269] Add `grid-shift` mixin allowing for the reordering of columns --- CHANGELOG.md | 1 + contrib/index.html | 5 +++ contrib/patterns/_box.scss | 3 +- contrib/patterns/_grid-shift.scss | 7 ++++ contrib/patterns/_grid.scss | 8 ++++ contrib/styles.scss | 1 + core/_neat.scss | 1 + core/neat/mixins/_grid-shift.scss | 31 +++++++++++++++ spec/fixtures/mixins/grid-shift.scss | 38 ++++++++++++++++++ spec/neat/mixins/grid_shift_spec.rb | 59 ++++++++++++++++++++++++++++ 10 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 contrib/patterns/_grid-shift.scss create mode 100644 core/neat/mixins/_grid-shift.scss create mode 100644 spec/fixtures/mixins/grid-shift.scss create mode 100644 spec/neat/mixins/grid_shift_spec.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index 877077fb..624a56af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ project adheres to [Semantic Versioning](http://semver.org). - Added improved documentation and releasing information - Added `grid-container` for floated grid which contains a simple clearfix - Added `grid-push` functionality +- Added `grid-shift` functionality ### Changed diff --git a/contrib/index.html b/contrib/index.html index 4b120434..55f05fd4 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -49,6 +49,11 @@

Nested Grid

Push Grid

+
+

Shift Grid

+
+
 First
+
 Second

Shorthand Sub-Grid

diff --git a/contrib/patterns/_box.scss b/contrib/patterns/_box.scss index b3a52e3f..f27419a7 100644 --- a/contrib/patterns/_box.scss +++ b/contrib/patterns/_box.scss @@ -1,7 +1,8 @@ .box { background-color: $color-neat-blue; - height: 30px; margin-bottom: 10px; + min-height: 30px; + padding: 0.5rem; } .box--alt { diff --git a/contrib/patterns/_grid-shift.scss b/contrib/patterns/_grid-shift.scss new file mode 100644 index 00000000..4aafd8ee --- /dev/null +++ b/contrib/patterns/_grid-shift.scss @@ -0,0 +1,7 @@ +.grid-shift--4 { + @include grid-shift(4); +} + +.grid-shift--neg-8 { + @include grid-shift(-8); +} diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss index 78c29a04..0d30cc63 100644 --- a/contrib/patterns/_grid.scss +++ b/contrib/patterns/_grid.scss @@ -10,6 +10,14 @@ @include grid-column(4); } +.grid__column--4 { + @include grid-column(4); +} + +.grid__column--8 { + @include grid-column(8); +} + .grid__column--full { @include grid-column(12); } diff --git a/contrib/styles.scss b/contrib/styles.scss index 80f13d90..a60d7f15 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -8,3 +8,4 @@ @import "patterns/grid"; @import "patterns/grid-nested"; @import "patterns/grid-push"; +@import "patterns/grid-shift"; diff --git a/core/_neat.scss b/core/_neat.scss index b36371cd..9a9e8d53 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -15,3 +15,4 @@ @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; @import "neat/mixins/grid-push"; +@import "neat/mixins/grid-shift"; diff --git a/core/neat/mixins/_grid-shift.scss b/core/neat/mixins/_grid-shift.scss new file mode 100644 index 00000000..9a185f20 --- /dev/null +++ b/core/neat/mixins/_grid-shift.scss @@ -0,0 +1,31 @@ +@charset "UTF-8"; +/// Shift columns and reorder them within their container using relative +/// positioning. +/// +/// @argument {number (unitless)} $shift [false] +/// +/// @argument {map} $grid [$neat-grid] +/// The grid to be used to generate the column. +/// By default, the global `$neat-grid` will be used. +/// +/// @example scss +/// .element { +/// @include grid-shift(3); +/// } +/// +/// @example css +/// .element { +/// left: calc(25% - 25px + 20px); +/// position: relative; +/// } + +@mixin grid-shift($shift: false, $grid: $neat-grid) { + @if $shift { + $_shift-value: calc(#{_neat-column-width($grid, $shift)} + #{_retrieve-neat-setting($grid, gutter)}); + left: $_shift-value; + } @else { + left: auto; + } + + position: relative; +} diff --git a/spec/fixtures/mixins/grid-shift.scss b/spec/fixtures/mixins/grid-shift.scss new file mode 100644 index 00000000..e20cd652 --- /dev/null +++ b/spec/fixtures/mixins/grid-shift.scss @@ -0,0 +1,38 @@ +@import "setup"; + +$six-grid: ( + columns: 6, + gutter: 2rem, +); + +.grid-shift-default { + @include grid-shift; +} + +.grid-shift-1-default { + @include grid-shift(1); +} + +.grid-shift-6-default { + @include grid-shift(6); +} + +.grid-shift-neg-6-default { + @include grid-shift(-6); +} + +.grid-shift-0-six { + @include grid-shift(false, $six-grid); +} + +.grid-shift-1-six { + @include grid-shift(1, $six-grid); +} + +.grid-shift-3-six { + @include grid-shift(3, $six-grid); +} + +.grid-shift-neg-3-six { + @include grid-shift(-3, $six-grid); +} diff --git a/spec/neat/mixins/grid_shift_spec.rb b/spec/neat/mixins/grid_shift_spec.rb new file mode 100644 index 00000000..7debcf86 --- /dev/null +++ b/spec/neat/mixins/grid_shift_spec.rb @@ -0,0 +1,59 @@ +require "spec_helper" + +describe "grid-shift" do + before(:all) do + ParserSupport.parse_file("mixins/grid-shift") + end + + context "called with default settings" do + it "adds relative positioning without moving the object" do + rule = "left: auto; position: relative;" + + expect(".grid-shift-default").to have_ruleset(rule) + end + + it "moves the object one column to the right" do + rule = "left: calc(8.33333% - 21.66667px + 20px); position: relative;" + + expect(".grid-shift-1-default").to have_ruleset(rule) + end + + it "moves the object six columns to the right" do + rule = "left: calc(50% - 30px + 20px); position: relative;" + + expect(".grid-shift-6-default").to have_ruleset(rule) + end + + it "moves the object six columns to the left" do + rule = "left: calc(-50% - 10px + 20px); position: relative;" + + expect(".grid-shift-neg-6-default").to have_ruleset(rule) + end + end + + context "called with custom settings" do + it "adds relative positioning without moving the object" do + rule = "left: auto; position: relative;" + + expect(".grid-shift-0-six").to have_ruleset(rule) + end + + it "moves the object one column to the right" do + rule = "left: calc(16.66667% - 2.33333rem + 2rem); position: relative;" + + expect(".grid-shift-1-six").to have_ruleset(rule) + end + + it "moves the object three columns to the right" do + rule = "left: calc(50% - 3rem + 2rem); position: relative;" + + expect(".grid-shift-3-six").to have_ruleset(rule) + end + + it "moves the object three columns to the left" do + rule = "left: calc(-50% - 1rem + 2rem); position: relative;" + + expect(".grid-shift-neg-3-six").to have_ruleset(rule) + end + end +end From 8c3c09c5373538a477e056b3d69b396f8203fd1a Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 17 Jul 2016 01:25:59 -0400 Subject: [PATCH 152/269] Add grid-media mixin to allow the creation of media queries --- CHANGELOG.md | 1 + contrib/base/_variables.scss | 5 ++++ contrib/index.html | 4 +++ contrib/patterns/_grid-media.scss | 15 +++++++++++ contrib/styles.scss | 1 + core/_neat.scss | 1 + core/neat/mixins/_grid-media.scss | 42 +++++++++++++++++++++++++++++++ 7 files changed, 69 insertions(+) create mode 100644 contrib/patterns/_grid-media.scss create mode 100644 core/neat/mixins/_grid-media.scss diff --git a/CHANGELOG.md b/CHANGELOG.md index 624a56af..87793627 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ project adheres to [Semantic Versioning](http://semver.org). - Added `grid-container` for floated grid which contains a simple clearfix - Added `grid-push` functionality - Added `grid-shift` functionality +- Added `grid-media` to allow the creation of media queries with custom grids ### Changed diff --git a/contrib/base/_variables.scss b/contrib/base/_variables.scss index 41cb5435..1237a923 100644 --- a/contrib/base/_variables.scss +++ b/contrib/base/_variables.scss @@ -1,3 +1,8 @@ $color-neat-blue: #53aee0; $color-neat-orange: #ff7c56; $color-white: #fff; + +$neat-grid: ( + columns: 12, + gutter: 20px, +); diff --git a/contrib/index.html b/contrib/index.html index 55f05fd4..2b962a05 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -60,6 +60,10 @@

Shorthand Sub-Grid

+
+

Grid Media Queries

+
+
diff --git a/contrib/patterns/_grid-media.scss b/contrib/patterns/_grid-media.scss new file mode 100644 index 00000000..fc6de254 --- /dev/null +++ b/contrib/patterns/_grid-media.scss @@ -0,0 +1,15 @@ +$medium-screen: 1000px; +$medium: "only screen and (min-width:#{$medium-screen})"; + +$custom-neat-grid: ( + columns: 12, + gutter: 50px, +); + +.grid-column--media-3-to-6 { + @include grid-column(3); + + @include grid-media($medium, $custom-neat-grid) { + @include grid-column(6); + } +} diff --git a/contrib/styles.scss b/contrib/styles.scss index a60d7f15..31466db4 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -9,3 +9,4 @@ @import "patterns/grid-nested"; @import "patterns/grid-push"; @import "patterns/grid-shift"; +@import "patterns/grid-media"; diff --git a/core/_neat.scss b/core/_neat.scss index 9a9e8d53..c5859040 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -14,5 +14,6 @@ @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; +@import "neat/mixins/grid-media"; @import "neat/mixins/grid-push"; @import "neat/mixins/grid-shift"; diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss new file mode 100644 index 00000000..8f6b2b1a --- /dev/null +++ b/core/neat/mixins/_grid-media.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; +/// Creates a media query that styles can be passed in to. This mixin also +/// allows users to define a custom grid that is used exclusively within the +/// confines of the mixin. +/// +/// @argument {string} $query +/// +/// @argument {map} $grid [$neat-grid] +/// The grid used to generate the column. +/// +/// @example scss +/// .element { +/// @include grid-column(3); +/// +/// @include grid-media($medium, $custom-neat-grid){ +/// @include grid-column(6); +/// } +/// } +/// +/// @example css +/// .element { +/// width: calc(25% - 25px); +/// float: left; +/// margin-left: 20px; +/// } +/// +/// @media only screen and (min-width: 1000px) { +/// .element { +/// width: calc(50% - 75px); +/// float: left; +/// margin-left: 50px; +/// } +/// } + +@mixin grid-media($query, $grid: $neat-grid) { + @media #{$query} { + $_default-neat-grid: $neat-grid; + $neat-grid: $grid !global; + @content; + $neat-grid: $_default-neat-grid !global; + } +} From 1cd51b19a9d00e627a8de7efc8bdcdfbf8e27c04 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Tue, 19 Jul 2016 12:05:10 -0400 Subject: [PATCH 153/269] Add `neat-parse-media` function to allow multiple inputs to `grid-media` --- contrib/patterns/_grid-media.scss | 3 +-- core/_neat.scss | 1 + core/neat/functions/_neat-parse-media.scss | 22 ++++++++++++++++++++++ core/neat/mixins/_grid-media.scss | 4 +++- core/neat/settings/_settings.scss | 4 ++++ 5 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 core/neat/functions/_neat-parse-media.scss diff --git a/contrib/patterns/_grid-media.scss b/contrib/patterns/_grid-media.scss index fc6de254..be7dc9d0 100644 --- a/contrib/patterns/_grid-media.scss +++ b/contrib/patterns/_grid-media.scss @@ -1,5 +1,4 @@ $medium-screen: 1000px; -$medium: "only screen and (min-width:#{$medium-screen})"; $custom-neat-grid: ( columns: 12, @@ -9,7 +8,7 @@ $custom-neat-grid: ( .grid-column--media-3-to-6 { @include grid-column(3); - @include grid-media($medium, $custom-neat-grid) { + @include grid-media($medium-screen, $custom-neat-grid) { @include grid-column(6); } } diff --git a/core/_neat.scss b/core/_neat.scss index c5859040..16eef830 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -11,6 +11,7 @@ @import "neat/functions/neat-column-width"; @import "neat/functions/neat-column-ratio"; @import "neat/functions/neat-parse-columns"; +@import "neat/functions/neat-parse-media"; @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; diff --git a/core/neat/functions/_neat-parse-media.scss b/core/neat/functions/_neat-parse-media.scss new file mode 100644 index 00000000..dee89cf2 --- /dev/null +++ b/core/neat/functions/_neat-parse-media.scss @@ -0,0 +1,22 @@ +@charset "UTF-8"; +/// Parse media types. If the property is a string then return it, otherwise +/// inherit the grid defaults. +/// +/// @argument {string | number (with unit)} $media +/// +/// @return {number} +/// +/// @example scss +/// _neat-parse-media(1000px) +/// +/// @access private + +@function _neat-parse-media($grid, $media) { + @if type-of($media) == number { + $_grid-media: _retrieve-neat-setting($grid, media); + @return "only screen and (#{$_grid-media}: #{$media})"; + + } @else if type-of($media) == string { + @return "#{$media}"; + } +} diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 8f6b2b1a..72c03556 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -33,7 +33,9 @@ /// } @mixin grid-media($query, $grid: $neat-grid) { - @media #{$query} { + $_query: _neat-parse-media($grid, $query); + + @media #{$_query} { $_default-neat-grid: $neat-grid; $neat-grid: $grid !global; @content; diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index da52011e..df5e5057 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -9,11 +9,15 @@ /// @property {number (with unit)} gutter [20px] /// Default grid gutter width. /// +/// @property {string} gutter [min-width] +/// Grid media query type including min-width and max-width +/// /// @access private $_neat-grid-defaults: ( columns: 12, gutter: 20px, + media: min-width, ); /// This variable is a sass map that overrides Neat's default grid settings. From ebd5012e32c5fc07f14f98b35b256a72247965ba Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 20 Jul 2016 15:03:43 -0400 Subject: [PATCH 154/269] Simplify `grid-media` to only except a single option --- contrib/patterns/_grid-media.scss | 40 ++++++++++++++++++- core/neat/functions/_neat-parse-media.scss | 10 ++--- core/neat/mixins/_grid-media.scss | 24 ++++++----- core/neat/settings/_settings.scss | 6 +-- spec/fixtures/functions/neat-parse-media.scss | 9 +++++ spec/neat/functions/neat_parse_media_spec.rb | 23 +++++++++++ 6 files changed, 93 insertions(+), 19 deletions(-) create mode 100644 spec/fixtures/functions/neat-parse-media.scss create mode 100644 spec/neat/functions/neat_parse_media_spec.rb diff --git a/contrib/patterns/_grid-media.scss b/contrib/patterns/_grid-media.scss index be7dc9d0..2f76177f 100644 --- a/contrib/patterns/_grid-media.scss +++ b/contrib/patterns/_grid-media.scss @@ -3,12 +3,50 @@ $medium-screen: 1000px; $custom-neat-grid: ( columns: 12, gutter: 50px, + media: $medium-screen, +); + +$specific-neat-grid: ( + columns: 12, + gutter: 80px, + media: "only screen and (min-width: 1000px) and (max-width: 1100px)", +); + + +$print-neat-grid: ( + columns: 10, + gutter: 20px, + media: print, ); .grid-column--media-3-to-6 { @include grid-column(3); - @include grid-media($medium-screen, $custom-neat-grid) { + &::before { + content: "#{map-get($neat-grid, media)}"; + } + + @include grid-media($custom-neat-grid) { @include grid-column(6); + + &::before { + content: "#{map-get($neat-grid, media)}"; + } + } + + @include grid-media($specific-neat-grid) { + @include grid-column(6); + + &::before { + content: "#{map-get($neat-grid, media)}"; + } + } + + @include grid-media($print-neat-grid) { + @include grid-column(6); + + &::before { + content: "#{map-get($neat-grid, media)}"; + } } } diff --git a/core/neat/functions/_neat-parse-media.scss b/core/neat/functions/_neat-parse-media.scss index dee89cf2..5a24699f 100644 --- a/core/neat/functions/_neat-parse-media.scss +++ b/core/neat/functions/_neat-parse-media.scss @@ -1,21 +1,19 @@ @charset "UTF-8"; /// Parse media types. If the property is a string then return it, otherwise -/// inherit the grid defaults. +/// assume screen and min-width. /// /// @argument {string | number (with unit)} $media /// /// @return {number} /// /// @example scss -/// _neat-parse-media(1000px) +/// _neat-parse-media($grid, 1000px) /// /// @access private -@function _neat-parse-media($grid, $media) { +@function _neat-parse-media($media) { @if type-of($media) == number { - $_grid-media: _retrieve-neat-setting($grid, media); - @return "only screen and (#{$_grid-media}: #{$media})"; - + @return "only screen and (min-width: #{$media})"; } @else if type-of($media) == string { @return "#{$media}"; } diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 72c03556..04d1e95a 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -1,18 +1,23 @@ @charset "UTF-8"; -/// Creates a media query that styles can be passed in to. This mixin also -/// allows users to define a custom grid that is used exclusively within the -/// confines of the mixin. +/// Creates a media query in which custom grid properties can be defined. +/// Add the `media` property to your custom grid settings map and add the media +/// you would like to scope to. If only a number is defined, it is assumed this +/// is a `min-with` value. Your custom grid can then be passed to the mixin. /// -/// @argument {string} $query -/// -/// @argument {map} $grid [$neat-grid] +/// @argument {map} $grid /// The grid used to generate the column. /// /// @example scss +/// $custom-neat-grid: ( +/// columns: 12, +/// gutter: 50px, +/// media: 1000px, +/// ); +/// /// .element { /// @include grid-column(3); /// -/// @include grid-media($medium, $custom-neat-grid){ +/// @include grid-media($custom-neat-grid){ /// @include grid-column(6); /// } /// } @@ -32,8 +37,9 @@ /// } /// } -@mixin grid-media($query, $grid: $neat-grid) { - $_query: _neat-parse-media($grid, $query); +@mixin grid-media($grid) { + $_media: _retrieve-neat-setting($grid, media); + $_query: _neat-parse-media($grid, $_media); @media #{$_query} { $_default-neat-grid: $neat-grid; diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index df5e5057..0dff882b 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -9,15 +9,15 @@ /// @property {number (with unit)} gutter [20px] /// Default grid gutter width. /// -/// @property {string} gutter [min-width] -/// Grid media query type including min-width and max-width +/// @property {string | number (with unit)} gutter [null] +/// Grid media query. /// /// @access private $_neat-grid-defaults: ( columns: 12, gutter: 20px, - media: min-width, + media: null, ); /// This variable is a sass map that overrides Neat's default grid settings. diff --git a/spec/fixtures/functions/neat-parse-media.scss b/spec/fixtures/functions/neat-parse-media.scss new file mode 100644 index 00000000..5b084f21 --- /dev/null +++ b/spec/fixtures/functions/neat-parse-media.scss @@ -0,0 +1,9 @@ +@import "setup"; + +.neat-parse-media-number { + content: _neat-parse-media(100px); +} + +.neat-parse-media-string { + content: _neat-parse-media("only screen and (max-width: 25rem)"); +} diff --git a/spec/neat/functions/neat_parse_media_spec.rb b/spec/neat/functions/neat_parse_media_spec.rb new file mode 100644 index 00000000..9bc4af4e --- /dev/null +++ b/spec/neat/functions/neat_parse_media_spec.rb @@ -0,0 +1,23 @@ +require "spec_helper" + +describe "neat-parse-media" do + before(:all) do + ParserSupport.parse_file("functions/neat-parse-media") + end + + context "called with number" do + it "gets min-width wraped number" do + rule = 'content: "only screen and (min-width: 100px)"' + + expect(".neat-parse-media-number").to have_rule(rule) + end + end + + context "called with string" do + it "gets the string" do + rule = 'content: "only screen and (max-width: 25rem)"' + + expect(".neat-parse-media-string").to have_rule(rule) + end + end +end From 5682b4fad7367695523b81831324aa6bbc5d0506 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 23 Jul 2016 17:27:35 -0400 Subject: [PATCH 155/269] Update media parse function call --- core/neat/mixins/_grid-media.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 04d1e95a..13e037b3 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -39,7 +39,7 @@ @mixin grid-media($grid) { $_media: _retrieve-neat-setting($grid, media); - $_query: _neat-parse-media($grid, $_media); + $_query: _neat-parse-media($_media); @media #{$_query} { $_default-neat-grid: $neat-grid; From b0f5c619d72af77734685d430915932633a954e4 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 23 Jul 2016 17:42:51 -0400 Subject: [PATCH 156/269] Neat v2.0.0-alpha.1 --- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index 73cea63a..1f54ed7a 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "1.8.0", + "version": "2.0.0-alpha.1", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 16eef830..9e351190 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.0.0-alpha.0 +// Neat 2.0.0-alpha.1 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 7608e81f..2c608b4c 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "1.8.0" + VERSION = "2.0.0.alpha.1" end diff --git a/package.json b/package.json index 5679ae29..293a69df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "1.8.0", + "version": "2.0.0-alpha.1", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From e506bb630ecffafc7ae544067522614e2dc296f4 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 31 Jul 2016 20:40:21 -0400 Subject: [PATCH 157/269] Add `grid-collapse` to allow nested grids --- contrib/index.html | 13 +++++++++++ contrib/patterns/_grid-collapse.scss | 3 +++ contrib/styles.scss | 1 + core/_neat.scss | 1 + core/neat/mixins/_grid-collapse.scss | 31 +++++++++++++++++++++++++ spec/fixtures/mixins/grid-collapse.scss | 14 +++++++++++ spec/neat/mixins/grid_collapse_spec.rb | 28 ++++++++++++++++++++++ 7 files changed, 91 insertions(+) create mode 100644 contrib/patterns/_grid-collapse.scss create mode 100644 core/neat/mixins/_grid-collapse.scss create mode 100644 spec/fixtures/mixins/grid-collapse.scss create mode 100644 spec/neat/mixins/grid_collapse_spec.rb diff --git a/contrib/index.html b/contrib/index.html index 2b962a05..49c24d33 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -64,6 +64,19 @@

Shorthand Sub-Grid

Grid Media Queries

+
+

Grid collapse

+
+
+
+
+
+
+
+
+
+
+
diff --git a/contrib/patterns/_grid-collapse.scss b/contrib/patterns/_grid-collapse.scss new file mode 100644 index 00000000..5eaf3389 --- /dev/null +++ b/contrib/patterns/_grid-collapse.scss @@ -0,0 +1,3 @@ +.grid-collapse { + @include grid-collapse; +} diff --git a/contrib/styles.scss b/contrib/styles.scss index 31466db4..c04ff944 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -6,6 +6,7 @@ @import "patterns/box"; @import "patterns/global"; @import "patterns/grid"; +@import "patterns/grid-collapse"; @import "patterns/grid-nested"; @import "patterns/grid-push"; @import "patterns/grid-shift"; diff --git a/core/_neat.scss b/core/_neat.scss index 9e351190..5aef6cd9 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -13,6 +13,7 @@ @import "neat/functions/neat-parse-columns"; @import "neat/functions/neat-parse-media"; +@import "neat/mixins/grid-collapse"; @import "neat/mixins/grid-column"; @import "neat/mixins/grid-container"; @import "neat/mixins/grid-media"; diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss new file mode 100644 index 00000000..6f6956e8 --- /dev/null +++ b/core/neat/mixins/_grid-collapse.scss @@ -0,0 +1,31 @@ +@charset "UTF-8"; +/// Creates collapsed grid object that consumes the gutters of its container. +/// +/// @argument {map} $grid [$neat-grid] +/// The grid used to determine gutter size. +/// +/// @example scss +/// .element { +/// @include grid-collapse; +/// } +/// +/// @example css +/// .element { +/// float: left; +/// margin-left: -20px; +/// margin-right: -20px; +/// width: calc(100% + 40px); +/// } + +@mixin grid-collapse($grid: $neat-grid) { + $_grid-gutter: _retrieve-neat-setting($grid, gutter); + + @if unit($_grid-gutter) == "%" { + @warn "`grid-collapse` is not compatible with percentage based gutters."; + } + + float: left; + margin-left: -($_grid-gutter); + margin-right: -($_grid-gutter); + width: calc(100% + #{($_grid-gutter * 2)}); +} diff --git a/spec/fixtures/mixins/grid-collapse.scss b/spec/fixtures/mixins/grid-collapse.scss new file mode 100644 index 00000000..08dae1a0 --- /dev/null +++ b/spec/fixtures/mixins/grid-collapse.scss @@ -0,0 +1,14 @@ +@import "setup"; + +$custom-grid: ( + columns: 6, + gutter: 4rem, +); + +.grid-collapse-default { + @include grid-collapse; +} + +.grid-collapse-custom { + @include grid-collapse($custom-grid); +} diff --git a/spec/neat/mixins/grid_collapse_spec.rb b/spec/neat/mixins/grid_collapse_spec.rb new file mode 100644 index 00000000..b5118f8a --- /dev/null +++ b/spec/neat/mixins/grid_collapse_spec.rb @@ -0,0 +1,28 @@ +require "spec_helper" + +describe "grid-collapse" do + before(:all) do + ParserSupport.parse_file("mixins/grid-collapse") + end + + context "called with default settings" do + it "adds margin for just the gutter with no specified column" do + ruleset = "float: left; " + + "margin-left: -20px; " + + "margin-right: -20px; " + + "width: calc(100% + 40px);" + expect(".grid-collapse-default").to have_ruleset(ruleset) + end + end + + context "called with custom settings" do + it "adds margin for just the gutter with no specified column" do + ruleset = "float: left; " + + "margin-left: -4rem; " + + "margin-right: -4rem; " + + "width: calc(100% + 8rem);" + + expect(".grid-collapse-custom").to have_ruleset(ruleset) + end + end +end From 75b877638ffb256baa2cb56cb93b790c00e01344 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 31 Jul 2016 19:43:40 -0400 Subject: [PATCH 158/269] Update neat documentation --- core/neat/mixins/_grid-collapse.scss | 7 ++- core/neat/mixins/_grid-column.scss | 4 ++ core/neat/mixins/_grid-container.scss | 4 ++ core/neat/mixins/_grid-media.scss | 4 ++ core/neat/mixins/_grid-push.scss | 4 ++ core/neat/mixins/_grid-shift.scss | 4 ++ core/neat/settings/_settings.scss | 62 ++++++++++++++++++++++++--- 7 files changed, 83 insertions(+), 6 deletions(-) diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss index 6f6956e8..80694789 100644 --- a/core/neat/mixins/_grid-collapse.scss +++ b/core/neat/mixins/_grid-collapse.scss @@ -1,5 +1,10 @@ @charset "UTF-8"; -/// Creates collapsed grid object that consumes the gutters of its container. +/// Creates collapsed grid object that consumes the gutters of its container, +/// for use in nested layouts. +/// +/// @group features +/// +/// @name Grid collapse /// /// @argument {map} $grid [$neat-grid] /// The grid used to determine gutter size. diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 61427fc4..c1874253 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -1,6 +1,10 @@ @charset "UTF-8"; /// Creates Neat a grid column of requested size. /// +/// @group features +/// +/// @name Grid column +/// /// @argument {number (unitless)} $columns [null] /// /// @argument {map} $grid [$neat-grid] diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index ee1c18b6..a07c2f3e 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -1,6 +1,10 @@ @charset "UTF-8"; /// Creates a Neat grid container with clearfix. /// +/// @group features +/// +/// @name Grid containter +/// /// @argument {map} $grid [$neat-grid] /// The type of grid for this column. /// diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 13e037b3..ad75dcc1 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -4,6 +4,10 @@ /// you would like to scope to. If only a number is defined, it is assumed this /// is a `min-with` value. Your custom grid can then be passed to the mixin. /// +/// @group features +/// +/// @name Grid media +/// /// @argument {map} $grid /// The grid used to generate the column. /// diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index ce4bbfaf..71efa97c 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -1,6 +1,10 @@ @charset "UTF-8"; /// Push or pull a Neat grid column by manipulating its left margin. /// +/// @group features +/// +/// @name Grid push +/// /// @argument {number (unitless)} $push [false] /// /// @argument {map} $grid [$neat-grid] diff --git a/core/neat/mixins/_grid-shift.scss b/core/neat/mixins/_grid-shift.scss index 9a185f20..f688bf94 100644 --- a/core/neat/mixins/_grid-shift.scss +++ b/core/neat/mixins/_grid-shift.scss @@ -2,6 +2,10 @@ /// Shift columns and reorder them within their container using relative /// positioning. /// +/// @group features +/// +/// @name Grid shift +/// /// @argument {number (unitless)} $shift [false] /// /// @argument {map} $grid [$neat-grid] diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 0dff882b..f32ba19c 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -1,13 +1,17 @@ @charset "UTF-8"; /// Neat’s default grid. /// +/// @group settings +/// /// @type map /// +/// @name Default settings +/// /// @property {number (unitless)} columns [12] -/// Deefault number of grid columns. +/// Default number of the total grid columns. /// /// @property {number (with unit)} gutter [20px] -/// Default grid gutter width. +/// Default grid gutter width between columns. /// /// @property {string | number (with unit)} gutter [null] /// Grid media query. @@ -21,16 +25,20 @@ $_neat-grid-defaults: ( ); /// This variable is a sass map that overrides Neat's default grid settings. -/// Use this to define your project's grid properties incluting gutters, and +/// Use this to define your project's grid properties incluting gutters and /// total column count. /// /// @type map /// +/// @group settings +/// +/// @name Neat grid +/// /// @property {number (unitless)} columns [12] -/// Number of grid columns. +/// Number of the total grid columns. /// /// @property {number (with unit)} gutter [20px] -/// Grid gutter width. +/// Grid gutter width between columns. /// /// @example scss /// $neat-grid: ( @@ -39,3 +47,47 @@ $_neat-grid-defaults: ( /// ); $neat-grid: () !default; + +/// If you would like to have multiple grids in a single project, you can do +/// this by defining a new map stored within a variable of your choosing. This +/// variable can then be passed directly in to any of Neat's mixins like +/// [`grid-span(12, $my-custom-grid)`](#grid-span). +/// +/// Custom grids are especially useful with [`grid-media`](#grid-media). By +/// defining a `media` attribute within your custom grid, you are able to easily +/// define both the attributes of a grid as well as at what breakpoint this grid +/// should activate. +/// +/// @type map +/// +/// @group settings +/// +/// @name Custom grids +/// +/// @see {mixin} Grid media +/// +/// @property {number (unitless)} columns [12] +/// Number of the total grid columns. +/// +/// @property {number (with unit)} gutter [20px] +/// Grid gutter width between columns. +/// +/// @property {number (with unit) | string | null} media [null] +/// The `@media` definition that is used by the [`grid-media`](#grid-media) +/// mixin to detirmine the media properties. +/// +/// @example scss +/// $my-custom-grid: ( +/// columns: 12, +/// gutter: 20px, +/// media: 1200px, +/// ); +/// +/// $other-custom-grid-for-print: ( +/// columns: 14, +/// gutter: 1.5rem, +/// media: print, +/// ); +/// + +$neat-custom-grid: () !default; From 676e1615d69bbed412fa8360337b1257283fb932 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 14:07:01 -0400 Subject: [PATCH 159/269] Add basic test coverage for grid-media --- spec/fixtures/mixins/grid-media.scss | 39 ++++++++++++++++++++++++++++ spec/neat/mixins/grid_media_spec.rb | 25 ++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 spec/fixtures/mixins/grid-media.scss create mode 100644 spec/neat/mixins/grid_media_spec.rb diff --git a/spec/fixtures/mixins/grid-media.scss b/spec/fixtures/mixins/grid-media.scss new file mode 100644 index 00000000..acb0b012 --- /dev/null +++ b/spec/fixtures/mixins/grid-media.scss @@ -0,0 +1,39 @@ +@import "setup"; + +$medium-screen: 1000px; + +$custom-neat-grid: ( + columns: 12, + gutter: 50px, + media: $medium-screen, +); + +$specific-neat-grid: ( + columns: 12, + gutter: 80px, + media: "only screen and (min-width: 1000px) and (max-width: 1100px)", +); + +$print-neat-grid: ( + columns: 10, + gutter: 20px, + media: print, +); + +.grid-column-media-custom-neat-grid { + @include grid-media($custom-neat-grid) { + @include grid-column(3); + } +} + +.grid-column-media-specific-neat-grid { + @include grid-media($specific-neat-grid) { + @include grid-column(6); + } +} + +.grid-column-media-print-neat-grid { + @include grid-media($print-neat-grid) { + @include grid-column(8); + } +} diff --git a/spec/neat/mixins/grid_media_spec.rb b/spec/neat/mixins/grid_media_spec.rb new file mode 100644 index 00000000..178b5d8d --- /dev/null +++ b/spec/neat/mixins/grid_media_spec.rb @@ -0,0 +1,25 @@ +require "spec_helper" + +describe "@include grid-media() {...}" do + before(:all) do + ParserSupport.parse_file("mixins/grid-media") + end + + context "with argument ($custom-neat-grid)" do + it "outputs @media only screen and (min-width: 1000px)" do + expect(".grid-column-media-custom-neat-grid").to be_contained_in("only screen and (min-width: 1000px)") + end + end + + context "with argument ($specific-neat-grid)" do + it "outputs @media only screen and (min-width: 1000px) and (max-width: 1100px)" do + expect(".grid-column-media-specific-neat-grid").to be_contained_in("only screen and (min-width: 1000px) and (max-width: 1100px)") + end + end + + context "with argument ($print-neat-grid)" do + it "outputs @media print" do + expect(".grid-column-media-print-neat-grid").to be_contained_in("print") + end + end +end From 5e727f374a986a8875a34b5d3c41465265df3a01 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 14:46:29 -0400 Subject: [PATCH 160/269] Neat v2.0.0-beta.1 --- CHANGELOG.md | 1 + bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87793627..884bf562 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ project adheres to [Semantic Versioning](http://semver.org). - Added `grid-push` functionality - Added `grid-shift` functionality - Added `grid-media` to allow the creation of media queries with custom grids +- Added `grid-collapse` to allow the creation of nested layouts ### Changed diff --git a/bower.json b/bower.json index 1f54ed7a..362c6854 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "2.0.0-alpha.1", + "version": "2.0.0-beta.1", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 5aef6cd9..9cec9847 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.0.0-alpha.1 +// Neat 2.0.0-beta.1 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 2c608b4c..5bfcf8bd 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "2.0.0.alpha.1" + VERSION = "2.0.0.beta.1" end diff --git a/package.json b/package.json index 293a69df..88c99b53 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.0.0-alpha.1", + "version": "2.0.0-beta.1", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From d04ef8860a4cdf7082b7d685adc3d8ee0c5c4422 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 20:51:37 -0400 Subject: [PATCH 161/269] Add visual grid --- contrib/index.html | 4 +-- contrib/patterns/_grid-visual.scss | 3 ++ contrib/styles.scss | 1 + core/_neat.scss | 1 + core/neat/mixins/_grid-visual.scss | 54 ++++++++++++++++++++++++++++++ core/neat/settings/_settings.scss | 1 + 6 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 contrib/patterns/_grid-visual.scss create mode 100644 core/neat/mixins/_grid-visual.scss diff --git a/contrib/index.html b/contrib/index.html index 49c24d33..3621dc40 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -19,7 +19,7 @@

-
+

Basic Floated Grid

@@ -48,7 +48,6 @@

Nested Grid

Push Grid

-

Shift Grid

@@ -76,7 +75,6 @@

Grid collapse

-
diff --git a/contrib/patterns/_grid-visual.scss b/contrib/patterns/_grid-visual.scss new file mode 100644 index 00000000..15ab422d --- /dev/null +++ b/contrib/patterns/_grid-visual.scss @@ -0,0 +1,3 @@ +.grid-visual { + @include grid-visual; +} diff --git a/contrib/styles.scss b/contrib/styles.scss index c04ff944..9f8cc24b 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -11,3 +11,4 @@ @import "patterns/grid-push"; @import "patterns/grid-shift"; @import "patterns/grid-media"; +@import "patterns/grid-visual"; diff --git a/core/_neat.scss b/core/_neat.scss index 9cec9847..bec958fc 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -19,3 +19,4 @@ @import "neat/mixins/grid-media"; @import "neat/mixins/grid-push"; @import "neat/mixins/grid-shift"; +@import "neat/mixins/grid-visual"; diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss new file mode 100644 index 00000000..48a4e8b0 --- /dev/null +++ b/core/neat/mixins/_grid-visual.scss @@ -0,0 +1,54 @@ +@charset "UTF-8"; +/// Creates a guide on a grid container to visualise the columns. +/// +/// @group features +/// +/// @name Grid visual +/// +/// @argument {map} $grid [$neat-grid] +/// The grid used to determine the guide +/// +/// @example scss +/// .element { +/// @include grid-visual; +/// } +/// +/// @example css +/// .element { +/// float: left; +/// } + +@mixin grid-visual($grid: $neat-grid) { + $_grid-color: _retrieve-neat-setting($grid, color); + $_grid-columns: _retrieve-neat-setting($grid, columns); + $_grid-gutter: _retrieve-neat-setting($grid, gutter); + $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); + $_grid-visual-object: () !default; + $_grid-visual: unquote("#{$_grid-transparent}, #{$_grid-transparent $_grid-gutter}, #{$_grid-color} calc(#{$_grid-gutter} + 1px)"); + $_grid-color-mix: mix($_grid-color, $_grid-transparent, percentage(2/3)); + + @for $i from 1 to $_grid-columns { + $_grid-visual-local: ( + #{$i}: "#{_neat-column-width($grid, $i)} + #{$_grid-gutter}", + ); + + $_grid-visual-object: map-merge($_grid-visual-object, $_grid-visual-local); + } + + @each $stop, $location in $_grid-visual-object { + $_grid-location-local: $location; + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{$_grid-location-local})"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{$_grid-location-local} + 1px)"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{$_grid-location-local} + #{$_grid-gutter})"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{$_grid-location-local} + #{$_grid-gutter} + 1px)"), comma); + } + + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), comma); + $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), comma); + + background-image: unquote("linear-gradient(to right, #{$_grid-visual})"); +} diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index f32ba19c..37bc4308 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -22,6 +22,7 @@ $_neat-grid-defaults: ( columns: 12, gutter: 20px, media: null, + color: rgba(#00d4ff, 0.25), ); /// This variable is a sass map that overrides Neat's default grid settings. From b8a6b09aee38bbe57abd017cb040647548357264 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 21:55:41 -0400 Subject: [PATCH 162/269] Add `neat-append-grid-visual` function to help simplify `grid-visual` --- core/_neat.scss | 1 + .../functions/_neat-append-grid-visual.scss | 21 ++++++++++++ core/neat/mixins/_grid-visual.scss | 33 +++++++++++-------- core/neat/settings/_settings.scss | 3 ++ 4 files changed, 45 insertions(+), 13 deletions(-) create mode 100644 core/neat/functions/_neat-append-grid-visual.scss diff --git a/core/_neat.scss b/core/_neat.scss index bec958fc..88b5060a 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -12,6 +12,7 @@ @import "neat/functions/neat-column-ratio"; @import "neat/functions/neat-parse-columns"; @import "neat/functions/neat-parse-media"; +@import "neat/functions/neat-append-grid-visual"; @import "neat/mixins/grid-collapse"; @import "neat/mixins/grid-column"; diff --git a/core/neat/functions/_neat-append-grid-visual.scss b/core/neat/functions/_neat-append-grid-visual.scss new file mode 100644 index 00000000..a34a39b9 --- /dev/null +++ b/core/neat/functions/_neat-append-grid-visual.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; +/// Append attributes to a the `$_grid-visual` variable in `grid-visual` mixin +/// +/// @argument {map} $grid +/// +/// @argument {number (unitless) | null} $columns +/// +/// @return {number} +/// +/// @example scss +/// _neat-column-default($neat-grid, 4) +/// +/// @access private + +@function _neat-append-grid-visual($grid-visual-list, $attributes) { + @each $attribute in $attributes { + $grid-visual-list: append($grid-visual-list, $attribute, comma); + } + + @return $grid-visual-list; +} diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index 48a4e8b0..208bac41 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -15,7 +15,7 @@ /// /// @example css /// .element { -/// float: left; +/// background-image: … ; /// } @mixin grid-visual($grid: $neat-grid) { @@ -23,9 +23,9 @@ $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); + $_grid-color-mix: mix($_grid-color, $_grid-transparent, percentage(2/3)); $_grid-visual-object: () !default; $_grid-visual: unquote("#{$_grid-transparent}, #{$_grid-transparent $_grid-gutter}, #{$_grid-color} calc(#{$_grid-gutter} + 1px)"); - $_grid-color-mix: mix($_grid-color, $_grid-transparent, percentage(2/3)); @for $i from 1 to $_grid-columns { $_grid-visual-local: ( @@ -36,19 +36,26 @@ } @each $stop, $location in $_grid-visual-object { - $_grid-location-local: $location; - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{$_grid-location-local})"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{$_grid-location-local} + 1px)"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{$_grid-location-local} + #{$_grid-gutter})"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{$_grid-location-local} + #{$_grid-gutter} + 1px)"), comma); + $_grid-visual-loop-list: + $_grid-color-mix, + $_grid-color-mix, + unquote("#{$_grid-color} calc(#{$location})"), + unquote("#{$_grid-transparent} calc(#{$location} + 1px)"), + unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter})"), + unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter} + 1px)"), + ; + + $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); } - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color-mix}"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), comma); - $_grid-visual: append($_grid-visual, unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), comma); + $_grid-visual-loop-list: + $_grid-color-mix, + $_grid-color-mix, + unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), + unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), + ; + + $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); background-image: unquote("linear-gradient(to right, #{$_grid-visual})"); } diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 37bc4308..4ec82324 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -16,6 +16,9 @@ /// @property {string | number (with unit)} gutter [null] /// Grid media query. /// +/// @property {color} color [rgba(#00d4ff, 0.25)] +/// Default visual grid color. +/// /// @access private $_neat-grid-defaults: ( From a29b49104b51f80a51f7a31d9b6f9c24d2f33c1d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 22:00:44 -0400 Subject: [PATCH 163/269] Add linebreaks to list variable --- core/neat/mixins/_grid-visual.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index 208bac41..ba719c23 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -25,7 +25,11 @@ $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); $_grid-color-mix: mix($_grid-color, $_grid-transparent, percentage(2/3)); $_grid-visual-object: () !default; - $_grid-visual: unquote("#{$_grid-transparent}, #{$_grid-transparent $_grid-gutter}, #{$_grid-color} calc(#{$_grid-gutter} + 1px)"); + $_grid-visual: + unquote("#{$_grid-transparent}, + #{$_grid-transparent $_grid-gutter}, + #{$_grid-color} calc(#{$_grid-gutter} + 1px)"), + ; @for $i from 1 to $_grid-columns { $_grid-visual-local: ( From 00a80d565438937b4ec363e6c97941e2c4b1e155 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 23:05:19 -0400 Subject: [PATCH 164/269] Switch to lines instead of color bars --- core/neat/mixins/_grid-visual.scss | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index ba719c23..44c7fd92 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -23,12 +23,12 @@ $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); - $_grid-color-mix: mix($_grid-color, $_grid-transparent, percentage(2/3)); $_grid-visual-object: () !default; $_grid-visual: unquote("#{$_grid-transparent}, #{$_grid-transparent $_grid-gutter}, - #{$_grid-color} calc(#{$_grid-gutter} + 1px)"), + #{$_grid-color} calc(#{$_grid-gutter} + 1px), + #{$_grid-transparent} calc(#{$_grid-gutter} + 2px)"), ; @for $i from 1 to $_grid-columns { @@ -41,20 +41,19 @@ @each $stop, $location in $_grid-visual-object { $_grid-visual-loop-list: - $_grid-color-mix, - $_grid-color-mix, + unquote("#{$_grid-transparent} calc(#{$location} - 1px)"), unquote("#{$_grid-color} calc(#{$location})"), unquote("#{$_grid-transparent} calc(#{$location} + 1px)"), - unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter})"), - unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter} + 1px)"), + unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter} - 1px)"), + unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter})"), + unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter} + 1px)"), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); } $_grid-visual-loop-list: - $_grid-color-mix, - $_grid-color-mix, + unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} - 1px)"), unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), ; From 234d6354c2efd7f9c6c206ece5a6e0969814ce6b Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 20 Aug 2016 23:29:16 -0400 Subject: [PATCH 165/269] Add a few more gridlines --- core/neat/mixins/_grid-visual.scss | 32 ++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index 44c7fd92..e267e8db 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -25,10 +25,12 @@ $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); $_grid-visual-object: () !default; $_grid-visual: - unquote("#{$_grid-transparent}, - #{$_grid-transparent $_grid-gutter}, - #{$_grid-color} calc(#{$_grid-gutter} + 1px), - #{$_grid-transparent} calc(#{$_grid-gutter} + 2px)"), + $_grid-color, + $_grid-color 1px, + $_grid-transparent 1px, + $_grid-transparent $_grid-gutter, + $_grid-color calc(#{$_grid-gutter} + 1px), + $_grid-transparent calc(#{$_grid-gutter} + 2px), ; @for $i from 1 to $_grid-columns { @@ -41,11 +43,13 @@ @each $stop, $location in $_grid-visual-object { $_grid-visual-loop-list: - unquote("#{$_grid-transparent} calc(#{$location} - 1px)"), + unquote("#{$_grid-transparent} calc(#{$location})"), unquote("#{$_grid-color} calc(#{$location})"), + unquote("#{$_grid-color} calc(#{$location} + 1px)"), unquote("#{$_grid-transparent} calc(#{$location} + 1px)"), - unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter} - 1px)"), + unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter})"), unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter})"), + unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter} + 1px)"), unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter} + 1px)"), ; @@ -53,12 +57,24 @@ } $_grid-visual-loop-list: - unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} - 1px)"), + unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter})"), unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), + unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter} + 1px)"), unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), + unquote("#{$_grid-transparent} calc(#{100%} - 1px)"), + unquote("#{$_grid-color} calc(#{100%} - 1px)"), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); - background-image: unquote("linear-gradient(to right, #{$_grid-visual})"); + background-image: + linear-gradient(to right, $_grid-visual), + linear-gradient(to bottom, + $_grid-color, + $_grid-color 1px, + $_grid-transparent 1px, + $_grid-transparent calc(100% - 1px), + $_grid-color calc(100% - 1px), + $_grid-color + ); } From 94e8cc070ef1665e77ba9adb0937bdbab5fab1e8 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 21 Aug 2016 15:43:49 -0400 Subject: [PATCH 166/269] Add direct option for custom color support in grid-visual --- core/neat/mixins/_grid-visual.scss | 63 ++++++++++++++++-------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index e267e8db..a07b2ef1 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -5,6 +5,9 @@ /// /// @name Grid visual /// +/// @argument {color} $color +/// The color of the guide lines created. +/// /// @argument {map} $grid [$neat-grid] /// The grid used to determine the guide /// @@ -18,19 +21,21 @@ /// background-image: … ; /// } -@mixin grid-visual($grid: $neat-grid) { - $_grid-color: _retrieve-neat-setting($grid, color); +@mixin grid-visual($color: null, $grid: $neat-grid) { + @if not $color { + $color: _retrieve-neat-setting($grid, color); + } + $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); - $_grid-transparent: rgba(_retrieve-neat-setting($grid, color), 0); $_grid-visual-object: () !default; $_grid-visual: - $_grid-color, - $_grid-color 1px, - $_grid-transparent 1px, - $_grid-transparent $_grid-gutter, - $_grid-color calc(#{$_grid-gutter} + 1px), - $_grid-transparent calc(#{$_grid-gutter} + 2px), + $color, + $color 1px, + transparent 1px, + transparent $_grid-gutter, + $color calc(#{$_grid-gutter} + 1px), + transparent calc(#{$_grid-gutter} + 2px), ; @for $i from 1 to $_grid-columns { @@ -43,26 +48,26 @@ @each $stop, $location in $_grid-visual-object { $_grid-visual-loop-list: - unquote("#{$_grid-transparent} calc(#{$location})"), - unquote("#{$_grid-color} calc(#{$location})"), - unquote("#{$_grid-color} calc(#{$location} + 1px)"), - unquote("#{$_grid-transparent} calc(#{$location} + 1px)"), - unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter})"), - unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter})"), - unquote("#{$_grid-color} calc(#{$location} + #{$_grid-gutter} + 1px)"), - unquote("#{$_grid-transparent} calc(#{$location} + #{$_grid-gutter} + 1px)"), + transparent calc(#{$location}), + $color calc(#{$location}), + $color calc(#{$location} + 1px), + transparent calc(#{$location} + 1px), + transparent calc(#{$location} + #{$_grid-gutter}), + $color calc(#{$location} + #{$_grid-gutter}), + $color calc(#{$location} + #{$_grid-gutter} + 1px), + transparent calc(#{$location} + #{$_grid-gutter} + 1px), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); } $_grid-visual-loop-list: - unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter})"), - unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter})"), - unquote("#{$_grid-color} calc(#{100%} - #{$_grid-gutter} + 1px)"), - unquote("#{$_grid-transparent} calc(#{100%} - #{$_grid-gutter} + 1px)"), - unquote("#{$_grid-transparent} calc(#{100%} - 1px)"), - unquote("#{$_grid-color} calc(#{100%} - 1px)"), + transparent calc(100% - #{$_grid-gutter}), + $color calc(100% - #{$_grid-gutter}), + $color calc(100% - #{$_grid-gutter} + 1px), + transparent calc(100% - #{$_grid-gutter} + 1px), + transparent calc(100% - 1px), + $color calc(100% - 1px), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); @@ -70,11 +75,11 @@ background-image: linear-gradient(to right, $_grid-visual), linear-gradient(to bottom, - $_grid-color, - $_grid-color 1px, - $_grid-transparent 1px, - $_grid-transparent calc(100% - 1px), - $_grid-color calc(100% - 1px), - $_grid-color + $color, + $color 1px, + transparent 1px, + transparent calc(100% - 1px), + $color calc(100% - 1px), + $color ); } From 901c6e421684b89555e971854a43c900dbab9be6 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 12 Nov 2016 20:13:21 -0500 Subject: [PATCH 167/269] Update changelog to include 2.0 alphas and betas --- CHANGELOG.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 884bf562..9e87c40b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased] +## [2.0.0.beta.1] + +### Added + +- Added `grid-collapse` to allow the creation of nested layouts + +## [2.0.0.alpha.1] + +### Added + +- Added `grid-shift` functionality +- Added `grid-media` to allow the creation of media queries with custom grids + +## [2.0.0.alpha.0] + ### Added - Added `$neat-grid` map to store user defined default grid properties @@ -12,9 +27,6 @@ project adheres to [Semantic Versioning](http://semver.org). - Added improved documentation and releasing information - Added `grid-container` for floated grid which contains a simple clearfix - Added `grid-push` functionality -- Added `grid-shift` functionality -- Added `grid-media` to allow the creation of media queries with custom grids -- Added `grid-collapse` to allow the creation of nested layouts ### Changed @@ -54,6 +66,7 @@ project adheres to [Semantic Versioning](http://semver.org). - `$visual-grid-index` has been removed - `$visual-grid-opacity` has been removed + ## 1.8.0 - 2016-06-21 ### Added @@ -279,4 +292,7 @@ project adheres to [Semantic Versioning](http://semver.org). - Initial release -[Unreleased]: https://github.com/thoughtbot/neat/compare/v1.8.0...neat-2.0.0 +[Unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...neat-2.0.0 +[2.0.0.beta.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.1...v2.0.0.beta.1 +[2.0.0.alpha.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.0...v2.0.0.alpha.1 +[2.0.0.alpha.0]: https://github.com/thoughtbot/neat/compare/v1.8.0...v2.0.0.alpha.0 From 157fe78c908ef17d8e0845cc7d0e508a0ad0279d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 4 Nov 2016 13:07:11 -0400 Subject: [PATCH 168/269] Add rtl/ltr support --- CHANGELOG.md | 1 + core/_neat.scss | 2 ++ .../neat/functions/_neat-float-direction.scss | 22 ++++++++++++++++++ .../functions/_neat-opposite-direction.scss | 22 ++++++++++++++++++ core/neat/mixins/_grid-collapse.scss | 6 ++--- core/neat/mixins/_grid-column.scss | 4 ++-- core/neat/mixins/_grid-push.scss | 4 ++-- core/neat/mixins/_grid-shift.scss | 4 ++-- core/neat/settings/_settings.scss | 1 + .../functions/neat-float-direction.scss | 17 ++++++++++++++ .../functions/neat-opposite-direction.scss | 17 ++++++++++++++ .../functions/neat_float_direction_spec.rb | 23 +++++++++++++++++++ .../functions/neat_opposite_direction_spec.rb | 23 +++++++++++++++++++ 13 files changed, 137 insertions(+), 9 deletions(-) create mode 100644 core/neat/functions/_neat-float-direction.scss create mode 100644 core/neat/functions/_neat-opposite-direction.scss create mode 100644 spec/fixtures/functions/neat-float-direction.scss create mode 100644 spec/fixtures/functions/neat-opposite-direction.scss create mode 100644 spec/neat/functions/neat_float_direction_spec.rb create mode 100644 spec/neat/functions/neat_opposite_direction_spec.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e87c40b..03cd1095 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ project adheres to [Semantic Versioning](http://semver.org). ### Added - Added `grid-collapse` to allow the creation of nested layouts +- Added ltr/rtl support ## [2.0.0.alpha.1] diff --git a/core/_neat.scss b/core/_neat.scss index 88b5060a..23375436 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -10,6 +10,8 @@ @import "neat/functions/neat-column-default"; @import "neat/functions/neat-column-width"; @import "neat/functions/neat-column-ratio"; +@import "neat/functions/neat-float-direction"; +@import "neat/functions/neat-opposite-direction"; @import "neat/functions/neat-parse-columns"; @import "neat/functions/neat-parse-media"; @import "neat/functions/neat-append-grid-visual"; diff --git a/core/neat/functions/_neat-float-direction.scss b/core/neat/functions/_neat-float-direction.scss new file mode 100644 index 00000000..05caec2f --- /dev/null +++ b/core/neat/functions/_neat-float-direction.scss @@ -0,0 +1,22 @@ +@charset "UTF-8"; +/// Return the float direction of the grid. +/// +/// @argument {map} $grid +/// +/// @return {string} +/// +/// @example scss +/// _neat-float-direction($neat-grid) +/// +/// @access private + +@function _neat-float-direction($grid) { + $_direction: _retrieve-neat-setting($grid, direction); + $_float-direction: null; + @if $_direction == "ltr" { + $_float-direction: left; + } @else if $_direction == "rtl" { + $_float-direction: right; + } + @return $_float-direction; +} diff --git a/core/neat/functions/_neat-opposite-direction.scss b/core/neat/functions/_neat-opposite-direction.scss new file mode 100644 index 00000000..c4828fa3 --- /dev/null +++ b/core/neat/functions/_neat-opposite-direction.scss @@ -0,0 +1,22 @@ +@charset "UTF-8"; +/// Return the oppoite of the float direction of the grid. +/// +/// @argument {map} $grid +/// +/// @return {string} +/// +/// @example scss +/// _neat-opposite-direction($neat-grid) +/// +/// @access private + +@function _neat-opposite-direction($grid) { + $_direction: _retrieve-neat-setting($grid, direction); + $_float-direction: null; + @if $_direction == "ltr" { + $_float-direction: right; + } @else if $_direction == "rtl" { + $_float-direction: left; + } + @return $_float-direction; +} diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss index 80694789..10cb16bf 100644 --- a/core/neat/mixins/_grid-collapse.scss +++ b/core/neat/mixins/_grid-collapse.scss @@ -29,8 +29,8 @@ @warn "`grid-collapse` is not compatible with percentage based gutters."; } - float: left; - margin-left: -($_grid-gutter); - margin-right: -($_grid-gutter); + float: _neat-float-direction($grid); + margin-#{_neat-float-direction($grid)}: -($_grid-gutter); + margin-#{_neat-opposite-direction($grid)}: -($_grid-gutter); width: calc(100% + #{($_grid-gutter * 2)}); } diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index c1874253..6eb20750 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -28,6 +28,6 @@ $_grid-gutter: _retrieve-neat-setting($grid, gutter); width: calc(#{_neat-column-width($grid, $columns)}); - float: left; - margin-left: $_grid-gutter; + float: _neat-float-direction($grid); + margin-#{_neat-float-direction($grid)}: $_grid-gutter; } diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index 71efa97c..191bdfbe 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -28,9 +28,9 @@ @if $push { $_gutter-affordance: $_grid-gutter * 2; $_margin-value: calc(#{_neat-column-width($grid, $push)} + #{$_gutter-affordance}); - margin-left: $_margin-value; + margin-#{_neat-float-direction($grid)}: $_margin-value; } @else { $_margin-value: _retrieve-neat-setting($grid, gutter); - margin-left: $_margin-value; + margin-#{_neat-float-direction($grid)}: $_margin-value; } } diff --git a/core/neat/mixins/_grid-shift.scss b/core/neat/mixins/_grid-shift.scss index f688bf94..8239ba19 100644 --- a/core/neat/mixins/_grid-shift.scss +++ b/core/neat/mixins/_grid-shift.scss @@ -26,9 +26,9 @@ @mixin grid-shift($shift: false, $grid: $neat-grid) { @if $shift { $_shift-value: calc(#{_neat-column-width($grid, $shift)} + #{_retrieve-neat-setting($grid, gutter)}); - left: $_shift-value; + #{_neat-float-direction($grid)}: $_shift-value; } @else { - left: auto; + #{_neat-float-direction($grid)}: auto; } position: relative; diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 4ec82324..ff6949b8 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -26,6 +26,7 @@ $_neat-grid-defaults: ( gutter: 20px, media: null, color: rgba(#00d4ff, 0.25), + direction: ltr, ); /// This variable is a sass map that overrides Neat's default grid settings. diff --git a/spec/fixtures/functions/neat-float-direction.scss b/spec/fixtures/functions/neat-float-direction.scss new file mode 100644 index 00000000..758f7e02 --- /dev/null +++ b/spec/fixtures/functions/neat-float-direction.scss @@ -0,0 +1,17 @@ +@import "setup"; + +$ltr-grid: ( + direction: ltr, +); + +$rtl-grid: ( + direction: rtl, +); + +.neat-float-direction-ltr { + content: _neat-float-direction($ltr-grid); +} + +.neat-float-direction-rtl { + content: _neat-float-direction($rtl-grid); +} diff --git a/spec/fixtures/functions/neat-opposite-direction.scss b/spec/fixtures/functions/neat-opposite-direction.scss new file mode 100644 index 00000000..e9cc1b97 --- /dev/null +++ b/spec/fixtures/functions/neat-opposite-direction.scss @@ -0,0 +1,17 @@ +@import "setup"; + +$ltr-grid: ( + direction: ltr, +); + +$rtl-grid: ( + direction: rtl, +); + +.neat-opposite-direction-ltr { + content: _neat-opposite-direction($ltr-grid); +} + +.neat-opposite-direction-rtl { + content: _neat-opposite-direction($rtl-grid); +} diff --git a/spec/neat/functions/neat_float_direction_spec.rb b/spec/neat/functions/neat_float_direction_spec.rb new file mode 100644 index 00000000..3d1a7a34 --- /dev/null +++ b/spec/neat/functions/neat_float_direction_spec.rb @@ -0,0 +1,23 @@ +require "spec_helper" + +describe "neat-float-direction" do + before(:all) do + ParserSupport.parse_file("functions/neat-float-direction") + end + + context "called with ltr" do + it "returns left" do + rule = "content: left" + + expect(".neat-float-direction-ltr").to have_rule(rule) + end + end + + context "called with rtl" do + it "returns right" do + rule = "content: right" + + expect(".neat-float-direction-rtl").to have_rule(rule) + end + end +end diff --git a/spec/neat/functions/neat_opposite_direction_spec.rb b/spec/neat/functions/neat_opposite_direction_spec.rb new file mode 100644 index 00000000..558d251b --- /dev/null +++ b/spec/neat/functions/neat_opposite_direction_spec.rb @@ -0,0 +1,23 @@ +require "spec_helper" + +describe "neat-opposite-direction" do + before(:all) do + ParserSupport.parse_file("functions/neat-opposite-direction") + end + + context "called with ltr" do + it "returns right" do + rule = "content: right" + + expect(".neat-opposite-direction-ltr").to have_rule(rule) + end + end + + context "called with rtl" do + it "returns left" do + rule = "content: left" + + expect(".neat-opposite-direction-rtl").to have_rule(rule) + end + end +end From 131d5b06a7b4c80ac086b8453ca7acf1bc1bdecc Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 4 Nov 2016 13:19:57 -0400 Subject: [PATCH 169/269] Add rtl grid to contrib site --- contrib/base/_grids.scss | 4 ++++ contrib/index.html | 6 ++++++ contrib/patterns/_grid.scss | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/contrib/base/_grids.scss b/contrib/base/_grids.scss index 73806731..8a60725b 100644 --- a/contrib/base/_grids.scss +++ b/contrib/base/_grids.scss @@ -2,3 +2,7 @@ $grid--nested: ( columns: 3, gutter: 0, ); + +$grid--rtl: ( + direction: rtl, +); diff --git a/contrib/index.html b/contrib/index.html index 3621dc40..cd7aa35f 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -35,6 +35,12 @@

Basic Floated Grid

+
+

RTL Grid

+
+
 First
+
 Second
+
 Third

Nested Grid

diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss index 0d30cc63..40cfc241 100644 --- a/contrib/patterns/_grid.scss +++ b/contrib/patterns/_grid.scss @@ -10,6 +10,10 @@ @include grid-column(4); } +.grid--rtl__column--thirds { + @include grid-column(4, $grid--rtl); +} + .grid__column--4 { @include grid-column(4); } From b2cd4d008f8636ce060aa3bf38cab3108390f2a6 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 8 Dec 2016 13:32:09 -0500 Subject: [PATCH 170/269] Update Changelog order --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03cd1095..e726316b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,16 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased] +### Added + +- Added `grid-visual` to show visual grid guides +- Added ltr/rtl support + ## [2.0.0.beta.1] ### Added - Added `grid-collapse` to allow the creation of nested layouts -- Added ltr/rtl support ## [2.0.0.alpha.1] From dab3fb299dd3ccaf8b88f75b90b52a278c93dd5f Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 12 Nov 2016 18:15:08 -0500 Subject: [PATCH 171/269] Remove node-sass from package dev dependencies --- CHANGELOG.md | 4 ++++ package.json | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e726316b..e00eece8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,10 @@ project adheres to [Semantic Versioning](http://semver.org). - Added `grid-visual` to show visual grid guides - Added ltr/rtl support +## Removed + +- Removed `node-sass` dependency from `package.json` + ## [2.0.0.beta.1] ### Added diff --git a/package.json b/package.json index 88c99b53..9e23e058 100644 --- a/package.json +++ b/package.json @@ -33,9 +33,6 @@ "contrib": "gulp", "test": "bundle exec rake" }, - "dependencies": { - "node-sass": "^3.8" - }, "devDependencies": { "gulp": "^3.9", "gulp-autoprefixer": "^3.1", From dc3e9c333a78288bea71df760d8c9e0e98e807ce Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 8 Dec 2016 14:37:16 -0500 Subject: [PATCH 172/269] Neat v2.0.0-beta.2 --- CHANGELOG.md | 5 ++++- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e00eece8..316e49a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,14 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased] +## [2.0.0.beta.2] + ### Added - Added `grid-visual` to show visual grid guides - Added ltr/rtl support -## Removed +### Removed - Removed `node-sass` dependency from `package.json` @@ -302,6 +304,7 @@ project adheres to [Semantic Versioning](http://semver.org). - Initial release [Unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...neat-2.0.0 +[2.0.0.beta.2]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...v2.0.0.beta.2 [2.0.0.beta.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.1...v2.0.0.beta.1 [2.0.0.alpha.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.0...v2.0.0.alpha.1 [2.0.0.alpha.0]: https://github.com/thoughtbot/neat/compare/v1.8.0...v2.0.0.alpha.0 diff --git a/bower.json b/bower.json index 362c6854..14e1fc7e 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 23375436..bce8f29e 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.0.0-beta.1 +// Neat 2.0.0-beta.2 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 5bfcf8bd..282595e1 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "2.0.0.beta.1" + VERSION = "2.0.0.beta.2" end diff --git a/package.json b/package.json index 9e23e058..a134b005 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From 5a886be8be97984c9be060ef1beae14eae263d5b Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 8 Dec 2016 18:17:24 -0500 Subject: [PATCH 173/269] Update documentation --- core/neat/mixins/_grid-collapse.scss | 3 ++- core/neat/mixins/_grid-column.scss | 10 ++++++++-- core/neat/mixins/_grid-container.scss | 5 +++-- core/neat/mixins/_grid-media.scss | 7 +++++-- core/neat/mixins/_grid-push.scss | 5 +++-- core/neat/mixins/_grid-shift.scss | 3 ++- core/neat/mixins/_grid-visual.scss | 7 ++++--- core/neat/settings/_settings.scss | 22 ++++++++++++++-------- 8 files changed, 41 insertions(+), 21 deletions(-) diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss index 10cb16bf..f57b99ce 100644 --- a/core/neat/mixins/_grid-collapse.scss +++ b/core/neat/mixins/_grid-collapse.scss @@ -7,7 +7,8 @@ /// @name Grid collapse /// /// @argument {map} $grid [$neat-grid] -/// The grid used to determine gutter size. +/// The grid to be used to generate the collapsed container. +/// By default, the global `$neat-grid` will be used. /// /// @example scss /// .element { diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 6eb20750..560d5f43 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -1,14 +1,20 @@ @charset "UTF-8"; -/// Creates Neat a grid column of requested size. +/// Creates a grid column of requested size. /// /// @group features /// /// @name Grid column /// /// @argument {number (unitless)} $columns [null] +/// Specifies the number of columns an element should span based on the total +/// columns of the grid. +/// +/// This can also be defined in a shorthand syntaxt which also contains the +/// total column count such as `3 of 5`. /// /// @argument {map} $grid [$neat-grid] -/// The grid used to generate the column. +/// The grid to be used to generate the column. +/// By default, the global `$neat-grid` will be used. /// /// @example scss /// .element { diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index a07c2f3e..8101bf01 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -1,12 +1,13 @@ @charset "UTF-8"; -/// Creates a Neat grid container with clearfix. +/// Creates a grid container with clearfix. /// /// @group features /// /// @name Grid containter /// /// @argument {map} $grid [$neat-grid] -/// The type of grid for this column. +/// The grid to be used to generate the container. +/// By default, the global `$neat-grid` will be used. /// /// @example scss /// .element { diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index ad75dcc1..47d1b68e 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; /// Creates a media query in which custom grid properties can be defined. /// Add the `media` property to your custom grid settings map and add the media -/// you would like to scope to. If only a number is defined, it is assumed this +/// you would like to scope to. If only a number is defined, it is assumed this /// is a `min-with` value. Your custom grid can then be passed to the mixin. /// /// @group features @@ -9,7 +9,10 @@ /// @name Grid media /// /// @argument {map} $grid -/// The grid used to generate the column. +/// The grid to be used within the scope of the block. +/// This grid should include the `media` property to determine the expression +/// for the media query. +/// By default, the global `$neat-grid` will be used. /// /// @example scss /// $custom-neat-grid: ( diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index 191bdfbe..5d816284 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -1,14 +1,15 @@ @charset "UTF-8"; -/// Push or pull a Neat grid column by manipulating its left margin. +/// Push or pull a grid column by manipulating its left margin. /// /// @group features /// /// @name Grid push /// /// @argument {number (unitless)} $push [false] +/// The number of columns to push the column. /// /// @argument {map} $grid [$neat-grid] -/// The grid to be used to generate the column. +/// The grid to be used to detirmine how far to push the column. /// By default, the global `$neat-grid` will be used. /// /// @example scss diff --git a/core/neat/mixins/_grid-shift.scss b/core/neat/mixins/_grid-shift.scss index 8239ba19..cd0eb627 100644 --- a/core/neat/mixins/_grid-shift.scss +++ b/core/neat/mixins/_grid-shift.scss @@ -7,9 +7,10 @@ /// @name Grid shift /// /// @argument {number (unitless)} $shift [false] +/// The number of columns to shift the column. /// /// @argument {map} $grid [$neat-grid] -/// The grid to be used to generate the column. +/// The grid to be used to detirmine how far to shift the column. /// By default, the global `$neat-grid` will be used. /// /// @example scss diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index a07b2ef1..6f03046f 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -1,5 +1,6 @@ @charset "UTF-8"; -/// Creates a guide on a grid container to visualise the columns. +/// Creates a series of guide lines using the `background-image` property on a +/// grid container to visualise the columns and gutters of the grid. /// /// @group features /// @@ -9,7 +10,7 @@ /// The color of the guide lines created. /// /// @argument {map} $grid [$neat-grid] -/// The grid used to determine the guide +/// The grid used to determine the guides /// /// @example scss /// .element { @@ -18,7 +19,7 @@ /// /// @example css /// .element { -/// background-image: … ; +/// background-image: linear-gradient( … ) ; /// } @mixin grid-visual($color: null, $grid: $neat-grid) { diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index ff6949b8..02e3bac3 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -13,7 +13,7 @@ /// @property {number (with unit)} gutter [20px] /// Default grid gutter width between columns. /// -/// @property {string | number (with unit)} gutter [null] +/// @property {string | number (with unit)} media [null] /// Grid media query. /// /// @property {color} color [rgba(#00d4ff, 0.25)] @@ -40,10 +40,10 @@ $_neat-grid-defaults: ( /// @name Neat grid /// /// @property {number (unitless)} columns [12] -/// Number of the total grid columns. +/// Default number of the total grid columns. /// /// @property {number (with unit)} gutter [20px] -/// Grid gutter width between columns. +/// Default grid gutter width between columns. /// /// @example scss /// $neat-grid: ( @@ -56,12 +56,12 @@ $neat-grid: () !default; /// If you would like to have multiple grids in a single project, you can do /// this by defining a new map stored within a variable of your choosing. This /// variable can then be passed directly in to any of Neat's mixins like -/// [`grid-span(12, $my-custom-grid)`](#grid-span). +/// [`grid-column(12, $my-custom-grid)`](#grid-column). /// /// Custom grids are especially useful with [`grid-media`](#grid-media). By /// defining a `media` attribute within your custom grid, you are able to easily -/// define both the attributes of a grid as well as at what breakpoint this grid -/// should activate. +/// define both the attributes of a grid as well the breakpoint at which this +/// grid should activate. /// /// @type map /// @@ -69,8 +69,6 @@ $neat-grid: () !default; /// /// @name Custom grids /// -/// @see {mixin} Grid media -/// /// @property {number (unitless)} columns [12] /// Number of the total grid columns. /// @@ -81,11 +79,19 @@ $neat-grid: () !default; /// The `@media` definition that is used by the [`grid-media`](#grid-media) /// mixin to detirmine the media properties. /// +/// @property {color} color [null] +/// The color used by [`grid-visual`](#grid-visual) to create the guides. +/// +/// @property {string} direction [ltr] +/// The float direction used throughout the grid. +/// /// @example scss /// $my-custom-grid: ( /// columns: 12, /// gutter: 20px, /// media: 1200px, +/// color: rgba(#00d4ff, 0.25), +/// direction: ltr, /// ); /// /// $other-custom-grid-for-print: ( From 4f1d6429283e535ce5edb7127b5ab8da54432d77 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 9 Dec 2016 15:40:14 -0500 Subject: [PATCH 174/269] Update contrib styles --- contrib/patterns/_global.scss | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/contrib/patterns/_global.scss b/contrib/patterns/_global.scss index 0e2948b0..bdd9858c 100644 --- a/contrib/patterns/_global.scss +++ b/contrib/patterns/_global.scss @@ -2,4 +2,31 @@ *::before, *::after { box-sizing: border-box; + font-family: + -apple-system, + BlinkMacSystemFont, + "Avenir Next", + "Avenir", + "Segoe UI", + "Lucida Grande", + "Helvetica Neue", + "Helvetica", + "Fira Sans", + "Roboto", + "Noto", + "Droid Sans", + "Cantarell", + "Oxygen", + "Ubuntu", + "Franklin Gothic Medium", + "Century Gothic", + "Liberation Sans", + sans-serif; +} + +h1, +h2, +h3, +h4 { + font-weight: 400; } From d483773728749fbf9360a9dd68fb27fbab9925fa Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 9 Dec 2016 15:49:27 -0500 Subject: [PATCH 175/269] Update Readme --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7ec1b287..441a250d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Neat](http://images.thoughtbot.com/bourbon/neat-logo.svg)](http://neat.bourbon.io) +[Neat logo](http://neat.bourbon.io) ## A lightweight, semantic grid framework @@ -103,20 +103,18 @@ For command line help, visit our wiki page on Neat’s [command line interface]( 2. Reinstall the Neat gem, using the `-v` flag to specify the version you need: ```bash - gem install neat -v 1.7.0 + gem install neat -v 1.8.0 ``` 3. Follow the [instructions above](#installation) to install Neat into your project. ## The Bourbon family -- [Bourbon](https://github.com/thoughtbot/bourbon): A simple and lightweight mixin library for Sass -- [Neat](https://github.com/thoughtbot/neat): A lightweight semantic grid framework for Sass and Bourbon +- [Bourbon](https://github.com/thoughtbot/bourbon): A lightweight Sass tool set +- [Neat](https://github.com/thoughtbot/neat): A lightweight and flexible Sass grid - [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects - [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters -Also check out [Proteus](https://github.com/thoughtbot/proteus), a collection of useful starter kits to help you prototype faster. Each kit comes with Bourbon, Neat and Bitters out-of-the-box. - ## Contributing See the [contributing] document. Thank you, [contributors]! From 611afe115f42bbc26f40d48c0cf740b656b98fa3 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 9 Dec 2016 15:51:08 -0500 Subject: [PATCH 176/269] Update tagline --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 441a250d..7fd5dbf1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [Neat logo](http://neat.bourbon.io) -## A lightweight, semantic grid framework +## A lightweight and flexible Sass grid Neat is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road. From 33802297ab9b6d7aa29367b51f9d7544570d4324 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Mon, 14 Nov 2016 08:14:02 -0500 Subject: [PATCH 177/269] Update thoughtbot logo asset in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7fd5dbf1..ef36427c 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, an Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. -[thoughtbot logo][thoughtbot] +[thoughtbot logo][thoughtbot] We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. From ea010ff498a3ab2b85abce19f0faf11f50a5857d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Mon, 14 Nov 2016 08:34:18 -0500 Subject: [PATCH 178/269] Update Readme --- README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ef36427c..e16b2b7b 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,15 @@ Neat is a fluid grid framework with the aim of being easy enough to use out of t Follow the [@bourbonsass](https://twitter.com/bourbonsass) Twitter account for updates. +## Table of Contents + +- [Requirements](#requirements) +- [Installation](#installation) +- [The Bourbon Family](#the-bourbon-family) +- [Contributing](#contributing) +- [License](#license) +- [About](#about) + ## Requirements - Sass 3.4+ or LibSass 3.3+ @@ -48,7 +57,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( It’s not recommended to add or modify the Neat files so that you can update them easily. -## Installation for Ruby on Rails 4.2+ +### Installation for Ruby on Rails 4.2+ 1. Add Neat to your Gemfile: @@ -76,7 +85,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( It should be noted that `@import` rules are not compatible with Sprockets directives. You need to use one or the other. -## Installing with npm and using a Node-based asset pipeline +### Installing with npm and using a Node-based asset pipeline 1. Add Neat as a dependency: @@ -92,7 +101,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( @import "neat"; ``` -## Installing older versions of Neat +### Installing older versions of Neat 1. Uninstall any Neat gem versions you already have: @@ -103,7 +112,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( 2. Reinstall the Neat gem, using the `-v` flag to specify the version you need: ```bash - gem install neat -v 1.8.0 + gem install neat -v 1.8.1 ``` 3. Follow the [instructions above](#installation) to install Neat into your project. @@ -120,7 +129,7 @@ For command line help, visit our wiki page on Neat’s [command line interface]( See the [contributing] document. Thank you, [contributors]! [contributing]: CONTRIBUTING.md - [contributors]: https://github.com/thoughtbot/bourbon/graphs/contributors + [contributors]: https://github.com/thoughtbot/neat/graphs/contributors ## License @@ -132,7 +141,7 @@ Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, an Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. -[thoughtbot logo][thoughtbot] +[thoughtbot logo][thoughtbot] We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. From 6ed83fa98bbb73323c48245b815c57a2d1dc19ce Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 3 Feb 2017 15:48:37 -0500 Subject: [PATCH 179/269] Fix typo --- core/neat/mixins/_grid-container.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index 8101bf01..b892af59 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -3,7 +3,7 @@ /// /// @group features /// -/// @name Grid containter +/// @name Grid container /// /// @argument {map} $grid [$neat-grid] /// The grid to be used to generate the container. From c9c545699aa2d94be50e252864b41bbcfc025ac3 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 4 Feb 2017 12:09:38 -0500 Subject: [PATCH 180/269] Fix path --- RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index a1a7ec80..1b626f46 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -2,7 +2,7 @@ 1. Update the version number in these places: - `lib/neat/version.rb` - - `core/neat/_neat.scss` + - `core/_neat.scss` - `package.json` - `bower.json` From c79e80ccbcebe56490d4e877d372f142de3b43ef Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 4 Feb 2017 12:13:22 -0500 Subject: [PATCH 181/269] Tweak releasing documentation Point to the new website repo. --- RELEASING.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 1b626f46..45b63abf 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -17,11 +17,12 @@ 1. Run `npm publish`, which pushes the new version to npm’s registry (if releasing a pre-release, run `npm publish --tag beta`). -1. Add a [new GitHub release](//github.com/thoughtbot/neat/releases/new). +1. Draft a [new GitHub release]. -1. Re-generate and publish - the [documentation website](//github.com/thoughtbot/neat-docs), - using the available Gulp tasks. +1. Re-generate and publish the [documentation website]. 1. Announce the new release, making sure to say “thank you” to the contributors who helped shape this version! + +[new GitHub release]: https://github.com/thoughtbot/neat/releases/new +[documentation website]: https://github.com/thoughtbot/neat.bourbon.io From a3515c446001443e5bb5bc4b67aa4b9fef2b6913 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Wed, 8 Feb 2017 20:52:07 -0500 Subject: [PATCH 182/269] Fix stylesheets_directory path - This fixes a bug that would cause the `neat install` command from Neat's CLI to install a `neat/` directory without any of the library files in it. - `app/assets/stylesheets/` was the old path from v1.x - As of 2.0, the path where the Neat library lives is `core/` --- lib/neat/generator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/neat/generator.rb b/lib/neat/generator.rb index 417bef4f..c5c609b3 100644 --- a/lib/neat/generator.rb +++ b/lib/neat/generator.rb @@ -62,7 +62,7 @@ def all_stylesheets end def stylesheets_directory - File.join(top_level_directory, "app", "assets", "stylesheets") + File.join(top_level_directory, "core") end def top_level_directory From b2b705582641953dd68e96c3af8d21119b6a076d Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 4 Feb 2017 10:58:59 -0500 Subject: [PATCH 183/269] Remove old tests These were left behind accidentally during a rebase. --- test/_setup.scss | 2 -- test/omega.scss | 29 ----------------------------- 2 files changed, 31 deletions(-) delete mode 100644 test/_setup.scss delete mode 100644 test/omega.scss diff --git a/test/_setup.scss b/test/_setup.scss deleted file mode 100644 index 886ff205..00000000 --- a/test/_setup.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import "../app/assets/stylesheets/neat"; -$disable-warnings: true !global; diff --git a/test/omega.scss b/test/omega.scss deleted file mode 100644 index c527bf10..00000000 --- a/test/omega.scss +++ /dev/null @@ -1,29 +0,0 @@ -@import "setup"; - -.omega-default { - @include omega; -} - -.omega-nth-default { - @include omega(4n) -} - -.omega-complex-nth { - @include omega("4n+1"); -} - -.omega-complex-nth-negative { - @include omega("3n-1"); -} - -section { - @include row($direction: RTL); - - .omega-default-left { - @include omega; - } - - .omega-nth-default-left { - @include omega(4n block); - } -} From 4e09bf15fe4fed3feb27e5dd9b49d4c675a05811 Mon Sep 17 00:00:00 2001 From: Kevin Garcia Date: Tue, 7 Feb 2017 14:50:11 -0800 Subject: [PATCH 184/269] Remove float from grid-collapse per https://github.com/thoughtbot/neat/issues/528#issuecomment-278168504 --- core/neat/mixins/_grid-collapse.scss | 1 - spec/neat/mixins/grid_collapse_spec.rb | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss index f57b99ce..4378c2c6 100644 --- a/core/neat/mixins/_grid-collapse.scss +++ b/core/neat/mixins/_grid-collapse.scss @@ -30,7 +30,6 @@ @warn "`grid-collapse` is not compatible with percentage based gutters."; } - float: _neat-float-direction($grid); margin-#{_neat-float-direction($grid)}: -($_grid-gutter); margin-#{_neat-opposite-direction($grid)}: -($_grid-gutter); width: calc(100% + #{($_grid-gutter * 2)}); diff --git a/spec/neat/mixins/grid_collapse_spec.rb b/spec/neat/mixins/grid_collapse_spec.rb index b5118f8a..b36a65be 100644 --- a/spec/neat/mixins/grid_collapse_spec.rb +++ b/spec/neat/mixins/grid_collapse_spec.rb @@ -7,8 +7,7 @@ context "called with default settings" do it "adds margin for just the gutter with no specified column" do - ruleset = "float: left; " + - "margin-left: -20px; " + + ruleset = "margin-left: -20px; " + "margin-right: -20px; " + "width: calc(100% + 40px);" expect(".grid-collapse-default").to have_ruleset(ruleset) @@ -17,8 +16,7 @@ context "called with custom settings" do it "adds margin for just the gutter with no specified column" do - ruleset = "float: left; " + - "margin-left: -4rem; " + + ruleset = "margin-left: -4rem; " + "margin-right: -4rem; " + "width: calc(100% + 8rem);" From a5ef5cce2fc744fd0fe4116b1d2c47793ae76e6f Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Mon, 13 Feb 2017 13:13:49 -0500 Subject: [PATCH 185/269] Add version specification for node and sassdoc on ci --- circle.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index ab27bd71..f7508fa7 100644 --- a/circle.yml +++ b/circle.yml @@ -1,11 +1,14 @@ dependencies: override: - bundle install - - npm install -g sassdoc + - npm install -g sassdoc@2.2.0 general: branches: ignore: - gh-pages +machine: + node: + version: 6.9.5 test: override: - bundle exec rake From d0c8409baf819f6ae33b8d11d92e94641c0a2f63 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 12 Feb 2017 23:27:04 -0500 Subject: [PATCH 186/269] Configure hound to ignore `///` comment style Sassdoc uses a triple dash comment style to mark its content. --- .scss-lint.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.scss-lint.yml b/.scss-lint.yml index 6936acae..e8611955 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -167,6 +167,10 @@ linters: enabled: true style: one_space + SpaceAfterComment: + enabled: false + allow_empty_comments: true + SpaceAfterPropertyColon: enabled: true style: one_space From 73319ac81065e49324728e1ca6f46f5c541c772a Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 8 Feb 2017 23:37:50 -0500 Subject: [PATCH 187/269] Move the neat-grid-defaults to within retrieve-neat-setting https://github.com/thoughtbot/neat/issues/531 --- .../functions/_retrieve-neat-settings.scss | 8 +++++ core/neat/settings/_settings.scss | 30 ------------------- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/core/neat/functions/_retrieve-neat-settings.scss b/core/neat/functions/_retrieve-neat-settings.scss index fc196c85..d32d7198 100644 --- a/core/neat/functions/_retrieve-neat-settings.scss +++ b/core/neat/functions/_retrieve-neat-settings.scss @@ -13,6 +13,14 @@ /// @access private @function _retrieve-neat-setting($grid, $setting) { + $_neat-grid-defaults: ( + columns: 12, + gutter: 20px, + media: null, + color: rgba(#00d4ff, 0.25), + direction: ltr, + ); + $_grid-settings: map-merge($_neat-grid-defaults, $grid); @return map-get($_grid-settings, $setting); } diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 02e3bac3..0afeaa10 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -1,34 +1,4 @@ @charset "UTF-8"; -/// Neat’s default grid. -/// -/// @group settings -/// -/// @type map -/// -/// @name Default settings -/// -/// @property {number (unitless)} columns [12] -/// Default number of the total grid columns. -/// -/// @property {number (with unit)} gutter [20px] -/// Default grid gutter width between columns. -/// -/// @property {string | number (with unit)} media [null] -/// Grid media query. -/// -/// @property {color} color [rgba(#00d4ff, 0.25)] -/// Default visual grid color. -/// -/// @access private - -$_neat-grid-defaults: ( - columns: 12, - gutter: 20px, - media: null, - color: rgba(#00d4ff, 0.25), - direction: ltr, -); - /// This variable is a sass map that overrides Neat's default grid settings. /// Use this to define your project's grid properties incluting gutters and /// total column count. From 4f9891604a804535a99cab60ddbab3ae0b499d7d Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 8 Feb 2017 23:58:25 -0500 Subject: [PATCH 188/269] Custom grids inherit from neat-grid prior to neat-grid-defaults defaults https://github.com/thoughtbot/neat/issues/533 --- core/neat/functions/_retrieve-neat-settings.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/neat/functions/_retrieve-neat-settings.scss b/core/neat/functions/_retrieve-neat-settings.scss index d32d7198..7fc96901 100644 --- a/core/neat/functions/_retrieve-neat-settings.scss +++ b/core/neat/functions/_retrieve-neat-settings.scss @@ -13,13 +13,13 @@ /// @access private @function _retrieve-neat-setting($grid, $setting) { - $_neat-grid-defaults: ( + $_neat-grid-defaults: map-merge(( columns: 12, gutter: 20px, media: null, color: rgba(#00d4ff, 0.25), direction: ltr, - ); + ), $neat-grid); $_grid-settings: map-merge($_neat-grid-defaults, $grid); @return map-get($_grid-settings, $setting); From 6d0c04a2b1584c6599dbd218e6c8fac726fe5f07 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 10 Feb 2017 13:00:33 -0500 Subject: [PATCH 189/269] Update _retrieve-neat-settings documentation --- core/neat/functions/_retrieve-neat-settings.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/neat/functions/_retrieve-neat-settings.scss b/core/neat/functions/_retrieve-neat-settings.scss index 7fc96901..ef7ce368 100644 --- a/core/neat/functions/_retrieve-neat-settings.scss +++ b/core/neat/functions/_retrieve-neat-settings.scss @@ -1,5 +1,6 @@ @charset "UTF-8"; -/// Return a Neat setting. +/// This function recives a grid map and merges it with Neat's defauls. +/// It then returns the value of the property that has been passed to it. /// /// @argument {map} $grid /// From f2f3db6302657fc99c11f5e9ce323615f182bf07 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Thu, 9 Feb 2017 10:47:14 -0500 Subject: [PATCH 190/269] Inherit undefined media grid properties from global neat-grid https://github.com/thoughtbot/neat/issues/532 --- core/_neat.scss | 1 + core/neat/functions/_neat-merge-defaults.scss | 23 +++++++++++++++++++ .../functions/_retrieve-neat-settings.scss | 10 +------- core/neat/mixins/_grid-media.scss | 2 +- 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 core/neat/functions/_neat-merge-defaults.scss diff --git a/core/_neat.scss b/core/_neat.scss index bce8f29e..08e86a4e 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -11,6 +11,7 @@ @import "neat/functions/neat-column-width"; @import "neat/functions/neat-column-ratio"; @import "neat/functions/neat-float-direction"; +@import "neat/functions/neat-merge-defaults"; @import "neat/functions/neat-opposite-direction"; @import "neat/functions/neat-parse-columns"; @import "neat/functions/neat-parse-media"; diff --git a/core/neat/functions/_neat-merge-defaults.scss b/core/neat/functions/_neat-merge-defaults.scss new file mode 100644 index 00000000..a4ac2a8e --- /dev/null +++ b/core/neat/functions/_neat-merge-defaults.scss @@ -0,0 +1,23 @@ +@charset "UTF-8"; +/// Apply Neat's default properties to undefined values within a map. +/// +/// @argument {map} $grid +/// +/// @return {map} +/// +/// @example scss +/// _retrieve-neat-setting($neat-grid) +/// +/// @access private + +@function _neat-merge-defaults($grid) { + $_merged-grid: map-merge(( + columns: 12, + gutter: 20px, + media: null, + color: rgba(#00d4ff, 0.25), + direction: ltr, + ), $grid); + + @return $_merged-grid; +} diff --git a/core/neat/functions/_retrieve-neat-settings.scss b/core/neat/functions/_retrieve-neat-settings.scss index ef7ce368..e1db68d8 100644 --- a/core/neat/functions/_retrieve-neat-settings.scss +++ b/core/neat/functions/_retrieve-neat-settings.scss @@ -14,14 +14,6 @@ /// @access private @function _retrieve-neat-setting($grid, $setting) { - $_neat-grid-defaults: map-merge(( - columns: 12, - gutter: 20px, - media: null, - color: rgba(#00d4ff, 0.25), - direction: ltr, - ), $neat-grid); - - $_grid-settings: map-merge($_neat-grid-defaults, $grid); + $_grid-settings: map-merge(_neat-merge-defaults($neat-grid), $grid); @return map-get($_grid-settings, $setting); } diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 47d1b68e..d4eaa68c 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -50,7 +50,7 @@ @media #{$_query} { $_default-neat-grid: $neat-grid; - $neat-grid: $grid !global; + $neat-grid: map-merge($neat-grid, $grid) !global; @content; $neat-grid: $_default-neat-grid !global; } From 48e0456b7bbbe429e9724a86d7d2be07ac0d65e5 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Wed, 15 Feb 2017 17:19:52 -0500 Subject: [PATCH 191/269] Simplify the gradient style of grid-visual Currently quite a few browsers have issues with the complexity of the gradient. https://github.com/thoughtbot/neat/issues/539 --- core/neat/mixins/_grid-visual.scss | 31 ++++++------------------------ 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index 6f03046f..fefa5848 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -32,11 +32,8 @@ $_grid-visual-object: () !default; $_grid-visual: $color, - $color 1px, - transparent 1px, + $color $_grid-gutter, transparent $_grid-gutter, - $color calc(#{$_grid-gutter} + 1px), - transparent calc(#{$_grid-gutter} + 2px), ; @for $i from 1 to $_grid-columns { @@ -51,36 +48,20 @@ $_grid-visual-loop-list: transparent calc(#{$location}), $color calc(#{$location}), - $color calc(#{$location} + 1px), - transparent calc(#{$location} + 1px), - transparent calc(#{$location} + #{$_grid-gutter}), $color calc(#{$location} + #{$_grid-gutter}), - $color calc(#{$location} + #{$_grid-gutter} + 1px), - transparent calc(#{$location} + #{$_grid-gutter} + 1px), + transparent calc(#{$location} + #{$_grid-gutter}), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); } $_grid-visual-loop-list: - transparent calc(100% - #{$_grid-gutter}), - $color calc(100% - #{$_grid-gutter}), - $color calc(100% - #{$_grid-gutter} + 1px), - transparent calc(100% - #{$_grid-gutter} + 1px), - transparent calc(100% - 1px), - $color calc(100% - 1px), + transparent calc(100% - #{$_grid-gutter}), + $color calc(100% - #{$_grid-gutter}), + $color calc(100%), ; $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); - background-image: - linear-gradient(to right, $_grid-visual), - linear-gradient(to bottom, - $color, - $color 1px, - transparent 1px, - transparent calc(100% - 1px), - $color calc(100% - 1px), - $color - ); + background-image: linear-gradient(to right, $_grid-visual); } From 6b358818346a794c8f4f8e4dfbcd3329937e065f Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sun, 12 Feb 2017 23:06:15 -0500 Subject: [PATCH 192/269] Update grid-media documentation --- core/neat/mixins/_grid-media.scss | 20 +++++++++++++++----- core/neat/settings/_settings.scss | 6 +++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index d4eaa68c..5f41a76b 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -1,8 +1,12 @@ @charset "UTF-8"; -/// Creates a media query in which custom grid properties can be defined. -/// Add the `media` property to your custom grid settings map and add the media -/// you would like to scope to. If only a number is defined, it is assumed this -/// is a `min-with` value. Your custom grid can then be passed to the mixin. +/// `grid-media` allows you to change your layout based on a media query. +/// For example, an object can span 3 columns on small screens and 6 columns +/// on large screens. +/// +/// You can take this a step further and set different grid attributes like +/// gutter size and total column count for each media query. So, for example, +/// you can have a `1rem` gutter on small screens, and a `2rem` gutter on large +/// screens. /// /// @group features /// @@ -12,7 +16,13 @@ /// The grid to be used within the scope of the block. /// This grid should include the `media` property to determine the expression /// for the media query. -/// By default, the global `$neat-grid` will be used. +/// +/// @content +/// Grid media will temporarily the override the default grid with the +/// attributes of the custom grid. This change is scoped to within the mixin +/// block, and once the mixin has ended the default grid will revert to its +/// original state as defined by `$neat-grid`. This allows for different +/// gutter width and column count based on screen size or other properties. /// /// @example scss /// $custom-neat-grid: ( diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 0afeaa10..44246acb 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -23,15 +23,15 @@ $neat-grid: () !default; -/// If you would like to have multiple grids in a single project, you can do +/// If you need multiple grids in a single project, you can do /// this by defining a new map stored within a variable of your choosing. This /// variable can then be passed directly in to any of Neat's mixins like /// [`grid-column(12, $my-custom-grid)`](#grid-column). /// /// Custom grids are especially useful with [`grid-media`](#grid-media). By /// defining a `media` attribute within your custom grid, you are able to easily -/// define both the attributes of a grid as well the breakpoint at which this -/// grid should activate. +/// define gutter width and total column count as well the breakpoint at which +/// they should activate. /// /// @type map /// From 72949334c909614682e6b70b6fb46fa2b4bb4178 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 17 Feb 2017 15:36:52 -0500 Subject: [PATCH 193/269] Neat v2.0.0 --- CHANGELOG.md | 14 ++++++++++++-- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 316e49a0..90edcf72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased] +Nothing at the moment. + +## [2.0.0] + +### Fixed + +- Custom grids inherit undefined properties from global `$neat-grid` +- Fixed instillation from CLI +- Remove float property from `grid-collapse` + ## [2.0.0.beta.2] ### Added @@ -77,7 +87,6 @@ project adheres to [Semantic Versioning](http://semver.org). - `$visual-grid-index` has been removed - `$visual-grid-opacity` has been removed - ## 1.8.0 - 2016-06-21 ### Added @@ -303,7 +312,8 @@ project adheres to [Semantic Versioning](http://semver.org). - Initial release -[Unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...neat-2.0.0 +[Unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0...HEAD +[2.0.0]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.2...v2.0.0 [2.0.0.beta.2]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...v2.0.0.beta.2 [2.0.0.beta.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.1...v2.0.0.beta.1 [2.0.0.alpha.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.0...v2.0.0.alpha.1 diff --git a/bower.json b/bower.json index 14e1fc7e..985f172e 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "2.0.0-beta.2", + "version": "2.0.0", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 08e86a4e..9fbd3636 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.0.0-beta.2 +// Neat 2.0.0 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 282595e1..8163558c 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "2.0.0.beta.2" + VERSION = "2.0.0" end diff --git a/package.json b/package.json index a134b005..a8273ea1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.0.0-beta.2", + "version": "2.0.0", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From 5e61cf4ee0ad35ab10af6bf92390b59507f2c4e6 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 7 Feb 2017 09:06:24 -0500 Subject: [PATCH 194/269] Update readme - Consistently wrap lines at 80 characters - Use reference-style Markdown links - Match readme structure to Bourbon's readme, where appropriate - Point to the new Neat 2.0 website - Add link to Stack Overflow questions tagged with neat - Use Markdown auto ordering - Add Command Line Interface section --- README.md | 119 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 88 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index e16b2b7b..0b44b405 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,25 @@ -[Neat logo](http://neat.bourbon.io) +[Neat logo][Neat] ## A lightweight and flexible Sass grid -Neat is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road. +[Neat] is a fluid grid framework with the aim of being easy enough to +use out of the box and flexible enough to customize down the road. -- **[Demo](http://neat.bourbon.io)** -- **[Documentation](http://thoughtbot.github.io/neat-docs/latest)** -- **[Changelog](https://github.com/thoughtbot/neat/releases)** -- **[Issues & Bugs](https://github.com/thoughtbot/neat/issues)** + [Neat]: https://neat.bourbon.io/ -Follow the [@bourbonsass](https://twitter.com/bourbonsass) Twitter account -for updates. +### Helpful Links + +- [Demo](https://neat.bourbon.io/examples/) +- [Documentation](https://neat.bourbon.io/docs/latest/) +- [Change log](CHANGELOG.md) +- [Twitter](https://twitter.com/bourbonsass) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/neat) ## Table of Contents - [Requirements](#requirements) - [Installation](#installation) +- [Command Line Interface](#command-line-interface) - [The Bourbon Family](#the-bourbon-family) - [Contributing](#contributing) - [License](#license) @@ -23,39 +27,51 @@ for updates. ## Requirements -- Sass 3.4+ or LibSass 3.3+ +- [Sass] 3.4+ or [LibSass] 3.3+ -## Installation + [Sass]: https://github.com/sass/sass + [LibSass]: https://github.com/sass/libsass -For command line help, visit our wiki page on Neat’s [command line interface](https://github.com/thoughtbot/neat/wiki/Command-Line-Interface). +## Installation -1. Install the Neat gem using the [RubyGems](https://rubygems.org) package manager: +1. Install the Neat gem using the [RubyGems] package manager: ```bash gem install neat ``` - Alternatively, you can install Neat with [Bower](http://bower.io). + Alternatively, you can install Neat with [Bower]. -2. Install or update Neat’s dependencies: +1. Install or update Neat’s dependencies: ```bash gem install sass # or gem update sass ``` -3. Install the Neat library into the current directory: + **Pro Tip:** You can target installation into a specific directory using the + `path` flag: + + ```bash + neat install --path my/custom/path/ + ``` + +1. Install the Neat library into the current directory: ```bash neat install ``` -4. Import Neat in your stylesheet: +1. Import Neat in your stylesheet: ```scss @import "neat/neat"; ``` - It’s not recommended to add or modify the Neat files so that you can update them easily. + It’s not recommended to add or modify the Neat files so that you can update + them easily. + + [RubyGems]: https://rubygems.org + [Bower]: http://bower.io ### Installation for Ruby on Rails 4.2+ @@ -65,25 +81,27 @@ For command line help, visit our wiki page on Neat’s [command line interface]( gem "neat" ``` -2. Then run: +1. Then run: ```bash bundle install ``` - If you see the error `Bundler could not find compatible versions for gem "sass"`, run: + If you see the error `Bundler could not find compatible versions for gem + "sass"`, run: ```bash bundle update sass ``` -3. Import Neat in your `application.scss`: +1. Import Neat in your `application.scss`: ```scss @import "neat"; ``` - It should be noted that `@import` rules are not compatible with Sprockets directives. You need to use one or the other. + It should be noted that `@import` rules are not compatible with Sprockets + directives. You need to use one or the other. ### Installing with npm and using a Node-based asset pipeline @@ -93,7 +111,11 @@ For command line help, visit our wiki page on Neat’s [command line interface]( npm install --save bourbon-neat ``` -1. If you’re using [Eyeglass](http://eyeglass.rocks), skip to Step 3. Otherwise, you’ll need to add Neat to your node-sass `includePaths` option. `require("bourbon-neat").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. +1. If you’re using [eyeglass], skip to Step 3. Otherwise, you’ll need to add + Neat to your node-sass `includePaths` option. + `require("bourbon-neat").includePaths` is an array of directories that you + should pass to node-sass. How you do this depends on how node-sass is + integrated into your project. 1. Import Neat into your Sass files: @@ -101,6 +123,8 @@ For command line help, visit our wiki page on Neat’s [command line interface]( @import "neat"; ``` + [eyeglass]: http://eyeglass.rocks + ### Installing older versions of Neat 1. Uninstall any Neat gem versions you already have: @@ -109,20 +133,49 @@ For command line help, visit our wiki page on Neat’s [command line interface]( gem uninstall neat ``` -2. Reinstall the Neat gem, using the `-v` flag to specify the version you need: +1. Reinstall the Neat gem, using the `-v` flag to specify the version you need: ```bash gem install neat -v 1.8.1 ``` -3. Follow the [instructions above](#installation) to install Neat into your project. +1. Follow the [instructions above](#installation) to install Neat into your + project. + +## Command Line Interface + +```bash +neat [options] +``` + +### Options + +| Option | Description | +| :---------------- | :------------------------ | +| `-h`, `--help` | Show help | +| `-v`, `--version` | Show the version number | +| `--path` | Specify a custom path | +| `--force` | Force install (overwrite) | + +### Commands + +| Command | Description | +| :------------- | :------------------------------------------------- | +| `neat install` | Install Neat into the current directory | +| `neat update` | Overwrite and update Neat in the current directory | +| `neat remove` | Removes Neat from the current directory | +| `neat help` | Show help | +| `neat version` | Show the version number | ## The Bourbon family -- [Bourbon](https://github.com/thoughtbot/bourbon): A lightweight Sass tool set -- [Neat](https://github.com/thoughtbot/neat): A lightweight and flexible Sass grid -- [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects -- [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters +- [Bourbon]: A lightweight Sass tool set +- [Bitters]: Scaffold styles, variables and structure for Bourbon projects +- [Refills]: Components and patterns built with Bourbon and Neat + + [Bourbon]: https://github.com/thoughtbot/bourbon + [Bitters]: https://github.com/thoughtbot/bitters + [Refills]: https://github.com/thoughtbot/refills ## Contributing @@ -133,17 +186,21 @@ See the [contributing] document. Thank you, [contributors]! ## License -Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license]. +Neat is copyright © 2012 [thoughtbot, inc.][thoughtbot] It is free software, and +may be redistributed under the terms specified in the [license]. [license]: LICENSE.md ## About -Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. +Neat is maintained by the thoughtbot design team. It is funded by +[thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are +trademarks of thoughtbot, inc. [thoughtbot logo][thoughtbot] -We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. +We love open-source software! See [our other projects][community] or +[hire us][hire] to design, develop, and grow your product. [thoughtbot]: https://thoughtbot.com?utm_source=github [community]: https://thoughtbot.com/community?utm_source=github From 49b02a9beca4a5b0d4b2a5cb8211e0ad2132bda8 Mon Sep 17 00:00:00 2001 From: Kevin Garcia Date: Sat, 18 Feb 2017 11:11:10 -0800 Subject: [PATCH 195/269] Update grid collapse documentation Missed removing `float: left` from docs. --- core/neat/mixins/_grid-collapse.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/core/neat/mixins/_grid-collapse.scss b/core/neat/mixins/_grid-collapse.scss index 4378c2c6..e2a6fdce 100644 --- a/core/neat/mixins/_grid-collapse.scss +++ b/core/neat/mixins/_grid-collapse.scss @@ -17,7 +17,6 @@ /// /// @example css /// .element { -/// float: left; /// margin-left: -20px; /// margin-right: -20px; /// width: calc(100% + 40px); From 483d14341064420a6b90fcc8fc8dee2d2c2de57f Mon Sep 17 00:00:00 2001 From: Jay Sitter Date: Fri, 24 Feb 2017 12:58:52 -0500 Subject: [PATCH 196/269] Fix 'detirmine' typo --- core/neat/functions/_neat-column-ratio.scss | 2 +- core/neat/mixins/_grid-push.scss | 2 +- core/neat/mixins/_grid-shift.scss | 2 +- core/neat/settings/_settings.scss | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/neat/functions/_neat-column-ratio.scss b/core/neat/functions/_neat-column-ratio.scss index f55934de..9eab5495 100644 --- a/core/neat/functions/_neat-column-ratio.scss +++ b/core/neat/functions/_neat-column-ratio.scss @@ -1,7 +1,7 @@ @charset "UTF-8"; /// Determine the ratio of `$columns` to the total column count. /// If `$columns` is more than one value, they are handed to -/// `_neat-parse-columns()` which will detirmine the total columns and use this +/// `_neat-parse-columns()` which will determine the total columns and use this /// value instead of `total-columns`. /// /// @argument {map} $grid diff --git a/core/neat/mixins/_grid-push.scss b/core/neat/mixins/_grid-push.scss index 5d816284..4d76c0ab 100644 --- a/core/neat/mixins/_grid-push.scss +++ b/core/neat/mixins/_grid-push.scss @@ -9,7 +9,7 @@ /// The number of columns to push the column. /// /// @argument {map} $grid [$neat-grid] -/// The grid to be used to detirmine how far to push the column. +/// The grid to be used to determine how far to push the column. /// By default, the global `$neat-grid` will be used. /// /// @example scss diff --git a/core/neat/mixins/_grid-shift.scss b/core/neat/mixins/_grid-shift.scss index cd0eb627..43d8a9bf 100644 --- a/core/neat/mixins/_grid-shift.scss +++ b/core/neat/mixins/_grid-shift.scss @@ -10,7 +10,7 @@ /// The number of columns to shift the column. /// /// @argument {map} $grid [$neat-grid] -/// The grid to be used to detirmine how far to shift the column. +/// The grid to be used to determine how far to shift the column. /// By default, the global `$neat-grid` will be used. /// /// @example scss diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 44246acb..88d4822d 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -47,7 +47,7 @@ $neat-grid: () !default; /// /// @property {number (with unit) | string | null} media [null] /// The `@media` definition that is used by the [`grid-media`](#grid-media) -/// mixin to detirmine the media properties. +/// mixin to determine the media properties. /// /// @property {color} color [null] /// The color used by [`grid-visual`](#grid-visual) to create the guides. From 5077b4b24fa24c4ce2cb05d841823a8ab9d43c36 Mon Sep 17 00:00:00 2001 From: Aqeel Fikree Date: Tue, 28 Feb 2017 10:17:00 -0500 Subject: [PATCH 197/269] Fix typo --- core/neat/settings/_settings.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/settings/_settings.scss b/core/neat/settings/_settings.scss index 88d4822d..cc0e1a1a 100644 --- a/core/neat/settings/_settings.scss +++ b/core/neat/settings/_settings.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; /// This variable is a sass map that overrides Neat's default grid settings. -/// Use this to define your project's grid properties incluting gutters and +/// Use this to define your project's grid properties including gutters and /// total column count. /// /// @type map From a8d680ad6c7092c17429cf80029c560de294e4cd Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Sat, 18 Feb 2017 11:51:59 -0500 Subject: [PATCH 198/269] Compartmentalize contrib variables --- contrib/base/_grids.scss | 8 -------- contrib/index.html | 3 +++ contrib/patterns/_grid-nested.scss | 5 +++++ contrib/patterns/_grid.scss | 4 ++++ contrib/styles.scss | 1 - 5 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 contrib/base/_grids.scss diff --git a/contrib/base/_grids.scss b/contrib/base/_grids.scss deleted file mode 100644 index 8a60725b..00000000 --- a/contrib/base/_grids.scss +++ /dev/null @@ -1,8 +0,0 @@ -$grid--nested: ( - columns: 3, - gutter: 0, -); - -$grid--rtl: ( - direction: rtl, -); diff --git a/contrib/index.html b/contrib/index.html index cd7aa35f..dcdad6c0 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -54,6 +54,9 @@

Nested Grid

Push Grid

+
+
+

Shift Grid

diff --git a/contrib/patterns/_grid-nested.scss b/contrib/patterns/_grid-nested.scss index 703c09bb..e085ccfd 100644 --- a/contrib/patterns/_grid-nested.scss +++ b/contrib/patterns/_grid-nested.scss @@ -1,3 +1,8 @@ +$grid--nested: ( + columns: 3, + gutter: 0, +); + .grid--nested { @include grid-container($grid--nested); } diff --git a/contrib/patterns/_grid.scss b/contrib/patterns/_grid.scss index 40cfc241..56bdcffb 100644 --- a/contrib/patterns/_grid.scss +++ b/contrib/patterns/_grid.scss @@ -1,3 +1,7 @@ +$grid--rtl: ( + direction: rtl, +); + .grid { @include grid-container; } diff --git a/contrib/styles.scss b/contrib/styles.scss index 9f8cc24b..81372b19 100644 --- a/contrib/styles.scss +++ b/contrib/styles.scss @@ -1,6 +1,5 @@ @import "../core/neat"; -@import "base/grids"; @import "base/variables"; @import "patterns/box"; From 223990b49e2e18f49d226981ed5dddb41b5057da Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 2 Apr 2017 13:12:59 -0400 Subject: [PATCH 199/269] Update gulp-connect to 5.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a8273ea1..82cedd8c 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "devDependencies": { "gulp": "^3.9", "gulp-autoprefixer": "^3.1", - "gulp-connect": "^2.3", + "gulp-connect": "^5.0", "gulp-sass": "^2.2" }, "eyeglass": { From 466f0c4565ff49303e892e840535a1a309a1d807 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 2 Apr 2017 13:14:18 -0400 Subject: [PATCH 200/269] Update gulp-sass to 3.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82cedd8c..0b99481e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "gulp": "^3.9", "gulp-autoprefixer": "^3.1", "gulp-connect": "^5.0", - "gulp-sass": "^2.2" + "gulp-sass": "^3.1" }, "eyeglass": { "name": "neat", From 2d645efe85f7d6348f3dbb72fa2498b3bf2f02c7 Mon Sep 17 00:00:00 2001 From: Cos Date: Fri, 24 Mar 2017 10:28:52 +0000 Subject: [PATCH 201/269] Simplify grid-visual for consistent cross-browser behaviour --- core/neat/mixins/_grid-visual.scss | 38 +++++------------------------- 1 file changed, 6 insertions(+), 32 deletions(-) diff --git a/core/neat/mixins/_grid-visual.scss b/core/neat/mixins/_grid-visual.scss index fefa5848..5409711f 100644 --- a/core/neat/mixins/_grid-visual.scss +++ b/core/neat/mixins/_grid-visual.scss @@ -19,7 +19,7 @@ /// /// @example css /// .element { -/// background-image: linear-gradient( … ) ; +/// background-image: repeating-linear-gradient( … ) ; /// } @mixin grid-visual($color: null, $grid: $neat-grid) { @@ -29,39 +29,13 @@ $_grid-columns: _retrieve-neat-setting($grid, columns); $_grid-gutter: _retrieve-neat-setting($grid, gutter); - $_grid-visual-object: () !default; + $_grid-visual-column: "#{_neat-column-width($grid, 1)} + #{$_grid-gutter}"; $_grid-visual: - $color, - $color $_grid-gutter, + transparent, transparent $_grid-gutter, + $color $_grid-gutter, + $color calc(#{$_grid-visual-column}), ; - @for $i from 1 to $_grid-columns { - $_grid-visual-local: ( - #{$i}: "#{_neat-column-width($grid, $i)} + #{$_grid-gutter}", - ); - - $_grid-visual-object: map-merge($_grid-visual-object, $_grid-visual-local); - } - - @each $stop, $location in $_grid-visual-object { - $_grid-visual-loop-list: - transparent calc(#{$location}), - $color calc(#{$location}), - $color calc(#{$location} + #{$_grid-gutter}), - transparent calc(#{$location} + #{$_grid-gutter}), - ; - - $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); - } - - $_grid-visual-loop-list: - transparent calc(100% - #{$_grid-gutter}), - $color calc(100% - #{$_grid-gutter}), - $color calc(100%), - ; - - $_grid-visual: _neat-append-grid-visual($_grid-visual, $_grid-visual-loop-list); - - background-image: linear-gradient(to right, $_grid-visual); + background-image: repeating-linear-gradient(to right, $_grid-visual); } From 50a6ed88d3215b0a842104bbc37475ef08a812f1 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 14 Apr 2017 10:54:42 -0400 Subject: [PATCH 202/269] Add issue and pull request templates for GitHub Addresses https://github.com/thoughtbot/neat/issues/573 These templates are a ripoff of those written by [@ErisDS] for [Ghost]. https://github.com/TryGhost/Ghost/commit/e5afddfa61ba31cb9e00ac250249fcd0c1f45666 [@ErisDS]: https://github.com/ErisDS [Ghost]: https://github.com/TryGhost/Ghost --- .github/ISSUE_TEMPLATE.md | 22 ++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 8 ++++++++ 2 files changed, 30 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..05fd49d1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,22 @@ +Welcome to Neat! 👋🎉 + +Do you need help or have a question? Please check out Neat on [Stack Overflow]. Got an idea for a new feature or found a bug? Please fill out the sections below... thank you 👍 + +[Stack Overflow]: https://stackoverflow.com/questions/tagged/neat + +### Issue Summary + +A summary of the issue and the browser/OS environment in which it occurs. + +### Steps to Reproduce + +1. This is the first step +2. This is the second step, etc. + +Any other info, for example, why you consider this to be a bug? What did you expect to happen instead? + +### Technical details: + +- Neat Version: +- Build Tool or Environment: +- Browser/OS: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..1d5549a4 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +Got some code for us? Awesome 🎊! + +Please include a description of your change and the problem it solves. Then check your PR against this list. Thanks! +- [ ] Commit message has a short title & issue references +- [ ] Commits are squashed +- [ ] The build will pass (run `bundle exec rake`). + +More info can be found by clicking the "guidelines for contributing" link above. From e361e1e18218b56d3e16562f20f0e0ee0ddf1873 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Tue, 18 Apr 2017 14:13:55 -0400 Subject: [PATCH 203/269] Add Neat blog posts from robots.thoughtbot.com MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses → https://github.com/thoughtbot/neat/issues/574 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b44b405..6082215e 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,13 @@ use out of the box and flexible enough to customize down the road. ### Helpful Links -- [Demo](https://neat.bourbon.io/examples/) +- [Demos](https://neat.bourbon.io/examples/) - [Documentation](https://neat.bourbon.io/docs/latest/) - [Change log](CHANGELOG.md) - [Twitter](https://twitter.com/bourbonsass) - [Stack Overflow](https://stackoverflow.com/questions/tagged/neat) +- [Neat 2.0 Building the future of floated Sass grids](https://robots.thoughtbot.com/building-the-future-of-floated-css-grids) by [@whmii](http://social.mcmahan.me) +- [Getting started with Neat 2.0, a lightweight and flexible Sass grid](https://robots.thoughtbot.com/the-release-of-neat-2-0-a-lightweight-and-flexible-sass-grid) by [@whmii](http://social.mcmahan.me) ## Table of Contents From 4ad2d94db82656ac18d222433caa1f6b5aade637 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 21 Apr 2017 16:22:14 -0400 Subject: [PATCH 204/269] Correct indentation of README sections --- README.md | 102 +++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 6082215e..713105eb 100644 --- a/README.md +++ b/README.md @@ -38,80 +38,80 @@ use out of the box and flexible enough to customize down the road. 1. Install the Neat gem using the [RubyGems] package manager: - ```bash - gem install neat - ``` + ```bash + gem install neat + ``` - Alternatively, you can install Neat with [Bower]. + Alternatively, you can install Neat with [Bower]. 1. Install or update Neat’s dependencies: - ```bash - gem install sass # or gem update sass - ``` + ```bash + gem install sass # or gem update sass + ``` - **Pro Tip:** You can target installation into a specific directory using the - `path` flag: + **Pro Tip:** You can target installation into a specific directory using the + `path` flag: - ```bash - neat install --path my/custom/path/ - ``` + ```bash + neat install --path my/custom/path/ + ``` 1. Install the Neat library into the current directory: - ```bash - neat install - ``` + ```bash + neat install + ``` 1. Import Neat in your stylesheet: - ```scss - @import "neat/neat"; - ``` + ```scss + @import "neat/neat"; + ``` - It’s not recommended to add or modify the Neat files so that you can update - them easily. + It’s not recommended to add or modify the Neat files so that you can update + them easily. - [RubyGems]: https://rubygems.org - [Bower]: http://bower.io +[RubyGems]: https://rubygems.org +[Bower]: http://bower.io ### Installation for Ruby on Rails 4.2+ 1. Add Neat to your Gemfile: - ```ruby - gem "neat" - ``` + ```ruby + gem "neat" + ``` 1. Then run: - ```bash - bundle install - ``` + ```bash + bundle install + ``` - If you see the error `Bundler could not find compatible versions for gem - "sass"`, run: + If you see the error `Bundler could not find compatible versions for gem + "sass"`, run: - ```bash - bundle update sass - ``` + ```bash + bundle update sass + ``` 1. Import Neat in your `application.scss`: - ```scss - @import "neat"; - ``` + ```scss + @import "neat"; + ``` - It should be noted that `@import` rules are not compatible with Sprockets - directives. You need to use one or the other. + It should be noted that `@import` rules are not compatible with Sprockets + directives. You need to use one or the other. ### Installing with npm and using a Node-based asset pipeline 1. Add Neat as a dependency: - ```bash - npm install --save bourbon-neat - ``` + ```bash + npm install --save bourbon-neat + ``` 1. If you’re using [eyeglass], skip to Step 3. Otherwise, you’ll need to add Neat to your node-sass `includePaths` option. @@ -121,25 +121,25 @@ use out of the box and flexible enough to customize down the road. 1. Import Neat into your Sass files: - ```scss - @import "neat"; - ``` + ```scss + @import "neat"; + ``` - [eyeglass]: http://eyeglass.rocks +[eyeglass]: http://eyeglass.rocks ### Installing older versions of Neat 1. Uninstall any Neat gem versions you already have: - ```bash - gem uninstall neat - ``` + ```bash + gem uninstall neat + ``` 1. Reinstall the Neat gem, using the `-v` flag to specify the version you need: - ```bash - gem install neat -v 1.8.1 - ``` + ```bash + gem install neat -v 1.8.1 + ``` 1. Follow the [instructions above](#installation) to install Neat into your project. From fb23d77d79683d5cbd51c9c0f1df91a69c7a6d46 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Tue, 18 Apr 2017 14:35:01 -0400 Subject: [PATCH 205/269] Removed argument documentation for `grid-container` As brought up in https://github.com/thoughtbot/neat/pull/578, `grid-container` does not actually use the parameter passed to it. --- core/neat/mixins/_grid-container.scss | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index b892af59..91b8465d 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -5,10 +5,6 @@ /// /// @name Grid container /// -/// @argument {map} $grid [$neat-grid] -/// The grid to be used to generate the container. -/// By default, the global `$neat-grid` will be used. -/// /// @example scss /// .element { /// @include grid-container; @@ -22,6 +18,11 @@ /// } @mixin grid-container($grid: $neat-grid) { + @if $grid != $neat-grid { + @warn "`grid-container` does not use grid propertes. + Custom grids do not need to be passed in to this mixin."; + } + &::after { clear: both; content: ""; From 99f9255a55eb5d016042ca6e129572803de0a6a8 Mon Sep 17 00:00:00 2001 From: davejtoews Date: Tue, 15 Nov 2016 16:37:03 -0700 Subject: [PATCH 206/269] Update package.json Add style property to package.json, allowing for easier imports. --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0b99481e..6df3c304 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "url": "http://thoughtbot.com" }, "main": "index.js", + "style": "app/assets/stylesheets/_neat.scss", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From a4820d74180ddaa6b7cd89610f5bf045ff774052 Mon Sep 17 00:00:00 2001 From: davejtoews Date: Wed, 16 Nov 2016 17:20:22 -0700 Subject: [PATCH 207/269] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6df3c304..16676d2f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "url": "http://thoughtbot.com" }, "main": "index.js", - "style": "app/assets/stylesheets/_neat.scss", + "style": "core/_bourbon.scss", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From 2666dc829133578f0a629595cb788b8da7fa1cd0 Mon Sep 17 00:00:00 2001 From: davejtoews Date: Wed, 16 Nov 2016 17:25:16 -0700 Subject: [PATCH 208/269] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 16676d2f..2304122d 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "url": "http://thoughtbot.com" }, "main": "index.js", - "style": "core/_bourbon.scss", + "style": "style": "app/assets/stylesheets/_neat.scss", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From 5f15317c170dbf98a482091d5879cf19564a8298 Mon Sep 17 00:00:00 2001 From: davejtoews Date: Wed, 16 Nov 2016 17:25:31 -0700 Subject: [PATCH 209/269] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2304122d..6df3c304 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "url": "http://thoughtbot.com" }, "main": "index.js", - "style": "style": "app/assets/stylesheets/_neat.scss", + "style": "app/assets/stylesheets/_neat.scss", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From 91ec2c01c272cdefa2295b74073f66c4bdc57c89 Mon Sep 17 00:00:00 2001 From: Mehdi Lahmam Date: Thu, 22 Jun 2017 12:51:49 +0200 Subject: [PATCH 210/269] Add support for `--path` option to install This allows installing Neat into a specific directory. It's more consistent with Bourbon CLI Fix #351 --- lib/neat/generator.rb | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/neat/generator.rb b/lib/neat/generator.rb index c5c609b3..20cde793 100644 --- a/lib/neat/generator.rb +++ b/lib/neat/generator.rb @@ -7,16 +7,18 @@ class Generator < Thor map ["-v", "--version"] => :version desc "install", "Install Neat into your project" + method_options path: :string, force: :boolean def install - if neat_files_already_exist? + if neat_files_already_exist? && !options[:force] puts "Neat files already installed, doing nothing." else install_files - puts "Neat files installed to neat/" + puts "Neat files installed to #{install_path}/" end end desc "update", "Update Neat" + method_options path: :string def update if neat_files_already_exist? remove_neat_directory @@ -28,6 +30,7 @@ def update end desc "remove", "Remove Neat" + method_options path: :string def remove if neat_files_already_exist? remove_neat_directory @@ -45,16 +48,32 @@ def version private def neat_files_already_exist? - File.directory?("neat") + install_path.exist? end - def install_files - FileUtils.mkdir_p("neat") - FileUtils.cp_r(all_stylesheets, "neat/") + def install_path + @install_path ||= if options[:path] + Pathname.new(File.join(options[:path], "neat")) + else + Pathname.new("neat") + end end def remove_neat_directory - FileUtils.rm_rf("neat") + FileUtils.rm_rf(install_path) + end + + def install_files + make_install_directory + copy_in_scss_files + end + + def make_install_directory + FileUtils.mkdir_p(install_path) + end + + def copy_in_scss_files + FileUtils.cp_r(all_stylesheets, install_path) end def all_stylesheets From a4285fabdb1d461be80f8d948c30bc9264c60b4c Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 23 Jun 2017 10:28:44 -0400 Subject: [PATCH 211/269] Fix path The original change was to add a `style` property, but it appears to have gone through a rebase or other conflict and was left using the wrong path. History: 1. https://github.com/thoughtbot/neat/commit/99f9255a55eb5d016042ca6e129572803de0a6a8 2. https://github.com/thoughtbot/neat/commit/a4820d74180ddaa6b7cd89610f5bf045ff774052 3. https://github.com/thoughtbot/neat/commit/2666dc829133578f0a629595cb788b8da7fa1cd0 4. https://github.com/thoughtbot/neat/commit/5f15317c170dbf98a482091d5879cf19564a8298 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6df3c304..327774f9 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "url": "http://thoughtbot.com" }, "main": "index.js", - "style": "app/assets/stylesheets/_neat.scss", + "style": "core/_neat.scss", "repository": { "type": "git", "url": "https://github.com/thoughtbot/neat.git" From d6bc594f1370c506a1502d36f9007ea174cf9a23 Mon Sep 17 00:00:00 2001 From: Damian Galarza Date: Fri, 23 Jun 2017 14:45:32 -0400 Subject: [PATCH 212/269] Use Sass.load_paths instead of SASS_PATH env The SASS_PATH environment variable is not intended to be set by another library but rather by consumers of Sass. Since the environment variable is only read in once at the first time `load_paths` is called. This was causing an error where, if a user had another gem such as `bootstrap-sass` and it was being loaded before `neat` was, the modifications to `SASS_PATH` we were making were never read in, so the neat files would never be found. See https://github.com/sass/sass/blob/1b628f03b9361fa6047097c9fd0d01b21247b8f3/lib/sass.rb#L20-L43 --- lib/neat.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/neat.rb b/lib/neat.rb index f0b7c5ca..c16f00c1 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,7 +1,4 @@ +require "sass" require "neat/generator" -neat_path = File.expand_path("../../core", __FILE__) -ENV["SASS_PATH"] = [ - ENV["SASS_PATH"], - neat_path, -].compact.join(File::PATH_SEPARATOR) +Sass.load_paths << File.expand_path("../../core", __FILE__) From 63501805e25784b6a85fb48a3da072c501a19498 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 26 Jun 2017 10:28:26 -0400 Subject: [PATCH 213/269] Update npmignore --- .npmignore | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.npmignore b/.npmignore index 329ad9d6..9e840409 100644 --- a/.npmignore +++ b/.npmignore @@ -1,15 +1,20 @@ +.github/ .gitignore +.hound.yml +.ruby-version .sass-cache .scss-lint.yml -_site bin/ bower.json +circle.yml +contrib/ CONTRIBUTING.md Gemfile Gemfile.lock +Gulpfile.js lib/ neat.gemspec -NEWS.md pkg/ Rakefile +RELEASING.md spec/ From 73dd641bcbe1e806ddda812283e54e181575d87a Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 27 Jun 2017 09:12:50 -0400 Subject: [PATCH 214/269] Add CODE_OF_CONDUCT.md GitHub has a new feature that indicates if a project has a code of conduct. We already had one, linked from `CONTRIBUTING.md`. This commit just duplicates that link in a place where GitHub can find it. --- .npmignore | 1 + CODE_OF_CONDUCT.md | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/.npmignore b/.npmignore index 9e840409..0a0c3def 100644 --- a/.npmignore +++ b/.npmignore @@ -7,6 +7,7 @@ bin/ bower.json circle.yml +CODE_OF_CONDUCT.md contrib/ CONTRIBUTING.md Gemfile diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..ca610b15 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,6 @@ +# Code of Conduct + +By participating in this project, you agree to abide by the +[thoughtbot code of conduct][tb-coc]. + +[tb-coc]: https://thoughtbot.com/open-source-code-of-conduct From d83a2f71e3712ee9afa107fc114128dbc651054c Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 26 Jun 2017 16:09:49 -0400 Subject: [PATCH 215/269] Update change log --- CHANGELOG.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90edcf72..3e342310 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,27 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). -## [Unreleased] +## [Unreleased (`master`)][unreleased] -Nothing at the moment. +### Added + +- A `--path` CLI option, which lets you install Neat into specific + directory. ([#459]) +- A `style` property has been added to our `package.json`, which makes for easy + importing when using npm-sass, sass-module-importer and others. ([#514]) + +### Fixed + +- Fixed an issue that would cause Neat to not be found within Rails + apps. ([#612]) +- Simplified the gradient used in the `grid-visual` mixin for more consistent + cross-browser behaviour. ([#569]) + +[unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0...HEAD +[#459]: https://github.com/thoughtbot/neat/pull/459 +[#514]: https://github.com/thoughtbot/neat/pull/514 +[#569]: https://github.com/thoughtbot/neat/pull/569 +[#612]: https://github.com/thoughtbot/neat/pull/612 ## [2.0.0] From a2d62a9e19dd6806df448118397fc623564ad9b1 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 27 Jun 2017 10:53:31 -0400 Subject: [PATCH 216/269] Neat v2.1.0 --- CHANGELOG.md | 8 ++++++-- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e342310..f20717b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased (`master`)][unreleased] +Nothing at the moment. + +## [2.1.0] - 2017-06-27 + ### Added - A `--path` CLI option, which lets you install Neat into specific @@ -19,7 +23,6 @@ project adheres to [Semantic Versioning](http://semver.org). - Simplified the gradient used in the `grid-visual` mixin for more consistent cross-browser behaviour. ([#569]) -[unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0...HEAD [#459]: https://github.com/thoughtbot/neat/pull/459 [#514]: https://github.com/thoughtbot/neat/pull/514 [#569]: https://github.com/thoughtbot/neat/pull/569 @@ -330,7 +333,8 @@ project adheres to [Semantic Versioning](http://semver.org). - Initial release -[Unreleased]: https://github.com/thoughtbot/neat/compare/v2.0.0...HEAD +[unreleased]: https://github.com/thoughtbot/neat/compare/v2.1.0...HEAD +[2.1.0]: https://github.com/thoughtbot/neat/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.2...v2.0.0 [2.0.0.beta.2]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...v2.0.0.beta.2 [2.0.0.beta.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.1...v2.0.0.beta.1 diff --git a/bower.json b/bower.json index 985f172e..55958cb2 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "2.0.0", + "version": "2.1.0", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 9fbd3636..03c3fa02 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.0.0 +// Neat 2.1.0 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 8163558c..d6418a74 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "2.0.0" + VERSION = "2.1.0" end diff --git a/package.json b/package.json index 327774f9..af4a74cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.0.0", + "version": "2.1.0", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From 8ddf5a0ed426e46849aeebeced27f2973ee1d3f9 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 27 Jun 2017 14:07:16 -0400 Subject: [PATCH 217/269] Update change log --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f20717b7..db304f31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ Nothing at the moment. [#569]: https://github.com/thoughtbot/neat/pull/569 [#612]: https://github.com/thoughtbot/neat/pull/612 -## [2.0.0] +## [2.0.0] - 2017-02-17 ### Fixed @@ -36,7 +36,7 @@ Nothing at the moment. - Fixed instillation from CLI - Remove float property from `grid-collapse` -## [2.0.0.beta.2] +## [2.0.0.beta.2] - 2016-12-08 ### Added @@ -47,13 +47,13 @@ Nothing at the moment. - Removed `node-sass` dependency from `package.json` -## [2.0.0.beta.1] +## [2.0.0.beta.1] - 2016-08-20 ### Added - Added `grid-collapse` to allow the creation of nested layouts -## [2.0.0.alpha.1] +## [2.0.0.alpha.1] - 2016-07-23 ### Added @@ -108,6 +108,30 @@ Nothing at the moment. - `$visual-grid-index` has been removed - `$visual-grid-opacity` has been removed +## [1.9.0] - 2017-06-27 + +### Added + +- Add support for complex `nth-child` selectors in `omega()`. ([#340]) + +### Changed + +- The background color for visual grid columns now alternates. ([#373]) +- Update node-sass dependency to 4.1.1. ([#520]) + +### Fixed + +- Removed unnecessary deprecation warning when using the `reset-display` mixin. + ([#456]) +- The description of the `remove` CLI command now correctly outputs "remove". + ([#451]) + +[#340]: https://github.com/thoughtbot/neat/pull/340 +[#373]: https://github.com/thoughtbot/neat/pull/373 +[#451]: https://github.com/thoughtbot/neat/pull/451 +[#456]: https://github.com/thoughtbot/neat/pull/456 +[#520]: https://github.com/thoughtbot/neat/pull/520 + ## 1.8.0 - 2016-06-21 ### Added @@ -340,3 +364,4 @@ Nothing at the moment. [2.0.0.beta.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.1...v2.0.0.beta.1 [2.0.0.alpha.1]: https://github.com/thoughtbot/neat/compare/v2.0.0.alpha.0...v2.0.0.alpha.1 [2.0.0.alpha.0]: https://github.com/thoughtbot/neat/compare/v1.8.0...v2.0.0.alpha.0 +[1.9.0]: https://github.com/thoughtbot/neat/compare/v1.8.0...v1.9.0 From 2bde983e693a05edce1acc128ebb278e9058c7dc Mon Sep 17 00:00:00 2001 From: Shigeaki Matsumura Date: Wed, 28 Jun 2017 14:41:07 +0900 Subject: [PATCH 218/269] fix typo --- core/neat/mixins/_grid-container.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index 91b8465d..a26e5145 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -19,7 +19,7 @@ @mixin grid-container($grid: $neat-grid) { @if $grid != $neat-grid { - @warn "`grid-container` does not use grid propertes. + @warn "`grid-container` does not use grid properties. Custom grids do not need to be passed in to this mixin."; } From 8bbdd4d1a967419549db17bd444457724cbc3f7a Mon Sep 17 00:00:00 2001 From: "J. R. Schmid" Date: Wed, 5 Jul 2017 09:28:50 -0400 Subject: [PATCH 219/269] Fix multiline string --- core/neat/mixins/_grid-container.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/neat/mixins/_grid-container.scss b/core/neat/mixins/_grid-container.scss index a26e5145..856f47ac 100644 --- a/core/neat/mixins/_grid-container.scss +++ b/core/neat/mixins/_grid-container.scss @@ -19,8 +19,8 @@ @mixin grid-container($grid: $neat-grid) { @if $grid != $neat-grid { - @warn "`grid-container` does not use grid properties. - Custom grids do not need to be passed in to this mixin."; + @warn "`grid-container` does not use grid properties. " + + "Custom grids do not need to be passed in to this mixin."; } &::after { From 9cecc30faa145309a68ab7c9e11b19556ad1d691 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 7 Aug 2017 09:26:53 -0400 Subject: [PATCH 220/269] Add gulp example to readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 713105eb..020e7ee0 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,10 @@ use out of the box and flexible enough to customize down the road. @import "neat"; ``` + **Pro Tip:** Check out this [example gulp project][gulp-example] that + uses Bourbon and Neat. + +[gulp-example]: https://github.com/thoughtbot/gulp-bourbon-neat-example [eyeglass]: http://eyeglass.rocks ### Installing older versions of Neat From 3b1368891e2add0a29ed48734d0cf33839c9e27d Mon Sep 17 00:00:00 2001 From: Kevin Garcia Date: Fri, 9 Feb 2018 08:41:40 -0800 Subject: [PATCH 221/269] Extend grid-media to accept multiple custom grids --- contrib/patterns/_grid-media.scss | 18 +--------- core/neat/mixins/_grid-media.scss | 53 +++++++++++++++++++--------- spec/fixtures/mixins/grid-media.scss | 6 ++++ spec/neat/mixins/grid_media_spec.rb | 14 ++++++++ 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/contrib/patterns/_grid-media.scss b/contrib/patterns/_grid-media.scss index 2f76177f..dcf0509f 100644 --- a/contrib/patterns/_grid-media.scss +++ b/contrib/patterns/_grid-media.scss @@ -26,23 +26,7 @@ $print-neat-grid: ( content: "#{map-get($neat-grid, media)}"; } - @include grid-media($custom-neat-grid) { - @include grid-column(6); - - &::before { - content: "#{map-get($neat-grid, media)}"; - } - } - - @include grid-media($specific-neat-grid) { - @include grid-column(6); - - &::before { - content: "#{map-get($neat-grid, media)}"; - } - } - - @include grid-media($print-neat-grid) { + @include grid-media($custom-neat-grid, $specific-neat-grid, $print-neat-grid) { @include grid-column(6); &::before { diff --git a/core/neat/mixins/_grid-media.scss b/core/neat/mixins/_grid-media.scss index 5f41a76b..971f06fc 100644 --- a/core/neat/mixins/_grid-media.scss +++ b/core/neat/mixins/_grid-media.scss @@ -13,28 +13,39 @@ /// @name Grid media /// /// @argument {map} $grid -/// The grid to be used within the scope of the block. -/// This grid should include the `media` property to determine the expression +/// The grid or grids to be used within the scope of the block. +/// These grids should include the `media` property to determine the expression /// for the media query. /// /// @content -/// Grid media will temporarily the override the default grid with the -/// attributes of the custom grid. This change is scoped to within the mixin -/// block, and once the mixin has ended the default grid will revert to its -/// original state as defined by `$neat-grid`. This allows for different +/// Grid media will temporarily override the default grid with the attributes +/// of the custom grids. When `grid-media` is given a custom grid, it will +/// apply that grid to any of other Neat mixins within the `grid-media` block +/// (`{…}`). Once the mixin block has ended the default grid will revert to +/// its original state as defined by `$neat-grid`. This allows for different /// gutter width and column count based on screen size or other properties. /// +/// If multiple grids are passed in to `grid-media`, it will loop through the +/// contents of the block, quickly allowing you to apply multiple grids in a +/// single mixin. +/// /// @example scss /// $custom-neat-grid: ( /// columns: 12, /// gutter: 50px, +/// media: "screen and (max-width: 999px)", +/// ); +/// +/// $custom-neat-grid-2: ( +/// columns: 12, +/// gutter: 70px, /// media: 1000px, /// ); /// /// .element { /// @include grid-column(3); /// -/// @include grid-media($custom-neat-grid){ +/// @include grid-media($custom-neat-grid, $custom-neat-grid-2){ /// @include grid-column(6); /// } /// } @@ -46,22 +57,32 @@ /// margin-left: 20px; /// } /// -/// @media only screen and (min-width: 1000px) { +/// @media only screen and (max-width: 999px) { /// .element { /// width: calc(50% - 75px); /// float: left; /// margin-left: 50px; /// } /// } +/// +/// @media only screen and (min-width: 1000px) { +/// .element { +/// width: calc(50% - 75px); +/// float: left; +/// margin-left: 70px; +/// } +/// } -@mixin grid-media($grid) { - $_media: _retrieve-neat-setting($grid, media); - $_query: _neat-parse-media($_media); +@mixin grid-media($grids...) { + @each $_grid in $grids { + $_media: _retrieve-neat-setting($_grid, media); + $_query: _neat-parse-media($_media); - @media #{$_query} { - $_default-neat-grid: $neat-grid; - $neat-grid: map-merge($neat-grid, $grid) !global; - @content; - $neat-grid: $_default-neat-grid !global; + @media #{$_query} { + $_default-neat-grid: $neat-grid; + $neat-grid: map-merge($neat-grid, $_grid) !global; + @content; + $neat-grid: $_default-neat-grid !global; + } } } diff --git a/spec/fixtures/mixins/grid-media.scss b/spec/fixtures/mixins/grid-media.scss index acb0b012..0fbb9ace 100644 --- a/spec/fixtures/mixins/grid-media.scss +++ b/spec/fixtures/mixins/grid-media.scss @@ -37,3 +37,9 @@ $print-neat-grid: ( @include grid-column(8); } } + +.grid-column-media-combined-grid { + @include grid-media($custom-neat-grid, $specific-neat-grid, $print-neat-grid) { + @include grid-column(3); + } +} diff --git a/spec/neat/mixins/grid_media_spec.rb b/spec/neat/mixins/grid_media_spec.rb index 178b5d8d..4db86c26 100644 --- a/spec/neat/mixins/grid_media_spec.rb +++ b/spec/neat/mixins/grid_media_spec.rb @@ -22,4 +22,18 @@ expect(".grid-column-media-print-neat-grid").to be_contained_in("print") end end + + context "with argument ($custom-neat-grid, $specific-neat-grid, $print-neat-grid)" do + it "outputs @media only screen and (min-width: 1000px)" do + expect(".grid-column-media-combined-grid").to be_contained_in("only screen and (min-width: 1000px)") + end + + it "outputs @media only screen and (min-width: 1000px) and (max-width: 1100px)" do + expect(".grid-column-media-combined-grid").to be_contained_in("only screen and (min-width: 1000px) and (max-width: 1100px)") + end + + it "outputs @media print" do + expect(".grid-column-media-combined-grid").to be_contained_in("print") + end + end end From b51fb754eb7e813d1f35670fb382dfc8180cbfc7 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 2 Mar 2018 09:04:05 -0500 Subject: [PATCH 222/269] Remove mention of Refills --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 020e7ee0..2cb9ff12 100644 --- a/README.md +++ b/README.md @@ -177,11 +177,9 @@ neat [options] - [Bourbon]: A lightweight Sass tool set - [Bitters]: Scaffold styles, variables and structure for Bourbon projects -- [Refills]: Components and patterns built with Bourbon and Neat [Bourbon]: https://github.com/thoughtbot/bourbon [Bitters]: https://github.com/thoughtbot/bitters - [Refills]: https://github.com/thoughtbot/refills ## Contributing From 9ea34b61dad5f1b0a65f1c4e74d0787600617afe Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 29 Jun 2018 10:55:34 -0400 Subject: [PATCH 223/269] Add sass precision to test suite for stability --- CHANGELOG.md | 2 +- Gulpfile.js | 3 ++- contrib/patterns/_grid-nested.scss | 2 +- spec/support/sass_support.rb | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db304f31..f768259c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased (`master`)][unreleased] -Nothing at the moment. +- Extend grid-media to accept multiple custom grids ## [2.1.0] - 2017-06-27 diff --git a/Gulpfile.js b/Gulpfile.js index 69931047..c9c5bbd6 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -12,7 +12,8 @@ var paths = { gulp.task("sass", function () { return gulp.src(paths.scss) .pipe(sass({ - sourcemaps: true + sourcemaps: true, + precision: 6 })) .pipe(autoprefix("last 2 versions")) .pipe(gulp.dest("./contrib")) diff --git a/contrib/patterns/_grid-nested.scss b/contrib/patterns/_grid-nested.scss index e085ccfd..809b9d00 100644 --- a/contrib/patterns/_grid-nested.scss +++ b/contrib/patterns/_grid-nested.scss @@ -4,7 +4,7 @@ $grid--nested: ( ); .grid--nested { - @include grid-container($grid--nested); + @include grid-container; } .grid--nested__column { diff --git a/spec/support/sass_support.rb b/spec/support/sass_support.rb index 4893ece9..c0c6e895 100644 --- a/spec/support/sass_support.rb +++ b/spec/support/sass_support.rb @@ -1,7 +1,7 @@ module SassSupport def generate_css _mkdir("tmp") - `sass -I . --update spec/fixtures:tmp --quiet` + `sass -I . --update spec/fixtures:tmp --quiet --precision 5` end def clean_up From 3d78e54e69839de906e99f8807c1df28d40f5fba Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 29 Jun 2018 11:06:43 -0400 Subject: [PATCH 224/269] Neat v3.0.0 --- CHANGELOG.md | 7 +- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package-lock.json | 4687 +++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- 6 files changed, 4699 insertions(+), 7 deletions(-) create mode 100644 package-lock.json diff --git a/CHANGELOG.md b/CHANGELOG.md index f768259c..43ace357 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ project adheres to [Semantic Versioning](http://semver.org). ## [Unreleased (`master`)][unreleased] +Nothing at the moment. + +## [3.0.0] - 2018-06-29 + - Extend grid-media to accept multiple custom grids ## [2.1.0] - 2017-06-27 @@ -357,7 +361,8 @@ project adheres to [Semantic Versioning](http://semver.org). - Initial release -[unreleased]: https://github.com/thoughtbot/neat/compare/v2.1.0...HEAD +[unreleased]: https://github.com/thoughtbot/neat/compare/v3.0.0...HEAD +[3.0.0]: https://github.com/thoughtbot/neat/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/thoughtbot/neat/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.2...v2.0.0 [2.0.0.beta.2]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.1...v2.0.0.beta.2 diff --git a/bower.json b/bower.json index 55958cb2..7f221dda 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "2.1.0", + "version": "3.0.0", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 03c3fa02..69a66709 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 2.1.0 +// Neat 3.0.0 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index d6418a74..00d2d9df 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "2.1.0" + VERSION = "3.0.0" end diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..175748c0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4687 @@ +{ + "name": "bourbon-neat", + "version": "2.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "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": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "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-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "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 + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "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.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-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-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-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "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=", + "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 + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000805", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "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.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "body-parser": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", + "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", + "dev": true, + "requires": { + "bytes": "2.2.0", + "content-type": "1.0.4", + "debug": "2.2.0", + "depd": "1.1.2", + "http-errors": "1.3.1", + "iconv-lite": "0.4.13", + "on-finished": "2.3.0", + "qs": "5.2.0", + "raw-body": "2.1.7", + "type-is": "1.6.16" + }, + "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 + }, + "qs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", + "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", + "dev": true + } + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.9.tgz", + "integrity": "sha512-/+o3o6OV1cm3WKrO7U4wykU+ZICE6HiMEuravc2d03NIuM/VaRn5iMcoQ7NyxFXjvpmRICP2EER0YOnh4yIapA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "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.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000805", + "electron-to-chromium": "1.3.33" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", + "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-db": { + "version": "1.0.30000805", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000805.tgz", + "integrity": "sha1-jxrZJkyDWYm1BV3ZsAlRPObZUzg=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "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 + }, + "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 + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-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.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-livereload": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz", + "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=", + "dev": true + }, + "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 + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + } + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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.3" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "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 + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "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 + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "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.14" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.33", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz", + "integrity": "sha1-vwBwPWKnxlI4E2V4w1LWxcBCpUU=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "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.3" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", + "dev": true + }, + "event-stream": { + "version": "3.3.4", + "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.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=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.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-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "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.1.5", + "resolve-dir": "1.0.1" + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.4", + "object.defaults": "1.1.0", + "object.pick": "1.3.0", + "parse-filepath": "1.0.2" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "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.2" + } + }, + "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.6", + "mime-types": "2.1.18" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.3" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "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" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-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=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "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 + } + } + }, + "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.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.3.3" + } + }, + "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.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" + }, + "dependencies": { + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "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.34", + "xtend": "4.0.1" + } + } + } + }, + "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.2" + } + }, + "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-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.2", + "is-windows": "1.0.1", + "resolve-dir": "1.0.1" + } + }, + "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.5", + "is-windows": "1.0.1", + "which": "1.3.0" + } + }, + "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.2", + "minimatch": "0.2.14" + }, + "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.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + } + }, + "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 + }, + "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.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "1.1.1" + } + }, + "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.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.5.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" + } + }, + "gulp-autoprefixer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-3.1.1.tgz", + "integrity": "sha1-dSMAUc0NFxND14O36bXREg7u+bA=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "gulp-util": "3.0.8", + "postcss": "5.2.18", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "gulp-connect": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.5.0.tgz", + "integrity": "sha512-oRBLjw/4EVaZb8g8OcxOVdGD8ZXYrRiWKcNxlrGjxb/6Cp0GDdqw7ieX7D8xJrQS7sbXT+G94u63pMJF3MMjQA==", + "dev": true, + "requires": { + "ansi-colors": "1.1.0", + "connect": "3.6.6", + "connect-livereload": "0.5.4", + "event-stream": "3.3.4", + "fancy-log": "1.3.2", + "send": "0.13.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "tiny-lr": "0.2.1" + } + }, + "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.8", + "lodash.clonedeep": "4.5.0", + "node-sass": "4.9.0", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + } + }, + "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.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", + "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.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + } + }, + "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.1" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.16.0", + "is-my-json-valid": "2.17.2", + "pinkie-promise": "2.0.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "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-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "1.0.0" + } + }, + "hosted-git-info": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz", + "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==", + "dev": true + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" + } + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.3.3", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dev": true, + "requires": { + "is-number": "3.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "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-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-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "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=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-base64": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "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 + } + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + }, + "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" + } + }, + "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.1", + "findup-sync": "2.0.0", + "fined": "1.1.0", + "flagged-respawn": "1.0.0", + "is-plain-object": "2.0.4", + "object.map": "1.0.1", + "rechoir": "0.6.2", + "resolve": "1.5.0" + } + }, + "livereload-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", + "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "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.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.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.1" + } + }, + "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.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.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.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.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "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.2.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.2" + } + }, + "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 + }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.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.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "1.33.0" + } + }, + "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.1.9" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "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.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "node-gyp": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", + "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.79.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-sass": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", + "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.3", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.1", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.10.0", + "node-gyp": "3.7.0", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, + "dependencies": { + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "1.2.1" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.10", + "minimatch": "3.0.4" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.6.1", + "is-builtin-module": "1.0.0", + "semver": "4.3.6", + "validate-npm-package-license": "3.0.3" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.5", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "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": "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 + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "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.1.0", + "for-own": "1.0.0", + "isobject": "3.0.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" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "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.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "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" + } + }, + "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-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.2", + "os-tmpdir": "1.0.2" + } + }, + "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.2", + "path-root": "0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.2" + } + }, + "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 + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-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.2" + } + }, + "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-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.3", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "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-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "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": "5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", + "dev": true + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", + "dev": true + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "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" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.7.0", + "caseless": "0.11.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.6", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.4.3", + "uuid": "3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "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 + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "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.2", + "global-modules": "1.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + } + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.10", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.9" + } + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "2.4.3", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "send": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", + "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", + "dev": true, + "requires": { + "debug": "2.2.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "escape-html": "1.0.3", + "etag": "1.7.0", + "fresh": "0.3.0", + "http-errors": "1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "2.3.0", + "range-parser": "1.0.3", + "statuses": "1.2.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 + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", + "dev": true + } + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "1.3.5", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.3", + "mime-types": "2.1.18", + "parseurl": "1.3.2" + }, + "dependencies": { + "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.5.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + }, + "dependencies": { + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "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" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.3", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "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-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "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 + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.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=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" + }, + "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 + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "0.1.1" + } + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.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=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "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.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "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 + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "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.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "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.2" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "tiny-lr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", + "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", + "dev": true, + "requires": { + "body-parser": "1.14.2", + "debug": "2.2.0", + "faye-websocket": "0.10.0", + "livereload-js": "2.3.0", + "parseurl": "1.3.2", + "qs": "5.1.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 + } + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "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" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + } + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } + }, + "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 + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "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=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "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.3.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 + } + } + }, + "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.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "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.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "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.34", + "xtend": "4.0.1" + } + }, + "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.7" + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": "0.4.13", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "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" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json index af4a74cf..2ec58cb4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.1.0", + "version": "3.0.0", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", @@ -37,8 +37,8 @@ "devDependencies": { "gulp": "^3.9", "gulp-autoprefixer": "^3.1", - "gulp-connect": "^5.0", - "gulp-sass": "^3.1" + "gulp-connect": "^5.5.0", + "gulp-sass": "^3.2.1" }, "eyeglass": { "name": "neat", From 691791a43ccc928416d0e6a29a1ecd1d37d1bbdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Sat, 21 Jul 2018 17:11:47 +0000 Subject: [PATCH 225/269] Bump gulp-autoprefixer from 3.1.1 to 5.0.0 Bumps [gulp-autoprefixer](https://github.com/sindresorhus/gulp-autoprefixer) from 3.1.1 to 5.0.0. - [Release notes](https://github.com/sindresorhus/gulp-autoprefixer/releases) - [Commits](https://github.com/sindresorhus/gulp-autoprefixer/compare/v3.1.1...v5.0.0) Signed-off-by: dependabot[bot] --- package-lock.json | 152 ++++++++++++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 114 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 175748c0..7ae56d6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "2.1.0", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -213,16 +213,16 @@ "dev": true }, "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", + "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000805", + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000865", "normalize-range": "0.1.2", "num2fraction": "1.2.2", - "postcss": "5.2.18", + "postcss": "6.0.23", "postcss-value-parser": "3.3.0" } }, @@ -370,13 +370,13 @@ } }, "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-db": "1.0.30000805", - "electron-to-chromium": "1.3.33" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, "builtin-modules": { @@ -424,10 +424,10 @@ "map-obj": "1.0.1" } }, - "caniuse-db": { - "version": "1.0.30000805", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000805.tgz", - "integrity": "sha1-jxrZJkyDWYm1BV3ZsAlRPObZUzg=", + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", "dev": true }, "caseless": { @@ -568,6 +568,21 @@ "object-visit": "1.0.1" } }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", @@ -813,9 +828,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz", - "integrity": "sha1-vwBwPWKnxlI4E2V4w1LWxcBCpUU=", + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", "dev": true }, "encodeurl": { @@ -1444,14 +1459,15 @@ } }, "gulp-autoprefixer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-3.1.1.tgz", - "integrity": "sha1-dSMAUc0NFxND14O36bXREg7u+bA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-5.0.0.tgz", + "integrity": "sha1-gjfCeKaXdScKHK/n1vEBz81YVUQ=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "gulp-util": "3.0.8", - "postcss": "5.2.18", + "autoprefixer": "8.6.5", + "fancy-log": "1.3.2", + "plugin-error": "1.0.1", + "postcss": "6.0.23", "through2": "2.0.3", "vinyl-sourcemaps-apply": "0.2.1" } @@ -1543,9 +1559,9 @@ } }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-gulplog": { @@ -2947,6 +2963,39 @@ "pinkie": "2.0.4" } }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "1.1.0", + "arr-diff": "4.0.0", + "arr-union": "3.1.0", + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -2954,24 +3003,49 @@ "dev": true }, "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "3.0.0" } } } diff --git a/package.json b/package.json index 2ec58cb4..b77c1b19 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "gulp": "^3.9", - "gulp-autoprefixer": "^3.1", + "gulp-autoprefixer": "^5.0", "gulp-connect": "^5.5.0", "gulp-sass": "^3.2.1" }, From 9a9e752b6a056776a257719572cc087f5727df08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Sat, 21 Jul 2018 18:37:29 +0000 Subject: [PATCH 226/269] Bump gulp-sass from 3.2.1 to 4.0.1 Bumps [gulp-sass](https://github.com/dlmanning/gulp-sass) from 3.2.1 to 4.0.1. - [Release notes](https://github.com/dlmanning/gulp-sass/releases) - [Changelog](https://github.com/dlmanning/gulp-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/dlmanning/gulp-sass/compare/v3.2.1...v4.0.1) Signed-off-by: dependabot[bot] --- package-lock.json | 371 +++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 271 insertions(+), 102 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7ae56d6f..8592a976 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,16 @@ "negotiator": "0.6.1" } }, + "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" + } + }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -431,9 +441,9 @@ "dev": true }, "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "chalk": { @@ -552,6 +562,12 @@ "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", @@ -598,12 +614,6 @@ "delayed-stream": "1.0.0" } }, - "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", - "dev": true - }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", @@ -1030,6 +1040,18 @@ "time-stamp": "1.1.0" } }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "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=", + "dev": true + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -1231,25 +1253,10 @@ "globule": "0.1.0" } }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "1.0.2" - } - }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "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-stdin": { @@ -1490,16 +1497,71 @@ } }, "gulp-sass": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", - "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.1.tgz", + "integrity": "sha512-OMQEgWNggpog8Tc5v1MuI6eo+5iiPkVeLL76iBhDoEEScLUPfZlpvzmgTnLkpcqdrNodZxpz5qcv6mS2rulk3g==", "dev": true, "requires": { - "gulp-util": "3.0.8", + "chalk": "2.4.1", "lodash.clonedeep": "4.5.0", - "node-sass": "4.9.0", + "node-sass": "4.9.2", + "plugin-error": "1.0.1", + "replace-ext": "1.0.0", + "strip-ansi": "4.0.0", "through2": "2.0.3", "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } } }, "gulp-util": { @@ -1537,16 +1599,20 @@ "glogg": "1.0.1" } }, + "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": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.16.0", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "ajv": "4.11.8", + "har-schema": "1.0.5" } }, "has-ansi": { @@ -1639,9 +1705,9 @@ } }, "hosted-git-info": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz", - "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "http-errors": { @@ -1825,25 +1891,6 @@ "is-extglob": "2.1.1" } }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "dev": true, - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -1882,12 +1929,6 @@ "isobject": "3.0.1" } }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -1949,9 +1990,9 @@ "dev": true }, "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", + "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", "dev": true }, "jsbn": { @@ -1967,16 +2008,31 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "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 }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, "jsprim": { @@ -2481,7 +2537,7 @@ "nopt": "3.0.6", "npmlog": "4.1.2", "osenv": "0.1.5", - "request": "2.79.0", + "request": "2.81.0", "rimraf": "2.6.2", "semver": "5.3.0", "tar": "2.2.1", @@ -2517,6 +2573,42 @@ "brace-expansion": "1.1.9" } }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.6", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" + } + }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", @@ -2526,9 +2618,9 @@ } }, "node-sass": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", - "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", + "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", "dev": true, "requires": { "async-foreach": "0.1.3", @@ -2546,7 +2638,7 @@ "nan": "2.10.0", "node-gyp": "3.7.0", "npmlog": "4.1.2", - "request": "2.79.0", + "request": "2.87.0", "sass-graph": "2.2.4", "stdout-stream": "1.4.0", "true-case-path": "1.0.2" @@ -2618,7 +2710,7 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.1", + "hosted-git-info": "2.7.1", "is-builtin-module": "1.0.0", "semver": "4.3.6", "validate-npm-package-license": "3.0.3" @@ -2942,6 +3034,12 @@ "through": "2.3.8" } }, + "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 + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3200,37 +3298,105 @@ "dev": true }, "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "dev": true, "requires": { - "aws-sign2": "0.6.0", + "aws-sign2": "0.7.0", "aws4": "1.7.0", - "caseless": "0.11.0", + "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", "mime-types": "2.1.18", "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.1", "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", + "tunnel-agent": "0.6.0", "uuid": "3.3.2" }, "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "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.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "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.4.1", + "sshpk": "1.14.2" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "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 } } @@ -3367,7 +3533,7 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.4.3", + "js-base64": "2.4.8", "source-map": "0.4.4" }, "dependencies": { @@ -4302,10 +4468,13 @@ } }, "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -4720,7 +4889,7 @@ "camelcase": "3.0.0", "cliui": "3.2.0", "decamelize": "1.2.0", - "get-caller-file": "1.0.2", + "get-caller-file": "1.0.3", "os-locale": "1.4.0", "read-pkg-up": "1.0.1", "require-directory": "2.1.1", diff --git a/package.json b/package.json index b77c1b19..ea6e4f83 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "gulp": "^3.9", "gulp-autoprefixer": "^5.0", "gulp-connect": "^5.5.0", - "gulp-sass": "^3.2.1" + "gulp-sass": "^4.0.1" }, "eyeglass": { "name": "neat", From ab7683aced31f197110689a3d0b6553da4ff8feb Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 13:08:22 -0400 Subject: [PATCH 227/269] Update to Circle 2.0 --- .circleci/config.yml | 34 ++++++++++++++++++++++++++++++++++ circle.yml | 16 ---------------- 2 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 circle.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..8b73ac39 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,34 @@ +version: 2 + +jobs: + build: + docker: + - image: circleci/ruby:2.5.1-node + + steps: + - checkout + + - restore_cache: + keys: + - neat-{{ arch }}-{{ checksum "neat.gemspec" }} + + - run: + name: Install Ruby dependencies + command: bundle install --path vendor/bundle + + - run: + name: Install SassDoc + command: sudo npm install -g sassdoc@2.5.0 + + - save_cache: + key: neat-{{ arch }}-{{ checksum "neat.gemspec" }} + paths: + - vendor/bundle + + - run: + name: Run the tests + command: bundle exec rake + + - run: + name: Parse SassDoc comments + command: sassdoc core/ --parse --verbose --strict diff --git a/circle.yml b/circle.yml deleted file mode 100644 index f7508fa7..00000000 --- a/circle.yml +++ /dev/null @@ -1,16 +0,0 @@ -dependencies: - override: - - bundle install - - npm install -g sassdoc@2.2.0 -general: - branches: - ignore: - - gh-pages -machine: - node: - version: 6.9.5 -test: - override: - - bundle exec rake - post: - - sassdoc core/ --parse --verbose --strict From eb5a00447f9066a3a228b7f293e4846429ede591 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 09:59:59 -0400 Subject: [PATCH 228/269] Update ruby to 2.5.1 --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index 2bf1c1cc..73462a5a 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.3.1 +2.5.1 From b53385476b37ff0caeb19ea84895aaa4b80da8e1 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 10:00:31 -0400 Subject: [PATCH 229/269] Use asdf .tool-versions file --- .ruby-version | 1 - .tool-versions | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .ruby-version create mode 100644 .tool-versions diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 73462a5a..00000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.5.1 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 00000000..0d371532 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 2.5.1 From d39b84f7d5601c3cc54453037fe020672de87eed Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 10:01:01 -0400 Subject: [PATCH 230/269] Set nodejs version to 8.11.3 --- .tool-versions | 1 + 1 file changed, 1 insertion(+) diff --git a/.tool-versions b/.tool-versions index 0d371532..ec88ceec 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1,2 @@ ruby 2.5.1 +nodejs 8.11.3 From d3dc0085e9427f7c70aeb6da5c27c87c9ea037a6 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 14:45:56 -0400 Subject: [PATCH 231/269] Update npm packages These are changes from running `npm audit fix` to fix package security vulnerabilities. --- package-lock.json | 2394 +++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 1109 insertions(+), 1287 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8592a976..8cd9581e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -26,8 +26,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "amdefine": { @@ -42,7 +42,7 @@ "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "ansi-wrap": "^0.1.0" } }, "ansi-gray": { @@ -90,8 +90,8 @@ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" }, "dependencies": { "isarray": { @@ -112,13 +112,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "string_decoder": { @@ -127,7 +127,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -217,9 +217,9 @@ "dev": true }, "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "autoprefixer": { @@ -228,12 +228,12 @@ "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { - "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000865", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "browserslist": "^3.2.8", + "caniuse-lite": "^1.0.30000864", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.23", + "postcss-value-parser": "^3.2.3" } }, "aws-sign2": { @@ -251,8 +251,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -260,13 +259,53 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "batch": { @@ -282,7 +321,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "beeper": { @@ -297,7 +336,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "body-parser": { @@ -307,15 +346,15 @@ "dev": true, "requires": { "bytes": "2.2.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.1.2", - "http-errors": "1.3.1", + "content-type": "~1.0.1", + "debug": "~2.2.0", + "depd": "~1.1.0", + "http-errors": "~1.3.1", "iconv-lite": "0.4.13", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "5.2.0", - "raw-body": "2.1.7", - "type-is": "1.6.16" + "raw-body": "~2.1.5", + "type-is": "~1.6.10" }, "dependencies": { "debug": { @@ -347,36 +386,45 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.9.tgz", "integrity": "sha512-/+o3o6OV1cm3WKrO7U4wykU+ZICE6HiMEuravc2d03NIuM/VaRn5iMcoQ7NyxFXjvpmRICP2EER0YOnh4yIapA==", - "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", - "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "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.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.1" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "browserslist": { @@ -385,8 +433,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "builtin-modules": { @@ -407,15 +455,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "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" } }, "camelcase": { @@ -430,8 +478,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caniuse-lite": { @@ -452,11 +500,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "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" } }, "class-utils": { @@ -465,10 +513,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -477,65 +525,8 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-descriptor": "^0.1.0" } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -545,15 +536,15 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "clone-stats": { @@ -580,8 +571,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -611,7 +602,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "component-emitter": { @@ -623,8 +614,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "connect": { "version": "3.6.6", @@ -634,7 +624,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.1.0", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "utils-merge": "1.0.1" } }, @@ -674,8 +664,8 @@ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -684,8 +674,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -696,7 +686,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "currently-unhandled": { @@ -705,7 +695,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dashdash": { @@ -714,7 +704,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -758,16 +748,48 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.3" + "clone": "^1.0.2" } }, "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -818,7 +840,7 @@ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "requires": { - "readable-stream": "1.1.14" + "readable-stream": "~1.1.9" } }, "ecc-jsbn": { @@ -828,7 +850,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -855,7 +877,7 @@ "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", "dev": true, "requires": { - "once": "1.3.3" + "once": "~1.3.0" } }, "error-ex": { @@ -864,7 +886,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-html": { @@ -891,13 +913,13 @@ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" } }, "expand-brackets": { @@ -906,13 +928,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "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": { @@ -921,65 +943,17 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "is-descriptor": "^0.1.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-extendable": "^0.1.0" } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -989,7 +963,7 @@ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "homedir-polyfill": "^1.0.1" } }, "extend": { @@ -999,12 +973,24 @@ "dev": true }, "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1013,14 +999,63 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "extsprintf": { @@ -1035,9 +1070,9 @@ "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", "dev": true, "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" } }, "fast-deep-equal": { @@ -1058,7 +1093,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fill-range": { @@ -1067,10 +1102,21 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "finalhandler": { @@ -1080,12 +1126,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-index": { @@ -1100,8 +1146,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findup-sync": { @@ -1110,10 +1156,10 @@ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "dev": true, "requires": { - "detect-file": "1.0.0", - "is-glob": "3.1.0", - "micromatch": "3.1.5", - "resolve-dir": "1.0.1" + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" } }, "fined": { @@ -1122,11 +1168,11 @@ "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0", - "object.pick": "1.3.0", - "parse-filepath": "1.0.2" + "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": { @@ -1153,7 +1199,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -1168,9 +1214,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -1179,7 +1225,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -1206,10 +1252,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" }, "dependencies": { "graceful-fs": { @@ -1226,14 +1272,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "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": { "object-assign": { @@ -1250,7 +1296,7 @@ "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "dev": true, "requires": { - "globule": "0.1.0" + "globule": "~0.1.0" } }, "get-caller-file": { @@ -1277,7 +1323,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -1294,10 +1340,21 @@ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.3.3" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "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" + } + } } }, "glob-stream": { @@ -1306,24 +1363,33 @@ "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", "dev": true, "requires": { - "glob": "4.5.3", - "glob2base": "0.0.12", - "minimatch": "2.0.10", - "ordered-read-streams": "0.1.0", - "through2": "0.6.5", - "unique-stream": "1.0.0" + "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": { + "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.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "through2": { @@ -1332,8 +1398,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } } } @@ -1344,7 +1410,7 @@ "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", "dev": true, "requires": { - "gaze": "0.5.2" + "gaze": "^0.5.1" } }, "glob2base": { @@ -1353,7 +1419,7 @@ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "0.1.1" + "find-index": "^0.1.1" } }, "global-modules": { @@ -1362,9 +1428,9 @@ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.1", - "resolve-dir": "1.0.1" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, "global-prefix": { @@ -1373,11 +1439,11 @@ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.5", - "is-windows": "1.0.1", - "which": "1.3.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globule": { @@ -1386,9 +1452,9 @@ "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "dev": true, "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" }, "dependencies": { "glob": { @@ -1397,9 +1463,9 @@ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" } }, "graceful-fs": { @@ -1420,8 +1486,8 @@ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } } } @@ -1432,7 +1498,7 @@ "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", "dev": true, "requires": { - "sparkles": "1.0.0" + "sparkles": "^1.0.0" } }, "graceful-fs": { @@ -1441,7 +1507,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "natives": "1.1.1" + "natives": "^1.1.0" } }, "gulp": { @@ -1450,19 +1516,19 @@ "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", "dev": true, "requires": { - "archy": "1.0.0", - "chalk": "1.1.3", - "deprecated": "0.0.1", - "gulp-util": "3.0.8", - "interpret": "1.1.0", - "liftoff": "2.5.0", - "minimist": "1.2.0", - "orchestrator": "0.3.8", - "pretty-hrtime": "1.0.3", - "semver": "4.3.6", - "tildify": "1.2.0", - "v8flags": "2.1.1", - "vinyl-fs": "0.3.14" + "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" } }, "gulp-autoprefixer": { @@ -1471,12 +1537,12 @@ "integrity": "sha1-gjfCeKaXdScKHK/n1vEBz81YVUQ=", "dev": true, "requires": { - "autoprefixer": "8.6.5", - "fancy-log": "1.3.2", - "plugin-error": "1.0.1", - "postcss": "6.0.23", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.2.1" + "autoprefixer": "^8.0.0", + "fancy-log": "^1.3.2", + "plugin-error": "^1.0.1", + "postcss": "^6.0.1", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" } }, "gulp-connect": { @@ -1485,15 +1551,15 @@ "integrity": "sha512-oRBLjw/4EVaZb8g8OcxOVdGD8ZXYrRiWKcNxlrGjxb/6Cp0GDdqw7ieX7D8xJrQS7sbXT+G94u63pMJF3MMjQA==", "dev": true, "requires": { - "ansi-colors": "1.1.0", - "connect": "3.6.6", - "connect-livereload": "0.5.4", - "event-stream": "3.3.4", - "fancy-log": "1.3.2", - "send": "0.13.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "tiny-lr": "0.2.1" + "ansi-colors": "^1.0.1", + "connect": "^3.6.5", + "connect-livereload": "^0.5.4", + "event-stream": "^3.3.2", + "fancy-log": "^1.3.2", + "send": "^0.13.2", + "serve-index": "^1.9.1", + "serve-static": "^1.13.1", + "tiny-lr": "^0.2.1" } }, "gulp-sass": { @@ -1502,14 +1568,14 @@ "integrity": "sha512-OMQEgWNggpog8Tc5v1MuI6eo+5iiPkVeLL76iBhDoEEScLUPfZlpvzmgTnLkpcqdrNodZxpz5qcv6mS2rulk3g==", "dev": true, "requires": { - "chalk": "2.4.1", - "lodash.clonedeep": "4.5.0", - "node-sass": "4.9.2", - "plugin-error": "1.0.1", - "replace-ext": "1.0.0", - "strip-ansi": "4.0.0", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.2.1" + "chalk": "^2.3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "strip-ansi": "^4.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" }, "dependencies": { "ansi-regex": { @@ -1524,7 +1590,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -1533,9 +1599,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "replace-ext": { @@ -1550,7 +1616,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -1559,7 +1625,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1570,24 +1636,24 @@ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "2.2.0", - "fancy-log": "1.3.2", - "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.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", + "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.3", - "vinyl": "0.5.3" + "through2": "^2.0.0", + "vinyl": "^0.5.0" } }, "gulplog": { @@ -1596,7 +1662,7 @@ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "requires": { - "glogg": "1.0.1" + "glogg": "^1.0.0" } }, "har-schema": { @@ -1611,8 +1677,8 @@ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-ansi": { @@ -1621,7 +1687,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -1636,7 +1702,7 @@ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", "dev": true, "requires": { - "sparkles": "1.0.0" + "sparkles": "^1.0.0" } }, "has-unicode": { @@ -1651,9 +1717,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -1662,8 +1728,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -1672,7 +1738,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1683,10 +1749,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -1701,7 +1767,7 @@ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -1716,8 +1782,8 @@ "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", "dev": true, "requires": { - "inherits": "2.0.3", - "statuses": "1.3.1" + "inherits": "~2.0.1", + "statuses": "1" } }, "http-parser-js": { @@ -1732,9 +1798,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -1755,7 +1821,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "inflight": { @@ -1764,8 +1830,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.3.3", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1798,17 +1864,28 @@ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "requires": { - "is-relative": "1.0.0", - "is-windows": "1.0.1" + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" } }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "6.0.2" + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -1829,27 +1906,46 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.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==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "6.0.2" + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "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==", + "dev": true + } } }, "is-extendable": { @@ -1870,7 +1966,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -1879,7 +1975,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -1888,7 +1984,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } }, "is-number": { @@ -1897,7 +1993,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1906,27 +2002,18 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, - "is-odd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", - "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", - "dev": true, - "requires": { - "is-number": "3.0.0" - } - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-relative": { @@ -1935,7 +2022,7 @@ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { - "is-unc-path": "1.0.0" + "is-unc-path": "^1.0.0" } }, "is-typedarray": { @@ -1950,7 +2037,7 @@ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { - "unc-path-regex": "0.1.2" + "unc-path-regex": "^0.1.2" } }, "is-utf8": { @@ -1960,9 +2047,9 @@ "dev": true }, "is-windows": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", - "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { @@ -2020,7 +2107,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -2061,22 +2148,13 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "dev": true, - "requires": { - "set-getter": "0.1.0" - } - }, "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" + "invert-kv": "^1.0.0" } }, "liftoff": { @@ -2085,14 +2163,14 @@ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "dev": true, "requires": { - "extend": "3.0.1", - "findup-sync": "2.0.0", - "fined": "1.1.0", - "flagged-respawn": "1.0.0", - "is-plain-object": "2.0.4", - "object.map": "1.0.1", - "rechoir": "0.6.2", - "resolve": "1.5.0" + "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" } }, "livereload-js": { @@ -2107,11 +2185,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "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": { "graceful-fs": { @@ -2126,7 +2204,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -2209,7 +2287,7 @@ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", "dev": true, "requires": { - "lodash._root": "3.0.1" + "lodash._root": "^3.0.0" } }, "lodash.isarguments": { @@ -2230,9 +2308,9 @@ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.mergewith": { @@ -2253,15 +2331,15 @@ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" + "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": { @@ -2270,8 +2348,8 @@ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" } }, "loud-rejection": { @@ -2280,8 +2358,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -2291,23 +2369,12 @@ "dev": true }, "make-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", - "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "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": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "^6.0.2" } }, "map-cache": { @@ -2334,7 +2401,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "media-typer": { @@ -2349,16 +2416,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "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": { "object-assign": { @@ -2370,24 +2437,24 @@ } }, "micromatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", - "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.0", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.7", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.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" } }, "mime": { @@ -2408,16 +2475,15 @@ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, + "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.9" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2432,8 +2498,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2442,7 +2508,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2486,36 +2552,28 @@ "dev": true }, "nanomatch": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", - "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "is-odd": "1.0.0", - "kind-of": "5.1.0", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-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.1", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", - "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", + "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==", "dev": true }, "negotiator": { @@ -2530,18 +2588,18 @@ "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "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.9.0 <2.82.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "glob": { @@ -2550,12 +2608,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "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" } }, "graceful-fs": { @@ -2570,7 +2628,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.9" + "brace-expansion": "^1.1.7" } }, "qs": { @@ -2585,28 +2643,28 @@ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "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" } }, "semver": { @@ -2623,25 +2681,25 @@ "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", "dev": true, "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.7.0", - "npmlog": "4.1.2", + "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.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", "request": "2.87.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "gaze": { @@ -2650,7 +2708,7 @@ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "glob": { @@ -2659,12 +2717,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "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" } }, "globule": { @@ -2673,9 +2731,9 @@ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" } }, "lodash": { @@ -2690,7 +2748,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.9" + "brace-expansion": "^1.1.7" } } } @@ -2701,7 +2759,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -2710,10 +2768,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "4.3.6", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-range": { @@ -2728,10 +2786,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "num2fraction": { @@ -2764,9 +2822,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -2775,44 +2833,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -2821,7 +2842,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2832,7 +2853,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.defaults": { @@ -2841,10 +2862,10 @@ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "requires": { - "array-each": "1.0.1", - "array-slice": "1.1.0", - "for-own": "1.0.0", - "isobject": "3.0.1" + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" } }, "object.map": { @@ -2853,8 +2874,8 @@ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "dev": true, "requires": { - "for-own": "1.0.0", - "make-iterator": "1.0.0" + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, "object.pick": { @@ -2863,7 +2884,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "on-finished": { @@ -2881,7 +2902,7 @@ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "orchestrator": { @@ -2890,9 +2911,9 @@ "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", "dev": true, "requires": { - "end-of-stream": "0.1.5", - "sequencify": "0.0.7", - "stream-consume": "0.1.0" + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" } }, "ordered-read-streams": { @@ -2913,7 +2934,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -2928,8 +2949,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "parse-filepath": { @@ -2938,9 +2959,9 @@ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "dev": true, "requires": { - "is-absolute": "1.0.0", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-json": { @@ -2949,7 +2970,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parse-passwd": { @@ -2976,7 +2997,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -2997,7 +3018,7 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "0.1.2" + "path-root-regex": "^0.1.0" } }, "path-root-regex": { @@ -3012,9 +3033,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "graceful-fs": { @@ -3031,7 +3052,7 @@ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "performance-now": { @@ -3058,7 +3079,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "plugin-error": { @@ -3067,10 +3088,10 @@ "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "requires": { - "ansi-colors": "1.1.0", - "arr-diff": "4.0.0", - "arr-union": "3.1.0", - "extend-shallow": "3.0.2" + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" }, "dependencies": { "extend-shallow": { @@ -3079,8 +3100,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-extendable": { @@ -3089,7 +3110,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3106,9 +3127,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "ansi-styles": { @@ -3117,7 +3138,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -3126,9 +3147,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "source-map": { @@ -3143,7 +3164,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3215,9 +3236,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -3226,8 +3247,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -3236,10 +3257,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "rechoir": { @@ -3248,7 +3269,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.5.0" + "resolve": "^1.1.6" } }, "redent": { @@ -3257,17 +3278,18 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "regex-not": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", - "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "2.0.1" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -3288,7 +3310,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-ext": { @@ -3303,26 +3325,26 @@ "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.1", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" }, "dependencies": { "ajv": { @@ -3331,10 +3353,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "assert-plus": { @@ -3355,9 +3377,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "har-schema": { @@ -3372,8 +3394,8 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "http-signature": { @@ -3382,9 +3404,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "performance-now": { @@ -3414,12 +3436,12 @@ "dev": true }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-dir": { @@ -3428,8 +3450,8 @@ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, "resolve-url": { @@ -3438,13 +3460,19 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" }, "dependencies": { "glob": { @@ -3453,12 +3481,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "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" } }, "minimatch": { @@ -3467,7 +3495,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.9" + "brace-expansion": "^1.1.7" } } } @@ -3478,6 +3506,15 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -3490,10 +3527,10 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" }, "dependencies": { "glob": { @@ -3502,12 +3539,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "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" } }, "lodash": { @@ -3522,7 +3559,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.9" + "brace-expansion": "^1.1.7" } } } @@ -3533,8 +3570,8 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.4.8", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -3543,7 +3580,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -3560,18 +3597,18 @@ "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", "dev": true, "requires": { - "debug": "2.2.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "escape-html": "1.0.3", - "etag": "1.7.0", + "debug": "~2.2.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "escape-html": "~1.0.3", + "etag": "~1.7.0", "fresh": "0.3.0", - "http-errors": "1.3.1", + "http-errors": "~1.3.1", "mime": "1.3.4", "ms": "0.7.1", - "on-finished": "2.3.0", - "range-parser": "1.0.3", - "statuses": "1.2.1" + "on-finished": "~2.3.0", + "range-parser": "~1.0.3", + "statuses": "~1.2.1" }, "dependencies": { "debug": { @@ -3609,13 +3646,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "http-errors": { @@ -3624,10 +3661,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "statuses": { @@ -3644,9 +3681,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" }, "dependencies": { @@ -3668,10 +3705,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "mime": { @@ -3693,18 +3730,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" } }, "statuses": { @@ -3721,25 +3758,27 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "dev": true, - "requires": { - "to-object-path": "0.3.0" - } - }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "setprototypeof": { @@ -3761,19 +3800,19 @@ "dev": true }, "snapdragon": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", - "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.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": { @@ -3782,86 +3821,78 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.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=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" } }, "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=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "^6.0.0" } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "^6.0.0" } }, "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - } - }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -3870,7 +3901,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3881,7 +3912,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "source-map": { @@ -3891,16 +3922,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "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-url": { @@ -3910,9 +3941,9 @@ "dev": true }, "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "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": { @@ -3921,8 +3952,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -3937,8 +3968,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -3953,7 +3984,7 @@ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -3962,28 +3993,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } + "extend-shallow": "^3.0.0" } }, "sshpk": { @@ -3992,15 +4002,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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": { @@ -4017,8 +4027,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -4027,65 +4037,8 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -4101,7 +4054,7 @@ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.1" }, "dependencies": { "isarray": { @@ -4122,13 +4075,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "string_decoder": { @@ -4137,7 +4090,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -4148,13 +4101,13 @@ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "dev": true, "requires": { - "duplexer": "0.1.1" + "duplexer": "~0.1.1" } }, "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "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 }, "string-width": { @@ -4163,9 +4116,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -4186,7 +4139,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -4195,8 +4148,8 @@ "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", "dev": true, "requires": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -4205,7 +4158,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "supports-color": { @@ -4220,9 +4173,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "through": { @@ -4237,8 +4190,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" }, "dependencies": { "isarray": { @@ -4253,13 +4206,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -4268,7 +4221,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -4279,7 +4232,7 @@ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "time-stamp": { @@ -4294,12 +4247,12 @@ "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", "dev": true, "requires": { - "body-parser": "1.14.2", - "debug": "2.2.0", - "faye-websocket": "0.10.0", - "livereload-js": "2.3.0", - "parseurl": "1.3.2", - "qs": "5.1.0" + "body-parser": "~1.14.0", + "debug": "~2.2.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.2.0", + "parseurl": "~1.3.0", + "qs": "~5.1.0" }, "dependencies": { "debug": { @@ -4325,7 +4278,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4334,88 +4287,21 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "to-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", - "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -4424,8 +4310,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "tough-cookie": { @@ -4434,7 +4320,7 @@ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "trim-newlines": { @@ -4449,7 +4335,7 @@ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "dev": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.4" }, "dependencies": { "glob": { @@ -4458,11 +4344,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -4473,7 +4359,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -4490,7 +4376,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "unc-path-regex": { @@ -4505,22 +4391,31 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, "set-value": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -4543,8 +4438,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -4553,9 +4448,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -4590,83 +4485,10 @@ "dev": true }, "use": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", - "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "user-home": { "version": "1.1.1", @@ -4698,7 +4520,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -4707,8 +4529,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "verror": { @@ -4717,9 +4539,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { @@ -4736,8 +4558,8 @@ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "dev": true, "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } }, @@ -4747,14 +4569,14 @@ "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", "dev": true, "requires": { - "defaults": "1.0.3", - "glob-stream": "3.1.18", - "glob-watcher": "0.0.6", - "graceful-fs": "3.0.11", - "mkdirp": "0.5.1", - "strip-bom": "1.0.0", - "through2": "0.6.5", - "vinyl": "0.4.6" + "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": { @@ -4769,10 +4591,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "through2": { @@ -4781,8 +4603,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } }, "vinyl": { @@ -4791,8 +4613,8 @@ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", "dev": true, "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" + "clone": "^0.2.0", + "clone-stats": "^0.0.1" } } } @@ -4803,7 +4625,7 @@ "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.1" } }, "websocket-driver": { @@ -4812,8 +4634,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -4828,7 +4650,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -4843,7 +4665,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrap-ansi": { @@ -4852,8 +4674,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -4886,19 +4708,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "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" + "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" }, "dependencies": { "camelcase": { @@ -4915,7 +4737,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/package.json b/package.json index ea6e4f83..2730299e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "test": "bundle exec rake" }, "devDependencies": { - "gulp": "^3.9", + "gulp": "^3.9.1", "gulp-autoprefixer": "^5.0", "gulp-connect": "^5.5.0", "gulp-sass": "^4.0.1" From fa50b072c6e6f57a93c4144b152df05527108ef1 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sat, 21 Jul 2018 14:53:52 -0400 Subject: [PATCH 232/269] Swap gulp-connect for browser-sync gulp-connect has fallen out-of-date and has dependencies with security vulnerabilities. --- Gulpfile.js | 46 +- package-lock.json | 2434 +++++++++++++++++++++++++++++++++++++-------- package.json | 3 +- 3 files changed, 2020 insertions(+), 463 deletions(-) diff --git a/Gulpfile.js b/Gulpfile.js index c9c5bbd6..ba300860 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,33 +1,29 @@ -var autoprefix = require("gulp-autoprefixer"), - connect = require("gulp-connect"), - gulp = require("gulp"), - sass = require("gulp-sass"); +const browserSync = require('browser-sync').create(); +const gulp = require('gulp'); +const sass = require('gulp-sass'); -var paths = { +const paths = { scss: [ - "./core/**/*.scss", - "./contrib/**/*.scss"] + './core/**/*.scss', + './contrib/*.scss', + ] }; -gulp.task("sass", function () { - return gulp.src(paths.scss) - .pipe(sass({ - sourcemaps: true, - precision: 6 - })) - .pipe(autoprefix("last 2 versions")) - .pipe(gulp.dest("./contrib")) - .pipe(connect.reload()); -}); - -gulp.task("connect", function() { - connect.server({ - root: "contrib", - port: 8000, - livereload: true +gulp.task('serve', ['sass'], function() { + browserSync.init({ + open: false, + server: './contrib', }); + + gulp.watch(paths.scss, ['sass']); + gulp.watch('contrib/*.html').on('change', browserSync.reload); }); -gulp.task("default", ["sass", "connect"], function() { - gulp.watch(paths.scss, ["sass"]); +gulp.task('sass', function() { + return gulp.src(paths.scss) + .pipe(sass()) + .pipe(gulp.dest('./contrib')) + .pipe(browserSync.stream()); }); + +gulp.task('default', ['serve']); diff --git a/package-lock.json b/package-lock.json index 8cd9581e..7711b7fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,12 @@ "negotiator": "0.6.1" } }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -72,6 +78,107 @@ "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", "dev": true }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -186,6 +293,12 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "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 + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -204,12 +317,36 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-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.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -222,20 +359,6 @@ "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, - "autoprefixer": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", - "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", - "dev": true, - "requires": { - "browserslist": "^3.2.8", - "caniuse-lite": "^1.0.30000864", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.23", - "postcss-value-parser": "^3.2.3" - } - }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -248,10 +371,27 @@ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", "dev": true }, + "axios": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", + "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", + "dev": true, + "requires": { + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base": { "version": "0.11.2", @@ -308,6 +448,18 @@ } } }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -330,6 +482,27 @@ "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" + } + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -339,47 +512,6 @@ "inherits": "~2.0.0" } }, - "body-parser": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", - "dev": true, - "requires": { - "bytes": "2.2.0", - "content-type": "~1.0.1", - "debug": "~2.2.0", - "depd": "~1.1.0", - "http-errors": "~1.3.1", - "iconv-lite": "0.4.13", - "on-finished": "~2.3.0", - "qs": "5.2.0", - "raw-body": "~2.1.5", - "type-is": "~1.6.10" - }, - "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 - }, - "qs": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", - "dev": true - } - } - }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -393,6 +525,7 @@ "version": "1.1.9", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.9.tgz", "integrity": "sha512-/+o3o6OV1cm3WKrO7U4wykU+ZICE6HiMEuravc2d03NIuM/VaRn5iMcoQ7NyxFXjvpmRICP2EER0YOnh4yIapA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -427,28 +560,258 @@ } } }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "browser-sync": { + "version": "2.24.6", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.24.6.tgz", + "integrity": "sha512-3cVW8Ft3sPQ1t9gqZXBDZhTyRce8NW4wf5KzpCYcg6fWjPbyt+vZLvEo+sTq7c7eNQhi8lInQWbjIFEpoM2f7Q==", + "dev": true, + "requires": { + "browser-sync-ui": "v1.0.1", + "bs-recipes": "1.3.4", + "chokidar": "1.7.0", + "connect": "3.6.6", + "connect-history-api-fallback": "^1.5.0", + "dev-ip": "^1.0.1", + "easy-extender": "2.3.2", + "eazy-logger": "3.0.2", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "3.8.2", + "localtunnel": "1.9.0", + "micromatch": "2.3.11", + "opn": "4.0.2", + "portscanner": "2.1.1", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "2.1.1", + "ua-parser-js": "0.7.17", + "yargs": "6.4.0" + }, + "dependencies": { + "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" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "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" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "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" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "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" + } + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "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" + } + }, + "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" + } + } + } + }, + "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": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "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" } }, + "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 + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "bytes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", - "dev": true - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -466,6 +829,12 @@ "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 + }, "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", @@ -482,12 +851,6 @@ "map-obj": "^1.0.0" } }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -507,6 +870,40 @@ "supports-color": "^2.0.0" } }, + "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" + }, + "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" + } + } + } + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -605,16 +1002,35 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "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.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, + "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=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "connect": { "version": "3.6.6", @@ -628,10 +1044,10 @@ "utils-merge": "1.0.1" } }, - "connect-livereload": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz", - "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=", + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", "dev": true }, "console-control-strings": { @@ -640,10 +1056,10 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "copy-descriptor": { @@ -828,10 +1244,10 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "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 }, "duplexer2": { @@ -843,7 +1259,33 @@ "readable-stream": "~1.1.9" } }, - "ecc-jsbn": { + "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.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", @@ -859,12 +1301,6 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -880,6 +1316,74 @@ "once": "~1.3.0" } }, + "engine.io": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", + "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "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", + "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": { + "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.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "~1.0.2" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -901,27 +1405,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "etag": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", "dev": true }, - "event-stream": { - "version": "3.3.4", - "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -957,6 +1446,63 @@ } } }, + "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" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "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", @@ -1087,14 +1633,11 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true }, "fill-range": { "version": "4.0.0", @@ -1187,6 +1730,26 @@ "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", "dev": true }, + "follow-redirects": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", + "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "dev": true, + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1228,17 +1791,24 @@ "map-cache": "^0.2.2" } }, - "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true + "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" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } }, "fs.realpath": { "version": "1.0.0", @@ -1246,6 +1816,601 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true, + "optional": 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 + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "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 + }, + "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=", + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": 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.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": 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", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "minipass": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "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=", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "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, + "optional": true + }, + "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, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true, + "optional": 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, + "optional": 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, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "dev": true + } + } + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", @@ -1357,6 +2522,59 @@ } } }, + "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": { + "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": "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" + }, + "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" + } + } + } + }, "glob-stream": { "version": "3.1.18", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", @@ -1531,37 +2749,6 @@ "vinyl-fs": "^0.3.0" } }, - "gulp-autoprefixer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-5.0.0.tgz", - "integrity": "sha1-gjfCeKaXdScKHK/n1vEBz81YVUQ=", - "dev": true, - "requires": { - "autoprefixer": "^8.0.0", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.1", - "postcss": "^6.0.1", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-connect": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.5.0.tgz", - "integrity": "sha512-oRBLjw/4EVaZb8g8OcxOVdGD8ZXYrRiWKcNxlrGjxb/6Cp0GDdqw7ieX7D8xJrQS7sbXT+G94u63pMJF3MMjQA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "connect": "^3.6.5", - "connect-livereload": "^0.5.4", - "event-stream": "^3.3.2", - "fancy-log": "^1.3.2", - "send": "^0.13.2", - "serve-index": "^1.9.1", - "serve-static": "^1.13.1", - "tiny-lr": "^0.2.1" - } - }, "gulp-sass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.1.tgz", @@ -1690,6 +2877,29 @@ "ansi-regex": "^2.0.0" } }, + "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", @@ -1776,22 +2986,16 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, - "http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "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": { - "inherits": "~2.0.1", - "statuses": "1" + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" } }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -1803,10 +3007,10 @@ "sshpk": "^1.7.0" } }, - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", "dev": true }, "in-publish": { @@ -1824,6 +3028,12 @@ "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 + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1894,6 +3104,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -1948,6 +3167,21 @@ } } }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -2007,6 +3241,15 @@ } } }, + "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-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2016,6 +3259,18 @@ "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-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -2116,6 +3371,24 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "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" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -2173,10 +3446,10 @@ "resolve": "^1.1.7" } }, - "livereload-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", - "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", + "limiter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz", + "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==", "dev": true }, "load-json-file": { @@ -2209,6 +3482,65 @@ } } }, + "localtunnel": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.0.tgz", + "integrity": "sha512-wCIiIHJ8kKIcWkTQE3m1VRABvsH2ZuOkiOpZUofUCf6Q42v3VIZ+Q0YfX1Z4sYDRj0muiKL1bLvz1FeoxsPO0w==", + "dev": true, + "requires": { + "axios": "0.17.1", + "debug": "2.6.8", + "openurl": "1.1.1", + "yargs": "6.6.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "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" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "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": "^4.2.0" + } + }, + "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" + } + } + } + }, "lodash": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", @@ -2302,6 +3634,12 @@ "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", @@ -2389,12 +3727,6 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -2404,10 +3736,10 @@ "object-visit": "^1.0.0" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", "dev": true }, "meow": { @@ -2457,12 +3789,6 @@ "to-regex": "^3.0.2" } }, - "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.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", @@ -2482,6 +3808,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2774,11 +4101,14 @@ "validate-npm-package-license": "^3.0.1" } }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "normalize-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" + } }, "npmlog": { "version": "4.1.2", @@ -2792,12 +4122,6 @@ "set-blocking": "~2.0.0" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -2816,6 +4140,12 @@ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", "dev": true }, + "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", @@ -2847,6 +4177,12 @@ } } }, + "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", @@ -2878,6 +4214,27 @@ "make-iterator": "^1.0.0" } }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "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" + } + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -2905,6 +4262,30 @@ "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" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, "orchestrator": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", @@ -2964,6 +4345,35 @@ "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": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -2979,6 +4389,24 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "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.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -3046,15 +4474,6 @@ } } }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "~2.3" - } - }, "performance-now": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", @@ -3090,89 +4509,51 @@ "requires": { "ansi-colors": "^1.0.1", "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-plain-object": "^2.0.4" } } } }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "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=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pretty-hrtime": { @@ -3199,33 +4580,21 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "qs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", - "dev": true - }, - "range-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", - "dev": true - }, - "raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", - "unpipe": "1.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "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 } } @@ -3263,6 +4632,62 @@ "string_decoder": "~0.10.x" } }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.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" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -3282,6 +4707,15 @@ "strip-indent": "^1.0.1" } }, + "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", @@ -3292,6 +4726,12 @@ "safe-regex": "^1.1.0" } }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, "repeat-element": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", @@ -3435,6 +4875,12 @@ "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.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", @@ -3460,6 +4906,16 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "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", @@ -3500,6 +4956,12 @@ } } }, + "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.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -3591,49 +5053,6 @@ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true }, - "send": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.3", - "statuses": "~1.2.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 - }, - "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", - "dev": true - } - } - }, "sequencify": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", @@ -3752,12 +5171,24 @@ } } }, + "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-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", @@ -3915,6 +5346,145 @@ "hoek": "2.x.x" } }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "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" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "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.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "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" + } + }, + "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": { + "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 + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -3978,15 +5548,6 @@ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true, - "requires": { - "through": "2" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -4095,21 +5656,22 @@ } } }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true, - "requires": { - "duplexer": "~0.1.1" - } - }, "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-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" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -4178,11 +5740,15 @@ "inherits": "2" } }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "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" + } }, "through2": { "version": "2.0.3", @@ -4241,36 +5807,11 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, - "tiny-lr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", - "dev": true, - "requires": { - "body-parser": "~1.14.0", - "debug": "~2.2.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.2.0", - "parseurl": "~1.3.0", - "qs": "~5.1.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 - } - } + "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-object-path": { "version": "0.3.0", @@ -4369,15 +5910,17 @@ "dev": true, "optional": true }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "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", @@ -4426,6 +5969,12 @@ "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", "dev": true }, + "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", @@ -4628,22 +6177,6 @@ "source-map": "^0.5.1" } }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", @@ -4668,6 +6201,12 @@ "string-width": "^1.0.2 || 2" } }, + "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 + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -4684,6 +6223,23 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "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" + } + }, + "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.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -4747,6 +6303,12 @@ "dev": true } } + }, + "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/package.json index 2730299e..60dc9592 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,8 @@ "test": "bundle exec rake" }, "devDependencies": { + "browser-sync": "^2.24.6", "gulp": "^3.9.1", - "gulp-autoprefixer": "^5.0", - "gulp-connect": "^5.5.0", "gulp-sass": "^4.0.1" }, "eyeglass": { From 417f458d602c8d9ed3f0f0319b8d7f6b5f3b2da1 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Sun, 22 Jul 2018 13:46:47 -0400 Subject: [PATCH 233/269] Upgrade to gulp 4 By upgrading to gulp 4 we keep things up-to-date, but we also remove a security vulnerability. --- Gulpfile.js | 45 +- package-lock.json | 1394 ++++++++++++++++++++++++++++----------------- package.json | 2 +- 3 files changed, 899 insertions(+), 542 deletions(-) diff --git a/Gulpfile.js b/Gulpfile.js index ba300860..d2a9cfe8 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -3,27 +3,40 @@ const gulp = require('gulp'); const sass = require('gulp-sass'); const paths = { - scss: [ - './core/**/*.scss', - './contrib/*.scss', - ] + markup: { + src: './contrib/**/*.html', + }, + styles: { + src: [ + './contrib/**/*.scss', + './core/**/*.scss', + ], + dest: './contrib/', + } }; -gulp.task('serve', ['sass'], function() { +function styles() { + return gulp.src(paths.styles.src) + .pipe(sass()) + .pipe(gulp.dest(paths.styles.dest)); +}; + +function serve(done) { browserSync.init({ open: false, - server: './contrib', + server: './contrib/', }); + done(); +} - gulp.watch(paths.scss, ['sass']); - gulp.watch('contrib/*.html').on('change', browserSync.reload); -}); +function reload(done) { + browserSync.reload(); + done(); +} -gulp.task('sass', function() { - return gulp.src(paths.scss) - .pipe(sass()) - .pipe(gulp.dest('./contrib')) - .pipe(browserSync.stream()); -}); +function watch() { + gulp.watch(paths.markup.src, reload); + gulp.watch(paths.styles.src, gulp.series(styles, reload)); +} -gulp.task('default', ['serve']); +gulp.task('default', gulp.series(styles, serve, watch)); diff --git a/package-lock.json b/package-lock.json index 7711b7fb..1ec32951 100644 --- a/package-lock.json +++ b/package-lock.json @@ -179,6 +179,15 @@ } } }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -245,24 +254,36 @@ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-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", @@ -275,17 +296,65 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, "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-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } }, "array-unique": { "version": "0.3.2", @@ -323,6 +392,18 @@ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, + "async-done": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", + "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^1.0.7", + "stream-exhaust": "^1.0.1" + } + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -347,6 +428,15 @@ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", "dev": true }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -381,6 +471,23 @@ "is-buffer": "^1.1.5" } }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -476,12 +583,6 @@ "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", @@ -806,6 +907,18 @@ "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", "dev": true }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -939,17 +1052,42 @@ } }, "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", "dev": true }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + } + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -962,6 +1100,17 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1032,6 +1181,18 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "connect": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", @@ -1056,6 +1217,12 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", @@ -1068,6 +1235,16 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "dev": true, + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1114,6 +1291,15 @@ "array-find-index": "^1.0.1" } }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1131,12 +1317,6 @@ } } }, - "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", @@ -1158,13 +1338,37 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "clone": "^1.0.2" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -1226,12 +1430,6 @@ "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 - }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -1250,13 +1448,26 @@ "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", "dev": true }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "readable-stream": "~1.1.9" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" } }, "easy-extender": { @@ -1308,12 +1519,23 @@ "dev": true }, "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=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "~1.3.0" + "once": "^1.4.0" + }, + "dependencies": { + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + } } }, "engine.io": { @@ -1393,6 +1615,50 @@ "is-arrayish": "^0.2.1" } }, + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1677,12 +1943,6 @@ "unpipe": "~1.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-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1703,6 +1963,17 @@ "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": { @@ -1718,18 +1989,22 @@ "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.0", "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", "dev": true }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, "follow-redirects": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", @@ -1765,6 +2040,12 @@ "for-in": "^1.0.1" } }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1810,6 +2091,16 @@ } } }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2431,6 +2722,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -2455,15 +2752,6 @@ } } }, - "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", @@ -2500,26 +2788,17 @@ } }, "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { + "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "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" - } - } + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -2576,68 +2855,108 @@ } }, "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "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" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" }, "dependencies": { - "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=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "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": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "is-extglob": "^2.1.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=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz", + "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==", "dev": true, "requires": { - "find-index": "^0.1.1" + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "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" + } + } + } + } } }, "global-modules": { @@ -2664,52 +2983,6 @@ "which": "^1.2.14" } }, - "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 - }, - "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.1", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", @@ -2720,33 +2993,49 @@ } }, "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "^1.1.0" - } + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "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" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", + "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", + "dev": true, + "requires": { + "glob-watcher": "^5.0.0", + "gulp-cli": "^2.0.0", + "undertaker": "^1.0.0", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "gulp-cli": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", + "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^2.5.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + } } }, "gulp-sass": { @@ -2817,32 +3106,6 @@ } } }, - "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" - } - }, "gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", @@ -2906,14 +3169,11 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "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.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true }, "has-unicode": { "version": "2.0.1", @@ -3213,14 +3473,20 @@ } }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "^2.1.1" } }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -3301,6 +3567,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3308,9 +3580,9 @@ "dev": true }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -3415,12 +3687,37 @@ } } }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -3430,6 +3727,15 @@ "invert-kv": "^1.0.0" } }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, "liftoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", @@ -3541,66 +3847,6 @@ } } }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "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.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", @@ -3613,25 +3859,10 @@ "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=", + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, "lodash.isfinite": { @@ -3640,56 +3871,12 @@ "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.mergewith": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", "dev": true }, - "lodash.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" - } - }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -3700,12 +3887,6 @@ "signal-exit": "^3.0.0" } }, - "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 - }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -3736,6 +3917,18 @@ "object-visit": "^1.0.0" } }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + } + }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -3863,14 +4056,11 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "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" - } + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=", + "dev": true }, "nan": { "version": "2.10.0", @@ -3897,18 +4087,18 @@ "to-regex": "^3.0.1" } }, - "natives": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", - "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==", - "dev": true - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "node-gyp": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", @@ -4110,6 +4300,15 @@ "remove-trailing-separator": "^1.0.1" } }, + "now-and-later": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", + "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -4134,12 +4333,6 @@ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "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 - }, "object-component": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", @@ -4177,6 +4370,12 @@ } } }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, "object-path": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", @@ -4192,6 +4391,18 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", @@ -4244,6 +4455,16 @@ "isobject": "^3.0.1" } }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -4286,23 +4507,15 @@ } } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", "dev": true, "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "readable-stream": "^2.0.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-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -4419,6 +4632,12 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -4574,6 +4793,27 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.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==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -4621,15 +4861,26 @@ } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "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" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + } } }, "readdirp": { @@ -4726,6 +4977,27 @@ "safe-regex": "^1.1.0" } }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -4754,11 +5026,22 @@ } }, "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, "request": { "version": "2.87.0", "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", @@ -4900,6 +5183,15 @@ "global-modules": "^1.0.0" } }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -5053,11 +5345,14 @@ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } }, "serve-index": { "version": "1.9.1", @@ -5218,12 +5513,6 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, - "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", @@ -5582,6 +5871,12 @@ } } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -5656,10 +5951,16 @@ } } }, - "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==", + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, "stream-throttle": { @@ -5684,10 +5985,13 @@ } }, "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 + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, "stringstream": { "version": "0.0.6", @@ -5704,16 +6008,6 @@ "ansi-regex": "^2.0.0" } }, - "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" - } - }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", @@ -5729,6 +6023,16 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", @@ -5792,13 +6096,14 @@ } } }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", "dev": true, "requires": { - "os-homedir": "^1.0.0" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "time-stamp": { @@ -5807,6 +6112,16 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", @@ -5855,6 +6170,15 @@ "repeat-string": "^1.6.1" } }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, "tough-cookie": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", @@ -5910,6 +6234,12 @@ "dev": true, "optional": true }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, "ua-parser-js": { "version": "0.7.17", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", @@ -5928,6 +6258,29 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "undertaker": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", + "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -5964,10 +6317,14 @@ } }, "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "dev": true, + "requires": { + "json-stable-stringify": "^1.0.0", + "through2-filter": "^2.0.0" + } }, "universalify": { "version": "0.1.2", @@ -6018,15 +6375,15 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -6039,12 +6396,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6064,12 +6415,12 @@ "dev": true }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", + "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", "dev": true, "requires": { - "user-home": "^1.1.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { @@ -6082,6 +6433,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -6102,70 +6459,57 @@ } }, "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } }, "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", "dev": true, "requires": { - "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 - }, - "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" - } - }, - "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" - } - } + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" } }, "vinyl-sourcemaps-apply": { diff --git a/package.json b/package.json index 60dc9592..8c3a83f8 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "browser-sync": "^2.24.6", - "gulp": "^3.9.1", + "gulp": "^4.0.0", "gulp-sass": "^4.0.1" }, "eyeglass": { From 512a164859afdf62e960b9d5c4107e373247f193 Mon Sep 17 00:00:00 2001 From: Scott Albertson Date: Wed, 1 Aug 2018 15:03:08 -0700 Subject: [PATCH 234/269] Add a "Reviewed by Hound" badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2cb9ff12..23ca4599 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ [Neat logo][Neat] +[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) + ## A lightweight and flexible Sass grid [Neat] is a fluid grid framework with the aim of being easy enough to From c0f4be0809c71b3f1b99618aef4e05fb00a8ceeb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Wed, 17 Oct 2018 05:54:29 +0000 Subject: [PATCH 235/269] Bump gulp-sass from 4.0.1 to 4.0.2 Bumps [gulp-sass](https://github.com/dlmanning/gulp-sass) from 4.0.1 to 4.0.2. - [Release notes](https://github.com/dlmanning/gulp-sass/releases) - [Changelog](https://github.com/dlmanning/gulp-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/dlmanning/gulp-sass/compare/v4.0.1...v4.0.2) Signed-off-by: dependabot[bot] --- package-lock.json | 825 +++++++++++++--------------------------------- 1 file changed, 224 insertions(+), 601 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1ec32951..2506e877 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,15 @@ "dev": true }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "amdefine": { @@ -208,44 +210,6 @@ "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.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" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "arr-diff": { @@ -369,15 +333,18 @@ "dev": true }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "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" + } }, "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=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "assign-symbols": { @@ -450,15 +417,15 @@ "dev": true }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "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 }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "axios": { @@ -578,7 +545,6 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -613,15 +579,6 @@ "inherits": "~2.0.0" } }, - "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" - } - }, "brace-expansion": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.9.tgz", @@ -956,7 +913,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { @@ -1122,18 +1079,18 @@ } }, "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "1.1.1" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-support": { @@ -1143,9 +1100,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -1259,27 +1216,6 @@ "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } - } - }, - "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" } }, "currently-unhandled": { @@ -1307,14 +1243,6 @@ "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 - } } }, "debug": { @@ -1497,13 +1425,13 @@ } }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -2053,14 +1981,25 @@ "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=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", + "combined-stream": "1.0.6", "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + } } }, "fragment-cache": { @@ -2129,7 +2068,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2153,13 +2093,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2176,19 +2118,22 @@ "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 + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "optional": true }, "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 + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2319,7 +2264,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2333,6 +2279,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2349,6 +2296,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2357,13 +2305,15 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2384,6 +2334,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2472,7 +2423,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2486,6 +2438,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2581,7 +2534,8 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2623,6 +2577,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2644,6 +2599,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2692,13 +2648,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "dev": true, + "optional": true } } }, @@ -2712,14 +2670,6 @@ "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - } } }, "function-bind": { @@ -2742,14 +2692,15 @@ "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } + } + }, + "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" } }, "get-caller-file": { @@ -2777,14 +2728,6 @@ "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 - } } }, "glob": { @@ -2983,6 +2926,17 @@ "which": "^1.2.14" } }, + "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" + } + }, "glogg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", @@ -3039,9 +2993,9 @@ } }, "gulp-sass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.1.tgz", - "integrity": "sha512-OMQEgWNggpog8Tc5v1MuI6eo+5iiPkVeLL76iBhDoEEScLUPfZlpvzmgTnLkpcqdrNodZxpz5qcv6mS2rulk3g==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz", + "integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -3080,12 +3034,6 @@ "supports-color": "^5.3.0" } }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -3096,9 +3044,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3116,19 +3064,19 @@ } }, "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "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": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has-ansi": { @@ -3213,24 +3161,6 @@ } } }, - "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" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, "homedir-polyfill": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", @@ -3257,12 +3187,12 @@ } }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "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": "^0.2.0", + "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } @@ -3604,17 +3534,16 @@ "dev": true }, "js-base64": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", - "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", "dev": true }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "json-schema": { "version": "0.2.3", @@ -3677,14 +3606,6 @@ "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 - } } }, "just-debounce": { @@ -3847,6 +3768,12 @@ } } }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", @@ -3887,6 +3814,16 @@ "signal-exit": "^3.0.0" } }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -3951,14 +3888,6 @@ "read-pkg-up": "^1.0.1", "redent": "^1.0.0", "trim-newlines": "^1.0.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } } }, "micromatch": { @@ -4008,7 +3937,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -4035,7 +3964,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -4044,7 +3973,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true } @@ -4100,9 +4029,9 @@ "dev": true }, "node-gyp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "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", @@ -4112,90 +4041,25 @@ "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": ">=2.9.0 <2.82.0", + "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", "which": "1" }, "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.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" - } - }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true } } }, "node-sass": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", - "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz", + "integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -4211,63 +4075,12 @@ "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.10.0", - "node-gyp": "^3.3.1", + "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "2.87.0", + "request": "^2.88.0", "sass-graph": "^2.2.4", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" - }, - "dependencies": { - "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" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^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" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "nopt": { @@ -4328,9 +4141,15 @@ "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=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "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=", "dev": true }, "object-component": { @@ -4694,9 +4513,9 @@ } }, "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "pify": { @@ -4730,27 +4549,6 @@ "arr-diff": "^4.0.0", "arr-union": "^3.1.0", "extend-shallow": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "portscanner": { @@ -4793,6 +4591,12 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", @@ -4820,6 +4624,12 @@ "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 + }, "randomatic": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", @@ -5043,105 +4853,58 @@ } }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "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.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "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.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "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=", + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", "dev": true }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-db": "~1.36.0" } }, - "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.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "^5.1.0", - "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" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "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==", + "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==", "dev": true } } @@ -5221,31 +4984,6 @@ "dev": true, "requires": { "glob": "^7.0.5" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "rx": { @@ -5285,37 +5023,6 @@ "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", "yargs": "^7.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "scss-tokenizer": { @@ -5626,15 +5333,6 @@ } } }, - "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.1.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", @@ -5847,9 +5545,9 @@ } }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz", + "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -5861,14 +5559,6 @@ "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 - } } }, "stack-trace": { @@ -5905,50 +5595,12 @@ "dev": true }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "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" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.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" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "stream-exhaust": { @@ -5993,12 +5645,6 @@ "safe-buffer": "~5.1.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", @@ -6180,11 +5826,12 @@ } }, "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==", + "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" } }, @@ -6195,27 +5842,12 @@ "dev": true }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "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": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "glob": "^7.1.2" } }, "tunnel-agent": { @@ -6231,8 +5863,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "typedarray": { "version": "0.0.6", @@ -6448,14 +6079,6 @@ "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 - } } }, "vinyl": { From e5c90f9dfaf789764eb5ec270cfc4557f1ab6617 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 19 Oct 2018 16:13:51 +0000 Subject: [PATCH 236/269] Bump browser-sync from 2.24.6 to 2.26.3 Bumps [browser-sync](https://github.com/BrowserSync/browser-sync) from 2.24.6 to 2.26.3. - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/CHANGELOG.md) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.24.6...v2.26.3) Signed-off-by: dependabot[bot] --- package-lock.json | 694 +++++++++++++++++----------------------------- 1 file changed, 252 insertions(+), 442 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2506e877..819e4bf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,104 +81,13 @@ "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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" - } - } + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "append-buffer": { @@ -355,7 +264,7 @@ }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, @@ -619,32 +528,35 @@ } }, "browser-sync": { - "version": "2.24.6", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.24.6.tgz", - "integrity": "sha512-3cVW8Ft3sPQ1t9gqZXBDZhTyRce8NW4wf5KzpCYcg6fWjPbyt+vZLvEo+sTq7c7eNQhi8lInQWbjIFEpoM2f7Q==", + "version": "2.26.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.3.tgz", + "integrity": "sha512-VLzpjCA4uXqfzkwqWtMM6hvPm2PNHp2RcmzBXcbi6C9WpkUhhFb8SVAr4CFrCsFxDg+oY6HalOjn8F+egyvhag==", "dev": true, "requires": { - "browser-sync-ui": "v1.0.1", + "browser-sync-client": "^2.26.2", + "browser-sync-ui": "^2.26.2", "bs-recipes": "1.3.4", - "chokidar": "1.7.0", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^2.0.4", "connect": "3.6.6", - "connect-history-api-fallback": "^1.5.0", + "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", - "easy-extender": "2.3.2", - "eazy-logger": "3.0.2", + "easy-extender": "^2.3.4", + "eazy-logger": "^3", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", "http-proxy": "1.15.2", - "immutable": "3.8.2", - "localtunnel": "1.9.0", + "immutable": "^3", + "localtunnel": "1.9.1", "micromatch": "2.3.11", - "opn": "4.0.2", + "opn": "5.3.0", "portscanner": "2.1.1", "qs": "6.2.3", "raw-body": "^2.3.2", "resp-modifier": "6.0.2", "rx": "4.1.0", + "send": "0.16.2", "serve-index": "1.9.1", "serve-static": "1.13.2", "server-destroy": "1.0.1", @@ -679,24 +591,12 @@ "repeat-element": "^1.1.2" } }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -715,33 +615,6 @@ "is-extglob": "^1.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "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" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", @@ -793,27 +666,9 @@ "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", "dev": true }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, "yargs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", "dev": true, "requires": { @@ -835,7 +690,7 @@ }, "yargs-parser": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { @@ -844,17 +699,29 @@ } } }, + "browser-sync-client": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.2.tgz", + "integrity": "sha512-FEuVJD41fI24HJ30XOT2RyF5WcnEtdJhhTqeyDlnMk/8Ox9MZw109rvk9pdfRWye4soZLe+xcAo9tHSMxvgAdw==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6" + } + }, "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==", + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.2.tgz", + "integrity": "sha512-LF7GMWo8ELOE0eAlxuRCfnGQT1ZxKP9flCfGgZdXFc6BwmoqaJHlYe7MmVvykKkXjolRXTz8ztXAKGVqNwJ3EQ==", "dev": true, "requires": { "async-each-series": "0.1.1", - "connect-history-api-fallback": "^1.1.0", - "immutable": "^3.7.6", + "connect-history-api-fallback": "^1", + "immutable": "^3", "server-destroy": "1.0.1", - "socket.io-client": "2.0.4", + "socket.io-client": "^2.0.4", "stream-throttle": "^0.1.3" } }, @@ -864,6 +731,12 @@ "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", "dev": true }, + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, "buffer-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", @@ -882,6 +755,12 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -941,37 +820,24 @@ } }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^1.3.0", + "anymatch": "^2.0.0", "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", "path-is-absolute": "^1.0.0", - "readdirp": "^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" - } - } + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, "class-utils": { @@ -1109,9 +975,9 @@ } }, "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true }, "component-bind": { @@ -1399,20 +1265,12 @@ } }, "easy-extender": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", - "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "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 - } + "lodash": "^4.17.10" } }, "eazy-logger": { @@ -1492,9 +1350,9 @@ } }, "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==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "dev": true, "requires": { "component-emitter": "1.2.1", @@ -1599,6 +1457,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "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", @@ -1671,12 +1535,6 @@ "kind-of": "^3.0.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", @@ -1934,12 +1792,12 @@ } }, "follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", + "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", "dev": true, "requires": { - "debug": "^3.1.0" + "debug": "=3.1.0" }, "dependencies": { "debug": { @@ -2011,6 +1869,12 @@ "map-cache": "^0.2.2" } }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, "fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", @@ -2020,14 +1884,6 @@ "graceful-fs": "^4.1.2", "jsonfile": "^3.0.0", "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - } } }, "fs-mkdirp-stream": { @@ -2754,6 +2610,15 @@ "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", @@ -2772,27 +2637,22 @@ } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.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=", + "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": "^1.0.0" + "is-extglob": "^2.1.0" } } } @@ -3176,9 +3036,29 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://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 + } + } + }, "http-proxy": { "version": "1.15.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "resolved": "http://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", "dev": true, "requires": { @@ -3197,6 +3077,15 @@ "sshpk": "^1.7.0" } }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -3509,6 +3398,12 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3579,15 +3474,6 @@ "dev": true, "requires": { "graceful-fs": "^4.1.6" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "optional": true - } } }, "jsonify": { @@ -3710,13 +3596,13 @@ } }, "localtunnel": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.0.tgz", - "integrity": "sha512-wCIiIHJ8kKIcWkTQE3m1VRABvsH2ZuOkiOpZUofUCf6Q42v3VIZ+Q0YfX1Z4sYDRj0muiKL1bLvz1FeoxsPO0w==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.1.tgz", + "integrity": "sha512-HWrhOslklDvxgOGFLxi6fQVnvpl6XdX4sPscfqMZkzi3gtt9V7LKBWYvNUcpHSVvjwCQ6xzXacVvICNbNcyPnQ==", "dev": true, "requires": { "axios": "0.17.1", - "debug": "2.6.8", + "debug": "2.6.9", "openurl": "1.1.1", "yargs": "6.6.0" }, @@ -3727,18 +3613,9 @@ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "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" - } - }, "yargs": { "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { @@ -3759,7 +3636,7 @@ }, "yargs-parser": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { @@ -3911,6 +3788,12 @@ "to-regex": "^3.0.2" } }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, "mime-db": { "version": "1.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", @@ -3941,6 +3824,12 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "mitt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz", + "integrity": "sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA==", + "dev": true + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -4309,21 +4198,12 @@ "dev": true }, "opn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } + "is-wsl": "^1.1.0" } }, "ordered-read-streams": { @@ -4631,9 +4511,9 @@ "dev": true }, "randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "dev": true, "requires": { "is-number": "^4.0.0", @@ -4649,6 +4529,24 @@ } } }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -4992,6 +4890,15 @@ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", "dev": true }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -5061,6 +4968,35 @@ "sver-compat": "^1.5.0" } }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", @@ -5074,26 +5010,6 @@ "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" - }, - "dependencies": { - "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" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - } } }, "serve-static": { @@ -5106,71 +5022,6 @@ "escape-html": "~1.0.3", "parseurl": "~1.3.2", "send": "0.16.2" - }, - "dependencies": { - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "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" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } } }, "server-destroy": { @@ -5355,64 +5206,6 @@ "requires": { "ms": "2.0.0" } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "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" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "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.2.0", - "to-array": "0.1.4" - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - } } } }, @@ -5423,35 +5216,46 @@ "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=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", "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", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "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", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" + }, + "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" + } + } } }, "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==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "dev": true, "requires": { "component-emitter": "1.2.1", "debug": "~3.1.0", - "has-binary2": "~1.0.2", "isarray": "2.0.1" }, "dependencies": { @@ -5679,6 +5483,12 @@ "es6-symbol": "^3.1.1" } }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", From f9e349bf787a76994d8275195e6ab475808ebd19 Mon Sep 17 00:00:00 2001 From: Simon O'Hara Date: Tue, 30 Oct 2018 11:04:07 +1100 Subject: [PATCH 237/269] Fix syntax error in a conditional statement in parse-columns This addresses Issue #664 It is also similar to a previous attempt by @bizMD in PR #657 --- core/neat/functions/_neat-parse-columns.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/functions/_neat-parse-columns.scss b/core/neat/functions/_neat-parse-columns.scss index e46fccf3..c91517cc 100644 --- a/core/neat/functions/_neat-parse-columns.scss +++ b/core/neat/functions/_neat-parse-columns.scss @@ -16,7 +16,7 @@ @if length($span) == 3 { $_total-columns: nth($span, 3); @return $_total-columns; - } @else if length($span) == 2 or if length($span) >= 3 { + } @else if (length($span) == 2) or (length($span) >= 3) { @error "`$column` should contain 2 values, seperated by an `of`"; } } From a092ff79a5f81be5a01328f9daa5e15f97b4a58a Mon Sep 17 00:00:00 2001 From: Daniel Colson Date: Fri, 9 Nov 2018 14:29:05 -0500 Subject: [PATCH 238/269] Register neat with config.assets when in Rails Closes #659 I didn't realize this PR had already been opened by another Daniel. I changed a few little things, so I will merge this one instead with a co-author. Along the same lines as bourbon 8257c683f8, using `Sass.load_paths` won't work if we happen to be using sassc-rails instead of sass-rails. I ran into this when I was testing out https://github.com/thoughtbot/suspenders/pull/936. Co-authored-by: Daniel Greenlaw --- lib/neat.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/neat.rb b/lib/neat.rb index c16f00c1..41589af3 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,4 +1,12 @@ require "sass" require "neat/generator" -Sass.load_paths << File.expand_path("../../core", __FILE__) +module Neat + if defined?(Rails::Engine) + class Engine < ::Rails::Engine + config.assets.paths << File.expand_path("../core", __dir__) + end + else + Sass.load_paths << File.expand_path("../core", __dir__) + end +end From 101eac6ca5951fcb15620dda7d7807283f1a92ae Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 7 Jan 2019 10:43:48 -0500 Subject: [PATCH 239/269] Neat v3.0.1 --- CHANGELOG.md | 10 +++++++++- bower.json | 2 +- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ace357..e903e7a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ project adheres to [Semantic Versioning](http://semver.org). Nothing at the moment. +## [3.0.1] - 2019-01-07 + +### Fixed + +- Fixed an issue that would cause Neat to not be found when using SassC. +- Fixed `if` function syntax error. + ## [3.0.0] - 2018-06-29 - Extend grid-media to accept multiple custom grids @@ -361,7 +368,8 @@ Nothing at the moment. - Initial release -[unreleased]: https://github.com/thoughtbot/neat/compare/v3.0.0...HEAD +[unreleased]: https://github.com/thoughtbot/neat/compare/v3.0.1...HEAD +[3.0.0]: https://github.com/thoughtbot/neat/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/thoughtbot/neat/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/thoughtbot/neat/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.2...v2.0.0 diff --git a/bower.json b/bower.json index 7f221dda..950a205f 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "neat", "description": "A lightweight, semantic grid framework", - "version": "3.0.0", + "version": "3.0.1", "main": "core/_neat.scss", "license": "MIT", "ignore": [ diff --git a/core/_neat.scss b/core/_neat.scss index 69a66709..36050711 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 3.0.0 +// Neat 3.0.1 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index 00d2d9df..e1398b1c 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "3.0.0" + VERSION = "3.0.1" end diff --git a/package.json b/package.json index 8c3a83f8..2598d49b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "3.0.0", + "version": "3.0.1", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From 92a70ff596a5d2932dda108967508f3ba8d3a602 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 7 Jan 2019 10:47:07 -0500 Subject: [PATCH 240/269] Fix typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e903e7a1..8f1038cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -369,7 +369,7 @@ Nothing at the moment. - Initial release [unreleased]: https://github.com/thoughtbot/neat/compare/v3.0.1...HEAD -[3.0.0]: https://github.com/thoughtbot/neat/compare/v3.0.0...v3.0.1 +[3.0.1]: https://github.com/thoughtbot/neat/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/thoughtbot/neat/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/thoughtbot/neat/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/thoughtbot/neat/compare/v2.0.0.beta.2...v2.0.0 From 459d47bc51835439120097cbb893683b927c7b0e Mon Sep 17 00:00:00 2001 From: Vincent Lin Date: Fri, 15 Feb 2019 21:03:10 +0800 Subject: [PATCH 241/269] Fix the link of logo in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 23ca4599..a95c6b83 100644 --- a/README.md +++ b/README.md @@ -203,7 +203,7 @@ Neat is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. -[thoughtbot logo][thoughtbot] +[![thoughtbot logo](https://presskit.thoughtbot.com/images/thoughtbot-logo-for-readmes.svg)][thoughtbot] We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. From 9c936fd13f300b29a4b0c7236b5bf0febc469641 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 7 Feb 2019 18:29:47 +0000 Subject: [PATCH 242/269] [Security] Bump extend from 3.0.1 to 3.0.2 Bumps [extend](https://github.com/justmoon/node-extend) from 3.0.1 to 3.0.2. **This update includes security fixes.** - [Release notes](https://github.com/justmoon/node-extend/releases) - [Changelog](https://github.com/justmoon/node-extend/blob/master/CHANGELOG.md) - [Commits](https://github.com/justmoon/node-extend/compare/v3.0.1...v3.0.2) Signed-off-by: dependabot[bot] --- package-lock.json | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 819e4bf0..0236f016 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -668,7 +668,7 @@ }, "yargs": { "version": "6.4.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", "dev": true, "requires": { @@ -690,7 +690,7 @@ }, "yargs-parser": { "version": "4.2.1", - "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { @@ -1565,9 +1565,9 @@ } }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extend-shallow": { @@ -1851,7 +1851,7 @@ "dependencies": { "combined-stream": { "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { @@ -3615,7 +3615,7 @@ }, "yargs": { "version": "6.6.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { @@ -3636,7 +3636,7 @@ }, "yargs-parser": { "version": "4.2.1", - "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { @@ -3820,7 +3820,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -3853,7 +3853,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -3862,7 +3862,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true } @@ -3939,7 +3939,7 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true } @@ -4778,12 +4778,6 @@ "uuid": "^3.3.2" }, "dependencies": { - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "mime-db": { "version": "1.36.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", From a45575daf100de593973407263088dcc232a4fda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 22 Apr 2019 08:12:02 +0000 Subject: [PATCH 243/269] Bump gulp from 4.0.0 to 4.0.1 Bumps [gulp](https://github.com/gulpjs/gulp) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/gulpjs/gulp/releases) - [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md) - [Commits](https://github.com/gulpjs/gulp/compare/v4.0.0...v4.0.1) Signed-off-by: dependabot[bot] --- package-lock.json | 335 +++++++++++++++++++--------------------------- 1 file changed, 134 insertions(+), 201 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0236f016..86596465 100644 --- a/package-lock.json +++ b/package-lock.json @@ -744,9 +744,9 @@ "dev": true }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "builtin-modules": { @@ -875,9 +875,9 @@ } }, "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, "clone-buffer": { @@ -1041,10 +1041,13 @@ "dev": true }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, "cookie": { "version": "0.3.1", @@ -1156,13 +1159,12 @@ "dev": true }, "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1243,9 +1245,9 @@ "dev": true }, "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -1402,14 +1404,14 @@ } }, "es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "version": "0.10.49", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", + "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", "dev": true, "requires": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.1", - "next-tick": "1" + "next-tick": "^1.0.0" } }, "es6-iterator": { @@ -1663,13 +1665,14 @@ "dev": true }, "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "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" } }, @@ -1740,32 +1743,21 @@ } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", + "is-glob": "^4.0.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.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "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", @@ -1776,19 +1768,19 @@ } }, "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", + "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.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "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==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, "follow-redirects": { @@ -1826,12 +1818,6 @@ "for-in": "^1.0.1" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -2673,93 +2659,20 @@ "remove-trailing-separator": "^1.0.1", "to-absolute-glob": "^2.0.0", "unique-stream": "^2.0.2" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "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" - } - } } }, "glob-watcher": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz", - "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", "dev": true, "requires": { + "anymatch": "^2.0.0", "async-done": "^1.2.0", "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", "just-debounce": "^1.0.0", "object.defaults": "^1.1.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "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" - } - } - } - } } }, "global-modules": { @@ -2798,9 +2711,9 @@ } }, "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "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" @@ -2813,21 +2726,21 @@ "dev": true }, "gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.1.tgz", + "integrity": "sha512-yDVtVunxrAdsk7rIV/b7lVSBifPN1Eqe6wTjsESGrFcL+MEVzaaeNTkpUuGTUptloSOU+8oJm/lBJbgPV+tMAw==", "dev": true, "requires": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", "vinyl-fs": "^3.0.0" }, "dependencies": { "gulp-cli": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", - "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", "dev": true, "requires": { "ansi-colors": "^1.0.1", @@ -2840,7 +2753,7 @@ "gulplog": "^1.0.0", "interpret": "^1.1.0", "isobject": "^3.0.1", - "liftoff": "^2.5.0", + "liftoff": "^3.1.0", "matchdep": "^2.0.0", "mute-stdout": "^1.0.0", "pretty-hrtime": "^1.0.0", @@ -3022,9 +2935,9 @@ } }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "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" @@ -3136,9 +3049,9 @@ "dev": true }, "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, "invert-kv": { @@ -3452,14 +3365,11 @@ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, - "json-stable-stringify": { + "json-stable-stringify-without-jsonify": { "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" - } + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", @@ -3476,12 +3386,6 @@ "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", @@ -3544,13 +3448,13 @@ } }, "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "dev": true, "requires": { "extend": "^3.0.0", - "findup-sync": "^2.0.0", + "findup-sync": "^3.0.0", "fined": "^1.0.1", "flagged-respawn": "^1.0.0", "is-plain-object": "^2.0.4", @@ -3741,6 +3645,29 @@ "micromatch": "^3.0.4", "resolve": "^1.4.0", "stack-trace": "0.0.10" + }, + "dependencies": { + "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" + } + }, + "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" + } + } } }, "math-random": { @@ -3875,9 +3802,9 @@ "dev": true }, "mute-stdout": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", - "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true }, "nan": { @@ -4003,9 +3930,9 @@ } }, "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "dev": true, "requires": { "once": "^1.3.2" @@ -4079,9 +4006,9 @@ } }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-path": { @@ -4295,6 +4222,12 @@ "error-ex": "^1.2.0" } }, + "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", @@ -4353,9 +4286,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-root": { @@ -4820,12 +4753,12 @@ "dev": true }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "^1.0.6" } }, "resolve-dir": { @@ -5547,9 +5480,9 @@ } }, "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, "requires": { "through2": "~2.0.0", @@ -5694,9 +5627,9 @@ "dev": true }, "undertaker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", - "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", "dev": true, "requires": { "arr-flatten": "^1.0.1", @@ -5752,13 +5685,13 @@ } }, "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", "dev": true, "requires": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" } }, "universalify": { @@ -5850,9 +5783,9 @@ "dev": true }, "v8flags": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", - "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" From 024daa7fa91df701a97e23609ffd2b53c26f260e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 23 Apr 2019 08:12:03 +0000 Subject: [PATCH 244/269] Bump browser-sync from 2.26.3 to 2.26.4 Bumps [browser-sync](https://github.com/BrowserSync/browser-sync) from 2.26.3 to 2.26.4. - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/CHANGELOG.md) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.26.3...v2.26.4) Signed-off-by: dependabot[bot] --- package-lock.json | 611 +++++++++++++++++++--------------------------- 1 file changed, 248 insertions(+), 363 deletions(-) diff --git a/package-lock.json b/package-lock.json index 86596465..0f2be1bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -474,9 +474,9 @@ "dev": true }, "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "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": { @@ -528,13 +528,13 @@ } }, "browser-sync": { - "version": "2.26.3", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.3.tgz", - "integrity": "sha512-VLzpjCA4uXqfzkwqWtMM6hvPm2PNHp2RcmzBXcbi6C9WpkUhhFb8SVAr4CFrCsFxDg+oY6HalOjn8F+egyvhag==", + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.4.tgz", + "integrity": "sha512-L80yePIGJCQFEmAqfXenCmc4byS7up/SqmbL5geRa7Vm6iKog4iNIO3K5qe3TVmXnl3wVHYAfjEB1lgZPo5Nig==", "dev": true, "requires": { - "browser-sync-client": "^2.26.2", - "browser-sync-ui": "^2.26.2", + "browser-sync-client": "^2.26.4", + "browser-sync-ui": "^2.26.4", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", "chokidar": "^2.0.4", @@ -549,7 +549,7 @@ "http-proxy": "1.15.2", "immutable": "^3", "localtunnel": "1.9.1", - "micromatch": "2.3.11", + "micromatch": "^4.0.2", "opn": "5.3.0", "portscanner": "2.1.1", "qs": "6.2.3", @@ -565,30 +565,13 @@ "yargs": "6.4.0" }, "dependencies": { - "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=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "fill-range": "^7.0.1" } }, "camelcase": { @@ -597,67 +580,29 @@ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, - "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=", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "to-regex-range": "^5.0.1" } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "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=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "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" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "qs": { @@ -666,6 +611,15 @@ "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", "dev": true }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, "yargs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", @@ -700,9 +654,9 @@ } }, "browser-sync-client": { - "version": "2.26.2", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.2.tgz", - "integrity": "sha512-FEuVJD41fI24HJ30XOT2RyF5WcnEtdJhhTqeyDlnMk/8Ox9MZw109rvk9pdfRWye4soZLe+xcAo9tHSMxvgAdw==", + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.4.tgz", + "integrity": "sha512-mQiDp5/tf79VezDS5j/EExU4Ze6f5DQYuL0Z7VdJgBbNLTHDfkYGi2R620qc6HkY9XZA0m4/UwihT7J42RBIJA==", "dev": true, "requires": { "etag": "1.8.1", @@ -712,9 +666,9 @@ } }, "browser-sync-ui": { - "version": "2.26.2", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.2.tgz", - "integrity": "sha512-LF7GMWo8ELOE0eAlxuRCfnGQT1ZxKP9flCfGgZdXFc6BwmoqaJHlYe7MmVvykKkXjolRXTz8ztXAKGVqNwJ3EQ==", + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.4.tgz", + "integrity": "sha512-u20P3EsZoM8Pt+puoi3BU3KlbQAH1lAcV+/O4saF26qokrBqIDotmGonfWwoRbUmdxZkM9MBmA0K39ZTG1h4sA==", "dev": true, "requires": { "async-each-series": "0.1.1", @@ -756,9 +710,9 @@ "dev": true }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, "cache-base": { @@ -975,9 +929,9 @@ } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, "component-bind": { @@ -1029,9 +983,9 @@ } }, "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "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-control-strings": { @@ -1327,9 +1281,9 @@ } }, "engine.io": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", - "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "dev": true, "requires": { "accepts": "~1.3.4", @@ -1348,13 +1302,24 @@ "requires": { "ms": "2.0.0" } + }, + "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" + } } } }, "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz", + "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==", "dev": true, "requires": { "component-emitter": "1.2.1", @@ -1365,7 +1330,7 @@ "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", + "ws": "~6.1.0", "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" }, @@ -1382,15 +1347,15 @@ } }, "engine.io-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", - "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "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.4", + "blob": "0.0.5", "has-binary2": "~1.0.2" } }, @@ -1506,57 +1471,6 @@ } } }, - "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", @@ -1688,12 +1602,6 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "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 - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1784,22 +1692,28 @@ } }, "follow-redirects": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "dev": true, "requires": { - "debug": "=3.1.0" + "debug": "^3.2.6" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -2586,42 +2500,6 @@ "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", @@ -2950,15 +2828,16 @@ "dev": true }, "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.2", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "dependencies": { "statuses": { @@ -2991,9 +2870,9 @@ } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -3159,21 +3038,6 @@ } } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3257,18 +3121,6 @@ "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-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -3464,9 +3316,9 @@ } }, "limiter": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz", - "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz", + "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==", "dev": true }, "load-json-file": { @@ -3670,12 +3522,6 @@ } } }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -4060,27 +3906,6 @@ "make-iterator": "^1.0.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "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" - } - } - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -4184,35 +4009,6 @@ "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": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -4253,9 +4049,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascalcase": { @@ -4331,6 +4127,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.5.tgz", + "integrity": "sha512-Zisqgaq/4P05ZclrU/g5XrzFqVo7YiJx+EP4haeVI9S7kvtZmZgmQMZfcvjEus9JcMhqZfQZObimT5ZydvKJGA==", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -4380,12 +4182,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -4443,25 +4239,6 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", - "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 - } - } - }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -4469,14 +4246,14 @@ "dev": true }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, @@ -4599,15 +4376,6 @@ "strip-indent": "^1.0.1" } }, - "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", @@ -4916,6 +4684,24 @@ "statuses": "~1.4.0" }, "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "http://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" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -4937,6 +4723,32 @@ "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "http://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" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } } }, "serve-static": { @@ -4993,9 +4805,9 @@ } }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "signal-exit": { @@ -5133,6 +4945,75 @@ "requires": { "ms": "2.0.0" } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "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" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "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.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "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" + } } } }, @@ -5143,9 +5024,9 @@ "dev": true }, "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", + "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", "dev": true, "requires": { "backo2": "1.0.2", @@ -5153,14 +5034,14 @@ "component-bind": "1.0.0", "component-emitter": "1.2.1", "debug": "~3.1.0", - "engine.io-client": "~3.2.0", + "engine.io-client": "~3.3.1", "has-binary2": "~1.0.2", "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.2.0", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" }, "dependencies": { @@ -5176,9 +5057,9 @@ } }, "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", "dev": true, "requires": { "component-emitter": "1.2.1", @@ -5562,6 +5443,12 @@ "through2": "^2.0.3" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -5928,14 +5815,12 @@ "dev": true }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", "dev": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "~1.0.0" } }, "xmlhttprequest-ssl": { From 2fd902381bf4e3d85d4f8f3cf1eb54074d817bde Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 25 Apr 2019 08:12:31 +0000 Subject: [PATCH 245/269] Bump browser-sync from 2.26.4 to 2.26.5 Bumps [browser-sync](https://github.com/BrowserSync/browser-sync) from 2.26.4 to 2.26.5. - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/CHANGELOG.md) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.26.4...v2.26.5) Signed-off-by: dependabot[bot] --- package-lock.json | 57 ++++------------------------------------------- 1 file changed, 4 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f2be1bc..996638ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -528,9 +528,9 @@ } }, "browser-sync": { - "version": "2.26.4", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.4.tgz", - "integrity": "sha512-L80yePIGJCQFEmAqfXenCmc4byS7up/SqmbL5geRa7Vm6iKog4iNIO3K5qe3TVmXnl3wVHYAfjEB1lgZPo5Nig==", + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.5.tgz", + "integrity": "sha512-zVa6MmadAFgl5Uk53Yy5cw5tGTO7xSGAWK3Yx70GJ1t5jK+r6B4q3xq+1XbYfLt1SbeFg7WoNWneNhMT4B9jFw==", "dev": true, "requires": { "browser-sync-client": "^2.26.4", @@ -549,7 +549,7 @@ "http-proxy": "1.15.2", "immutable": "^3", "localtunnel": "1.9.1", - "micromatch": "^4.0.2", + "micromatch": "^3.1.10", "opn": "5.3.0", "portscanner": "2.1.1", "qs": "6.2.3", @@ -565,61 +565,18 @@ "yargs": "6.4.0" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "qs": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", "dev": true }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, "yargs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", @@ -4127,12 +4084,6 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, - "picomatch": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.5.tgz", - "integrity": "sha512-Zisqgaq/4P05ZclrU/g5XrzFqVo7YiJx+EP4haeVI9S7kvtZmZgmQMZfcvjEus9JcMhqZfQZObimT5ZydvKJGA==", - "dev": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", From bf036bef16d021b6cffa1f97ff7047455eca5261 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 7 May 2019 08:13:39 +0000 Subject: [PATCH 246/269] Bump gulp from 4.0.1 to 4.0.2 Bumps [gulp](https://github.com/gulpjs/gulp) from 4.0.1 to 4.0.2. - [Release notes](https://github.com/gulpjs/gulp/releases) - [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md) - [Commits](https://github.com/gulpjs/gulp/compare/v4.0.1...v4.0.2) Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 996638ac..8533a44f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1326,9 +1326,9 @@ } }, "es5-ext": { - "version": "0.10.49", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", - "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", "dev": true, "requires": { "es6-iterator": "~2.0.3", @@ -2561,9 +2561,9 @@ "dev": true }, "gulp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.1.tgz", - "integrity": "sha512-yDVtVunxrAdsk7rIV/b7lVSBifPN1Eqe6wTjsESGrFcL+MEVzaaeNTkpUuGTUptloSOU+8oJm/lBJbgPV+tMAw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", "dev": true, "requires": { "glob-watcher": "^5.0.3", @@ -4472,9 +4472,9 @@ "dev": true }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "dev": true, "requires": { "path-parse": "^1.0.6" From 4a915704464e8b33cc9f500fc7d08789695133db Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" Date: Fri, 24 May 2019 17:25:56 +0000 Subject: [PATCH 247/269] [Security] Bump tar from 2.2.1 to 2.2.2 Bumps [tar](https://github.com/npm/node-tar) from 2.2.1 to 2.2.2. **This update includes security fixes.** - [Release notes](https://github.com/npm/node-tar/releases) - [Commits](https://github.com/npm/node-tar/compare/v2.2.1...v2.2.2) --- package-lock.json | 139 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 107 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8533a44f..7fa37b73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -751,6 +751,13 @@ "upath": "^1.0.5" } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true, + "optional": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1743,6 +1750,16 @@ "universalify": "^0.1.0" } }, + "fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -1823,9 +1840,7 @@ "chownr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true, - "optional": true + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "code-point-at": { "version": "1.1.0", @@ -1890,8 +1905,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.2.1" } @@ -2025,7 +2038,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.1", @@ -2036,8 +2048,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.2.1" } @@ -2247,7 +2257,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true, "optional": true }, "safer-buffer": { @@ -2324,22 +2333,6 @@ "dev": true, "optional": true }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2368,7 +2361,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true, "optional": true } } @@ -3554,6 +3546,43 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true, + "optional": true + } + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mitt": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz", @@ -3672,6 +3701,31 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + } + } } } }, @@ -5249,14 +5303,35 @@ "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, + "optional": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "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" + }, + "dependencies": { + "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==", + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true, + "optional": true + } } }, "tfunk": { From 96a06c7fe6b89d93ddf2410e8a474ecb75cd58c4 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 6 Jun 2019 09:33:18 -0400 Subject: [PATCH 248/269] Update Node.js from 8.11.3 to 10.16.0 --- .tool-versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tool-versions b/.tool-versions index ec88ceec..471a7df9 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ ruby 2.5.1 -nodejs 8.11.3 +nodejs 10.16.0 From 4247d80956b7e3b551b28e3a09f4ce38e23b8e99 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 6 Jun 2019 09:34:37 -0400 Subject: [PATCH 249/269] Run `npm audit fix` --- package-lock.json | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7fa37b73..eff04ff3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -264,7 +264,7 @@ }, "async": { "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, @@ -703,7 +703,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { @@ -2038,7 +2038,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2256,8 +2255,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "optional": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", @@ -2360,15 +2358,14 @@ "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "optional": true + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "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", @@ -2799,7 +2796,7 @@ }, "http-proxy": { "version": "1.15.2", - "resolved": "http://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", "dev": true, "requires": { From c0bd3de3eb399a0f697ae35ccd90380bc05504f4 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 6 Jun 2019 09:36:36 -0400 Subject: [PATCH 250/269] Update Ruby from 2.5.1 to 2.6.3 --- .tool-versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tool-versions b/.tool-versions index 471a7df9..cb79f6ac 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -ruby 2.5.1 +ruby 2.6.3 nodejs 10.16.0 From 91448c449d3dcc5a3a87f58a90d82b229d05b459 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Thu, 6 Jun 2019 09:38:44 -0400 Subject: [PATCH 251/269] Use Ruby 2.6.3 in CircleCI --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8b73ac39..9b08d3b5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 jobs: build: docker: - - image: circleci/ruby:2.5.1-node + - image: circleci/ruby:2.6.3-node steps: - checkout From dd8a594042159b090c852681dface11422ab2a42 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" Date: Fri, 7 Jun 2019 13:55:21 +0000 Subject: [PATCH 252/269] Bump browser-sync from 2.26.5 to 2.26.7 Bumps [browser-sync](https://github.com/BrowserSync/browser-sync) from 2.26.5 to 2.26.7. - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/CHANGELOG.md) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.26.5...v2.26.7) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 120 +++++++++++++++++++++++++++++----------------- 1 file changed, 77 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index eff04ff3..0f9179b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,13 +11,30 @@ "dev": true }, "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "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.18", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } } }, "after": { @@ -338,13 +355,21 @@ "dev": true }, "axios": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", - "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", "dev": true, "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + } } }, "bach": { @@ -528,12 +553,12 @@ } }, "browser-sync": { - "version": "2.26.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.5.tgz", - "integrity": "sha512-zVa6MmadAFgl5Uk53Yy5cw5tGTO7xSGAWK3Yx70GJ1t5jK+r6B4q3xq+1XbYfLt1SbeFg7WoNWneNhMT4B9jFw==", + "version": "2.26.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.7.tgz", + "integrity": "sha512-lY3emme0OyvA2ujEMpRmyRy9LY6gHLuTr2/ABxhIm3lADOiRXzP4dgekvnDrQqZ/Ec2Fz19lEjm6kglSG5766w==", "dev": true, "requires": { - "browser-sync-client": "^2.26.4", + "browser-sync-client": "^2.26.6", "browser-sync-ui": "^2.26.4", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", @@ -548,7 +573,7 @@ "fs-extra": "3.0.1", "http-proxy": "1.15.2", "immutable": "^3", - "localtunnel": "1.9.1", + "localtunnel": "1.9.2", "micromatch": "^3.1.10", "opn": "5.3.0", "portscanner": "2.1.1", @@ -611,9 +636,9 @@ } }, "browser-sync-client": { - "version": "2.26.4", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.4.tgz", - "integrity": "sha512-mQiDp5/tf79VezDS5j/EExU4Ze6f5DQYuL0Z7VdJgBbNLTHDfkYGi2R620qc6HkY9XZA0m4/UwihT7J42RBIJA==", + "version": "2.26.6", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.6.tgz", + "integrity": "sha512-mGrkZdNzttKdf/16I+y+2dTQxoMCIpKbVIMJ/uP8ZpnKu9f9qa/2CYVtLtbjZG8nsM14EwiCrjuFTGBEnT3Gjw==", "dev": true, "requires": { "etag": "1.8.1", @@ -1656,28 +1681,22 @@ } }, "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "dev": true, "requires": { - "debug": "^3.2.6" + "debug": "=3.1.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "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.1.1" + "ms": "2.0.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -3298,13 +3317,13 @@ } }, "localtunnel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.1.tgz", - "integrity": "sha512-HWrhOslklDvxgOGFLxi6fQVnvpl6XdX4sPscfqMZkzi3gtt9V7LKBWYvNUcpHSVvjwCQ6xzXacVvICNbNcyPnQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.2.tgz", + "integrity": "sha512-NEKF7bDJE9U3xzJu3kbayF0WTvng6Pww7tzqNb/XtEARYwqw7CKEX7BvOMg98FtE9es2CRizl61gkV3hS8dqYg==", "dev": true, "requires": { - "axios": "0.17.1", - "debug": "2.6.9", + "axios": "0.19.0", + "debug": "4.1.1", "openurl": "1.1.1", "yargs": "6.6.0" }, @@ -3315,6 +3334,21 @@ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "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==", + "dev": true + }, "yargs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", @@ -3662,9 +3696,9 @@ } }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "next-tick": { @@ -4242,9 +4276,9 @@ "dev": true }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "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 }, "raw-body": { From 134d7453505fd1e3961aa65dcfd6657db1246e1d Mon Sep 17 00:00:00 2001 From: Kaveet Laxmidas Date: Wed, 12 Jun 2019 14:41:15 -0500 Subject: [PATCH 253/269] Fix typo in docs Removes a stray character. --- core/neat/mixins/_grid-column.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/neat/mixins/_grid-column.scss b/core/neat/mixins/_grid-column.scss index 560d5f43..bfed3b57 100644 --- a/core/neat/mixins/_grid-column.scss +++ b/core/neat/mixins/_grid-column.scss @@ -9,7 +9,7 @@ /// Specifies the number of columns an element should span based on the total /// columns of the grid. /// -/// This can also be defined in a shorthand syntaxt which also contains the +/// This can also be defined in a shorthand syntax which also contains the /// total column count such as `3 of 5`. /// /// @argument {map} $grid [$neat-grid] From a46f8dc87efdea09734682aa5cb8c7d4fcbef738 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 8 Jul 2019 17:00:11 -0400 Subject: [PATCH 254/269] Remove sass dependency This mimics how we've done it in Bourbon: https://github.com/thoughtbot/bourbon/commit/9bedac008832cb779ded2f9298f12a5ebae9e88a --- lib/neat.rb | 9 ++++++--- neat.gemspec | 1 - 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/neat.rb b/lib/neat.rb index 41589af3..b5cbcd7a 100644 --- a/lib/neat.rb +++ b/lib/neat.rb @@ -1,12 +1,15 @@ -require "sass" require "neat/generator" module Neat - if defined?(Rails::Engine) + if defined?(Rails) && defined?(Rails::Engine) class Engine < ::Rails::Engine config.assets.paths << File.expand_path("../core", __dir__) end else - Sass.load_paths << File.expand_path("../core", __dir__) + begin + require "sass" + Sass.load_paths << File.expand_path("../core", __dir__) + rescue LoadError + end end end diff --git a/neat.gemspec b/neat.gemspec index 21da1e2f..0dfb0efa 100644 --- a/neat.gemspec +++ b/neat.gemspec @@ -7,7 +7,6 @@ Gem::Specification.new do |s| s.add_development_dependency "rake" s.add_development_dependency "rspec" s.add_development_dependency "scss_lint", "~> 0.44" - s.add_runtime_dependency "sass", "~> 3.4" s.add_runtime_dependency "thor", "~> 0.19" s.authors = [ "Joel Oliveira", From 3e03aaf79190b0795b9f8af745ee912c07192e0f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 9 Jul 2019 09:39:27 -0400 Subject: [PATCH 255/269] Remove mention of example gulp project --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index a95c6b83..5d2ebc12 100644 --- a/README.md +++ b/README.md @@ -127,10 +127,6 @@ use out of the box and flexible enough to customize down the road. @import "neat"; ``` - **Pro Tip:** Check out this [example gulp project][gulp-example] that - uses Bourbon and Neat. - -[gulp-example]: https://github.com/thoughtbot/gulp-bourbon-neat-example [eyeglass]: http://eyeglass.rocks ### Installing older versions of Neat From ee4363686242ce424e8c8faeae6b89323c99da18 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 9 Jul 2019 12:57:58 -0400 Subject: [PATCH 256/269] Remove support for Bower Bower is still being maintained, but they began recommending that folks use alternative package managers going forward. So, it's slowly being sunset. More on their blog: https://bower.io/blog/ --- .npmignore | 1 - README.md | 3 --- RELEASING.md | 1 - bower.json | 40 ---------------------------------------- 4 files changed, 45 deletions(-) delete mode 100644 bower.json diff --git a/.npmignore b/.npmignore index 0a0c3def..f08b5a68 100644 --- a/.npmignore +++ b/.npmignore @@ -5,7 +5,6 @@ .sass-cache .scss-lint.yml bin/ -bower.json circle.yml CODE_OF_CONDUCT.md contrib/ diff --git a/README.md b/README.md index 5d2ebc12..d594d143 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,6 @@ use out of the box and flexible enough to customize down the road. gem install neat ``` - Alternatively, you can install Neat with [Bower]. - 1. Install or update Neat’s dependencies: ```bash @@ -75,7 +73,6 @@ use out of the box and flexible enough to customize down the road. them easily. [RubyGems]: https://rubygems.org -[Bower]: http://bower.io ### Installation for Ruby on Rails 4.2+ diff --git a/RELEASING.md b/RELEASING.md index 45b63abf..7dd5adc5 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -4,7 +4,6 @@ - `lib/neat/version.rb` - `core/_neat.scss` - `package.json` - - `bower.json` 1. Update `CHANGELOG.md` diff --git a/bower.json b/bower.json deleted file mode 100644 index 950a205f..00000000 --- a/bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "neat", - "description": "A lightweight, semantic grid framework", - "version": "3.0.1", - "main": "core/_neat.scss", - "license": "MIT", - "ignore": [ - "**/.*", - "bin", - "bin", - "CONTRIBUTING.md", - "Gemfile", - "Gemfile.lock", - "lib", - "neat.gemspec", - "NEWS.md", - "Rakefile", - "spec" - ], - "keywords": [ - "columns", - "grid", - "layout", - "media", - "media-queries", - "neat", - "queries", - "sass", - "scss", - "semantic" - ], - "authors": [ - "thoughtbot (http://thoughtbot.com)" - ], - "homepage": "http://neat.bourbon.io", - "repository": { - "type": "git", - "url": "https://github.com/thoughtbot/neat.git" - } -} From 488ac4395c9a92df98c5b108f6251059a333a490 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Wed, 10 Jul 2019 14:36:29 -0400 Subject: [PATCH 257/269] Neat v4.0.0 --- CHANGELOG.md | 10 +++++++++- core/_neat.scss | 2 +- lib/neat/version.rb | 2 +- package.json | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f1038cb..5b7371aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ project adheres to [Semantic Versioning](http://semver.org). Nothing at the moment. +## [4.0.0] - 2019-07-10 + +### Removed + +- Installation through Bower is no longer supported. +- The sass gem (the deprecated Ruby Sass) is no longer a runtime dependency. + ## [3.0.1] - 2019-01-07 ### Fixed @@ -368,7 +375,8 @@ Nothing at the moment. - Initial release -[unreleased]: https://github.com/thoughtbot/neat/compare/v3.0.1...HEAD +[unreleased]: https://github.com/thoughtbot/neat/compare/v4.0.0...HEAD +[4.0.0]: https://github.com/thoughtbot/neat/compare/v3.0.1...v4.0.0 [3.0.1]: https://github.com/thoughtbot/neat/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/thoughtbot/neat/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/thoughtbot/neat/compare/v2.0.0...v2.1.0 diff --git a/core/_neat.scss b/core/_neat.scss index 36050711..6a6a5ae4 100644 --- a/core/_neat.scss +++ b/core/_neat.scss @@ -1,5 +1,5 @@ @charset "UTF-8"; -// Neat 3.0.1 +// Neat 4.0.0 // http://neat.bourbon.io // Copyright 2012 thoughtbot, inc. // MIT License diff --git a/lib/neat/version.rb b/lib/neat/version.rb index e1398b1c..6e4f56b5 100644 --- a/lib/neat/version.rb +++ b/lib/neat/version.rb @@ -1,3 +1,3 @@ module Neat - VERSION = "3.0.1" + VERSION = "4.0.0" end diff --git a/package.json b/package.json index 2598d49b..4ae2fb59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "3.0.1", + "version": "4.0.0", "description": "A lightweight, semantic grid framework", "keywords": [ "columns", From c908ef53f5a830caf586aa92a02ba24bfddc1b1b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2019 02:59:54 +0000 Subject: [PATCH 258/269] [Security] Bump lodash from 4.17.11 to 4.17.14 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes security fixes.** - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f9179b8..139ee20e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bourbon-neat", - "version": "3.0.1", + "version": "4.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3382,9 +3382,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", "dev": true }, "lodash.assign": { From 182540d7547be82d7d1c7e289c6ea87b730c833c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2019 22:14:31 +0000 Subject: [PATCH 259/269] [Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 Bumps [lodash.mergewith](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2. **This update includes security fixes.** - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/commits) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 139ee20e..442c172f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3412,9 +3412,9 @@ "dev": true }, "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", "dev": true }, "loud-rejection": { From d78e2e3c78cd34f5aae031dc9e5c5993bfcccdde Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2019 18:12:39 +0000 Subject: [PATCH 260/269] [Security] Bump mixin-deep from 1.3.1 to 1.3.2 Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. **This update includes a security fix.** - [Release notes](https://github.com/jonschlinkert/mixin-deep/releases) - [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 442c172f..b4cb203f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3621,9 +3621,9 @@ "dev": true }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", From 6b4530a1c7af1e5ec47ccbd55eef8d0c94f57b4a Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 30 Aug 2019 11:20:36 -0400 Subject: [PATCH 261/269] Update README with roadmap. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d594d143..c6c9e3d8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +``` + Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox become such + a compelling choices that the need for float based grid systems becomes less compelling. As per + our guides we will now be favoring these native CSS tools to ine stead of Neat. +``` + [Neat logo][Neat] [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) From 05c8d9138097bc3453ed1b393e4ce0646e7b50b3 Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 30 Aug 2019 11:37:47 -0400 Subject: [PATCH 262/269] Update language on README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c6c9e3d8..6debcb16 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ``` - Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox become such - a compelling choices that the need for float based grid systems becomes less compelling. As per - our guides we will now be favoring these native CSS tools to ine stead of Neat. + Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox become such a + compelling oppertunity that the need for float based grid systems become less necessary. As per + our guides we will now be favoring these native CSS tools to Neat. ``` [Neat logo][Neat] From f94d68a6a3f6c3b828ca994e8061b9903727359b Mon Sep 17 00:00:00 2001 From: Will H McMahan Date: Fri, 30 Aug 2019 11:44:38 -0400 Subject: [PATCH 263/269] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6debcb16..08e5dd0d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ``` - Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox become such a + Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox becomes such a compelling oppertunity that the need for float based grid systems become less necessary. As per our guides we will now be favoring these native CSS tools to Neat. ``` From e5196e39c3784870bc71b3732b26c20455a85aa4 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 3 Sep 2019 11:19:17 -0400 Subject: [PATCH 264/269] Run npm audit fix --- package-lock.json | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4cb203f..0cb40172 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1734,7 +1734,7 @@ "dependencies": { "combined-stream": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { @@ -4818,9 +4818,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -5594,38 +5594,15 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "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==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "unique-stream": { From e00e7943f1f968fbfe1a20138a03752a53c144bc Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Fri, 30 Aug 2019 11:49:21 -0400 Subject: [PATCH 265/269] Fix typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 08e5dd0d..7177a0a6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ``` - Neat will soon no longer be actively maintianed. As CSS progresses, CSS grid/flexbox becomes such a - compelling oppertunity that the need for float based grid systems become less necessary. As per + Neat will soon no longer be actively maintained. As CSS progresses, CSS grid/flexbox becomes such a + compelling opportunity that the need for float based grid systems become less necessary. As per our guides we will now be favoring these native CSS tools to Neat. ``` From a44a8ae5254968e0266bd23b3665432fc8120dd5 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 8 Oct 2019 13:17:22 -0400 Subject: [PATCH 266/269] Fix Markdown formatting --- RELEASING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 7dd5adc5..03062e5a 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,9 +1,10 @@ # Releasing 1. Update the version number in these places: - - `lib/neat/version.rb` - - `core/_neat.scss` - - `package.json` + + - `lib/neat/version.rb` + - `core/_neat.scss` + - `package.json` 1. Update `CHANGELOG.md` From 26f078245675f9a03f6bee73e9031ef37e44a60f Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 8 Oct 2019 13:35:08 -0400 Subject: [PATCH 267/269] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7177a0a6..5543c0d1 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ ## A lightweight and flexible Sass grid +**Note:** This project is no longer maintained. + [Neat] is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road. From c86a061941336cbcde56a62d7c8a212c1a280765 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Tue, 8 Oct 2019 13:36:35 -0400 Subject: [PATCH 268/269] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 5543c0d1..b76b8456 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,3 @@ -``` - Neat will soon no longer be actively maintained. As CSS progresses, CSS grid/flexbox becomes such a - compelling opportunity that the need for float based grid systems become less necessary. As per - our guides we will now be favoring these native CSS tools to Neat. -``` - [Neat logo][Neat] [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) From 6c76100ab31585aa1b96354d3992258ce1fc01e3 Mon Sep 17 00:00:00 2001 From: Tyson Gach Date: Mon, 21 Oct 2019 09:48:01 -0400 Subject: [PATCH 269/269] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b76b8456..95960f54 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ ## A lightweight and flexible Sass grid -**Note:** This project is no longer maintained. +**Note:** This project is no longer maintained. We favor and encourage people to use +native CSS features like Grid and Flexbox. Float-based grid frameworks like Neat +are no longer necessary. [Neat] is a fluid grid framework with the aim of being easy enough to use out of the box and flexible enough to customize down the road.