zurb-foundation 4.2.1 → 4.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/Gemfile.lock +2 -2
  2. data/README.md +9 -1
  3. data/composer.json +9 -0
  4. data/docs/CHANGELOG.md +19 -5
  5. data/docs/components/alert-boxes.html.erb +19 -19
  6. data/docs/components/breadcrumbs.html.erb +15 -15
  7. data/docs/components/buttons.html.erb +19 -19
  8. data/docs/components/clearing.html.erb +13 -13
  9. data/docs/components/dropdown-buttons.html.erb +13 -13
  10. data/docs/components/dropdown.html.erb +18 -18
  11. data/docs/components/flex-video.html.erb +3 -3
  12. data/docs/components/forms.html.erb +39 -39
  13. data/docs/components/grid.html.erb +1 -1
  14. data/docs/components/inline-lists.html.erb +5 -5
  15. data/docs/components/joyride.html.erb +18 -18
  16. data/docs/components/keystrokes.html.erb +10 -10
  17. data/docs/components/kitchen-sink.html.erb +1 -1
  18. data/docs/components/labels.html.erb +2 -2
  19. data/docs/components/pagination.html.erb +17 -17
  20. data/docs/components/panels.html.erb +13 -10
  21. data/docs/components/pricing-tables.html.erb +30 -30
  22. data/docs/components/reveal.html.erb +14 -14
  23. data/docs/components/section.html.erb +15 -15
  24. data/docs/components/side-nav.html.erb +9 -9
  25. data/docs/components/split-buttons.html.erb +23 -23
  26. data/docs/components/sub-nav.html.erb +11 -11
  27. data/docs/components/switch.html.erb +24 -24
  28. data/docs/components/tables.html.erb +15 -15
  29. data/docs/components/thumbnails.html.erb +5 -5
  30. data/docs/components/tooltips.html.erb +18 -18
  31. data/docs/components/top-bar.html.erb +39 -39
  32. data/docs/components/type.html.erb +63 -63
  33. data/docs/css/docs.scss +3 -1
  34. data/docs/img/favicons/apple-touch-icon-114x114-precomposed.png +0 -0
  35. data/docs/img/favicons/apple-touch-icon-144x144-precomposed.png +0 -0
  36. data/docs/img/favicons/apple-touch-icon-72x72-precomposed.png +0 -0
  37. data/docs/img/favicons/apple-touch-icon-precomposed.png +0 -0
  38. data/docs/img/favicons/favicon.ico +0 -0
  39. data/docs/layout.html.erb +10 -1
  40. data/docs/sass.html.erb +258 -292
  41. data/js/foundation/foundation.alerts.js +3 -3
  42. data/js/foundation/foundation.clearing.js +5 -5
  43. data/js/foundation/foundation.dropdown.js +1 -1
  44. data/js/foundation/foundation.forms.js +23 -14
  45. data/js/foundation/foundation.interchange.js +8 -8
  46. data/js/foundation/foundation.joyride.js +2 -2
  47. data/js/foundation/foundation.js +2 -2
  48. data/js/foundation/foundation.magellan.js +4 -2
  49. data/js/foundation/foundation.orbit.js +2 -2
  50. data/js/foundation/foundation.placeholder.js +21 -1
  51. data/js/foundation/foundation.reveal.js +3 -3
  52. data/js/foundation/foundation.section.js +4 -3
  53. data/js/foundation/foundation.tooltips.js +2 -2
  54. data/js/foundation/foundation.topbar.js +8 -8
  55. data/js/foundation/index.js +1 -1
  56. data/js/vendor/jquery.js +4412 -4202
  57. data/js/vendor/zepto.js +116 -0
  58. data/lib/foundation/sprockets.rb +4 -0
  59. data/lib/foundation/version.rb +1 -1
  60. data/lib/zurb-foundation.rb +6 -2
  61. data/scss/foundation/_variables.scss +56 -55
  62. data/scss/foundation/components/_alert-boxes.scss +20 -20
  63. data/scss/foundation/components/_block-grid.scss +1 -1
  64. data/scss/foundation/components/_breadcrumbs.scss +15 -15
  65. data/scss/foundation/components/_buttons.scss +23 -21
  66. data/scss/foundation/components/_clearing.scss +14 -13
  67. data/scss/foundation/components/_custom-forms.scss +35 -35
  68. data/scss/foundation/components/_dropdown-buttons.scss +13 -13
  69. data/scss/foundation/components/_dropdown.scss +19 -18
  70. data/scss/foundation/components/_flex-video.scss +3 -3
  71. data/scss/foundation/components/_forms.scss +40 -40
  72. data/scss/foundation/components/_grid.scss +1 -1
  73. data/scss/foundation/components/_inline-lists.scss +4 -4
  74. data/scss/foundation/components/_joyride.scss +16 -16
  75. data/scss/foundation/components/_keystrokes.scss +10 -10
  76. data/scss/foundation/components/_labels.scss +3 -3
  77. data/scss/foundation/components/_pagination.scss +17 -17
  78. data/scss/foundation/components/_panels.scss +21 -18
  79. data/scss/foundation/components/_pricing-tables.scss +30 -30
  80. data/scss/foundation/components/_reveal.scss +14 -14
  81. data/scss/foundation/components/_section.scss +16 -16
  82. data/scss/foundation/components/_side-nav.scss +9 -9
  83. data/scss/foundation/components/_split-buttons.scss +23 -23
  84. data/scss/foundation/components/_sub-nav.scss +11 -11
  85. data/scss/foundation/components/_switch.scss +23 -23
  86. data/scss/foundation/components/_tables.scss +15 -15
  87. data/scss/foundation/components/_thumbs.scss +5 -5
  88. data/scss/foundation/components/_tooltips.scss +17 -17
  89. data/scss/foundation/components/_top-bar.scss +37 -37
  90. data/scss/foundation/components/_type.scss +63 -63
  91. data/templates/upgrade/manifest.rb +2 -3
  92. metadata +11 -4
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.alerts = {
7
7
  name : 'alerts',
8
8
 
9
- version : '4.0.0',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  speed: 300, // fade out speed
@@ -20,8 +20,8 @@
20
20
  $.extend(true, this.settings, method);
21
21
  }
