sugarcss 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/sugarcss.rb +30 -0
- data/stylesheets/_sugar.scss +4 -0
- data/stylesheets/sugar/_BEM.scss +101 -0
- data/stylesheets/sugar/_animations.scss +101 -0
- data/stylesheets/sugar/_clearfix.scss +56 -0
- data/stylesheets/sugar/_colors.scss +126 -0
- data/stylesheets/sugar/_effects.scss +65 -0
- data/stylesheets/sugar/_filters.scss +67 -0
- data/stylesheets/sugar/_forms.scss +13 -0
- data/stylesheets/sugar/_functions.scss +328 -0
- data/stylesheets/sugar/_helper-classes.scss +109 -0
- data/stylesheets/sugar/_helper-functions.scss +56 -0
- data/stylesheets/sugar/_helper-mixins.scss +383 -0
- data/stylesheets/sugar/_icons.scss +21 -0
- data/stylesheets/sugar/_images.scss +150 -0
- data/stylesheets/sugar/_lists.scss +148 -0
- data/stylesheets/sugar/_medias.scss +141 -0
- data/stylesheets/sugar/_reset.scss +38 -0
- data/stylesheets/sugar/_shapes.scss +528 -0
- data/stylesheets/sugar/_sugar.scss +606 -0
- data/stylesheets/sugar/_typo.scss +849 -0
- data/stylesheets/sugar/_units.scss +120 -0
- data/stylesheets/sugar/tools/_arrow.scss +70 -0
- data/stylesheets/sugar/tools/_blank.scss +0 -0
- data/stylesheets/sugar/tools/_list.scss +103 -0
- data/stylesheets/sugar/tools/_map.scss +93 -0
- data/stylesheets/sugar/tools/_math.scss +196 -0
- data/stylesheets/sugar/tools/_string.scss +65 -0
- data/stylesheets/sugar/vendors/animatecss/_animate.scss +1474 -0
- data/stylesheets/sugar/vendors/animatecss/_base.scss +31 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_bounce.scss +26 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_flash.scss +14 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_jello.scss +34 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_pulse.scss +20 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_rubberBand.scss +34 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_shake.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_swing.scss +27 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_tada.scss +26 -0
- data/stylesheets/sugar/vendors/animatecss/attention_seekers/_wobble.scss +36 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_entrances/_bounceIn.scss +37 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_entrances/_bounceInDown.scss +32 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_entrances/_bounceInLeft.scss +32 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_entrances/_bounceInRight.scss +32 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_entrances/_bounceInUp.scss +32 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_exits/_bounceOut.scss +20 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_exits/_bounceOutDown.scss +20 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_exits/_bounceOutLeft.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_exits/_bounceOutRight.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/bouncing_exits/_bounceOutUp.scss +20 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeIn.scss +9 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInDown.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInDownBig.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInLeft.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInLeftBig.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInRight.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInRightBig.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInUp.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_entrances/_fadeInUpBig.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOut.scss +9 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutDown.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutDownBig.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutLeft.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutLeftBig.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutRight.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutRightBig.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutUp.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/fading_exits/_fadeOutUpBig.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/flippers/_flip.scss +32 -0
- data/stylesheets/sugar/vendors/animatecss/flippers/_flipInX.scss +31 -0
- data/stylesheets/sugar/vendors/animatecss/flippers/_flipInY.scss +31 -0
- data/stylesheets/sugar/vendors/animatecss/flippers/_flipOutX.scss +21 -0
- data/stylesheets/sugar/vendors/animatecss/flippers/_flipOutY.scss +21 -0
- data/stylesheets/sugar/vendors/animatecss/lightspeed/_lightSpeedIn.scss +27 -0
- data/stylesheets/sugar/vendors/animatecss/lightspeed/_lightSpeedOut.scss +16 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_entrances/_rotateIn.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_entrances/_rotateInDownLeft.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_entrances/_rotateInDownRight.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_entrances/_rotateInUpLeft.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_entrances/_rotateInUpRight.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_exits/_rotateOut.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_exits/_rotateOutDownLeft.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_exits/_rotateOutDownRight.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_exits/_rotateOutUpLeft.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/rotating_exits/_rotateOutUpRight.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_entrances/_slideInDown.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_entrances/_slideInLeft.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_entrances/_slideInRight.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_entrances/_slideInUp.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_exits/_slideOutDown.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_exits/_slideOutLeft.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_exits/_slideOutRight.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/sliding_exits/_slideOutUp.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/specials/_hinge.scss +29 -0
- data/stylesheets/sugar/vendors/animatecss/specials/_rollIn.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/specials/_rollOut.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_entrances/_zoomIn.scss +15 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_entrances/_zoomInDown.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_entrances/_zoomInLeft.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_entrances/_zoomInRight.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_entrances/_zoomInUp.scss +18 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_exits/_zoomOut.scss +19 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_exits/_zoomOutDown.scss +19 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_exits/_zoomOutLeft.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_exits/_zoomOutRight.scss +17 -0
- data/stylesheets/sugar/vendors/animatecss/zooming_exits/_zoomOutUp.scss +19 -0
- data/stylesheets/sugar/vendors/cssgram/_1977.scss +16 -0
- data/stylesheets/sugar/vendors/cssgram/_aden.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_brooklyn.scss +17 -0
- data/stylesheets/sugar/vendors/cssgram/_cssgram.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_earlybird.scss +17 -0
- data/stylesheets/sugar/vendors/cssgram/_gingham.scss +17 -0
- data/stylesheets/sugar/vendors/cssgram/_hudson.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_inkwell.scss +11 -0
- data/stylesheets/sugar/vendors/cssgram/_lark.scss +21 -0
- data/stylesheets/sugar/vendors/cssgram/_lofi.scss +16 -0
- data/stylesheets/sugar/vendors/cssgram/_mayfair.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_moon.scss +21 -0
- data/stylesheets/sugar/vendors/cssgram/_nashville.scss +22 -0
- data/stylesheets/sugar/vendors/cssgram/_perpetua.scss +17 -0
- data/stylesheets/sugar/vendors/cssgram/_reyes.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_shared.scss +29 -0
- data/stylesheets/sugar/vendors/cssgram/_toaster.scss +17 -0
- data/stylesheets/sugar/vendors/cssgram/_walden.scss +18 -0
- data/stylesheets/sugar/vendors/cssgram/_xpro2.scss +17 -0
- data/stylesheets/sugar/vendors/fontawesome/_font-awesome.scss +2019 -0
- data/stylesheets/sugar/vendors/modularscale/_modular-scale-tests.scss +74 -0
- data/stylesheets/sugar/vendors/modularscale/_modular-scale.scss +18 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_calc.scss +17 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_function-list.scss +68 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_function.scss +55 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_generate-list.scss +103 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_pow.scss +40 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_ratios.scss +20 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_respond.scss +49 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_round-px.scss +6 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_sort-list.scss +93 -0
- data/stylesheets/sugar/vendors/modularscale/modular-scale/_tests.scss +22 -0
- data/stylesheets/sugar/vendors/sassdash/_sassdash.scss +6 -0
- data/stylesheets/sugar/vendors/sassdash/api/_add.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/api/_after.scss +66 -0
- data/stylesheets/sugar/vendors/sassdash/api/_ary.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/api/_assign.scss +113 -0
- data/stylesheets/sugar/vendors/sassdash/api/_at.scss +50 -0
- data/stylesheets/sugar/vendors/sassdash/api/_before.scss +64 -0
- data/stylesheets/sugar/vendors/sassdash/api/_bind.scss +46 -0
- data/stylesheets/sugar/vendors/sassdash/api/_call.scss +0 -0
- data/stylesheets/sugar/vendors/sassdash/api/_callback.scss +167 -0
- data/stylesheets/sugar/vendors/sassdash/api/_case.scss +179 -0
- data/stylesheets/sugar/vendors/sassdash/api/_chunk.scss +44 -0
- data/stylesheets/sugar/vendors/sassdash/api/_compact.scss +32 -0
- data/stylesheets/sugar/vendors/sassdash/api/_compare.scss +180 -0
- data/stylesheets/sugar/vendors/sassdash/api/_concat.scss +62 -0
- data/stylesheets/sugar/vendors/sassdash/api/_constant.scss +32 -0
- data/stylesheets/sugar/vendors/sassdash/api/_context.scss +51 -0
- data/stylesheets/sugar/vendors/sassdash/api/_count-by.scss +51 -0
- data/stylesheets/sugar/vendors/sassdash/api/_create.scss +78 -0
- data/stylesheets/sugar/vendors/sassdash/api/_debug.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/api/_declare.scss +46 -0
- data/stylesheets/sugar/vendors/sassdash/api/_defaults.scss +41 -0
- data/stylesheets/sugar/vendors/sassdash/api/_difference.scss +50 -0
- data/stylesheets/sugar/vendors/sassdash/api/_drop.scss +226 -0
- data/stylesheets/sugar/vendors/sassdash/api/_either.scss +42 -0
- data/stylesheets/sugar/vendors/sassdash/api/_encode.scss +42 -0
- data/stylesheets/sugar/vendors/sassdash/api/_ends-with.scss +76 -0
- data/stylesheets/sugar/vendors/sassdash/api/_escape.scss +39 -0
- data/stylesheets/sugar/vendors/sassdash/api/_every.scss +106 -0
- data/stylesheets/sugar/vendors/sassdash/api/_exec.scss +31 -0
- data/stylesheets/sugar/vendors/sassdash/api/_extrema.scss +224 -0
- data/stylesheets/sugar/vendors/sassdash/api/_fill.scss +74 -0
- data/stylesheets/sugar/vendors/sassdash/api/_filter.scss +112 -0
- data/stylesheets/sugar/vendors/sassdash/api/_find.scss +448 -0
- data/stylesheets/sugar/vendors/sassdash/api/_first.scss +29 -0
- data/stylesheets/sugar/vendors/sassdash/api/_flatten.scss +88 -0
- data/stylesheets/sugar/vendors/sassdash/api/_flow.scss +145 -0
- data/stylesheets/sugar/vendors/sassdash/api/_for.scss +325 -0
- data/stylesheets/sugar/vendors/sassdash/api/_functions.scss +42 -0
- data/stylesheets/sugar/vendors/sassdash/api/_group-by.scss +90 -0
- data/stylesheets/sugar/vendors/sassdash/api/_has.scss +30 -0
- data/stylesheets/sugar/vendors/sassdash/api/_identity.scss +20 -0
- data/stylesheets/sugar/vendors/sassdash/api/_includes.scss +76 -0
- data/stylesheets/sugar/vendors/sassdash/api/_index-by.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/api/_index-of.scss +154 -0
- data/stylesheets/sugar/vendors/sassdash/api/_initial.scss +19 -0
- data/stylesheets/sugar/vendors/sassdash/api/_intersection.scss +59 -0
- data/stylesheets/sugar/vendors/sassdash/api/_invert.scss +48 -0
- data/stylesheets/sugar/vendors/sassdash/api/_invoke.scss +74 -0
- data/stylesheets/sugar/vendors/sassdash/api/_is-empty.scss +48 -0
- data/stylesheets/sugar/vendors/sassdash/api/_is-equal.scss +175 -0
- data/stylesheets/sugar/vendors/sassdash/api/_is-match.scss +116 -0
- data/stylesheets/sugar/vendors/sassdash/api/_is-type.scss +479 -0
- data/stylesheets/sugar/vendors/sassdash/api/_join.scss +47 -0
- data/stylesheets/sugar/vendors/sassdash/api/_keys.scss +48 -0
- data/stylesheets/sugar/vendors/sassdash/api/_last.scss +21 -0
- data/stylesheets/sugar/vendors/sassdash/api/_map.scss +265 -0
- data/stylesheets/sugar/vendors/sassdash/api/_matches.scss +85 -0
- data/stylesheets/sugar/vendors/sassdash/api/_memoize.scss +105 -0
- data/stylesheets/sugar/vendors/sassdash/api/_merge.scss +148 -0
- data/stylesheets/sugar/vendors/sassdash/api/_modify.scss +17 -0
- data/stylesheets/sugar/vendors/sassdash/api/_module.scss +111 -0
- data/stylesheets/sugar/vendors/sassdash/api/_negate.scss +42 -0
- data/stylesheets/sugar/vendors/sassdash/api/_noop.scss +19 -0
- data/stylesheets/sugar/vendors/sassdash/api/_omit.scss +52 -0
- data/stylesheets/sugar/vendors/sassdash/api/_once.scss +27 -0
- data/stylesheets/sugar/vendors/sassdash/api/_pad.scss +121 -0
- data/stylesheets/sugar/vendors/sassdash/api/_pairs.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/api/_parse-int.scss +69 -0
- data/stylesheets/sugar/vendors/sassdash/api/_partial.scss +91 -0
- data/stylesheets/sugar/vendors/sassdash/api/_partition.scss +53 -0
- data/stylesheets/sugar/vendors/sassdash/api/_pick.scss +80 -0
- data/stylesheets/sugar/vendors/sassdash/api/_pluck.scss +27 -0
- data/stylesheets/sugar/vendors/sassdash/api/_property.scss +91 -0
- data/stylesheets/sugar/vendors/sassdash/api/_pull.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/api/_push.scss +27 -0
- data/stylesheets/sugar/vendors/sassdash/api/_rand.scss +79 -0
- data/stylesheets/sugar/vendors/sassdash/api/_range.scss +59 -0
- data/stylesheets/sugar/vendors/sassdash/api/_reduce.scss +146 -0
- data/stylesheets/sugar/vendors/sassdash/api/_reject.scss +68 -0
- data/stylesheets/sugar/vendors/sassdash/api/_repeat.scss +33 -0
- data/stylesheets/sugar/vendors/sassdash/api/_replace.scss +40 -0
- data/stylesheets/sugar/vendors/sassdash/api/_rest.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/api/_result.scss +48 -0
- data/stylesheets/sugar/vendors/sassdash/api/_reverse.scss +64 -0
- data/stylesheets/sugar/vendors/sassdash/api/_rules.scss +55 -0
- data/stylesheets/sugar/vendors/sassdash/api/_sample.scss +33 -0
- data/stylesheets/sugar/vendors/sassdash/api/_shuffle.scss +37 -0
- data/stylesheets/sugar/vendors/sassdash/api/_size.scss +37 -0
- data/stylesheets/sugar/vendors/sassdash/api/_slice.scss +60 -0
- data/stylesheets/sugar/vendors/sassdash/api/_some.scss +110 -0
- data/stylesheets/sugar/vendors/sassdash/api/_sort.scss +335 -0
- data/stylesheets/sugar/vendors/sassdash/api/_sorted-index.scss +135 -0
- data/stylesheets/sugar/vendors/sassdash/api/_splice.scss +45 -0
- data/stylesheets/sugar/vendors/sassdash/api/_split.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/api/_starts-with.scss +78 -0
- data/stylesheets/sugar/vendors/sassdash/api/_sum.scss +44 -0
- data/stylesheets/sugar/vendors/sassdash/api/_take.scss +211 -0
- data/stylesheets/sugar/vendors/sassdash/api/_times.scss +33 -0
- data/stylesheets/sugar/vendors/sassdash/api/_to-list.scss +52 -0
- data/stylesheets/sugar/vendors/sassdash/api/_to-string.scss +35 -0
- data/stylesheets/sugar/vendors/sassdash/api/_trim.scss +138 -0
- data/stylesheets/sugar/vendors/sassdash/api/_trunc.scss +92 -0
- data/stylesheets/sugar/vendors/sassdash/api/_unescape.scss +48 -0
- data/stylesheets/sugar/vendors/sassdash/api/_union.scss +19 -0
- data/stylesheets/sugar/vendors/sassdash/api/_uniq.scss +86 -0
- data/stylesheets/sugar/vendors/sassdash/api/_unique-id.scss +27 -0
- data/stylesheets/sugar/vendors/sassdash/api/_unzip.scss +77 -0
- data/stylesheets/sugar/vendors/sassdash/api/_values.scss +54 -0
- data/stylesheets/sugar/vendors/sassdash/api/_where.scss +28 -0
- data/stylesheets/sugar/vendors/sassdash/api/_without.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/api/_words.scss +50 -0
- data/stylesheets/sugar/vendors/sassdash/api/_xor.scss +35 -0
- data/stylesheets/sugar/vendors/sassdash/api/_zip.scss +80 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_char.scss +97 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_constructor.scss +1 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_escapes.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_flags.scss +9 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_global.scss +11 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_module.scss +9 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_native.scss +80 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_number.scss +26 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_trunc.scss +2 -0
- data/stylesheets/sugar/vendors/sassdash/constants/_units.scss +10 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_aggregator.scss +47 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_call.scss +77 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_chain.scss +37 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_char.scss +115 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_coercion.scss +90 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_compounder.scss +25 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_module.scss +8 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_number.scss +165 -0
- data/stylesheets/sugar/vendors/sassdash/helpers/_scope.scss +43 -0
- data/stylesheets/sugar/vendors/sassdash/static/_local.scss +268 -0
- data/stylesheets/sugar/vendors/sassdash/static/_module.scss +2 -0
- data/stylesheets/sugar/vendors/sassdash/static/_static.scss +84 -0
- metadata +334 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
@function __base-map-iteratee($value, $key, $collection) {
|
|
2
|
+
$result: __this('result');
|
|
3
|
+
$iteratee: __this('iteratee');
|
|
4
|
+
|
|
5
|
+
$result: append($result, __exec($iteratee, $value, $key, $collection));
|
|
6
|
+
$_: __this('result', $result);
|
|
7
|
+
|
|
8
|
+
@return $result;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@function __base-map($collection, $iteratee) {
|
|
13
|
+
$_: __scope((
|
|
14
|
+
'result': (),
|
|
15
|
+
'iteratee': $iteratee
|
|
16
|
+
));
|
|
17
|
+
$_: __base-each($collection, '__base-map-iteratee');
|
|
18
|
+
$result: __this('result');
|
|
19
|
+
$_: __scope(false);
|
|
20
|
+
|
|
21
|
+
@return $result;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@function __list-map($list, $iteratee) {
|
|
26
|
+
$index: 1;
|
|
27
|
+
$length: length($list);
|
|
28
|
+
$result-list: ();
|
|
29
|
+
|
|
30
|
+
@while ($index <= $length) {
|
|
31
|
+
$value: nth($list, $index);
|
|
32
|
+
$result-list: append($result-list, __exec($iteratee, $value, $index, $list));
|
|
33
|
+
$index: $index + 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@return $result-list;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@function __map($collection, $iteratee: '__identity', $this-arg: null) {
|
|
41
|
+
@if not __is-iterable($collection) {
|
|
42
|
+
$collection: ();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
$collection: if(__is-string($collection), __to-list($collection), $collection);
|
|
46
|
+
$function: if(__is-list($collection), '__list-map', '__base-map');
|
|
47
|
+
$iteratee: __get-callback($iteratee, $this-arg, 3);
|
|
48
|
+
|
|
49
|
+
@return __exec($function, $collection, $iteratee);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@function __map-values-iteratee($value, $key, $map) {
|
|
54
|
+
$result: __this('result');
|
|
55
|
+
$iteratee: __this('iteratee');
|
|
56
|
+
$result: __set($result, $key, __exec($iteratee, $value, $key, $map));
|
|
57
|
+
$_: __this('result', $result);
|
|
58
|
+
|
|
59
|
+
@return true;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@function __map-values($map, $iteratee: __identity, $this-arg: null) {
|
|
64
|
+
$result: ();
|
|
65
|
+
$iteratee: __get-callback($iteratee, $this-arg, 3);
|
|
66
|
+
$_: __scope((
|
|
67
|
+
'result': $result,
|
|
68
|
+
'iteratee': $iteratee
|
|
69
|
+
));
|
|
70
|
+
$map-values-iteratee: __bind('__map-values-iteratee');
|
|
71
|
+
$_: __base-for-own($map, $map-values-iteratee);
|
|
72
|
+
$result: __this('result');
|
|
73
|
+
$_: __scope(false);
|
|
74
|
+
|
|
75
|
+
@return $result;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@function __map-keys-iteratee($value, $key, $map) {
|
|
80
|
+
$result: __this('result');
|
|
81
|
+
$iteratee: __this('iteratee');
|
|
82
|
+
$iteratee-value: if(__this('with-keys'),
|
|
83
|
+
$key,
|
|
84
|
+
$value);
|
|
85
|
+
|
|
86
|
+
$result: __set($result,
|
|
87
|
+
__exec($iteratee, $iteratee-value, $key, $map),
|
|
88
|
+
$value);
|
|
89
|
+
$_: __this('result', $result);
|
|
90
|
+
|
|
91
|
+
@return $result;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@function __map-keys($map, $iteratee: __identity, $this-arg: null, $with-keys: false) {
|
|
96
|
+
$result: ();
|
|
97
|
+
$iteratee: __get-callback($iteratee, $this-arg, 3);
|
|
98
|
+
$_: __scope((
|
|
99
|
+
'result': $result,
|
|
100
|
+
'iteratee': $iteratee,
|
|
101
|
+
'with-keys': $with-keys
|
|
102
|
+
));
|
|
103
|
+
$map-keys-iteratee: __bind('__map-keys-iteratee');
|
|
104
|
+
|
|
105
|
+
$_: __base-for-own($map, $map-keys-iteratee);
|
|
106
|
+
$result: __this('result');
|
|
107
|
+
$_: __scope(false);
|
|
108
|
+
|
|
109
|
+
@return $result;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
/// Creates a list of values by running each element in `$collection` through
|
|
114
|
+
/// `$iteratee`. The `$iteratee` is bound to `$this-arg` and invoked with three
|
|
115
|
+
/// arguments; (value, index|key, collection).
|
|
116
|
+
///
|
|
117
|
+
/// If a property name is provided for `$predicate` the created `_property`
|
|
118
|
+
/// style callback returns the property value of the given element.
|
|
119
|
+
///
|
|
120
|
+
/// If a value is also provided for `$this-arg` the created `_matches-property`
|
|
121
|
+
/// style callback returns `true` for elements that have a matching property
|
|
122
|
+
/// value, else `false`.
|
|
123
|
+
///
|
|
124
|
+
/// If a map is provided for `$predicate` the created `_matches` style
|
|
125
|
+
/// callback returns `true` for elements that have the properties of the given
|
|
126
|
+
/// object, else `false`.
|
|
127
|
+
///
|
|
128
|
+
/// Many lodash methods are guarded to work as interatees for methods like
|
|
129
|
+
/// `_every`, `_filter`, `_map`, `_map-values`, `_reject`, and `_some`.
|
|
130
|
+
///
|
|
131
|
+
/// @access public
|
|
132
|
+
/// @group Collection
|
|
133
|
+
/// @param {List|Map|string} $collection The collection to iterate over.
|
|
134
|
+
/// @param {Function|Map|string} $iteratee [_identity] - The function invoked
|
|
135
|
+
/// per iteration.
|
|
136
|
+
/// create a `_property` or `_matches` style callback respectively.
|
|
137
|
+
/// @param {*} $this-arg [null] - The `_this` binding of `$iteratee`.
|
|
138
|
+
/// @returns {List} Returns the new mapped list.
|
|
139
|
+
/// @example scss
|
|
140
|
+
/// @function times-three($n, $args...) {
|
|
141
|
+
/// @return $n * 3;
|
|
142
|
+
/// }
|
|
143
|
+
///
|
|
144
|
+
/// $foo: _map((1, 2), times-three);
|
|
145
|
+
/// // => (3, 6)
|
|
146
|
+
///
|
|
147
|
+
/// $foo: _map(( 'a': 1, 'b': 2 ), times-three);
|
|
148
|
+
/// // => (3, 6)
|
|
149
|
+
///
|
|
150
|
+
/// $users: (
|
|
151
|
+
/// ( 'user': 'barney' ),
|
|
152
|
+
/// ( 'user': 'fred' )
|
|
153
|
+
/// );
|
|
154
|
+
/// // using the `_property` callback shorthand
|
|
155
|
+
/// $foo: _map($users, 'user');
|
|
156
|
+
/// // => ('barney', 'fred')
|
|
157
|
+
|
|
158
|
+
@function _map($args...) {
|
|
159
|
+
@return call('__map', $args...);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
/// @alias _map
|
|
164
|
+
|
|
165
|
+
@function _collect($args...) {
|
|
166
|
+
@return call('__map', $args...);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/// Creates a map with the same keys as `$map` and values generated by
|
|
171
|
+
/// running each own enumerable property of `$map` through `$iteratee`. The
|
|
172
|
+
/// iteratee function is bound to `$this-arg` and invoked with three arguments;
|
|
173
|
+
/// (value, key, map).
|
|
174
|
+
///
|
|
175
|
+
/// If a property name is provided for `$iteratee` the created `_property`
|
|
176
|
+
/// style callback returns the property value of the given element.
|
|
177
|
+
///
|
|
178
|
+
/// If a value is also provided for `$this-arg` the created `_matches-property`
|
|
179
|
+
/// style callback returns `true` for elements that have a matching property
|
|
180
|
+
/// value, else `false`.
|
|
181
|
+
///
|
|
182
|
+
/// If a map is provided for `$iteratee` the created `_matches` style
|
|
183
|
+
/// callback returns `true` for elements that have the properties of the given
|
|
184
|
+
/// map, else `false`.
|
|
185
|
+
///
|
|
186
|
+
///
|
|
187
|
+
/// @access public
|
|
188
|
+
/// @group Map
|
|
189
|
+
/// @param {Map} $map The map to iterate over.
|
|
190
|
+
/// @param {Function|Map|string} $iteratee [_identity] - The function invoked
|
|
191
|
+
/// per iteration.
|
|
192
|
+
/// @param {*} $this-arg [null] - The `_this` binding of `$iteratee`.
|
|
193
|
+
/// @returns {Map} Returns the new mapped map.
|
|
194
|
+
/// @example scss
|
|
195
|
+
/// @function times-three($n, $args...) {
|
|
196
|
+
/// @return $n * 3;
|
|
197
|
+
/// }
|
|
198
|
+
///
|
|
199
|
+
/// $foo: _map-values(( 'a': 1, 'b': 2 ), times-three);
|
|
200
|
+
/// // => ( 'a': 3, 'b': 6 )
|
|
201
|
+
///
|
|
202
|
+
/// $users: (
|
|
203
|
+
/// 'fred': ( 'user': 'fred', 'age': 40 ),
|
|
204
|
+
/// 'pebbles': ( 'user': 'pebbles', 'age': 1 )
|
|
205
|
+
/// );
|
|
206
|
+
/// // using the `_property` callback shorthand
|
|
207
|
+
/// $foo: _map-values($users, 'age');
|
|
208
|
+
/// // => ( 'fred': 40, 'pebbles': 1 )
|
|
209
|
+
|
|
210
|
+
@function _map-values($args...) {
|
|
211
|
+
@return call('__map-values', $args...);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
/// The opposite of `_map-values`; this method creates a map with the same
|
|
216
|
+
/// values as `$map` and keys generated by running each own enumerable
|
|
217
|
+
/// property of `$map` through `$iteratee`.
|
|
218
|
+
///
|
|
219
|
+
/// If a property name is provided for `$iteratee` the created `_property`
|
|
220
|
+
/// style callback returns the property value of the given element.
|
|
221
|
+
///
|
|
222
|
+
/// If a value is also provided for `$this-arg` the created `_matches-property`
|
|
223
|
+
/// style callback returns `true` for elements that have a matching property
|
|
224
|
+
/// value, else `false`.
|
|
225
|
+
///
|
|
226
|
+
/// If a map is provided for `$iteratee` the created `_matches` style
|
|
227
|
+
/// callback returns `true` for elements that have the properties of the given
|
|
228
|
+
/// map, else `false`.
|
|
229
|
+
///
|
|
230
|
+
/// **Also** - if `$with-keys` is specified as `true`, the iteratee
|
|
231
|
+
/// will only use each `key` of the `$map` as its value.
|
|
232
|
+
///
|
|
233
|
+
/// @access public
|
|
234
|
+
/// @group Map
|
|
235
|
+
/// @param {Map} $map The map to iterate over.
|
|
236
|
+
/// @param {Function|Map|string} $iteratee [_identity] - The function invoked
|
|
237
|
+
/// per iteration.
|
|
238
|
+
/// @param {*} $this-arg [null] - The `_this` binding of `$iteratee`.
|
|
239
|
+
/// @returns {Map} Returns the new mapped map.
|
|
240
|
+
/// @example scss
|
|
241
|
+
/// @function to-css-prop($val, $key, $args...) {
|
|
242
|
+
/// @return _kebab-case($key);
|
|
243
|
+
/// }
|
|
244
|
+
///
|
|
245
|
+
/// $foo: (
|
|
246
|
+
/// 'backgroundColor': white,
|
|
247
|
+
/// 'marginTop': 1rem
|
|
248
|
+
/// );
|
|
249
|
+
///
|
|
250
|
+
/// $foo: _map-keys($foo, to-css-prop);
|
|
251
|
+
/// // => (
|
|
252
|
+
/// // 'background-color': white,
|
|
253
|
+
/// // 'margin-top': 1rem
|
|
254
|
+
/// // )
|
|
255
|
+
///
|
|
256
|
+
/// // Using $with-keys
|
|
257
|
+
/// $foo: _map-keys($foo, _kebab-case, null, $with-key: true);
|
|
258
|
+
/// // => (
|
|
259
|
+
/// // 'background-color': white,
|
|
260
|
+
/// // 'margin-top': 1rem
|
|
261
|
+
/// // )
|
|
262
|
+
|
|
263
|
+
@function _map-keys($args...) {
|
|
264
|
+
@return call('__map-keys', $args...);
|
|
265
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@function __base-matches-function-1($map, $args...) {
|
|
2
|
+
$value: __this('value');
|
|
3
|
+
$key: __this('key');
|
|
4
|
+
|
|
5
|
+
@return __is-truthy($map)
|
|
6
|
+
and map-has-key($map, $key)
|
|
7
|
+
and $value == __get($map, $key);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@function __base-matches-function-2($map, $args...) {
|
|
12
|
+
@return __base-is-match(
|
|
13
|
+
$map,
|
|
14
|
+
__this('props'),
|
|
15
|
+
__this('values'),
|
|
16
|
+
__this('strict-compare-flags'));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@function __base-matches($source, $is-cloned: false) {
|
|
21
|
+
$props: map-keys($source);
|
|
22
|
+
$length: length($props);
|
|
23
|
+
$_: __scope();
|
|
24
|
+
|
|
25
|
+
@if ($length == 1) {
|
|
26
|
+
$key: nth($props, 1);
|
|
27
|
+
$value: __get($source, $key);
|
|
28
|
+
$_: __this('key', $key);
|
|
29
|
+
$_: __this('value', $value);
|
|
30
|
+
|
|
31
|
+
@if (__is-strict-comparable($value)) {
|
|
32
|
+
$result: __bind('__base-matches-function-1');
|
|
33
|
+
$_: __scope(false);
|
|
34
|
+
|
|
35
|
+
@return $result;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
$values: (); // list
|
|
40
|
+
$strict-compare-flags: (); // list
|
|
41
|
+
|
|
42
|
+
@while ($length > 0) {
|
|
43
|
+
$value: __get($source, nth($props, $length));
|
|
44
|
+
$values: __set($values, $length, $value);
|
|
45
|
+
$strict-compare-flags: __set($strict-compare-flags, $length, __is-strict-comparable($value));
|
|
46
|
+
$length: $length - 1;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
$values: __to-list($values);
|
|
50
|
+
$strict-compare-flags: __to-list($strict-compare-flags);
|
|
51
|
+
$_: __this('props', $props);
|
|
52
|
+
$_: __this('values', $values);
|
|
53
|
+
$_: __this('strict-compare-flags', $strict-compare-flags);
|
|
54
|
+
$result: __bind('__base-matches-function-2');
|
|
55
|
+
$_: __scope(false);
|
|
56
|
+
|
|
57
|
+
@return $result;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@function __matches($source) {
|
|
62
|
+
@return __base-matches($source, true);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
/// Creates a function which performs a deep comparison between a given map
|
|
67
|
+
/// and `source`, returning `true` if the given map has equivalent property
|
|
68
|
+
/// values, else `false`.
|
|
69
|
+
///
|
|
70
|
+
///
|
|
71
|
+
/// @access public
|
|
72
|
+
/// @group Utility
|
|
73
|
+
/// @param {Map} $source The map of property values to match.
|
|
74
|
+
/// @returns {Function} Returns the new function.
|
|
75
|
+
/// @example scss
|
|
76
|
+
/// $users: (
|
|
77
|
+
/// ( 'user': 'barney', 'age': 36, 'active': true ),
|
|
78
|
+
/// ( 'user': 'fred', 'age': 40, 'active': false )
|
|
79
|
+
/// );
|
|
80
|
+
/// $foo: _filter($users, _matches(( 'age': 40, 'active': false )));
|
|
81
|
+
/// // => (( 'user': 'fred', 'age': 40, 'active': false ),)
|
|
82
|
+
|
|
83
|
+
@function _matches($args...) {
|
|
84
|
+
@return call('__matches', $args...);
|
|
85
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
$__memoized__: () !global;
|
|
2
|
+
|
|
3
|
+
@function __memoize-memoized($arguments...) {
|
|
4
|
+
$func: __this('func');
|
|
5
|
+
$resolver: __this('resolver');
|
|
6
|
+
$key: __exec($resolver, $arguments...);
|
|
7
|
+
$cached-value: __get($__memoized__, $func $key);
|
|
8
|
+
|
|
9
|
+
@if $cached-value == null {
|
|
10
|
+
$cached-value: __exec($func, $arguments...);
|
|
11
|
+
$__memoized__: __set($__memoized__, $func $key, $cached-value) !global;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@return $cached-value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@function __memoize($func, $resolver: __identity) {
|
|
18
|
+
$_: __scope(('func': $func, 'resolver': $resolver));
|
|
19
|
+
$memoized: __bind('__memoize-memoized');
|
|
20
|
+
$_: __scope(false);
|
|
21
|
+
|
|
22
|
+
@return $memoized;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@function __memo($context, $key: $__undefined__, $value: $__undefined__) {
|
|
26
|
+
// Get the memos from context
|
|
27
|
+
@if __is-undefined($key) and __is-undefined($value) {
|
|
28
|
+
@return __get($__memoized__, $context);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Get the memo
|
|
32
|
+
@if __is-undefined($value) {
|
|
33
|
+
@return __get($__memoized__, $context $key);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Set the memo
|
|
37
|
+
$__memoized__: __set($__memoized__, $context $key, $value) !global;
|
|
38
|
+
|
|
39
|
+
@return true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
///
|
|
43
|
+
/// Creates a function that memoizes the result of `$func`. If `$resolver` is
|
|
44
|
+
/// provided, it determines the cache key for storing the result based on the
|
|
45
|
+
/// arguments provided to the memoized function. By default, the first argument
|
|
46
|
+
/// provided to the memoized function is coerced to a string and used as the
|
|
47
|
+
/// cache key. The `$func` is invoked with the `_this` binding of the memoized
|
|
48
|
+
/// function.
|
|
49
|
+
///
|
|
50
|
+
///
|
|
51
|
+
/// @access public
|
|
52
|
+
/// @group Function
|
|
53
|
+
/// @param {Function} $func The function to have its output memoized.
|
|
54
|
+
/// @param {Function} $resolver [_identity] The function to resolve the cache key.
|
|
55
|
+
/// @returns {Function} Returns the new memoizing function.
|
|
56
|
+
/// @example scss
|
|
57
|
+
///
|
|
58
|
+
/// $uppercase: _memoize(to-upper-case);
|
|
59
|
+
///
|
|
60
|
+
/// $foo: _exec($uppercase, 'fred');
|
|
61
|
+
/// // => 'FRED'
|
|
62
|
+
///
|
|
63
|
+
/// // modifying the result cache
|
|
64
|
+
/// $mod: _memo(to-upper-case, 'fred', 'BARNEY');
|
|
65
|
+
/// $foo: _exec($uppercase, 'fred');
|
|
66
|
+
/// // => 'BARNEY'
|
|
67
|
+
///
|
|
68
|
+
/// // using a `$resolver`
|
|
69
|
+
/// @function greet($name) {
|
|
70
|
+
/// @return 'Hello, ' + $name;
|
|
71
|
+
/// }
|
|
72
|
+
///
|
|
73
|
+
/// $greet-memoized: _memoize(greet, to-upper-case);
|
|
74
|
+
///
|
|
75
|
+
/// $foo: _exec($greet-memoized, 'Fred');
|
|
76
|
+
/// // => 'Hello, Fred'
|
|
77
|
+
///
|
|
78
|
+
/// $foo: _exec($greet-memoized, 'FRED');
|
|
79
|
+
/// // => 'Hello, Fred' (since 'Fred' and 'FRED' resolve to 'FRED');
|
|
80
|
+
|
|
81
|
+
@function _memoize($args...) {
|
|
82
|
+
@return call('__memoize', $args...);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
///
|
|
87
|
+
/// Gets or sets a memo in the Sassdash memo cache, based on the `$context` where
|
|
88
|
+
/// the memo is being queried from (usually a function).
|
|
89
|
+
///
|
|
90
|
+
///
|
|
91
|
+
/// @access public
|
|
92
|
+
/// @group Function
|
|
93
|
+
/// @param {String|Function} $context - The memo context.
|
|
94
|
+
/// @param {*} $key [undefined] - The memo key to get or set.
|
|
95
|
+
/// @param {*} $value [undefined] - The value to set the key in the memo
|
|
96
|
+
/// context to, if provided.
|
|
97
|
+
/// @returns {*} Returns memo map if only context is provided, memo value
|
|
98
|
+
/// if context and key are provided, and sets the memo and returns true
|
|
99
|
+
/// if context, key, and value are provided.
|
|
100
|
+
/// @example scss
|
|
101
|
+
/// // todo
|
|
102
|
+
|
|
103
|
+
@function _memo($args...) {
|
|
104
|
+
@return call('__memo', $args...);
|
|
105
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
@function __base-merge-deep($map, $source, $key, $merge-function, $customizer, $stack-a: (), $stack-b: ()) {
|
|
2
|
+
$length: length($stack-a);
|
|
3
|
+
$src-value: __get($source, $key);
|
|
4
|
+
|
|
5
|
+
@while $length > 0 {
|
|
6
|
+
@if __is-equal(nth($stack-a, $length), $src-value) {
|
|
7
|
+
$map: __set($map, $key, nth($stack-b, $length));
|
|
8
|
+
|
|
9
|
+
@return $map;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
$length: $length - 1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
$value: __get($map, $key);
|
|
16
|
+
$result: if($customizer,
|
|
17
|
+
__exec($customizer, $value, $src-value, $key, $map, $source),
|
|
18
|
+
$__undefined__);
|
|
19
|
+
$is-common: __is-undefined($result);
|
|
20
|
+
|
|
21
|
+
@if $is-common {
|
|
22
|
+
$result: $src-value;
|
|
23
|
+
|
|
24
|
+
@if __is-list($src-value) {
|
|
25
|
+
$result: if(__is-list($value),
|
|
26
|
+
$value,
|
|
27
|
+
__either($value, ()));
|
|
28
|
+
} @else if __is-plain-map($src-value) or __is-arglist($src-value) {
|
|
29
|
+
$result: if(__is-arglist($value),
|
|
30
|
+
__to-map($value),
|
|
31
|
+
if(__is-plain-map($value), $value, ()));
|
|
32
|
+
} @else {
|
|
33
|
+
$is-common: false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
$stack-a: append($stack-a, $src-value);
|
|
38
|
+
$stack-b: append($stack-b, $result);
|
|
39
|
+
|
|
40
|
+
@if $is-common {
|
|
41
|
+
$_: __this('map', __set($map, $key, __exec($merge-function, $result, $src-value, $customizer, $stack-a, $stack-b)));
|
|
42
|
+
} @else if not __is-equal($result, $value) {
|
|
43
|
+
$_: __this('map', __set($map, $key, $result));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@return __this('map');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@function __base-merge-function($src-value, $key, $source) {
|
|
51
|
+
$map: __this('map');
|
|
52
|
+
$customizer: __this('customizer');
|
|
53
|
+
$stack-a: __this('stack-a');
|
|
54
|
+
$stack-b: __this('stack-b');
|
|
55
|
+
$is-source-list: __this('is-source-list');
|
|
56
|
+
|
|
57
|
+
@if __is-map-like($src-value) {
|
|
58
|
+
$base-merge-deep: __bind('__base-merge-deep');
|
|
59
|
+
|
|
60
|
+
@return __exec($base-merge-deep, $map, $source, $key, __base-merge, $customizer, $stack-a, $stack-b);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
$value: __get($map, $key);
|
|
64
|
+
$result: if($customizer,
|
|
65
|
+
__exec($customizer, $value, $src-value, $key, $map, $source),
|
|
66
|
+
$__undefined__);
|
|
67
|
+
$is-common: __is-undefined($result);
|
|
68
|
+
|
|
69
|
+
@if $is-common {
|
|
70
|
+
$result: $src-value;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@if ($is-source-list or not __is-undefined($result))
|
|
74
|
+
and ($is-common or not __is-equal($result, $value)) {
|
|
75
|
+
$map: __this('map', __set($map, $key, $result));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@return true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@function __base-merge($map, $source, $customizer: null, $stack-a: (), $stack-b: ()) {
|
|
83
|
+
@if not __is-map-like($map) {
|
|
84
|
+
@return $map;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
$is-source-list: __is-list($source);
|
|
88
|
+
$func: if($is-source-list, '__list-each', '__base-for-own');
|
|
89
|
+
$_: __scope((
|
|
90
|
+
'map': $map,
|
|
91
|
+
'customizer': $customizer,
|
|
92
|
+
'stack-a': $stack-a,
|
|
93
|
+
'stack-b': $stack-b,
|
|
94
|
+
'is-source-list': $is-source-list
|
|
95
|
+
));
|
|
96
|
+
$base-merge-function: __bind('__base-merge-function');
|
|
97
|
+
$_: __exec($func, $source, $base-merge-function);
|
|
98
|
+
$map: __this('map');
|
|
99
|
+
$_: __scope(false);
|
|
100
|
+
|
|
101
|
+
@return $map;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
@function __list-merge($list, $source, $customizer: null) {
|
|
106
|
+
// todo
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@function __merge($arguments...) {
|
|
111
|
+
$assigner: __create-assigner('__base-merge');
|
|
112
|
+
|
|
113
|
+
@return __exec($assigner, $arguments...);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
/// Recursively merges own enumerable properties of the source map(s), that
|
|
118
|
+
/// don't resolve to `undefined` into the destination map. Subsequent sources
|
|
119
|
+
/// overwrite property assignments of previous sources. If `$customizer` is
|
|
120
|
+
/// provided, it is invoked to produce the merged values of the destination and
|
|
121
|
+
/// source properties. If `$customizer` returns `undefined` merging is handled
|
|
122
|
+
/// by the method instead. The `$customizer` is bound to `$this-arg` and invoked
|
|
123
|
+
/// with five arguments; (source-value, other-value, key, map, source).
|
|
124
|
+
///
|
|
125
|
+
///
|
|
126
|
+
/// @access public
|
|
127
|
+
/// @group Map
|
|
128
|
+
/// @param {Map} $map The destination map.
|
|
129
|
+
/// @param {Map...} $source... The source maps.
|
|
130
|
+
/// @param {Function} $customizer [null] The function to customize merging properties.
|
|
131
|
+
/// @param {*} $this-arg [null] - The `_this` binding of `$customizer`.
|
|
132
|
+
/// @returns {Map} Returns `map`.
|
|
133
|
+
/// @example scss
|
|
134
|
+
/// $users: (
|
|
135
|
+
/// 'data': (( 'user': 'barney' ), ( 'user': 'fred' ))
|
|
136
|
+
/// );
|
|
137
|
+
/// $ages: (
|
|
138
|
+
/// 'data': (( 'age': 36 ), ( 'age': 40 ))
|
|
139
|
+
/// );
|
|
140
|
+
/// $foo: _merge($users, ages);
|
|
141
|
+
/// // => ( 'data': (( 'user': 'barney', 'age': 36 ), ( 'user': 'fred', 'age': 40 )) )
|
|
142
|
+
///
|
|
143
|
+
/// // using a customizer callback
|
|
144
|
+
/// // todo
|
|
145
|
+
|
|
146
|
+
@function _merge($args...) {
|
|
147
|
+
@return call('__merge', $args...);
|
|
148
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
@function __modify($map, $properties, $function: '__identity', $this-arg: null) {
|
|
4
|
+
$value: __get($map, $properties);
|
|
5
|
+
|
|
6
|
+
$function: __get-callback($function, $this-arg, 3);
|
|
7
|
+
|
|
8
|
+
$result: __exec($function, $value, $properties, $map);
|
|
9
|
+
|
|
10
|
+
$map: __set($map, $properties, $result);
|
|
11
|
+
|
|
12
|
+
@return $map;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@function _modify($args...) {
|
|
16
|
+
@return call('__modify', $args...);
|
|
17
|
+
}
|