Initial public release.

This commit is contained in:
2020-02-05 18:04:50 -08:00
commit de7cf70319
173 changed files with 35469 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
///
/// Returns whether `$list` contains `$value`.
///
/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-contain
///
/// @param {List} $list - list to check
/// @param {*} $value - value to look for
///
/// @example
/// sl-contain(a b c, a)
/// // true
///
/// @example
/// sl-contain(a b c, z)
/// // false
///
/// @return {Bool}
///
@function sl-contain($list, $value) {
@return not not index($list, $value);
}
///
/// @requires sl-contain
/// @alias sl-contain
///
@function sl-include($list, $value) {
@return sl-contain($list, $value);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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 != ());
}