locomotivecms_wagon 2.4.0.rc2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/generators/foundation/public/javascripts/vendor/foundation.js +10839 -6523
  3. data/generators/foundation/public/javascripts/vendor/foundation.min.js +5 -3
  4. data/generators/foundation/public/stylesheets/_settings.scss +455 -115
  5. data/generators/foundation/public/stylesheets/app.css +0 -3
  6. data/generators/foundation/public/stylesheets/app.scss +15 -6
  7. data/generators/foundation/public/stylesheets/foundation.css +4191 -1885
  8. data/generators/foundation/public/stylesheets/foundation6/_global.scss +106 -54
  9. data/generators/foundation/public/stylesheets/foundation6/components/_accordion-menu.scss +157 -14
  10. data/generators/foundation/public/stylesheets/foundation6/components/_accordion.scss +71 -28
  11. data/generators/foundation/public/stylesheets/foundation6/components/_badge.scss +17 -9
  12. data/generators/foundation/public/stylesheets/foundation6/components/_breadcrumbs.scss +33 -10
  13. data/generators/foundation/public/stylesheets/foundation6/components/_button-group.scss +168 -30
  14. data/generators/foundation/public/stylesheets/foundation6/components/_button.scss +165 -44
  15. data/generators/foundation/public/stylesheets/foundation6/components/_callout.scss +9 -18
  16. data/generators/foundation/public/stylesheets/foundation6/components/_card.scss +129 -0
  17. data/generators/foundation/public/stylesheets/foundation6/components/_close-button.scss +54 -13
  18. data/generators/foundation/public/stylesheets/foundation6/components/_drilldown.scss +108 -33
  19. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown-menu.scss +215 -64
  20. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown.scss +22 -7
  21. data/generators/foundation/public/stylesheets/foundation6/components/_flex-video.scss +1 -68
  22. data/generators/foundation/public/stylesheets/foundation6/components/_flex.scss +117 -0
  23. data/generators/foundation/public/stylesheets/foundation6/components/_float.scss +1 -1
  24. data/generators/foundation/public/stylesheets/foundation6/components/_label.scss +16 -8
  25. data/generators/foundation/public/stylesheets/foundation6/components/_media-object.scss +50 -10
  26. data/generators/foundation/public/stylesheets/foundation6/components/_menu-icon.scss +9 -0
  27. data/generators/foundation/public/stylesheets/foundation6/components/_menu.scss +373 -91
  28. data/generators/foundation/public/stylesheets/foundation6/components/_off-canvas.scss +418 -83
  29. data/generators/foundation/public/stylesheets/foundation6/components/_orbit.scss +17 -7
  30. data/generators/foundation/public/stylesheets/foundation6/components/_pagination.scss +77 -45
  31. data/generators/foundation/public/stylesheets/foundation6/components/_progress-bar.scss +16 -35
  32. data/generators/foundation/public/stylesheets/foundation6/components/_responsive-embed.scss +70 -0
  33. data/generators/foundation/public/stylesheets/foundation6/components/_reveal.scss +59 -34
  34. data/generators/foundation/public/stylesheets/foundation6/components/_slider.scss +17 -38
  35. data/generators/foundation/public/stylesheets/foundation6/components/_sticky.scss +5 -4
  36. data/generators/foundation/public/stylesheets/foundation6/components/_switch.scss +52 -36
  37. data/generators/foundation/public/stylesheets/foundation6/components/_table.scss +197 -79
  38. data/generators/foundation/public/stylesheets/foundation6/components/_tabs.scss +126 -67
  39. data/generators/foundation/public/stylesheets/foundation6/components/_thumbnail.scss +17 -4
  40. data/generators/foundation/public/stylesheets/foundation6/components/_title-bar.scss +61 -21
  41. data/generators/foundation/public/stylesheets/foundation6/components/_tooltip.scss +74 -24
  42. data/generators/foundation/public/stylesheets/foundation6/components/_top-bar.scss +128 -10
  43. data/generators/foundation/public/stylesheets/foundation6/components/_visibility.scss +6 -5
  44. data/generators/foundation/public/stylesheets/foundation6/forms/_checkbox.scss +14 -9
  45. data/generators/foundation/public/stylesheets/foundation6/forms/_error.scss +12 -5
  46. data/generators/foundation/public/stylesheets/foundation6/forms/_fieldset.scss +6 -6
  47. data/generators/foundation/public/stylesheets/foundation6/forms/_forms.scss +11 -9
  48. data/generators/foundation/public/stylesheets/foundation6/forms/_help-text.scss +1 -1
  49. data/generators/foundation/public/stylesheets/foundation6/forms/_input-group.scss +82 -10
  50. data/generators/foundation/public/stylesheets/foundation6/forms/_label.scss +2 -0
  51. data/generators/foundation/public/stylesheets/foundation6/forms/_meter.scss +116 -0
  52. data/generators/foundation/public/stylesheets/foundation6/forms/_progress.scss +94 -0
  53. data/generators/foundation/public/stylesheets/foundation6/forms/_range.scss +149 -0
  54. data/generators/foundation/public/stylesheets/foundation6/forms/_select.scss +36 -14
  55. data/generators/foundation/public/stylesheets/foundation6/forms/_text.scss +53 -27
  56. data/generators/foundation/public/stylesheets/foundation6/foundation.scss +59 -17
  57. data/generators/foundation/public/stylesheets/foundation6/grid/_classes.scss +100 -56
  58. data/generators/foundation/public/stylesheets/foundation6/grid/_column.scss +22 -22
  59. data/generators/foundation/public/stylesheets/foundation6/grid/_flex-grid.scss +164 -96
  60. data/generators/foundation/public/stylesheets/foundation6/grid/_grid.scss +19 -4
  61. data/generators/foundation/public/stylesheets/foundation6/grid/_gutter.scss +61 -10
  62. data/generators/foundation/public/stylesheets/foundation6/grid/_layout.scss +49 -5
  63. data/generators/foundation/public/stylesheets/foundation6/grid/_position.scss +14 -9
  64. data/generators/foundation/public/stylesheets/foundation6/grid/_row.scss +42 -15
  65. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_classes.scss +11 -4
  66. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_fade.scss +4 -1
  67. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_zoom.scss +1 -1
  68. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_slide.scss +1 -1
  69. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_transition.scss +1 -1
  70. data/generators/foundation/public/stylesheets/foundation6/prototype/_arrow.scss +36 -0
  71. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-box.scss +35 -0
  72. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-none.scss +35 -0
  73. data/generators/foundation/public/stylesheets/foundation6/prototype/_bordered.scss +54 -0
  74. data/generators/foundation/public/stylesheets/foundation6/prototype/_box.scss +23 -0
  75. data/generators/foundation/public/stylesheets/foundation6/prototype/_display.scss +50 -0
  76. data/generators/foundation/public/stylesheets/foundation6/prototype/_font-styling.scss +95 -0
  77. data/generators/foundation/public/stylesheets/foundation6/prototype/_list-style-type.scss +95 -0
  78. data/generators/foundation/public/stylesheets/foundation6/prototype/_overflow.scss +72 -0
  79. data/generators/foundation/public/stylesheets/foundation6/prototype/_position.scss +114 -0
  80. data/generators/foundation/public/stylesheets/foundation6/prototype/_prototype.scss +87 -0
  81. data/generators/foundation/public/stylesheets/foundation6/prototype/_relation.scss +157 -0
  82. data/generators/foundation/public/stylesheets/foundation6/prototype/_rotate.scss +31 -0
  83. data/generators/foundation/public/stylesheets/foundation6/prototype/_rounded.scss +54 -0
  84. data/generators/foundation/public/stylesheets/foundation6/prototype/_separator.scss +96 -0
  85. data/generators/foundation/public/stylesheets/foundation6/prototype/_shadow.scss +43 -0
  86. data/generators/foundation/public/stylesheets/foundation6/prototype/_sizing.scss +73 -0
  87. data/generators/foundation/public/stylesheets/foundation6/prototype/_spacing.scss +204 -0
  88. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-decoration.scss +48 -0
  89. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-transformation.scss +48 -0
  90. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-utilities.scss +88 -0
  91. data/generators/foundation/public/stylesheets/foundation6/settings/_settings.scss +454 -116
  92. data/generators/foundation/public/stylesheets/foundation6/typography/_alignment.scss +9 -8
  93. data/generators/foundation/public/stylesheets/foundation6/typography/_base.scss +128 -55
  94. data/generators/foundation/public/stylesheets/foundation6/typography/_helpers.scss +7 -4
  95. data/generators/foundation/public/stylesheets/foundation6/typography/_print.scss +22 -9
  96. data/generators/foundation/public/stylesheets/foundation6/typography/_typography.scss +0 -2
  97. data/generators/foundation/public/stylesheets/foundation6/util/_breakpoint.scss +213 -47
  98. data/generators/foundation/public/stylesheets/foundation6/util/_color.scss +105 -17
  99. data/generators/foundation/public/stylesheets/foundation6/util/_direction.scss +31 -0
  100. data/generators/foundation/public/stylesheets/foundation6/util/_flex.scss +85 -0
  101. data/generators/foundation/public/stylesheets/foundation6/util/_math.scss +72 -0
  102. data/generators/foundation/public/stylesheets/foundation6/util/_mixins.scss +161 -38
  103. data/generators/foundation/public/stylesheets/foundation6/util/_selector.scss +5 -3
  104. data/generators/foundation/public/stylesheets/foundation6/util/_typography.scss +26 -0
  105. data/generators/foundation/public/stylesheets/foundation6/util/_unit.scss +100 -17
  106. data/generators/foundation/public/stylesheets/foundation6/util/_util.scss +4 -5
  107. data/generators/foundation/public/stylesheets/foundation6/util/_value.scss +68 -25
  108. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/_normalize.scss +3 -0
  109. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
  110. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
  111. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
  112. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
  113. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
  114. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  115. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  116. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  117. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  118. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  119. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  120. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_cell.scss +169 -0
  121. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_classes.scss +476 -0
  122. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_collapse.scss +74 -0
  123. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_frame.scss +85 -0
  124. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_grid.scss +35 -0
  125. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_gutters.scss +45 -0
  126. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_layout.scss +33 -0
  127. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_position.scss +28 -0
  128. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_xy-grid.scss +51 -0
  129. data/lib/locomotive/wagon/tools/styled_yaml.rb +1 -1
  130. data/lib/locomotive/wagon/version.rb +1 -1
  131. data/locomotivecms_wagon.gemspec +2 -2
  132. data/spec/fixtures/cassettes/authenticate.yml +102 -48
  133. data/spec/fixtures/cassettes/delete.yml +519 -259
  134. data/spec/fixtures/cassettes/push.yml +2724 -1486
  135. metadata +61 -10
  136. data/generators/foundation/public/stylesheets/foundation6/motion-ui.scss +0 -4
  137. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize.scss +0 -424
