foundation-rails 5.4.1.0 → 5.4.2.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.
Files changed (32) hide show
  1. data/bower.json +2 -2
  2. data/lib/foundation/rails/version.rb +1 -1
  3. data/vendor/assets/_settings.scss +2 -3
  4. data/vendor/assets/javascripts/foundation/foundation.abide.js +23 -9
  5. data/vendor/assets/javascripts/foundation/foundation.accordion.js +1 -1
  6. data/vendor/assets/javascripts/foundation/foundation.alert.js +2 -2
  7. data/vendor/assets/javascripts/foundation/foundation.clearing.js +1 -1
  8. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +7 -1
  9. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +1 -1
  10. data/vendor/assets/javascripts/foundation/foundation.interchange.js +1 -1
  11. data/vendor/assets/javascripts/foundation/foundation.joyride.js +1 -1
  12. data/vendor/assets/javascripts/foundation/foundation.js +1 -1
  13. data/vendor/assets/javascripts/foundation/foundation.magellan.js +1 -1
  14. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +18 -5
  15. data/vendor/assets/javascripts/foundation/foundation.orbit.js +1 -1
  16. data/vendor/assets/javascripts/foundation/foundation.reveal.js +1 -1
  17. data/vendor/assets/javascripts/foundation/foundation.slider.js +10 -1
  18. data/vendor/assets/javascripts/foundation/foundation.tab.js +73 -10
  19. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +6 -4
  20. data/vendor/assets/javascripts/foundation/foundation.topbar.js +10 -1
  21. data/vendor/assets/stylesheets/foundation/_settings.scss +2 -3
  22. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +1 -1
  23. data/vendor/assets/stylesheets/foundation/components/_forms.scss +34 -9
  24. data/vendor/assets/stylesheets/foundation/components/_global.scss +3 -4
  25. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +6 -2
  26. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +8 -3
  27. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +10 -10
  28. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +1 -0
  29. data/vendor/assets/stylesheets/foundation/components/_switches.scss +10 -3
  30. data/vendor/assets/stylesheets/foundation/components/_tables.scss +2 -2
  31. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +19 -6
  32. metadata +4 -4
data/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "foundation-rails",
3
- "version": "5.4.1.0",
3
+ "version": "5.4.2.0",
4
4
  "dependencies": {
5
- "foundation": "5.4.1"
5
+ "foundation": "5.4.2"
6
6
  }
7
7
  }
@@ -1,5 +1,5 @@
1
1
  module Foundation
2
2
  module Rails
3
- VERSION = "5.4.1.0"
3
+ VERSION = "5.4.2.0"
4
4
  end
5
5
  end
@@ -100,7 +100,6 @@ $include-html-global-classes: $include-html-classes;
100
100
  // $body-bg: $white;
101
101
  // $body-font-color: $jet;
102
102
  // $body-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
103
- // $font-weight-normal:normal;
104
103
  // $body-font-weight: $font-weight-normal;
105
104
  // $body-font-style: normal;
106
105
 
@@ -803,8 +802,6 @@ $include-html-global-classes: $include-html-classes;
803
802
 
804
803
  // $include-html-off-canvas-classes: $include-html-classes;
805
804
 
806
- // $include-html-off-canvas-classes: $include-html-classes;
807
-
808
805
  // $tabbar-bg: $oil;
809
806
  // $tabbar-height: rem-calc(45);
810
807
  // $tabbar-icon-width: $tabbar-height;
@@ -1400,6 +1397,8 @@ $include-html-global-classes: $include-html-classes;
1400
1397
  // $topbar-link-font-family: $body-font-family;
1401
1398
  // $topbar-link-text-transform: none;
1402
1399
  // $topbar-link-padding: $topbar-height / 3;
1400
+ // $topbar-back-link-size: $h5-font-size;
1401
+ // $topbar-link-dropdown-padding: 20px;
1403
1402
 
1404
1403
  // $topbar-button-font-size: 0.75rem;
1405
1404
  // $topbar-button-top: 7px;
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.abide = {
5
5
  name : 'abide',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  live_validate : true,
@@ -180,17 +180,17 @@
180
180
  parent = direct_parent.parent();
181
181
  }
182
182
 
