]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
[TMP] Fix Sass dependencies import for Bower 9469/head
authorNicolas Coden <nicolas@ncoden.fr>
Wed, 7 Dec 2016 20:46:36 +0000 (21:46 +0100)
committerNicolas Coden <nicolas@ncoden.fr>
Wed, 7 Dec 2016 20:46:36 +0000 (21:46 +0100)
:warning: **This is a temporary solution**

Unlike NPM, Bower does not have its own registry and uses the Github
repository. Like `js, `sass` and `dist`, all the files required by
Bower must be published on Git.

Changes:
- Pin the Sass dependencies versions and update `yarn.lock`
- Move only the require files to `/vendor`
- Publish the Sass dependencies in `vendor/` on git.

17 files changed:
.gitignore
_vendor/normalize-scss/sass/_normalize.scss [new file with mode: 0644]
_vendor/normalize-scss/sass/normalize/_import-now.scss [new file with mode: 0644]
_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss [new file with mode: 0644]
_vendor/normalize-scss/sass/normalize/_variables.scss [new file with mode: 0644]
_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/functions/_purge.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/functions/_remove.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/functions/_replace.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/functions/_to-list.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss [new file with mode: 0644]
_vendor/sassy-lists/stylesheets/helpers/_true.scss [new file with mode: 0644]
gulp/config.js
gulp/tasks/customizer.js
package.json
scss/foundation.scss
yarn.lock

index 8c8b8a489be6585b86db2169cc3e7dc923f8f88a..1c23ecef2b55dbe27cc89cdcb7a6314aab4c0288 100644 (file)
@@ -15,7 +15,6 @@
 .sass-cache/*
 .yardoc
 _build
-_vendor
 .customizer
 
 bower_components
diff --git a/_vendor/normalize-scss/sass/_normalize.scss b/_vendor/normalize-scss/sass/_normalize.scss
new file mode 100644 (file)
index 0000000..fd669eb
--- /dev/null
@@ -0,0 +1,3 @@
+@import 'normalize/variables';
+@import 'normalize/vertical-rhythm';
+@import 'normalize/normalize-mixin';
diff --git a/_vendor/normalize-scss/sass/normalize/_import-now.scss b/_vendor/normalize-scss/sass/normalize/_import-now.scss
new file mode 100644 (file)
index 0000000..aac5d2b
--- /dev/null
@@ -0,0 +1,11 @@
+// Import Now
+//
+// If you import this module directly, it will immediately output all the CSS
+// needed to normalize default HTML elements across all browsers.
+//
+// ```
+// @import "normalize/import-now";
+// ```
+
+@import '../normalize';
+@include normalize();
diff --git a/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss b/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss
new file mode 100644 (file)
index 0000000..70a8d3d
--- /dev/null
@@ -0,0 +1,676 @@
+// Helper function for the normalize() mixin.
+@function _normalize-include($section, $exclude: null) {
+  // Initialize the global variables needed by this function.
+  @if not global_variable_exists(_normalize-include) {
+    $_normalize-include: () !global;
+    $_normalize-exclude: () !global;
+  }
+  // Since we are given 2 parameters, set the global variables.
+  @if $exclude != null {
+    $include: $section;
+    // Sass doesn't have static variables, so the work-around is to stuff these
+    // values into global variables so we can access them in future calls.
+    $_normalize-include: if(type-of($include) == 'list', $include, ($include)) !global;
+    $_normalize-exclude: if(type-of($exclude) == 'list', $exclude, ($exclude)) !global;
+    @return true;
+  }
+
+  // Check if $section is in the $include list.
+  @if index($_normalize-include, $section) {
+    @return true;
+  }
+  // If $include is set to (all), make sure $section is not in $exclude.
+  @else if not index($_normalize-exclude, $section) and index($_normalize-include, all) {
+    @return true;
+  }
+  @return false;
+}
+
+@mixin normalize($include: (all), $exclude: ()) {
+  // Initialize the helper function by passing it this mixin's parameters.
+  $init: _normalize-include($include, $exclude);
+
+  // If we've customized any font variables, we'll need extra properties.
+  @if $base-font-size != 16px
+    or $base-line-height != 24px
+    or $base-unit != 'em'
+    or $h1-font-size != 2    * $base-font-size
+    or $h2-font-size != 1.5  * $base-font-size
+    or $h3-font-size != 1.17 * $base-font-size
+    or $h4-font-size != 1    * $base-font-size
+    or $h5-font-size != 0.83 * $base-font-size
+    or $h6-font-size != 0.67 * $base-font-size {
+    $normalize-vertical-rhythm: true !global;
+  }
+
+  /*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
+
+  @if _normalize-include(document) {
+    /* Document
+       ========================================================================== */
+
+    /**
+     * 1. Change the default font family in all browsers (opinionated).
+     * 2. Correct the line height in all browsers.
+     * 3. Prevent adjustments of font size after orientation changes in
+     *    IE on Windows Phone and in iOS.
+     */
+
+    html {
+      font-family: $base-font-family; /* 1 */
+      @if $normalize-vertical-rhythm {
+        // Correct old browser bug that prevented accessible resizing of text
+        // when root font-size is set with px or em.
+        font-size: ($base-font-size / 16px) * 100%;
+        line-height: ($base-line-height / $base-font-size) * 1em; /* 2 */
+      }
+      @else {
+        line-height: 1.15; /* 2 */
+      }
+      -ms-text-size-adjust: 100%; /* 3 */
+      -webkit-text-size-adjust: 100%; /* 3 */
+    }
+  }
+
+  @if _normalize-include(sections) {
+    /* Sections
+       ========================================================================== */
+
+    /**
+     * Remove the margin in all browsers (opinionated).
+     */
+
+    body {
+      margin: 0;
+    }
+
+    /**
+     * Add the correct display in IE 9-.
+     */
+
+    article,
+    aside,
+    footer,
+    header,
+    nav,
+    section {
+      display: block;
+    }
+
+    /**
+     * Correct the font size and margin on `h1` elements within `section` and
+     * `article` contexts in Chrome, Firefox, and Safari.
+     */
+
+    h1 {
+      @include normalize-font-size($h1-font-size);
+      @if $normalize-vertical-rhythm {
+        @include normalize-line-height($h1-font-size);
+      }
+
+      @if $normalize-vertical-rhythm {
+        /* Set 1 unit of vertical rhythm on the top and bottom margins. */
+        @include normalize-margin(1 0, $h1-font-size);
+      }
+      @else {
+        margin: 0.67em 0;
+      }
+    }
+
+    @if $normalize-vertical-rhythm {
+      h2 {
+        @include normalize-font-size($h2-font-size);
+        @include normalize-line-height($h2-font-size);
+        @include normalize-margin(1 0, $h2-font-size);
+      }
+
+      h3 {
+        @include normalize-font-size($h3-font-size);
+        @include normalize-line-height($h3-font-size);
+        @include normalize-margin(1 0, $h3-font-size);
+      }
+
+      h4 {
+        @include normalize-font-size($h4-font-size);
+        @include normalize-line-height($h4-font-size);
+        @include normalize-margin(1 0, $h4-font-size);
+      }
+
+      h5 {
+        @include normalize-font-size($h5-font-size);
+        @include normalize-line-height($h5-font-size);
+        @include normalize-margin(1 0, $h5-font-size);
+      }
+
+      h6 {
+        @include normalize-font-size($h6-font-size);
+        @include normalize-line-height($h6-font-size);
+        @include normalize-margin(1 0, $h6-font-size);
+      }
+    }
+  }
+
+  @if _normalize-include(grouping) {
+    /* Grouping content
+       ========================================================================== */
+
+    @if $normalize-vertical-rhythm {
+      /**
+       * Set 1 unit of vertical rhythm on the top and bottom margin.
+       */
+
+      blockquote {
+        @include normalize-margin(1 $indent-amount);
+      }
+
+      dl,
+      ol,
+      ul {
+        @include normalize-margin(1 0);
+      }
+
+      /**
+       * Turn off margins on nested lists.
+       */
+
+      ol,
+      ul {
+        ol,
+        ul {
+          margin: 0;
+        }
+      }
+
+      dd {
+        margin: 0 0 0 $indent-amount;
+      }
+
+      ol,
+      ul {
+        padding: 0 0 0 $indent-amount;
+      }
+    }
+
+    /**
+     * Add the correct display in IE 9-.
+     */
+
+    figcaption,
+    figure {
+      display: block;
+    }
+
+    /**
+     * Add the correct margin in IE 8.
+     */
+
+    figure {
+      @if $normalize-vertical-rhythm {
+        @include normalize-margin(1 $indent-amount);
+      }
+      @else {
+        margin: 1em $indent-amount;
+      }
+    }
+
+    /**
+     * 1. Add the correct box sizing in Firefox.
+     * 2. Show the overflow in Edge and IE.
+     */
+
+    hr {
+      box-sizing: content-box; /* 1 */
+      height: 0; /* 1 */
+      overflow: visible; /* 2 */
+    }
+
+    /**
+     * Add the correct display in IE.
+     */
+
+    main {
+      display: block;
+    }
+
+    @if $normalize-vertical-rhythm {
+      /**
+       * Set 1 unit of vertical rhythm on the top and bottom margin.
+       */
+
+      p,
+      pre {
+        @include normalize-margin(1 0);
+      }
+    }
+
+    /**
+     * 1. Correct the inheritance and scaling of font size in all browsers.
+     * 2. Correct the odd `em` font sizing in all browsers.
+     */
+
+    pre {
+      font-family: monospace, monospace; /* 1 */
+      font-size: 1em; /* 2 */
+    }
+  }
+
+  @if _normalize-include(links) {
+    /* Links
+       ========================================================================== */
+
+    /**
+     * 1. Remove the gray background on active links in IE 10.
+     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+     */
+
+    a {
+      background-color: transparent; /* 1 */
+      -webkit-text-decoration-skip: objects; /* 2 */
+    }
+
+    /**
+     * Remove the outline on focused links when they are also active or hovered
+     * in all browsers (opinionated).
+     */
+
+    a:active,
+    a:hover {
+      outline-width: 0;
+    }
+  }
+
+  @if _normalize-include(text) {
+    /* Text-level semantics
+       ========================================================================== */
+
+    /**
+     * 1. Remove the bottom border in Firefox 39-.
+     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+     */
+
+    abbr[title] {
+      border-bottom: none; /* 1 */
+      text-decoration: underline; /* 2 */
+      text-decoration: underline dotted; /* 2 */
+    }
+
+    /**
+     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
+     */
+
+    b,
+    strong {
+      font-weight: inherit;
+    }
+
+    /**
+     * Add the correct font weight in Chrome, Edge, and Safari.
+     */
+
+    b,
+    strong {
+      font-weight: bolder;
+    }
+
+    /**
+     * 1. Correct the inheritance and scaling of font size in all browsers.
+     * 2. Correct the odd `em` font sizing in all browsers.
+     */
+
+    code,
+    kbd,
+    samp {
+      font-family: monospace, monospace; /* 1 */
+      font-size: 1em; /* 2 */
+    }
+
+    /**
+     * Add the correct font style in Android 4.3-.
+     */
+
+    dfn {
+      font-style: italic;
+    }
+
+    /**
+     * Add the correct background and color in IE 9-.
+     */
+
+    mark {
+      background-color: #ff0;
+      color: #000;
+    }
+
+    /**
+     * Add the correct font size in all browsers.
+     */
+
+    small {
+      font-size: 80%;
+    }
+
+    /**
+     * Prevent `sub` and `sup` elements from affecting the line height in
+     * all browsers.
+     */
+
+    sub,
+    sup {
+      font-size: 75%;
+      line-height: 0;
+      position: relative;
+      vertical-align: baseline;
+    }
+
+    sub {
+      bottom: -0.25em;
+    }
+
+    sup {
+      top: -0.5em;
+    }
+  }
+
+  @if _normalize-include(embedded) {
+    /* Embedded content
+       ========================================================================== */
+
+    /**
+     * Add the correct display in IE 9-.
+     */
+
+    audio,
+    video {
+      display: inline-block;
+    }
+
+    /**
+     * Add the correct display in iOS 4-7.
+     */
+
+    audio:not([controls]) {
+      display: none;
+      height: 0;
+    }
+
+    /**
+     * Remove the border on images inside links in IE 10-.
+     */
+
+    img {
+      border-style: none;
+    }
+
+    /**
+     * Hide the overflow in IE.
+     */
+
+    svg:not(:root) {
+      overflow: hidden;
+    }
+  }
+
+  @if _normalize-include(forms) {
+    /* Forms
+       ========================================================================== */
+
+    /**
+     * 1. Change the font styles in all browsers (opinionated).
+     * 2. Remove the margin in Firefox and Safari.
+     */
+
+    button,
+    input,
+    optgroup,
+    select,
+    textarea {
+      font-family: $base-font-family; /* 1 */
+      font-size: 100%; /* 1 */
+      @if $normalize-vertical-rhythm {
+        line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */
+      }
+      @else {
+        line-height: 1.15; /* 1 */
+      }
+      margin: 0; /* 2 */
+    }
+
+    /**
+     * Show the overflow in IE.
+     */
+
+    button {
+      overflow: visible;
+    }
+
+    /**
+     * Remove the inheritance of text transform in Edge, Firefox, and IE.
+     * 1. Remove the inheritance of text transform in Firefox.
+     */
+
+    button,
+    select { /* 1 */
+      text-transform: none;
+    }
+
+    /**
+     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+     *    controls in Android 4.
+     * 2. Correct the inability to style clickable types in iOS and Safari.
+     */
+
+    button,
+    html [type="button"], /* 1 */
+    [type="reset"],
+    [type="submit"] {
+      -webkit-appearance: button; /* 2 */
+    }
+
+    button,
+    [type="button"],
+    [type="reset"],
+    [type="submit"] {
+
+      /**
+       * Remove the inner border and padding in Firefox.
+       */
+
+      &::-moz-focus-inner {
+        border-style: none;
+        padding: 0;
+      }
+
+      /**
+       * Restore the focus styles unset by the previous rule.
+       */
+
+      &:-moz-focusring {
+        outline: 1px dotted ButtonText;
+      }
+    }
+
+    /**
+     * Show the overflow in Edge.
+     */
+
+    input {
+      overflow: visible;
+    }
+
+    /**
+     * 1. Add the correct box sizing in IE 10-.
+     * 2. Remove the padding in IE 10-.
+     */
+
+    [type="checkbox"],
+    [type="radio"] {
+      box-sizing: border-box; /* 1 */
+      padding: 0; /* 2 */
+    }
+
+    /**
+     * Correct the cursor style of increment and decrement buttons in Chrome.
+     */
+
+    [type="number"]::-webkit-inner-spin-button,
+    [type="number"]::-webkit-outer-spin-button {
+      height: auto;
+    }
+
+    /**
+     * 1. Correct the odd appearance in Chrome and Safari.
+     * 2. Correct the outline style in Safari.
+     */
+
+    [type="search"] {
+      -webkit-appearance: textfield; /* 1 */
+      outline-offset: -2px; /* 2 */
+
+      /**
+       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+       */
+
+      &::-webkit-search-cancel-button,
+      &::-webkit-search-decoration {
+        -webkit-appearance: none;
+      }
+    }
+
+    /**
+     * 1. Correct the inability to style clickable types in iOS and Safari.
+     * 2. Change font properties to `inherit` in Safari.
+     */
+
+    ::-webkit-file-upload-button {
+      -webkit-appearance: button; /* 1 */
+      font: inherit; /* 2 */
+    }
+
+    /**
+     * Change the border, margin, and padding in all browsers (opinionated).
+     */
+
+    fieldset {
+      border: 1px solid #c0c0c0;
+      margin: 0 2px;
+      padding: 0.35em 0.625em 0.75em;
+    }
+
+    /**
+     * 1. Correct the text wrapping in Edge and IE.
+     * 2. Correct the color inheritance from `fieldset` elements in IE.
+     * 3. Remove the padding so developers are not caught out when they zero out
+     *    `fieldset` elements in all browsers.
+     */
+
+    legend {
+      box-sizing: border-box; /* 1 */
+      display: table; /* 1 */
+      max-width: 100%; /* 1 */
+      padding: 0; /* 3 */
+      color: inherit; /* 2 */
+      white-space: normal; /* 1 */
+    }
+
+    /**
+     * 1. Add the correct display in IE 9-.
+     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+     */
+
+    progress {
+      display: inline-block; /* 1 */
+      vertical-align: baseline; /* 2 */
+    }
+
+    /**
+     * Remove the default vertical scrollbar in IE.
+     */
+
+    textarea {
+      overflow: auto;
+    }
+  }
+
+  @if _normalize-include(interactive) {
+    /* Interactive
+       ========================================================================== */
+
+    /*
+     * Add the correct display in Edge, IE, and Firefox.
+     */
+
+    details {
+      display: block;
+    }
+
+    /*
+     * Add the correct display in all browsers.
+     */
+
+    summary {
+      display: list-item;
+    }
+
+    /*
+     * Add the correct display in IE 9-.
+     */
+
+    menu {
+      display: block;
+
+      @if $normalize-vertical-rhythm {
+        /*
+         * 1. Set 1 unit of vertical rhythm on the top and bottom margin.
+         * 2. Set consistent space for the list style image.
+         */
+
+        @include normalize-margin(1 0); /* 1 */
+        padding: 0 0 0 $indent-amount; /* 2 */
+
+        /**
+         * Turn off margins on nested lists.
+         */
+
+        menu &,
+        ol &,
+        ul & {
+          margin: 0;
+        }
+      }
+    }
+  }
+
+  @if _normalize-include(scripting) {
+    /* Scripting
+       ========================================================================== */
+
+    /**
+     * Add the correct display in IE 9-.
+     */
+
+    canvas {
+      display: inline-block;
+    }
+
+    /**
+     * Add the correct display in IE.
+     */
+
+    template {
+      display: none;
+    }
+  }
+
+  @if _normalize-include(hidden) {
+    /* Hidden
+       ========================================================================== */
+
+    /**
+     * Add the correct display in IE 10-.
+     */
+
+    [hidden] {
+      display: none;
+    }
+  }
+}
diff --git a/_vendor/normalize-scss/sass/normalize/_variables.scss b/_vendor/normalize-scss/sass/normalize/_variables.scss
new file mode 100644 (file)
index 0000000..2f06b25
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// Variables
+//
+// You can override the default values by setting the variables in your Sass
+// before importing the normalize-scss library.
+
+// The font size set on the root html element.
+$base-font-size: 16px !default;
+
+// The base line height determines the basic unit of vertical rhythm.
+$base-line-height: 24px !default;
+
+// The length unit in which to output vertical rhythm values.
+// Supported values: px, em, rem.
+$base-unit: 'em' !default;
+
+// The default font family.
+$base-font-family: sans-serif !default;
+
+// The font sizes for h1-h6.
+$h1-font-size: 2    * $base-font-size !default;
+$h2-font-size: 1.5  * $base-font-size !default;
+$h3-font-size: 1.17 * $base-font-size !default;
+$h4-font-size: 1    * $base-font-size !default;
+$h5-font-size: 0.83 * $base-font-size !default;
+$h6-font-size: 0.67 * $base-font-size !default;
+
+// The amount lists and blockquotes are indented.
+$indent-amount: 40px !default;
+
+// The following variable controls whether normalize-scss will output
+// font-sizes, line-heights and block-level top/bottom margins that form a basic
+// vertical rhythm on the page, which differs from the original Normalize.css.
+// However, changing any of the variables above will cause
+// $normalize-vertical-rhythm to be automatically set to true.
+$normalize-vertical-rhythm: false !default;
diff --git a/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss b/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss
new file mode 100644 (file)
index 0000000..4f53647
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// Vertical Rhythm
+//
+// This is the minimal amount of code needed to create vertical rhythm in our
+// CSS. If you are looking for a robust solution, look at the excellent Typey
+// library. @see https://github.com/jptaranto/typey
+
+@function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit) {
+  @if unit($value) != px {
+    @error "The normalize vertical-rhythm module only supports px inputs. The typey library is better.";
+  }
+  @if $unit == rem {
+    @return ($value / $base-font-size) * 1rem;
+  }
+  @else if $unit == em {
+    @return ($value / $relative-to) * 1em;
+  }
+  @else { // $unit == px
+    @return $value;
+  }
+}
+
+@mixin normalize-font-size($value, $relative-to: $base-font-size) {
+  @if unit($value) != 'px' {
+    @error "normalize-font-size() only supports px inputs. The typey library is better.";
+  }
+  font-size: normalize-rhythm($value, $relative-to);
+}
+
+@mixin normalize-rhythm($property, $values, $relative-to: $base-font-size) {
+  $value-list: $values;
+  $sep: space;
+  @if type-of($values) == 'list' {
+    $sep: list-separator($values);
+  }
+  @else {
+    $value-list: append((), $values);
+  }
+
+  $normalized-values: ();
+  @each $value in $value-list {
+    @if unitless($value) and $value != 0 {
+      $value: $value * normalize-rhythm($base-line-height, $relative-to);
+    }
+    $normalized-values: append($normalized-values, $value, $sep);
+  }
+  #{$property}: $normalized-values;
+}
+
+@mixin normalize-margin($values, $relative-to: $base-font-size) {
+  @include normalize-rhythm(margin, $values, $relative-to);
+}
+
+@mixin normalize-line-height($font-size, $min-line-padding: 2px) {
+  $lines: ceil($font-size / $base-line-height);
+  // If lines are cramped include some extra leading.
+  @if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) {
+    $lines: $lines + 1;
+  }
+  @include normalize-rhythm(line-height, $lines, $font-size);
+}
diff --git a/_vendor/sassy-lists/stylesheets/functions/_purge.scss b/_vendor/sassy-lists/stylesheets/functions/_purge.scss
new file mode 100644 (file)
index 0000000..63102bf
--- /dev/null
@@ -0,0 +1,38 @@
+/// Removes all false and null values from `$list`.
+///
+/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-purge
+///
+/// @requires sl-is-true
+/// @requires sl-to-list
+///
+/// @param {List} $list - list to purge
+///
+/// @example
+/// sl-purge(null a false b)
+/// // a b
+///
+/// @return {List}
+///
+
+@function sl-purge($list) {
+  $_: sl-missing-dependencies('sl-is-true', 'sl-to-list');
+  
+  $result: ();
+
+  @each $item in $list {
+    @if sl-is-true($item) {
+      $result: append($result, $item, list-separator($list));
+    }
+  }
+
+  @return sl-to-list($result);
+}
+
+///
+/// @requires sl-purge
+/// @alias sl-purge
+///
+@function sl-clean($list) {
+  @return sl-purge($list);
+}
diff --git a/_vendor/sassy-lists/stylesheets/functions/_remove.scss b/_vendor/sassy-lists/stylesheets/functions/_remove.scss
new file mode 100644 (file)
index 0000000..0282744
--- /dev/null
@@ -0,0 +1,31 @@
+///
+/// Removes value(s) `$value` from `$list`.
+///
+/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-remove
+///
+/// @requires sl-replace
+///
+/// @param {List}    $list      - list to update
+/// @param {*}       $value     - value to remove
+///
+/// @example
+/// sl-remove(a b c, a)
+/// // b c
+///
+/// @return {List}
+///
+
+@function sl-remove($list, $value) {
+  $_: sl-missing-dependencies('sl-replace');
+
+  @return sl-replace($list, $value, null);
+}
+
+///
+/// @requires sl-remove
+/// @alias sl-remove
+///
+
+@function sl-without($list, $value) {
+  @return sl-remove($list, $value);
+}
diff --git a/_vendor/sassy-lists/stylesheets/functions/_replace.scss b/_vendor/sassy-lists/stylesheets/functions/_replace.scss
new file mode 100644 (file)
index 0000000..8e70ad5
--- /dev/null
@@ -0,0 +1,46 @@
+///
+/// Replaces `$old` by `$new` in `$list`.
+///
+/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-replace
+///
+/// @requires sl-is-true
+/// @requires sl-purge
+/// @requires sl-to-list
+///
+/// @param {List}    $list  - list to update
+/// @param {*}       $old   - value to replace
+/// @param {*}       $value - new value for $old
+///
+/// @example
+/// sl-replace(a b c, b, z)
+/// // a z c
+///
+/// @example
+/// sl-replace(a b c, y, z)
+/// // a b c
+/// 
+/// @return {List}
+///
+@function sl-replace($list, $old, $value) {
+  $_: sl-missing-dependencies('sl-is-true', 'sl-purge', 'sl-to-list');
+
+  $running: true;
+
+  @while $running {
+    $index: index($list, $old);
+
+    @if not $index {
+      $running: false;
+    }
+
+    @else {
+      $list: set-nth($list, $index, $value);
+    }
+
+  }
+
+  $list: if(sl-is-true($value), $list, sl-purge($list));
+  
+  @return sl-to-list($list);
+}
diff --git a/_vendor/sassy-lists/stylesheets/functions/_to-list.scss b/_vendor/sassy-lists/stylesheets/functions/_to-list.scss
new file mode 100644 (file)
index 0000000..eb8df21
--- /dev/null
@@ -0,0 +1,27 @@
+///
+/// Casts `$value` into a list.
+///
+/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-to-list
+///
+/// @param {*} $value - value to cast to list
+/// @param {String} $separator [space] - separator to use
+///
+/// @example
+/// sl-to-list(a b c, comma)
+/// // a, b, c
+/// 
+/// @return {List}
+///
+
+@function sl-to-list($value, $separator: list-separator($value)) {
+  @return join((), $value, $separator);
+}
+
+///
+/// @requires sl-to-list
+/// @alias sl-to-list
+///
+
+@function sl-listify($value) {
+  @return sl-to-list($value);
+}
diff --git a/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss b/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss
new file mode 100644 (file)
index 0000000..c4730b1
--- /dev/null
@@ -0,0 +1,25 @@
+///
+/// Checks whether `$functions` exist in global scope.
+///
+/// @access private
+///
+/// @param {ArgList} $functions - list of functions to check for
+///
+/// @return {Bool} Whether or not there are missing dependencies
+///
+@function sl-missing-dependencies($functions...) {
+  $missing-dependencies: ();
+  
+  @each $function in $functions {
+    @if not function-exists($function) {
+      $missing-dependencies: append($missing-dependencies, $function, comma);
+    }
+  }
+  
+  @if length($missing-dependencies) > 0 {
+    @error 'Unmet dependencies! The following functions are required: #{$missing-dependencies}.';
+  }
+
+  @return length($missing-dependencies) > 0;
+}
diff --git a/_vendor/sassy-lists/stylesheets/helpers/_true.scss b/_vendor/sassy-lists/stylesheets/helpers/_true.scss
new file mode 100644 (file)
index 0000000..277652e
--- /dev/null
@@ -0,0 +1,13 @@
+///
+/// Returns truthiness of `$value`.
+///
+/// @access private
+///
+/// @param {*} $value - value to check
+///
+/// @return {Bool}
+///
+@function sl-is-true($value) {
+  @return if($value == null, false, $value and $value != null and $value != '' and $value != ());
+}
index 32abf73b1e63f018a7c494c29d0975d53a3d19fb..e6b06b92100cf32f080dff0e849b537a0445a0a5 100644 (file)
@@ -24,7 +24,12 @@ module.exports = {
   // Sass
   SASS_DEPS_FILES: [
     'node_modules/@(normalize-scss)/sass/**/*.scss',
-    'node_modules/@(sassy-lists)/stylesheets/**/*.scss'
+    'node_modules/@(sassy-lists)/stylesheets/helpers/_missing-dependencies.scss',
+    'node_modules/@(sassy-lists)/stylesheets/helpers/_true.scss',
+    'node_modules/@(sassy-lists)/stylesheets/functions/_purge.scss',
+    'node_modules/@(sassy-lists)/stylesheets/functions/_remove.scss',
+    'node_modules/@(sassy-lists)/stylesheets/functions/_replace.scss',
+    'node_modules/@(sassy-lists)/stylesheets/functions/_to-list.scss'
   ],
 
   SASS_DOC_PATHS: [
index 8d0d20c7576b0837e30b6bcbef56ea79c17ed303..829cf45dd276d2f0eafdd233ee2c65d498868558 100644 (file)
@@ -51,7 +51,12 @@ gulp.task('customizer:loadConfig', function(done) {
 gulp.task('customizer:prepareSassDeps', function() {
   return gulp.src([
       'node_modules/@(normalize-scss)/sass/**/*.scss',
-      'node_modules/@(sassy-lists)/stylesheets/**/*'
+      'node_modules/@(sassy-lists)/stylesheets/helpers/missing-dependencies',
+      'node_modules/@(sassy-lists)/stylesheets/helpers/true',
+      'node_modules/@(sassy-lists)/stylesheets/functions/purge',
+      'node_modules/@(sassy-lists)/stylesheets/functions/remove',
+      'node_modules/@(sassy-lists)/stylesheets/functions/replace',
+      'node_modules/@(sassy-lists)/stylesheets/functions/to-list'
     ])
     .pipe(gulp.dest('_vendor'));
 });
index f27f3c5b326f68f4595a5dde66a240873d4df097..87d87789ed626639c1a6000ed97ef33798ad0514 100644 (file)
@@ -71,7 +71,7 @@
     "mocha-phantomjs": "^4.0.2",
     "motion-ui": "^1.1.0",
     "multiline": "^1.0.2",
-    "normalize-scss": "^6.0.0",
+    "normalize-scss": "6.0.0",
     "octophant": "^1.0.0",
     "opener": "^1.4.1",
     "panini": "^1.3.0",
@@ -81,7 +81,7 @@
     "rimraf": "^2.3.2",
     "run-sequence": "^1.1.4",
     "sass-true": "^2.0.3",
-    "sassy-lists": "^3.0.0",
+    "sassy-lists": "3.0.0",
     "sinon": "^1.17.3",
     "supercollider": "^1.4.0",
     "touch": "^1.0.0",
index 8dd7568be82b23064e3ecc5528a3be4bae13394c..cf067fb144462ac3726a51b8a9c9b178d031cade 100644 (file)
@@ -7,7 +7,12 @@
 
 // Dependencies
 @import "../_vendor/normalize-scss/sass/normalize";
-@import "../_vendor/sassy-lists/stylesheets/SassyLists";
+@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';
+@import '../_vendor/sassy-lists/stylesheets/helpers/true';
+@import '../_vendor/sassy-lists/stylesheets/functions/purge';
+@import '../_vendor/sassy-lists/stylesheets/functions/remove';
+@import '../_vendor/sassy-lists/stylesheets/functions/replace';
+@import '../_vendor/sassy-lists/stylesheets/functions/to-list';
 
 // Settings
 // import your own `settings` here or
index da2bb2e7c5597d1d5234ee4ef09f4bab6f3bd471..1c9315ace55cb4feb58eb226f0963b6cb9fea888 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -1549,16 +1549,16 @@ doiuse@^2.5.0:
     through2 "^0.6.3"
     yargs "^3.5.4"
 
-dom-serializer@0, dom-serializer@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+dom-serializer@0, dom-serializer@~0.0.0:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.0.1.tgz#9589827f1e32d22c37c829adabd59b3247af8eaf"
   dependencies:
     domelementtype "~1.1.1"
     entities "~1.1.1"
 
-dom-serializer@~0.0.0:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.0.1.tgz#9589827f1e32d22c37c829adabd59b3247af8eaf"
+dom-serializer@~0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
   dependencies:
     domelementtype "~1.1.1"
     entities "~1.1.1"
@@ -4810,7 +4810,7 @@ normalize-range@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
 
-normalize-scss@^6.0.0:
+normalize-scss@6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/normalize-scss/-/normalize-scss-6.0.0.tgz#5e94fc91e3bb279933ae8aaa511ad0912a0cb44d"
 
@@ -5510,14 +5510,10 @@ qs@0.4.x:
   version "0.4.2"
   resolved "https://registry.yarnpkg.com/qs/-/qs-0.4.2.tgz#3cac4c861e371a8c9c4770ac23cda8de639b8e5f"
 
-qs@6.2.1:
+qs@6.2.1, "qs@>= 0.4.0":
   version "6.2.1"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625"
 
-"qs@>= 0.4.0", qs@~6.3.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
-
 qs@~0.6.0:
   version "0.6.6"
   resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107"
@@ -5526,6 +5522,10 @@ qs@~5.2.0:
   version "5.2.1"
   resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.1.tgz#801fee030e0b9450d6385adc48a4cc55b44aedfc"
 
+qs@~6.3.0:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
+
 query-string@^4.1.0:
   version "4.2.3"
   resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822"
@@ -6019,7 +6019,7 @@ sassdoc@^2.0.0-rc.17, sassdoc@^2.1.11:
     vinyl-fs "^1.0.0"
     vinyl-source-stream "^1.0.0"
 
-sassy-lists@^3.0.0:
+sassy-lists@3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/sassy-lists/-/sassy-lists-3.0.0.tgz#866fe19510a98c6fbb83ca8557d8ffd28cbc1e0f"