@@ -0,0 +1,36 @@
1
+ //
2
+ // Variables
3
+ //
4
+ // You can override the default values by setting the variables in your Sass
5
+ // before importing the normalize-scss library.
6
+
7
+ // The font size set on the root html element.
8
+ $base-font-size: 16px !default;
9
+
10
+ // The base line height determines the basic unit of vertical rhythm.
11
+ $base-line-height: 24px !default;
12
+
13
+ // The length unit in which to output vertical rhythm values.
14
+ // Supported values: px, em, rem.
15
+ $base-unit: 'em' !default;
16
+
17
+ // The default font family.
18
+ $base-font-family: sans-serif !default;
19
+
20
+ // The font sizes for h1-h6.
21
+ $h1-font-size: 2 * $base-font-size !default;
22
+ $h2-font-size: 1.5 * $base-font-size !default;
23
+ $h3-font-size: 1.17 * $base-font-size !default;
24
+ $h4-font-size: 1 * $base-font-size !default;
25
+ $h5-font-size: 0.83 * $base-font-size !default;
26
+ $h6-font-size: 0.67 * $base-font-size !default;
27
+
28
+ // The amount lists and blockquotes are indented.
29
+ $indent-amount: 40px !default;
30
+
31
+ // The following variable controls whether normalize-scss will output
32
+ // font-sizes, line-heights and block-level top/bottom margins that form a basic
33
+ // vertical rhythm on the page, which differs from the original Normalize.css.
34
+ // However, changing any of the variables above will cause
35
+ // $normalize-vertical-rhythm to be automatically set to true.
36
+ $normalize-vertical-rhythm: false !default;
@@ -0,0 +1,61 @@
1
+ //
2
+ // Vertical Rhythm
3
+ //
4
+ // This is the minimal amount of code needed to create vertical rhythm in our
5
+ // CSS. If you are looking for a robust solution, look at the excellent Typey
6
+ // library. @see https://github.com/jptaranto/typey
7
+
8
+ @function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit) {
9
+ @if unit($value) != px {
10
+ @error "The normalize vertical-rhythm module only supports px inputs. The typey library is better.";
11
+ }
12
+ @if $unit == rem {
13
+ @return ($value / $base-font-size) * 1rem;
14
+ }
15
+ @else if $unit == em {
16
+ @return ($value / $relative-to) * 1em;
17
+ }
18
+ @else { // $unit == px
19
+ @return $value;
20
+ }
21
+ }
22
+
23
+ @mixin normalize-font-size($value, $relative-to: $base-font-size) {
24
+ @if unit($value) != 'px' {
25
+ @error "normalize-font-size() only supports px inputs. The typey library is better.";
26
+ }
27
+ font-size: normalize-rhythm($value, $relative-to);
28
+ }
29
+
30
+ @mixin normalize-rhythm($property, $values, $relative-to: $base-font-size) {
31
+ $value-list: $values;
32
+ $sep: space;
33
+ @if type-of($values) == 'list' {
34
+ $sep: list-separator($values);
35
+ }
36
+ @else {
37
+ $value-list: append((), $values);
38
+ }
39
+
40
+ $normalized-values: ();
41
+ @each $value in $value-list {
42
+ @if unitless($value) and $value != 0 {
43
+ $value: $value * normalize-rhythm($base-line-height, $relative-to);
44
+ }
45
+ $normalized-values: append($normalized-values, $value, $sep);
46
+ }
47
+ #{$property}: $normalized-values;
48
+ }
49
+
50
+ @mixin normalize-margin($values, $relative-to: $base-font-size) {
51
+ @include normalize-rhythm(margin, $values, $relative-to);
52
+ }
53
+
54
+ @mixin normalize-line-height($font-size, $min-line-padding: 2px) {
55
+ $lines: ceil($font-size / $base-line-height);
56
+ // If lines are cramped include some extra leading.
57
+ @if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) {
58
+ $lines: $lines + 1;
59
+ }
60
+ @include normalize-rhythm(line-height, $lines, $font-size);
61
+ }
@@ -0,0 +1,31 @@
1
+ ///
2
+ /// Returns whether `$list` contains `$value`.
3
+ ///
4
+ /// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-contain
5
+ ///
6
+ /// @param {List} $list - list to check
7
+ /// @param {*} $value - value to look for
8
+ ///
9
+ /// @example
10
+ /// sl-contain(a b c, a)
11
+ /// // true
12
+ ///
13
+ /// @example
14
+ /// sl-contain(a b c, z)
15
+ /// // false
16
+ ///
17
+ /// @return {Bool}
18
+ ///
19
+
20
+ @function sl-contain($list, $value) {
21
+ @return not not index($list, $value);
22
+ }
23
+
24
+ ///
25
+ /// @requires sl-contain
26
+ /// @alias sl-contain
27
+ ///
28
+
29
+ @function sl-include($list, $value) {
30
+ @return sl-contain($list, $value);
31
+ }
@@ -0,0 +1,38 @@
1
+ /// Removes all false and null values from `$list`.
2
+ ///
3
+ /// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-purge
4
+ ///
5
+ /// @requires sl-is-true
6
+ /// @requires sl-to-list
7
+ ///
8
+ /// @param {List} $list - list to purge
9
+ ///
10
+ /// @example
11
+ /// sl-purge(null a false b)
12
+ /// // a b
13
+ ///
14
+ /// @return {List}
15
+ ///
16
+
17
+ @function sl-purge($list) {
18
+ $_: sl-missing-dependencies('sl-is-true', 'sl-to-list');
19
+
20
+ $result: ();
21
+
22
+ @each $item in $list {
23
+ @if sl-is-true($item) {
24
+ $result: append($result, $item, list-separator($list));
25
+ }
26
+ }
27
+
28
+ @return sl-to-list($result);
29
+ }
30
+
31
+ ///
32
+ /// @requires sl-purge
33
+ /// @alias sl-purge
34
+ ///
35
+
36
+ @function sl-clean($list) {
37
+ @return sl-purge($list);
38
+ }
@@ -0,0 +1,31 @@
1
+ ///
2
+ /// Removes value(s) `$value` from `$list`.
3
+ ///
4
+ /// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-remove
5
+ ///
6
+ /// @requires sl-replace
7
+ ///
8
+ /// @param {List} $list - list to update
9
+ /// @param {*} $value - value to remove
10
+ ///
11
+ /// @example
12
+ /// sl-remove(a b c, a)
13
+ /// // b c
14
+ ///
15
+ /// @return {List}
16
+ ///
17
+
18
+ @function sl-remove($list, $value) {
19
+ $_: sl-missing-dependencies('sl-replace');
20
+
21
+ @return sl-replace($list, $value, null);
22
+ }
23
+
24
+ ///
25
+ /// @requires sl-remove
26
+ /// @alias sl-remove
27
+ ///
28
+
29
+ @function sl-without($list, $value) {
30
+ @return sl-remove($list, $value);
31
+ }
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// Replaces `$old` by `$new` in `$list`.
3
+ ///
4
+ /// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-replace
5
+ ///
6
+ /// @requires sl-is-true
7
+ /// @requires sl-purge
8
+ /// @requires sl-to-list
9
+ ///
10
+ /// @param {List} $list - list to update
11
+ /// @param {*} $old - value to replace
12
+ /// @param {*} $value - new value for $old
13
+ ///
14
+ /// @example
15
+ /// sl-replace(a b c, b, z)
16
+ /// // a z c
17
+ ///
18
+ /// @example
19
+ /// sl-replace(a b c, y, z)
20
+ /// // a b c
21
+ ///
22
+ /// @return {List}
23
+ ///
24
+
25
+ @function sl-replace($list, $old, $value) {
26
+ $_: sl-missing-dependencies('sl-is-true', 'sl-purge', 'sl-to-list');
27
+
28
+ $running: true;
29
+
30
+ @while $running {
31
+ $index: index($list, $old);
32
+
33
+ @if not $index {
34
+ $running: false;
35
+ }
36
+
37
+ @else {
38
+ $list: set-nth($list, $index, $value);
39
+ }
40
+
41
+ }
42
+
43
+ $list: if(sl-is-true($value), $list, sl-purge($list));
44
+
45
+ @return sl-to-list($list);
46
+ }
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// Casts `$value` into a list.
3
+ ///
4
+ /// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-to-list
5
+ ///
6
+ /// @param {*} $value - value to cast to list
7
+ /// @param {String} $separator [space] - separator to use
8
+ ///
9
+ /// @example
10
+ /// sl-to-list(a b c, comma)
11
+ /// // a, b, c
12
+ ///
13
+ /// @return {List}
14
+ ///
15
+
16
+ @function sl-to-list($value, $separator: list-separator($value)) {
17
+ @return join((), $value, $separator);
18
+ }
19
+
20
+ ///
21
+ /// @requires sl-to-list
22
+ /// @alias sl-to-list
23
+ ///
24
+
25
+ @function sl-listify($value) {
26
+ @return sl-to-list($value);
27
+ }
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// Checks whether `$functions` exist in global scope.
3
+ ///
4
+ /// @access private
5
+ ///
6
+ /// @param {ArgList} $functions - list of functions to check for
7
+ ///
8
+ /// @return {Bool} Whether or not there are missing dependencies
9
+ ///
10
+
11
+ @function sl-missing-dependencies($functions...) {
12
+ $missing-dependencies: ();
13
+
14
+ @each $function in $functions {
15
+ @if not function-exists($function) {
16
+ $missing-dependencies: append($missing-dependencies, $function, comma);
17
+ }
18
+ }
19
+
20
+ @if length($missing-dependencies) > 0 {
21
+ @error 'Unmet dependencies! The following functions are required: #{$missing-dependencies}.';
22
+ }
23
+
24
+ @return length($missing-dependencies) > 0;
25
+ }
@@ -0,0 +1,13 @@
1
+ ///
2
+ /// Returns truthiness of `$value`.
3
+ ///
4
+ /// @access private
5
+ ///
6
+ /// @param {*} $value - value to check
7
+ ///
8
+ /// @return {Bool}
9
+ ///
10
+
11
+ @function sl-is-true($value) {
12
+ @return if($value == null, false, $value and $value != null and $value != '' and $value != ());
13
+ }
@@ -0,0 +1,169 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group xy-grid
7
+ ////
8
+
9
+ /// Calculate the percentage size of a cell.
10
+ ///
11
+ /// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2 or 1/3.
12
+ @function xy-cell-size(
13
+ $size: $grid-columns
14
+ ) {
15
+ // Parsing percents, decimals, n of n and number counts
16
+ @if type-of($size) == 'number' {
17
+ @if unit($size) == '%' {
18
+ $size: $size;
19
+ }
20
+ @else if $size < 1 {
21
+ $size: percentage($size);
22
+ }
23
+ @else {
24
+ $size: percentage($size / $grid-columns);
25
+ }
26
+ }
27
+
28
+ // Parsing "n of n" or "n/n" expressions
29
+ @elseif type-of($size) == 'list' {
30
+ @if length($size) != 3 {
31
+ @error 'Wrong syntax for xy-cell-size(). Use the format "n of n" or "n/n".';
32
+ }
33
+ @else {
34
+ $size: percentage(nth($size, 1) / nth($size, 3));
35
+ }
36
+ }
37
+ // Anything else is incorrect
38
+ @else {
39
+ @error 'Wrong syntax for xy-cell-size(). Use a number, decimal, percentage, or "n of n" / "n/n".';
40
+ }
41
+
42
+ @return $size;
43
+ }
44
+
45
+ /// Sets base flex properties for cells.
46
+ ///
47
+ /// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto` or `shrink`.
48
+ @mixin xy-cell-base($size: full) {
49
+ @if($size == 'full') {
50
+ // This is the base style, all others inherit from it
51
+ flex: 0 0 auto;
52
+ min-height: 0px;
53
+ min-width: 0px;
54
+ }
55
+ @elseif ($size == 'auto') {
56
+ flex: 1 1 0px; // sass-lint:disable-line zero-unit
57
+ }
58
+ @elseif ($size == 'shrink') {
59
+ flex: 0 0 auto;
60
+ }
61
+ }
62
+
63
+ /// Resets a cells width (or height if vertical is true) as well as strips its gutters.
64
+ ///
65
+ /// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.
66
+ @mixin xy-cell-reset($vertical: true) {
67
+ $direction: if($vertical == true, width, height);
68
+ #{$direction}: auto;
69
+ }
70
+
71
+ // Sets our cell widths or heights depending on gutter type.
72
+ @mixin -xy-cell-properties($size, $margin-gutter, $vertical) {
73
+ $direction: if($vertical == true, height, width);
74
+ @if($size == 'full') {
75
+ $val: if($margin-gutter == 0, 100%, calc(100% - #{rem-calc($margin-gutter)}));
76
+ #{$direction}: $val;
77
+ }
78
+ @elseif ($size == 'auto') {
79
+ #{$direction}: auto;
80
+ $val: if($margin-gutter == 0, 100%, calc(100% - #{rem-calc($margin-gutter)}));
81
+ }
82
+ @elseif ($size == 'shrink') {
83
+ #{$direction}: auto;
84
+ }
85
+ @else {
86
+ $val: if($margin-gutter == 0, #{xy-cell-size($size)}, calc(#{xy-cell-size($size)} - #{rem-calc($margin-gutter)}));
87
+ #{$direction}: $val;
88
+ }
89
+ }
90
+
91
+ /// Creates a cell for your grid.
92
+ ///
93
+ /// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (default) for 100% width, `auto` to use up available space and `shrink` to use up only required space.
94
+ /// @param {Boolean} $gutter-output [true] - Whether or not to output gutters
95
+ /// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.
96
+ /// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.
97
+ /// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.
98
+ /// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.
99
+ /// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.
100
+ @mixin xy-cell(
101
+ $size: full,
102
+ $gutter-output: true,
103
+ $gutters: $grid-margin-gutters,
104
+ $gutter-type: margin,
105
+ $gutter-position: right left,
106
+ $breakpoint: null,
107
+ $vertical: false
108
+ ) {
109
+ @if($breakpoint == null) {
110
+ // If `$bp-size` is available then use this, otherwise revert to the smallest bp.
111
+ @if(variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {
112
+ $breakpoint: $-zf-size;
113
+ }
114
+ @else {
115
+ $breakpoint: $-zf-zero-breakpoint;
116
+ }
117
+ }
118
+
119
+ // Get our gutters from map if available, if not map just return the value.
120
+ $gutter: -zf-get-bp-val($gutters, $breakpoint);
121
+
122
+ // Base flex properties
123
+ @include xy-cell-base($size);
124
+
125
+ @if($gutter-type == 'margin') {
126
+ @include -xy-cell-properties($size, $gutter, $vertical);
127
+ }
128
+ @else {
129
+ @include -xy-cell-properties($size, 0, $vertical);
130
+ }
131
+
132
+ @if $gutter-output {
133
+ @include xy-gutters($gutter, $gutter-type, $gutter-position);
134
+ }
135
+ }
136
+
137
+ /// Creates a single breakpoint sized grid. Used to generate our grid classes.
138
+ ///
139
+ /// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (default) for 100% width, `auto` to use up available space and `shrink` to use up only required space.
140
+ /// @param {Boolean} $gutter-output [true] - Whether or not to output gutters
141
+ /// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.
142
+ /// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.
143
+ /// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.
144
+ /// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.
145
+ @mixin xy-cell-static(
146
+ $size: full,
147
+ $gutter-output: true,
148
+ $gutters: $grid-margin-gutters,
149
+ $gutter-type: margin,
150
+ $breakpoint: $-zf-zero-breakpoint,
151
+ $vertical: false
152
+ ) {
153
+
154
+ $gutter: -zf-get-bp-val($gutters, $breakpoint);
155
+ $gutter-position: if($vertical == true, top bottom, left right);
156
+
157
+ @if($gutter-type == 'margin') {
158
+ @include -xy-cell-properties($size, $gutter, $vertical);
159
+ }
160
+ @else {
161
+ @include -xy-cell-properties($size, 0, $vertical);
162
+ }
163
+
164
+ // If we want to output the gutters
165
+ @if($gutter-output) {
166
+ // TODO: Figure out if we need to pass breakpoint in here too.
167
+ @include xy-gutters($gutter, $gutter-type, $gutter-position);
168
+ }
169
+ }