22
22
 
23
- if (typeof method != 'string') {
24
- if (!this.settings.init) this.events();
23
+ if (typeof method !== 'string') {
24
+ if (!this.settings.init) { this.events(); }
25
25
 
26
26
  return this.settings.init;
27
27
  } else {
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.clearing = {
7
7
  name : 'clearing',
8
8
 
9
- version : '4.1.3',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  templates : {
@@ -33,7 +33,7 @@
33
33
  options = $.extend(true, this.settings, method);
34
34
  }
35
35
 
36
- if (typeof method != 'string') {
36
+ if (typeof method !== 'string') {
37
37
  $(this.scope).find('ul[data-clearing]').each(function () {
38
38
  var $el = $(this),
39
39
  options = options || {},
@@ -79,9 +79,9 @@
79
79
 
80
80
  // if clearing is open and the current image is
81
81
  // clicked, go to the next image in sequence
82
- if (target.hasClass('visible')
83
- && current[0] === target[0]
84
- && next.length > 0 && self.is_open(current)) {
82
+ if (target.hasClass('visible') &&
83
+ current[0] === target[0] &&
84
+ next.length > 0 && self.is_open(current)) {
85
85
  target = next;
86
86
  image = target.find('img');
87
87
  }
@@ -23,7 +23,7 @@
23
23
  $.extend(true, this.settings, method);
24
24
  }
25
25
 
26
- if (typeof method != 'string') {
26
+ if (typeof method !== 'string') {
27
27
 
28
28
  if (!this.settings.init) {
29
29
  this.events();
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.forms = {
5
5
  name: 'forms',
6
6
 
7
- version: '4.2.1',
7
+ version: '4.2.2',
8
8
 
9
9
  cache: {},
10
10
 
@@ -19,7 +19,7 @@
19
19
  $.extend(true, this.settings, method);
20
20
  }
21
21
 
22
- if (typeof method != 'string') {
22
+ if (typeof method !== 'string') {
23
23
  if (!this.settings.init) {
24
24
  this.events();
25
25
  }
@@ -33,12 +33,17 @@
33
33
  },
34
34
 
35
35
  assemble: function () {
36
- $('form.custom input[type="radio"]', $(this.scope)).not('[data-customforms="disabled"]')
36
+ $('form.custom input[type="radio"]', $(this.scope))
37
+ .not('[data-customforms="disabled"]')
38
+ .not('.' + this.settings.disable_class)
37
39
  .each(this.append_custom_markup);
38
- $('form.custom input[type="checkbox"]', $(this.scope)).not('[data-customforms="disabled"]')
40
+ $('form.custom input[type="checkbox"]', $(this.scope))
41
+ .not('[data-customforms="disabled"]')
42
+ .not('.' + this.settings.disable_class)
39
43
  .each(this.append_custom_markup);
40
44
  $('form.custom select', $(this.scope))
41
45
  .not('[data-customforms="disabled"]')
46
+ .not('.' + this.settings.disable_class)
42
47
  .not('[multiple=multiple]')
43
48
  .each(this.append_custom_select);
44
49
  },
@@ -57,12 +62,13 @@
57
62
  e.stopPropagation();
58
63
  self.toggle_radio($(this));
59
64
  })
60
- .on('change.fndtn.forms', 'form.custom select:not([data-customforms="disabled"])', function (e, force_refresh) {
65
+ .on('change.fndtn.forms', 'form.custom select', function (e, force_refresh) {
66
+ if (!$(this).not('[data-customforms="disabled"])')) return;
61
67
  self.refresh_custom_select($(this), force_refresh);
62
68
  })
63
69
  .on('click.fndtn.forms', 'form.custom label', function (e) {
64
70
  if ($(e.target).is('label')) {
65
- var $associatedElement = $('#' + self.escape($(this).attr('for')) + ':not([data-customforms="disabled"])'),
71
+ var $associatedElement = $('#' + self.escape($(this).attr('for'))).not('[data-customforms="disabled"]'),
66
72
  $customCheckbox,
67
73
  $customRadio;
68
74
 
@@ -71,7 +77,7 @@
71
77
  e.preventDefault();
72
78
  $customCheckbox = $(this).find('span.custom.checkbox');
73
79
  //the checkbox might be outside after the label or inside of another element
74
- if ($customCheckbox.length == 0) {
80
+ if ($customCheckbox.length === 0) {
75
81
  $customCheckbox = $associatedElement.add(this).siblings('span.custom.checkbox').first();
76
82
  }
77
83
  self.toggle_checkbox($customCheckbox);
@@ -79,7 +85,7 @@
79
85
  e.preventDefault();
80
86
  $customRadio = $(this).find('span.custom.radio');
81
87
  //the radio might be outside after the label or inside of another element
82
- if ($customRadio.length == 0) {
88
+ if ($customRadio.length === 0) {
83
89
  $customRadio = $associatedElement.add(this).siblings('span.custom.radio').first();
84
90
  }
85
91
  self.toggle_radio($customRadio);
@@ -136,7 +142,7 @@
136
142
  .text($this.text());
137
143
 
138
144
  $this.closest('ul').find('li').each(function (index) {
139
- if ($this[0] == this) {
145
+ if ($this[0] === this) {
140
146
  selectedIndex = index;
141
147
  }
142
148
  });
@@ -230,6 +236,10 @@
230
236
  var $this = $(sel),
231
237
  type = $this.attr('type'),
232
238
  $span = $this.next('span.custom.' + type);
239
+
240
+ if (!$this.parent().hasClass('switch')) {
241
+ $this.addClass('hidden-field');
242
+ }
233
243
 
234
244
  if ($span.length === 0) {
235
245
  $span = $('<span class="custom ' + type + '"></span>').insertAfter($this);
@@ -254,14 +264,12 @@
254
264
  $listItems,
255
265
  $currentSelect = false;
256
266
 
257
- if ($this.hasClass(self.settings.disable_class)) return;
258
-
259
267
  if ($customSelect.length === 0) {
260
268
  var customSelectSize = $this.hasClass('small') ? 'small' : $this.hasClass('medium') ? 'medium' : $this.hasClass('large') ? 'large' : $this.hasClass('expand') ? 'expand' : '';
261
269
 
262
270
  $customSelect = $('<div class="' + ['custom', 'dropdown', customSelectSize].concat(copyClasses).filter(function (item, idx, arr) {
263
- if (item == '') return false;
264
- return arr.indexOf(item) == idx;
271
+ if (item === '') return false;
272
+ return arr.indexOf(item) === idx;
265
273
  }).join(' ') + '"><a href="#" class="selector"></a><ul /></div>');
266
274
 
267
275
  $selector = $customSelect.find(".selector");
@@ -355,7 +363,7 @@
355
363
  $options = $select.find('option'),
356
364
  $listItems = $customSelect.find('li');
357
365
 
358
- if ($listItems.length != this.cache[$customSelect.data('id')] || force_refresh) {
366
+ if ($listItems.length !== this.cache[$customSelect.data('id')] || force_refresh) {
359
367
  $customSelect.find('ul').html('');
360
368
 
361
369
  $options.each(function () {
@@ -423,6 +431,7 @@
423
431
  },
424
432
 
425
433
  escape: function (text) {
434
+ if (!text) return '';
426
435
  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
427
436
  },
428
437
 
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.interchange = {
7
7
  name : 'interchange',
8
8
 
9
- version : '4.2.1',
9
+ version : '4.2.2',
10
10
 
11
11
  cache : {},
12
12
 
@@ -20,12 +20,12 @@
20
20
  large : 'only screen and (min-width: 1440px)',
21
21
  landscape : 'only screen and (orientation: landscape)',
22
22
  portrait : 'only screen and (orientation: portrait)',
23
- retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),'
24
- + 'only screen and (min--moz-device-pixel-ratio: 2),'
25
- + 'only screen and (-o-min-device-pixel-ratio: 2/1),'
26
- + 'only screen and (min-device-pixel-ratio: 2),'
27
- + 'only screen and (min-resolution: 192dpi),'
28
- + 'only screen and (min-resolution: 2dppx)'
23
+ retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
24
+ 'only screen and (min--moz-device-pixel-ratio: 2),' +
25
+ 'only screen and (-o-min-device-pixel-ratio: 2/1),' +
26
+ 'only screen and (min-device-pixel-ratio: 2),' +
27
+ 'only screen and (min-resolution: 192dpi),' +
28
+ 'only screen and (min-resolution: 2dppx)'
29
29
  },
30
30
 
31
31
  directives : {
@@ -55,7 +55,7 @@
55
55
  this.events();
56
56
  this.images();
57
57
 
58
- if (typeof method != 'string') {
58
+ if (typeof method !== 'string') {
59
59
  return this.settings.init;
60
60
  } else {
61
61
  return this[method].call(this, options);
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.joyride = {
7
7
  name: 'joyride',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  defaults : {
12
12
  expose : false, // turn on or off the expose feature
@@ -57,7 +57,7 @@
57
57
  $.extend(true, this.settings, this.defaults, options);
58
58
  }
59
59
 
60
- if (typeof method != 'string') {
60
+ if (typeof method !== 'string') {
61
61
  if (!this.settings.init) this.events();
62
62
 
63
63
  return this.settings.init;
@@ -82,7 +82,7 @@ if (typeof jQuery === "undefined" &&
82
82
 
83
83
  var t = Object(this),
84
84
  len = t.length >>> 0;
85
- if (typeof fun != "function") {
85
+ if (typeof fun !== "function") {
86
86
  return;
87
87
  }
88
88
 
@@ -166,7 +166,7 @@ if (typeof jQuery === "undefined" &&
166
166
  window.Foundation = {
167
167
  name : 'Foundation',
168
168
 
169
- version : '4.2.0',
169
+ version : '4.2.2',
170
170
 
171
171
  cache : {},
172
172
 
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.magellan = {
7
7
  name : 'magellan',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  activeClass: 'active'
@@ -20,7 +20,7 @@
20
20
  $.extend(true, this.settings, method);
21
21
  }
22
22
 
23
- if (typeof method != 'string') {
23
+ if (typeof method !== 'string') {
24
24
  if (!this.settings.init) {
25
25
  this.fixed_magellan = $("[data-magellan-expedition]");
26
26
  this.set_threshold();
@@ -79,8 +79,10 @@
79
79
  if ($expedition.data("magellan-fixed-position") != fixed_position) {
80
80
  $expedition.data("magellan-fixed-position", fixed_position);
81
81
  if (fixed_position) {
82
+ $expedition.addClass('fixed');
82
83
  $expedition.css({position:"fixed", top:0});
83
84
  } else {
85
+ $expedition.removeClass('fixed');
84
86
  $expedition.css({position:"", top:""});
85
87
  }
86
88
  if (fixed_position && typeof attr != 'undefined' && attr != false) {
@@ -185,12 +185,12 @@
185
185
  $slide_number.replaceWith(self._slide_number_html(orbit.slide_number, orbit.total_slides));
186
186
  }
187
187
  })
188
- .on('orbit:next-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.next_class, function(e) {
188
+ .on('orbit:next-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.next_class.split(" ").join("."), function(e) {
189
189
  e.preventDefault();
190
190
  self._reset_timer($slides_container, true);
191
191
  self._goto($slides_container, 'next', function() {});
192
192
  })
193
- .on('orbit:prev-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.prev_class, function(e) {
193
+ .on('orbit:prev-slide.fndtn.orbit click.fndtn.orbit', '.' + self.settings.prev_class.split(" ").join("."), function(e) {
194
194
  e.preventDefault();
195
195
  self._reset_timer($slides_container, true);
196
196
  self._goto($slides_container, 'prev', function() {});
@@ -156,4 +156,24 @@
156
156
  }
157
157
  }
158
158
 
159
- }(this, document, Foundation.zj));
159
+ }(this, document, Foundation.zj));
160
+
161
+ ;(function ($, window, document, undefined) {
162
+ 'use strict';
163
+
164
+ Foundation.libs.placeholder = {
165
+ name : 'placeholder',
166
+
167
+ version : '4.2.2',
168
+
169
+ init : function (scope, method, options) {
170
+ this.scope = scope || this.scope;
171
+
172
+ if (typeof method !== 'string') {
173
+ window.onload = function () {
174
+ $('input, textarea').placeholder();
175
+ }
176
+ }
177
+ }
178
+ };
179
+ }(Foundation.zj, this, this.document));
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.reveal = {
7
7
  name: 'reveal',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  locked : false,
12
12
 
@@ -45,7 +45,7 @@
45
45
  $.extend(true, this.settings, options);
46
46
  }
47
47
 
48
- if (typeof method != 'string') {
48
+ if (typeof method !== 'string') {
49
49
  this.events();
50
50
 
51
51
  return this.settings.init;
@@ -77,7 +77,7 @@
77
77
  }
78
78
  }
79
79
  })
80
- .on('click.fndtn.reveal touchend.click.fndtn.reveal', this.close_targets(), function (e) {
80
+ .on('click.fndtn.reveal', this.close_targets(), function (e) {
81
81
  e.preventDefault();
82
82
  if (!self.locked) {
83
83
  var settings = $.extend({}, self.settings, self.data_options($('.reveal-modal.open')));
@@ -6,10 +6,11 @@
6
6
  Foundation.libs.section = {
7
7
  name: 'section',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  deep_linking: false,
13
+ small_breakpoint: 768,
13
14
  one_up: true,
14
15
  section_selector : '[data-section]',
15
16
  region_selector : 'section, .section, [data-section-region]',
@@ -28,7 +29,7 @@
28
29
  $.extend(true, self.settings, method);
29
30
  }
30
31
 
31
- if (typeof method != 'string') {
32
+ if (typeof method !== 'string') {
32
33
  this.set_active_from_hash();
33
34
  this.events();
34
35
 
@@ -404,7 +405,7 @@
404
405
  if ($('html').hasClass('ie8compat')) {
405
406
  return true;
406
407
  }
407
- return $(this.scope).width() < 768;
408
+ return $(this.scope).width() < settings.small_breakpoint;
408
409
  },
409
410
 
410
411
  off : function () {
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.tooltips = {
7
7
  name: 'tooltips',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  selector : '.has-tip',
@@ -33,7 +33,7 @@
33
33
  $.extend(true, this.settings, options);
34
34
  }
35
35
 
36
- if (typeof method != 'string') {
36
+ if (typeof method !== 'string') {
37
37
  if (Modernizr.touch) {
38
38
  $(this.scope)
39
39
  .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip',
@@ -6,7 +6,7 @@
6
6
  Foundation.libs.topbar = {
7
7
  name : 'topbar',
8
8
 
9
- version : '4.2.0',
9
+ version : '4.2.2',
10
10
 
11
11
  settings : {
12
12
  index : 0,
@@ -28,7 +28,7 @@
28
28
  $.extend(true, this.settings, options);
29
29
  }
30
30
 
31
- if (typeof method != 'string') {
31
+ if (typeof method !== 'string') {
32
32
 
33
33
  $('.top-bar, [data-topbar]').each(function () {
34
34
  $.extend(true, self.settings, self.data_options($(this)));
@@ -86,7 +86,7 @@
86
86
 
87
87
  topbar
88
88
  .toggleClass('expanded')
89
- .css('min-height', '');
89
+ .css('max-height', '');
90
90
  }
91
91
 
92
92
  if (!topbar.hasClass('expanded')) {
@@ -164,14 +164,14 @@
164
164
  section.find('>.name').css({right: 100 * topbar.data('index') + '%'});
165
165
  }
166
166
 
167
- topbar.css('min-height', self.height($this.siblings('ul')) + self.outerHeight(titlebar, true));
167
+ topbar.css('max-height', self.height($this.siblings('ul')) + self.outerHeight(titlebar, true));
168
168
  }
169
169
  });
170
170
 
171
171
  $(window).on('resize.fndtn.topbar', function () {
172
172
  if (!self.breakpoint()) {
173
173
  $('.top-bar, [data-topbar]')
174
- .css('min-height', '')
174
+ .css('max-height', '')
175
175
  .removeClass('expanded')
176
176
  .find('li')
177
177
  .removeClass('hover');
@@ -210,9 +210,9 @@
210
210
  }
211
211
 
212
212
  if (topbar.data('index') === 0) {
213
- topbar.css('min-height', 0);
213
+ topbar.css('max-height', '');
214
214
  } else {
215
- topbar.css('min-height', self.height($previousLevelUl) + self.outerHeight(titlebar, true));
215
+ topbar.css('max-height', self.height($previousLevelUl) + self.outerHeight(titlebar, true));
216
216
  }
217
217
 
218
218
  setTimeout(function () {
@@ -222,7 +222,7 @@
222
222
  },
223
223
 
224
224
  breakpoint : function () {
225
- return $(window).width() <= this.settings.breakPoint || $('html').hasClass('lt-ie9');
225
+ return $(document).width() <= this.settings.breakPoint || $('html').hasClass('lt-ie9');
226
226
  },
227
227
 
228
228
  assemble : function () {