183
+ if (validator) {
184
+ valid = this.settings.validators[validator].apply(this, [el, required, parent]);
185
+ validations.push(valid);
186
+ }
187
+
183
188
  if (is_radio && required) {
184
189
  validations.push(this.valid_radio(el, required));
185
190
  } else if (is_checkbox && required) {
186
191
  validations.push(this.valid_checkbox(el, required));
187
192
  } else {
188
193
 
189
- if (validator) {
190
- valid = this.settings.validators[validator].apply(this, [el, required, parent]);
191
- validations.push(valid);
192
- }
193
-
194
194
  if (el_patterns[i][1].test(value) && valid_length ||
195
195
  !required && el.value.length < 1 || $(el).attr('disabled')) {
196
196
  validations.push(true);
@@ -202,13 +202,27 @@
202
202
 
203
203
  if(validations[0]){
204
204
  this.S(el).removeAttr(this.invalid_attr);
205
+ el.setAttribute('aria-invalid', 'false');
206
+ el.removeAttribute('aria-describedby');
205
207
  parent.removeClass('error');
206
- if (label.length > 0 && this.settings.error_labels) label.removeClass('error');
208
+ if (label.length > 0 && this.settings.error_labels) {
209
+ label.removeClass('error').removeAttr('role');
210
+ }
207
211
  $(el).triggerHandler('valid');
208
212
  } else {
209
- parent.addClass('error');
210
213
  this.S(el).attr(this.invalid_attr, '');
211
- if (label.length > 0 && this.settings.error_labels) label.addClass('error');
214
+ el.setAttribute('aria-invalid', 'true');
215
+
216
+ // Try to find the error associated with the input
217
+ var errorElem = parent.find('small.error, span.error');
218
+ var errorID = errorElem.length > 0 ? errorElem[0].id : "";
219
+ if (errorID.length > 0) el.setAttribute('aria-describedby', errorID);
220
+
221
+ // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
222
+ parent.addClass('error');
223
+ if (label.length > 0 && this.settings.error_labels) {
224
+ label.addClass('error').attr('role', 'alert');
225
+ }
212
226
  $(el).triggerHandler('invalid');
213
227
  }
214
228
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.accordion = {
5
5
  name : 'accordion',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  active_class: 'active',
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.alert = {
5
5
  name : 'alert',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  callback: function (){}
@@ -18,7 +18,7 @@
18
18
  var self = this,
19
19
  S = this.S;
20
20
 
21
- $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] a.close', function (e) {
21
+ $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
22
22
  var alertBox = S(this).closest('[' + self.attr_name() + ']'),
23
23
  settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
24
24
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.clearing = {
5
5
  name : 'clearing',
6
6
 
7
- version: '5.3.3',
7
+ version: '5.4.1',
8
8
 
9
9
  settings : {
10
10
  templates : {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.dropdown = {
5
5
  name : 'dropdown',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  active_class: 'open',
@@ -103,9 +103,12 @@
103
103
  close: function (dropdown) {
104
104
  var self = this;
105
105
  dropdown.each(function () {
106
+ var original_target = $('[' + self.attr_name() + '=' + dropdown[0].id + ']') || $('aria-controls=' + dropdown[0].id+ ']');
107
+ original_target.attr('aria-expanded', "false");
106
108
  if (self.S(this).hasClass(self.settings.active_class)) {
107
109
  self.S(this)
108
110
  .css(Foundation.rtl ? 'right':'left', '-99999px')
111
+ .attr('aria-hidden', "true")
109
112
  .removeClass(self.settings.active_class)
110
113
  .prev('[' + self.attr_name() + ']')
111
114
  .removeClass(self.settings.active_class)
@@ -129,6 +132,9 @@
129
132
  .addClass(this.settings.active_class), target);
130
133
  dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
131
134
  dropdown.data('target', target.get(0)).trigger('opened').trigger('opened.fndtn.dropdown', [dropdown, target]);
135
+ dropdown.attr('aria-hidden', 'false');
136
+ target.attr('aria-expanded', 'true')
137
+ dropdown.focus();
132
138
  },
133
139
 
134
140
  data_attr: function () {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.equalizer = {
5
5
  name : 'equalizer',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  use_tallest: true,
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.interchange = {
5
5
  name : 'interchange',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  cache : {},
10
10
 
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.joyride = {
7
7
  name : 'joyride',
8
8
 
9
- version : '5.3.3',
9
+ version : '5.4.1',
10
10
 
11
11
  defaults : {
12
12
  expose : false, // turn on or off the expose feature
@@ -278,7 +278,7 @@
278
278
  window.Foundation = {
279
279
  name : 'Foundation',
280
280
 
281
- version : '5.3.3',
281
+ version : '5.4.1',
282
282
 
283
283
  media_queries : {
284
284
  small : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
@@ -4,7 +4,7 @@
4
4
  Foundation.libs['magellan-expedition'] = {
5
5
  name : 'magellan-expedition',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  active_class: 'active',
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.offcanvas = {
5
5
  name : 'offcanvas',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  open_method: 'move',
@@ -40,11 +40,12 @@
40
40
  if (self.settings.open_method !== 'overlap'){
41
41
  S(".left-submenu").removeClass(move_class + right_postfix);
42
42
  }
43
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
43
44
  })
44
45
  .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
45
46
  var settings = self.get_settings(e);
46
47
  var parent = S(this).parent();
47
-
48
+
48
49
  if(settings.close_on_click && !parent.hasClass("has-submenu") && !parent.hasClass("back")){
49
50
  self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
50
51
  parent.parent().removeClass(move_class + right_postfix);
@@ -54,18 +55,20 @@
54
55
  }else if(parent.hasClass("back")){
55
56
  e.preventDefault();
56
57
  parent.parent().removeClass(move_class + right_postfix);
57
- }
58
+ }
59
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
58
60
  })
59
61
  .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
60
62
  self.click_toggle_class(e, move_class + left_postfix);
61
63
  if (self.settings.open_method !== 'overlap'){
62
64
  S(".right-submenu").removeClass(move_class + left_postfix);
63
65
  }
66
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
64
67
  })
65
68
  .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
66
69
  var settings = self.get_settings(e);
67
70
  var parent = S(this).parent();
68
-
71
+
69
72
  if(settings.close_on_click && !parent.hasClass("has-submenu") && !parent.hasClass("back")){
70
73
  self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
71
74
  parent.parent().removeClass(move_class + left_postfix);
@@ -75,7 +78,8 @@
75
78
  }else if(parent.hasClass("back")){
76
79
  e.preventDefault();
77
80
  parent.parent().removeClass(move_class + left_postfix);
78
- }
81
+ }
82
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
79
83
  })
80
84
  .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
81
85
  self.click_remove_class(e, move_class + left_postfix);
@@ -84,6 +88,15 @@
84
88
  self.click_remove_class(e, move_class + right_postfix);
85
89
  S(".left-submenu").removeClass(move_class + left_postfix);
86
90
  }
91
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
92
+ })
93
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
94
+ self.click_remove_class(e, move_class + left_postfix);
95
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
96
+ if (right_postfix) {
97
+ self.click_remove_class(e, move_class + right_postfix);
98
+ $('.right-off-canvas-toggle').attr('aria-expanded', "false");
99
+ }
87
100
  });
88
101
  },
89
102
 
@@ -402,7 +402,7 @@
402
402
  Foundation.libs.orbit = {
403
403
  name: 'orbit',
404
404
 
405
- version: '5.3.3',
405
+ version: '5.4.1',
406
406
 
407
407
  settings: {
408
408
  animation: 'slide',
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.reveal = {
5
5
  name : 'reveal',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  locked : false,
10
10
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.slider = {
5
5
  name : 'slider',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings: {
10
10
  start: 0,
@@ -128,6 +128,15 @@
128
128
 
129
129
  $handle.parent().children('input[type=hidden]').val(value);
130
130
 
131
+ if (!$handle[0].hasAttribute('aria-valuemin')) {
132
+ $handle.attr({
133
+ 'aria-valuemin': settings.start,
134
+ 'aria-valuemax': settings.end,
135
+ });
136
+ }
137
+ $handle.attr('aria-valuenow', value);
138
+
139
+
131
140
  if (settings.input_id != '') {
132
141
  $(settings.display_selector).each(function(){
133
142
  if (this.hasOwnProperty('value')) {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.tab = {
5
5
  name : 'tab',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  active_class: 'active',
@@ -35,17 +35,20 @@
35
35
  var self = this,
36
36
  S = this.S;
37
37
 
38
- S(this.scope)
39
- .off('.tab')
40
- // Click event: tab title
41
- .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
38
+ var usual_tab_behavior = function (e) {
42
39
  var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
43
40
  if (!settings.is_hover || Modernizr.touch) {
44
41
  e.preventDefault();
45
42
  e.stopPropagation();
46
43
  self.toggle_active_tab(S(this).parent());
47
44
  }
48
- })
45
+ };
46
+
47
+ S(this.scope)
48
+ .off('.tab')
49
+ // Click event: tab title
50
+ .on('focus.fndtn.tab', '[' + this.attr_name() + '] > * > a', usual_tab_behavior )
51
+ .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', usual_tab_behavior )
49
52
  // Hover event: tab title
50
53
  .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
51
54
  var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
@@ -56,7 +59,14 @@
56
59
  S(window).on('hashchange.fndtn.tab', function (e) {
57
60
  e.preventDefault();
58
61
  self.handle_location_hash_change();
59
- });
62
+
63
+ }).on('keyup', function (e) {
64
+         if (e.keyword == 9) {
65
+           // active tab
66
+           console.log(document.querySelector('[data-tab] .tab-title :focus'))
67
+         }
68
+       });
69
+ ;
60
70
  },
61
71
 
62
72
  handle_location_hash_change : function () {
@@ -96,11 +106,58 @@
96
106
  toggle_active_tab: function (tab, location_hash) {
97
107
  var S = this.S,
98
108
  tabs = tab.closest('[' + this.attr_name() + ']'),
109
+ tab_link = tab.find('a'),
99
110
  anchor = tab.children('a').first(),
100
111
  target_hash = '#' + anchor.attr('href').split('#')[1],
101
112
  target = S(target_hash),
102
113
  siblings = tab.siblings(),
103
- settings = tabs.data(this.attr_name(true) + '-init');
114
+ settings = tabs.data(this.attr_name(true) + '-init'),
115
+ interpret_keyup_action = function(e) {
116
+ // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
117
+
118
+ // define current, previous and next (possible) tabs
119
+
120
+ var $original = $(this);
121
+ var $prev = $(this).parents('li').prev().children('[role="tab"]');
122
+ var $next = $(this).parents('li').next().children('[role="tab"]');
123
+ var $target;
124
+
125
+ // find the direction (prev or next)
126
+
127
+ switch (e.keyCode) {
128
+ case 37:
129
+ $target = $prev;
130
+ break;
131
+ case 39:
132
+ $target = $next;
133
+ break;
134
+ default:
135
+ $target = false
136
+ break;
137
+ }
138
+
139
+ if ($target.length) {
140
+ $original.attr({
141
+ 'tabindex' : '-1',
142
+ 'aria-selected' : null
143
+ });
144
+ $target.attr({
145
+ 'tabindex' : '0',
146
+ 'aria-selected' : true
147
+ }).focus();
148
+ }
149
+
150
+ // Hide panels
151
+
152
+ $('[role="tabpanel"]')
153
+ .attr('aria-hidden', 'true');
154
+
155
+ // Show panel which corresponds to target
156
+
157
+ $('#' + $(document.activeElement).attr('href').substring(1))
158
+ .attr('aria-hidden', null);
159
+
160
+ };
104
161
 
105
162
  // allow usage of data-tab-content attribute instead of href
106
163
  if (S(this).data(this.data_attr('tab-content'))) {
@@ -144,12 +201,18 @@
144
201
  // WARNING: The activation and deactivation of the tab content must
145
202
  // occur after the deep linking in order to properly refresh the browser
146
203
  // window (notably in Chrome).
204
+ // Clean up multiple attr instances to done once
147
205
  tab.addClass(settings.active_class).triggerHandler('opened');
148
- siblings.removeClass(settings.active_class);
149
- target.siblings().removeClass(settings.active_class).end().addClass(settings.active_class);
206
+ tab_link.attr({"aria-selected": "true", tabindex: 0});
207
+ siblings.removeClass(settings.active_class)
208
+ siblings.find('a').attr({"aria-selected": "false", tabindex: -1});
209
+ target.siblings().removeClass(settings.active_class).attr({"aria-hidden": "true", tabindex: -1}).end().addClass(settings.active_class).attr('aria-hidden', 'false').find(':first-child').attr('tabindex', 0);
150
210
  settings.callback(tab);
211
+ target.children().attr('tab-index', 0);
151
212
  target.triggerHandler('toggled', [tab]);
152
213
  tabs.triggerHandler('toggled', [target]);
214
+
215
+ tab_link.on('keydown', interpret_keyup_action );
153
216
  },
154
217
 
155
218
  data_attr: function (str) {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.tooltip = {
5
5
  name : 'tooltip',
6
6
 
7
- version : '5.3.3',
7
+ version : '5.4.1',
8
8
 
9
9
  settings : {
10
10
  additional_inheritable_classes : [],
@@ -15,9 +15,9 @@
15
15
  hover_delay: 200,
16
16
  show_on : 'all',
17
17
  tip_template : function (selector, content) {
18
- return '<span data-selector="' + selector + '" class="'
18
+ return '<span data-selector="' + selector + '" id="' + selector + '" class="'
19
19
  + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
20
- + '">' + content + '<span class="nub"></span></span>';
20
+ + '" role="tooltip">' + content + '<span class="nub"></span></span>';
21
21
  }
22
22
  },
23
23
 
@@ -143,7 +143,9 @@
143
143
 
144
144
  if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') {
145
145
  dataSelector = this.random_str(6);
146
- $target.attr('data-selector', dataSelector);
146
+ $target
147
+ .attr('data-selector', dataSelector)
148
+ .attr('aria-describedby', dataSelector);
147
149
  }
148
150
 
149
151
  return (id && id.length > 0) ? id : dataSelector;
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.topbar = {
5
5
  name : 'topbar',
6
6
 
7
- version: '5.3.3',
7
+ version: '5.4.1',
8
8
 
9
9
  settings : {
10
10
  index : 0,
@@ -277,6 +277,15 @@
277
277
  $movedLi.removeClass('moved');
278
278
  }, 300);
279
279
  });
280
+
281
+ // Show dropdown menus when their items are focused
282
+ S(this.scope).find('.dropdown a')
283
+ .focus(function() {
284
+ $(this).parents('.has-dropdown').addClass('hover');
285
+ })
286
+ .blur(function() {
287
+ $(this).parents('.has-dropdown').removeClass('hover');
288
+ });
280
289
  },
281
290
 
282
291
  resize : function () {
@@ -100,7 +100,6 @@ $include-html-global-classes: $include-html-classes;
100
100
  // $body-bg: $white;
101
101
  // $body-font-color: $jet;
102
102
  // $body-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
103
- // $font-weight-normal:normal;
104
103
  // $body-font-weight: $font-weight-normal;
105
104
  // $body-font-style: normal;
106
105
 
@@ -803,8 +802,6 @@ $include-html-global-classes: $include-html-classes;
803
802
 
804
803
  // $include-html-off-canvas-classes: $include-html-classes;
805
804
 
806
- // $include-html-off-canvas-classes: $include-html-classes;
807
-
808
805
  // $tabbar-bg: $oil;
809
806
  // $tabbar-height: rem-calc(45);
810
807
  // $tabbar-icon-width: $tabbar-height;
@@ -1400,6 +1397,8 @@ $include-html-global-classes: $include-html-classes;
1400
1397
  // $topbar-link-font-family: $body-font-family;
1401
1398
  // $topbar-link-text-transform: none;
1402
1399
  // $topbar-link-padding: $topbar-height / 3;
1400
+ // $topbar-back-link-size: $h5-font-size;
1401
+ // $topbar-link-dropdown-padding: 20px;
1403
1402
 
1404
1403
  // $topbar-button-font-size: 0.75rem;
1405
1404
  // $topbar-button-top: 7px;
@@ -175,7 +175,7 @@ $button-disabled-cursor: $cursor-default-value !default;
175
175
  &:focus { background-color: $bg; }
176
176
  }
177
177
 
178
- // We can control how much button radius us used.
178
+ // We can control how much button radius is used.
179
179
  @if $radius == true { @include radius($button-radius); }
180
180
  @else if $radius { @include radius($radius); }
181
181
 
@@ -321,14 +321,14 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
321
321
  -webkit-appearance: none !important;
322
322
  -webkit-border-radius: 0px;
323
323
  background-color: $select-bg-color;
324
-
324
+
325
325
  // The custom arrow have some fake horizontal padding so we can align it
326
326
  // from the right side of the element without relying on CSS3
327
327
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
328
-
328
+
329
329
  // We can safely use leftmost and rightmost now
330
330
  background-position: if($text-direction == 'rtl', 0%, 100%) center;
331
-
331
+
332
332
  background-repeat: no-repeat;
333
333
  border: $input-border-width $input-border-style $input-border-color;
334
334
  padding: $form-spacing / 2;
@@ -397,12 +397,8 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
397
397
  .postfix.button.round { @include radius(0); @include side-radius($opposite-direction, $button-round); }
398
398
 
399
399
  /* Separate prefix and postfix styles when on span or label so buttons keep their own */
400
- span.prefix,label.prefix { @include prefix();
401
- &.radius { @include radius(0); @include side-radius($default-float, $global-radius); }
402
- }
403
- span.postfix,label.postfix { @include postfix();
404
- &.radius { @include radius(0); @include side-radius($opposite-direction, $global-radius); }
405
- }
400
+ span.prefix,label.prefix { @include prefix(); }
401
+ span.postfix,label.postfix { @include postfix(); }
406
402
 
407
403
  /* We use this to get basic styling on all basic form elements */
408
404
  input[type="text"],
@@ -431,6 +427,35 @@ $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%) !default;
431
427
  }
432
428
  }
433
429
 
430
+ form {
431
+ .row {
432
+ .prefix-radius.row.collapse {
433
+ input,
434
+ textarea,
435
+ select { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
436
+ .prefix { @include radius(0); @include side-radius($default-float, $button-radius); }
437
+ }
438
+ .postfix-radius.row.collapse {
439
+ input,
440
+ textarea,
441
+ select { @include radius(0); @include side-radius($default-float, $button-radius); }
442
+ .postfix { @include radius(0); @include side-radius($opposite-direction, $button-radius); }
443
+ }
444
+ .prefix-round.row.collapse {
445
+ input,
446
+ textarea,
447
+ select { @include radius(0); @include side-radius($opposite-direction, $button-round); }
448
+ .prefix { @include radius(0); @include side-radius($default-float, $button-round); }
449
+ }
450
+ .postfix-round.row.collapse {
451
+ input,
452
+ textarea,
453
+ select { @include radius(0); @include side-radius($default-float, $button-round); }
454
+ .postfix { @include radius(0); @include side-radius($opposite-direction, $button-round); }
455
+ }
456
+ }
457
+ }
458
+
434
459
  input[type="submit"] {
435
460
  -webkit-appearance: none;
436
461
  -webkit-border-radius: 0px;
@@ -228,7 +228,6 @@ $success-color: #43AC6A !default; // sea-green
228
228
  $warning-color: #f08a24 !default; // carrot
229
229
  $info-color: #a0d3e8 !default; // cornflower
230
230
 
231
-
232
231
  $white : #FFFFFF !default;
233
232
  $ghost : #FAFAFA !default;
234
233
  $snow : #F9F9F9 !default;
@@ -249,7 +248,6 @@ $oil : #333333 !default;
249
248
  $jet : #222222 !default;
250
249
  $black : #000000 !default;
251
250
 
252
-
253
251
  // We use these to define default font weights
254
252
  $font-weight-normal: normal !default;
255
253
  $font-weight-bold: bold !default;
@@ -327,6 +325,7 @@ $large: $large-up;
327
325
 
328
326
 
329
327
  //We use this as cursors values for enabling the option of having custom cursors in the whole site's stylesheet
328
+ $cursor-auto-value: auto !default;
330
329
  $cursor-crosshair-value: crosshair !default;
331
330
  $cursor-default-value: default !default;
332
331
  $cursor-pointer-value: pointer !default;
@@ -341,7 +340,7 @@ $cursor-text-value: text !default;
341
340
  // Forward slash placed around everything to convince PhantomJS to read the value.
342
341
 
343
342
  meta.foundation-version {
344
- font-family: "/{{ VERSION }}/";
343
+ font-family: "/5.4.1/";
345
344
  }
346
345
 
347
346
  meta.foundation-mq-small {
@@ -399,7 +398,7 @@ $cursor-text-value: text !default;
399
398
  font-style: $body-font-style;
400
399
  line-height: $base-line-height; // Set to $base-line-height to take on browser default of 150%
401
400
  position: relative;
402
- cursor: $cursor-default-value;
401
+ cursor: $cursor-auto-value;
403
402
  }
404
403
 
405
404
  a:hover { cursor: $cursor-pointer-value; }
@@ -106,12 +106,15 @@ $menu-slide: "transform 500ms ease" !default;
106
106
  top: 0;
107
107
  bottom: 0;
108
108
  position: absolute;
109
- overflow-y: auto;
109
+ overflow-x: hidden;
110
+ overflow-y: auto;
110
111
  background: $off-canvas-bg;
111
112
  z-index: 1001;
112
113
  box-sizing: content-box;
113
114
  transition: transform 500ms ease 0s;
114
115
  -webkit-overflow-scrolling: touch;
116
+ -ms-overflow-style: -ms-autohiding-scrollbar;
117
+
115
118
  @if $position == left {
116
119
  @include translate3d(-100.5%,0,0);
117
120
  left: 0;
@@ -394,7 +397,8 @@ $menu-slide: "transform 500ms ease" !default;
394
397
  bottom: 0;
395
398
  position: absolute;
396
399
  margin: 0;
397
- overflow-y: auto;
400
+ overflow-x: hidden;
401
+ overflow-y: auto;
398
402
  background: $off-canvas-bg;
399
403
  z-index: 1002;
400
404
  box-sizing: content-box;
@@ -21,10 +21,11 @@ $range-slider-bar-height: rem-calc(16) !default;
21
21
 
22
22
  $range-slider-bar-border-width: 1px !default;
23
23
  $range-slider-bar-border-style: solid !default;
24
- $range-slider-bar-border-color: $gainsboro !default;
24
+ $range-slider-bar-border-color: $gainsboro !default;
25
25
  $range-slider-radius: $global-radius !default;
26
26
  $range-slider-round: $global-rounded !default;
27
27
  $range-slider-bar-bg-color: $ghost !default;
28
+ $range-slider-active-segment-bg-color: scale-color($secondary-color, $lightness: -1%) !default;
28
29
 
29
30
  // Vertical bar styles
30
31
  $range-slider-vertical-bar-width: rem-calc(16) !default;
@@ -79,7 +80,7 @@ $range-slider-disabled-opacity: 0.7 !default;
79
80
  }
80
81
 
81
82
  @mixin range-slider-bar(
82
- $bg: $range-slider-bar-bg-color,
83
+ $bg: $range-slider-bar-bg-color,
83
84
  $radius:false) {
84
85
  @include range-slider-bar-base;
85
86
  @include range-slider-bar-style;
@@ -94,6 +95,10 @@ $range-slider-disabled-opacity: 0.7 !default;
94
95
  height: $range-slider-handle-height;
95
96
  border: $range-slider-handle-border-width $range-slider-handle-border-style $range-slider-handle-border-color;
96
97
  cursor: $range-slider-handle-cursor;
98
+
99
+ // This removes the 300ms touch delay on Windows 8
100
+ -ms-touch-action: manipulation;
101
+ touch-action: manipulation;
97
102
  }
98
103
  @mixin range-slider-handle-style(
99
104
  $bg: true,
@@ -153,7 +158,7 @@ $range-slider-disabled-opacity: 0.7 !default;
153
158
  display: inline-block;
154
159
  position: absolute;
155
160
  height: $range-slider-bar-height - rem-calc((strip-unit($range-slider-bar-border-width) * 2));
156
- background: scale-color($secondary-color, $lightness: -1%);
161
+ background: $range-slider-active-segment-bg-color;
157
162
  }
158
163
  .range-slider-handle {
159
164
  @include range-slider-handle-base;
@@ -65,11 +65,7 @@ $close-reveal-modal-class: "close-reveal-modal" !default;
65
65
  // $base-style - Provides reveal base styles, can be set to false to override. Default: true, Options: false
66
66
  // $width - Sets reveal width Default: $reveal-default-width || 80%
67
67
  //
68
- @mixin reveal-modal-base(
69
- $base-style:true,
70
- $width:$reveal-default-width,
71
- $max-width:$reveal-max-width,
72
- $border-radius: $reveal-radius) {
68
+ @mixin reveal-modal-base( $base-style: true, $width:$reveal-default-width, $max-width:$reveal-max-width, $border-radius: $reveal-radius) {
73
69
  @if $base-style {
74
70
  visibility: hidden;
75
71
  display: none;
@@ -77,18 +73,19 @@ $close-reveal-modal-class: "close-reveal-modal" !default;
77
73
  z-index: 1005;
78
74
  width: 100vw;
79
75
  top:0;
80
- border-radius: $border-radius;
76
+ border-radius: $border-radius;
81
77
  #{$default-float}: 0;
78
+
82
79
  @media #{$small-only} {
83
80
  min-height:100vh;
84
81
  }
85
82
 
86
83
  // Make sure rows don't have a min-width on them
87
- .column,
88
- .columns { min-width: 0; }
84
+ .column, .columns { min-width: 0; }
89
85
 
90
86
  // Get rid of margin from first and last element inside modal
91
87
  & > :first-child { margin-top: 0; }
88
+
92
89
  & > :last-child { margin-bottom: 0; }
93
90
  }
94
91
 
@@ -201,12 +198,15 @@ $close-reveal-modal-class: "close-reveal-modal" !default;
201
198
 
202
199
  dialog {
203
200
  @extend .#{$reveal-modal-class};
201
+ display: none;
204
202
 
205
- &::backdrop {
203
+ &::backdrop, & + .backdrop {
206
204
  @include reveal-bg(false);
207
205
  }
208
206
 
209
- //&[open]{ display: block; } As far as I know, this is no longer needed; this is the expected behavior in all browsers that currently support dialog or plan to with their nightly builds.
207
+ &[open]{
208
+ display: block;
209
+ }
210
210
  }
211
211
 
212
212
  // Reveal Print Styles: It should be invislbe, adds no value being printed.
@@ -70,6 +70,7 @@ $side-nav-divider-color: scale-color($white, $lightness: 10%) !default;
70
70
  li {
71
71
  margin: $side-nav-list-margin;
72
72
  font-size: $font-size;
73
+ font-weight: $side-nav-font-weight;
73
74
 
74
75
  a:not(.button) {
75
76
  display: block;
@@ -63,7 +63,11 @@ $switch-active-color: $primary-color;
63
63
  // So that we don't need to recreate the form with any JS, we use the
64
64
  // existing checkbox or radio button, but we cleverly position and hide it.
65
65
  input {
66
- display: none;
66
+ opacity: 0;
67
+ position: absolute;
68
+ top: 9px;
69
+ left: 10px;
70
+ padding:0;
67
71
 
68
72
  & + label { margin-left: 0; margin-right: 0; }
69
73
  }
@@ -182,7 +186,10 @@ $switch-active-color: $primary-color;
182
186
  $paddle-bg: $switch-paddle-bg,
183
187
  $active-color: $switch-active-color,
184
188
  $radius:false,
185
- $base-style:true) {
189
+ $base-style:true) {
190
+ padding: 0;
191
+ border: none;
192
+ position: relative;
186
193
  @include switch-base($transition-speed, $transition-ease);
187
194
  @include switch-size($height);
188
195
  @include switch-style($paddle-bg, $radius, $base-style);
@@ -190,7 +197,7 @@ $switch-active-color: $primary-color;
190
197
 
191
198
  @include exports("switch") {
192
199
  @if $include-html-form-classes {
193
- div.switch {
200
+ .switch {
194
201
  @include switch;
195
202
 
196
203
  // Large radio switches
@@ -63,8 +63,8 @@ $table-margin-bottom: rem-calc(20) !default;
63
63
  background: $table-bg;
64
64
  margin-bottom: $table-margin-bottom;
65
65
  border: $table-border-style $table-border-size $table-border-color;
66
- table-layout:fixed;
67
- width:100%;
66
+ table-layout: fixed;
67
+ width: 100%;
68
68
 
69
69
  caption {
70
70
  background: $table-caption-bg;
@@ -48,7 +48,8 @@ $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%) !def
48
48
  $topbar-link-font-family: $body-font-family !default;
49
49
  $topbar-link-text-transform: none !default;
50
50
  $topbar-link-padding: $topbar-height / 3 !default;
51
-
51
+ $topbar-back-link-size: $h5-font-size !default;
52
+ $topbar-link-dropdown-padding: 20px;
52
53
  $topbar-button-font-size: 0.75rem !default;
53
54
  $topbar-button-top: 7px !default;
54
55
 
@@ -163,13 +164,18 @@ $topbar-arrows: true !default; //Set false to remove the triangle icon from the
163
164
  input { height: 1.8rem; padding-top: .35rem; padding-bottom: .35rem; font-size: $topbar-button-font-size; }
164
165
 
165
166
  .button, button {
166
- padding-top: .45rem;
167
- padding-bottom: .35rem;
167
+ padding-top: .35rem + rem-calc(1);
168
+ padding-bottom: .35rem + rem-calc(1);
168
169
  margin-bottom: 0;
169
170
  font-size: $topbar-button-font-size;
170
171
  // position: relative;
171
172
  // top: -1px;
172
-
173
+
174
+ // Corrects a slight misalignment when put next to an input field
175
+ @media #{$small-only} {
176
+ position: relative;
177
+ top: -1px;
178
+ }
173
179
  }
174
180
 
175
181
  // Title Area
@@ -402,11 +408,12 @@ $topbar-arrows: true !default; //Set false to remove the triangle icon from the
402
408
  }
403
409
 
404
410
  &.title h5, &.parent-link {
411
+ // Back Button
405
412
  margin-bottom: 0;
406
413
  margin-top: 0;
407
414
  a {
408
415
  color: $topbar-link-color;
409
- line-height: $topbar-height / 2;
416
+ // line-height: $topbar-height / 2;
410
417
  display: block;
411
418
  &:hover { background:none; }
412
419
  }
@@ -515,7 +522,7 @@ $topbar-arrows: true !default; //Set false to remove the triangle icon from the
515
522
  @if($topbar-arrows){
516
523
 
517
524
  & > a {
518
- padding-#{$opposite-direction}: $topbar-link-padding + 20 !important;
525
+ padding-#{$opposite-direction}: $topbar-link-padding + $topbar-link-dropdown-padding !important;
519
526
  &:after {
520
527
  @include css-triangle($topbar-dropdown-toggle-size, rgba($topbar-dropdown-toggle-color, $topbar-dropdown-toggle-alpha), top);
521
528
  margin-top: -($topbar-dropdown-toggle-size / 2);
@@ -536,6 +543,9 @@ $topbar-arrows: true !default; //Set false to remove the triangle icon from the
536
543
  @include topbar-show-dropdown();
537
544
  }
538
545
  }
546
+ > a:focus + .dropdown {
547
+ @include topbar-show-dropdown();
548
+ }
539
549
 
540
550
  .dropdown li.has-dropdown {
541
551
  & > a {
@@ -656,6 +666,9 @@ $topbar-arrows: true !default; //Set false to remove the triangle icon from the
656
666
  @include topbar-show-dropdown();
657
667
  }
658
668
  }
669
+ > a:focus + .dropdown {
670
+ @include topbar-show-dropdown();
671
+ }
659
672
  }
660
673
  }
661
674
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foundation-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.1.0
4
+ version: 5.4.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-26 00:00:00.000000000 Z
12
+ date: 2014-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -238,7 +238,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
238
  version: '0'
239
239
  segments:
240
240
  - 0
241
- hash: 2024180273130116904
241
+ hash: 912037354965873330
242
242
  required_rubygems_version: !ruby/object:Gem::Requirement
243
243
  none: false
244
244
  requirements:
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  segments:
249
249
  - 0
250
- hash: 2024180273130116904
250
+ hash: 912037354965873330
251
251
  requirements: []
252
252
  rubyforge_project:
253
253
  rubygems_version: 1.8.23