foundation-rails 5.2.1.0 → 5.2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/bower.json +2 -2
  3. data/lib/foundation/rails/version.rb +1 -1
  4. data/test/dummy/Gemfile +1 -1
  5. data/vendor/assets/javascripts/foundation.js +2 -1
  6. data/vendor/assets/javascripts/foundation/foundation.abide.js +60 -19
  7. data/vendor/assets/javascripts/foundation/foundation.accordion.js +9 -5
  8. data/vendor/assets/javascripts/foundation/foundation.alert.js +13 -7
  9. data/vendor/assets/javascripts/foundation/foundation.clearing.js +19 -9
  10. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +8 -3
  11. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +7 -3
  12. data/vendor/assets/javascripts/foundation/foundation.interchange.js +5 -9
  13. data/vendor/assets/javascripts/foundation/foundation.joyride.js +10 -5
  14. data/vendor/assets/javascripts/foundation/foundation.js +29 -23
  15. data/vendor/assets/javascripts/foundation/foundation.magellan.js +15 -12
  16. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +20 -27
  17. data/vendor/assets/javascripts/foundation/foundation.orbit.js +129 -41
  18. data/vendor/assets/javascripts/foundation/foundation.reveal.js +1 -1
  19. data/vendor/assets/javascripts/foundation/foundation.slider.js +27 -14
  20. data/vendor/assets/javascripts/foundation/foundation.tab.js +19 -8
  21. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +9 -4
  22. data/vendor/assets/javascripts/foundation/foundation.topbar.js +5 -3
  23. data/vendor/assets/stylesheets/foundation/_settings.scss +69 -30
  24. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +6 -1
  25. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +19 -8
  26. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +3 -3
  27. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +4 -5
  28. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +2 -4
  29. data/vendor/assets/stylesheets/foundation/components/_forms.scss +30 -29
  30. data/vendor/assets/stylesheets/foundation/components/_global.scss +37 -76
  31. data/vendor/assets/stylesheets/foundation/components/_grid.scss +25 -26
  32. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -4
  33. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +2 -2
  34. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +19 -36
  35. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +126 -152
  36. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +1 -1
  37. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +31 -14
  38. data/vendor/assets/stylesheets/foundation/components/_switch.scss +4 -30
  39. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -6
  40. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +39 -45
  41. data/vendor/assets/stylesheets/foundation/components/_type.scss +37 -125
  42. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +15 -6
  43. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f0965fc3e4a5d696c852dad76597096c0f9d1d8
4
- data.tar.gz: 3a98e42c47f5e4add5f6be2984d48c6c31647df4
3
+ metadata.gz: 40cac7da73492001caf73d9daac51ce331bcf82d
4
+ data.tar.gz: 054b8d3503933b9a59a40f71d2f4ceed50e3da1c
5
5
  SHA512:
6
- metadata.gz: 911c5575a65d51269b66422ea6439506ad4fd35f2e39e76bbd3aedc8da519538b86cc35f9a7dd37c34354c987c1d12024cbd9cde24260d4e43cd1ee5c608b563
7
- data.tar.gz: 8ee81d522ad33f07b29e704ad42bc47799e754d604c4a114d4e02ea7533ceb971350394f2c20233e6768c78a4b4236e69cce81e369ab04eea72171df8c040949
6
+ metadata.gz: a858d9ec7fa4e39eb917c0d1dd14ed524f434b0b46478a9082ef5b7b3964b9c5d93ef333373551bd2a4e054116a3ccd7e94642ccdb22e12402b937f58b983799
7
+ data.tar.gz: 8cb3506868bdb589eb1f5228f23190e43cb12cc62786abafec975e6a7a33f823f5ea13f6bcdf37a1619d7821c54889f9dca060449be7bca761f487aac40e42ed
data/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "foundation-rails",
3
- "version": "5.2.1.0",
3
+ "version": "5.2.2.0",
4
4
  "dependencies": {
5
- "foundation": "5.2.1"
5
+ "foundation": "5.2.2"
6
6
  }
7
7
  }
@@ -1,5 +1,5 @@
1
1
  module Foundation
2
2
  module Rails
3
- VERSION = "5.2.1.0"
3
+ VERSION = "5.2.2.0"
4
4
  end
5
5
  end
data/test/dummy/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
4
- gem 'foundation-rails', :path => '../../'
4
+ gem 'foundation-rails'#, :path => '../../'
5
5
 
6
6
  gem 'rails', '4.0.1'
7
7
 
@@ -10,7 +10,8 @@
10
10
  //= require foundation/foundation.offcanvas
11
11
  //= require foundation/foundation.orbit
12
12
  //= require foundation/foundation.reveal
13
+ //= require foundation/foundation.slider
13
14
  //= require foundation/foundation.tab
14
15
  //= require foundation/foundation.tooltip
15
16
  //= require foundation/foundation.topbar
16
- //= require foundation/foundation.equalizer
17
+ //= require foundation/foundation.equalizer
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.abide = {
5
5
  name : 'abide',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  settings : {
10
10
  live_validate : true,
@@ -14,8 +14,8 @@
14
14
  patterns : {
15
15
  alpha: /^[a-zA-Z]+$/,
16
16
  alpha_numeric : /^[a-zA-Z0-9]+$/,
17
- integer: /^\d+$/,
18
- number: /-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?/,
17
+ integer: /^[-+]?\d+$/,
18
+ number: /^[-+]?\d*(?:\.\d+)?$/,
19
19
 
20
20
  // amex, visa, diners
21
21
  card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
@@ -24,18 +24,18 @@
24
24
  // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
25
25
  email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
26
26
 
27
- url: /(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/,
27
+ url: /^(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,
28
28
  // abc.de
29
29
  domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/,
30
30
 
31
- datetime: /([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))/,
31
+ datetime: /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
32
32
  // YYYY-MM-DD
33
- date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))/,
33
+ date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
34
34
  // HH:MM:SS
35
- time : /(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}/,
36
- dateISO: /\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/,
35
+ time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
36
+ dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
37
37
  // MM/DD/YYYY
38
- month_day_year : /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/,
38
+ month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$/,
39
39
 
40
40
  // #FFF or #FFFFFF
41
41
  color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
@@ -60,7 +60,7 @@
60
60
  events : function (scope) {
61
61
  var self = this,
62
62
  form = self.S(scope).attr('novalidate', 'novalidate'),
63
- settings = form.data(this.attr_name(true) + '-init');
63
+ settings = form.data(this.attr_name(true) + '-init') || {};
64
64
 
65
65
  this.invalid_attr = this.add_namespace('data-invalid');
66
66
 
@@ -79,7 +79,6 @@
79
79
  self.validate([this], e);
80
80
  })
81
81
  .on('keydown.fndtn.abide', function (e) {
82
- var settings = $(this).closest('form').data(self.attr_name(true) + '-init');
83
82
  if (settings.live_validate === true) {
84
83
  clearTimeout(self.timer);
85
84
  self.timer = setTimeout(function () {
@@ -98,15 +97,17 @@
98
97
  validate : function (els, e, is_ajax) {
99
98
  var validations = this.parse_patterns(els),
100
99
  validation_count = validations.length,
101
- form = this.S(els[0]).closest('form'),
100
+ form = this.S(els[0]).closest('[data-' + this.attr_name(true) + ']'),
101
+ settings = form.data(this.attr_name(true) + '-init') || {},
102
102
  submit_event = /submit/.test(e.type);
103
103
 
104
+ form.trigger('validated');
104
105
  // Has to count up to make sure the focus gets applied to the top error
105
106
  for (var i=0; i < validation_count; i++) {
106
107
  if (!validations[i] && (submit_event || is_ajax)) {
107
- if (this.settings.focus_on_invalid) els[i].focus();
108
+ if (settings.focus_on_invalid) els[i].focus();
108
109
  form.trigger('invalid');
109
- this.S(els[i]).closest('form').attr(this.invalid_attr, '');
110
+ this.S(els[i]).closest('[data-' + this.attr_name(true) + ']').attr(this.invalid_attr, '');
110
111
  return false;
111
112
  }
112
113
  }
@@ -142,7 +143,7 @@
142
143
  if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
143
144
  return [el, this.settings.patterns[pattern], required];
144
145
  } else if (pattern.length > 0) {
145
- return [el, new RegExp(pattern), required];
146
+ return [el, new RegExp('^'+pattern+'$'), required];
146
147
  }
147
148
 
148
149
  if (this.settings.patterns.hasOwnProperty(type)) {
@@ -156,7 +157,9 @@
156
157
 
157
158
  check_validation_and_apply_styles : function (el_patterns) {
158
159
  var i = el_patterns.length,
159
- validations = [];
160
+ validations = [],
161
+ form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
162
+ settings = form.data(this.attr_name(true) + '-init') || {};
160
163
 
161
164
  while (i--) {
162
165
  var el = el_patterns[i][0],
@@ -195,20 +198,21 @@
195
198
  this.S(el).attr(this.invalid_attr, '');
196
199
  parent.addClass('error');
197
200
  }
201
+
198
202
  } else {
199
203
 
200
204
  if (el_patterns[i][1].test(value) && valid_length ||
201
205
  !required && el.value.length < 1 || $(el).attr('disabled')) {
202
206
  this.S(el).removeAttr(this.invalid_attr);
203
207
  parent.removeClass('error');
204
- if (label.length > 0 && this.settings.error_labels) label.removeClass('error');
208
+ if (label.length > 0 && settings.error_labels) label.removeClass('error');
205
209
 
206
210
  validations.push(true);
207
211
  $(el).triggerHandler('valid');
208
212
  } else {
209
213
  this.S(el).attr(this.invalid_attr, '');
210
214
  parent.addClass('error');
211
- if (label.length > 0 && this.settings.error_labels) label.addClass('error');
215
+ if (label.length > 0 && settings.error_labels) label.addClass('error');
212
216
 
213
217
  validations.push(false);
214
218
  $(el).triggerHandler('invalid');
@@ -234,7 +238,7 @@
234
238
 
235
239
  valid_radio : function (el, required) {
236
240
  var name = el.getAttribute('name'),
237
- group = document.getElementsByName(name),
241
+ group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name="+name+"]"),
238
242
  count = group.length,
239
243
  valid = false;
240
244
 
@@ -252,6 +256,43 @@
252
256
  }
253
257
  }
254
258
 
259
+ return valid;
260
+ },
261
+
262
+ valid_equal: function(el, required, parent) {
263
+ var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
264
+ to = el.value,
265
+ valid = (from === to);
266
+
267
+ if (valid) {
268
+ this.S(el).removeAttr(this.invalid_attr);
269
+ parent.removeClass('error');
270
+ } else {
271
+ this.S(el).attr(this.invalid_attr, '');
272
+ parent.addClass('error');
273
+ }
274
+
275
+ return valid;
276
+ },
277
+
278
+ valid_oneof: function(el, required, parent, doNotValidateOthers) {
279
+ var el = this.S(el),
280
+ others = this.S('[' + this.add_namespace('data-oneof') + ']'),
281
+ valid = others.filter(':checked').length > 0;
282
+
283
+ if (valid) {
284
+ el.removeAttr(this.invalid_attr).parent().removeClass('error');
285
+ } else {
286
+ el.attr(this.invalid_attr, '').parent().addClass('error');
287
+ }
288
+
289
+ if (!doNotValidateOthers) {
290
+ var _this = this;
291
+ others.each(function() {
292
+ _this.valid_oneof.call(_this, this, null, null, true);
293
+ });
294
+ }
295
+
255
296
  return valid;
256
297
  }
257
298
  };
@@ -4,10 +4,11 @@
4
4
  Foundation.libs.accordion = {
5
5
  name : 'accordion',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  settings : {
10
10
  active_class: 'active',
11
+ multi_expand: false,
11
12
  toggleable: true
12
13
  },
13
14
 
@@ -24,7 +25,7 @@
24
25
  var accordion = S(this).closest('[' + self.attr_name() + ']'),
25
26
  target = S('#' + this.href.split('#')[1]),
26
27
  siblings = S('dd > .content', accordion),
27
- aunts = $('> dd', accordion),
28
+ aunts = $('dd', accordion),
28
29
  settings = accordion.data(self.attr_name(true) + '-init'),
29
30
  active_content = S('dd > .content.' + settings.active_class, accordion),
30
31
  active_parent = S('dd.' + settings.active_class, accordion);
@@ -32,13 +33,16 @@
32
33
 
33
34
  if (! S(this).closest('dl').is(accordion)) { return; }
34
35
 
35
- if (active_content[0] == target[0] && settings.toggleable) {
36
+ if (settings.toggleable && target.is(active_content)) {
36
37
  active_parent.toggleClass(settings.active_class, false);
37
38
  return target.toggleClass(settings.active_class, false);
38
39
  }
39
40
 
40
- siblings.removeClass(settings.active_class);
41
- aunts.removeClass(settings.active_class);
41
+ if (!settings.multi_expand) {
42
+ siblings.removeClass(settings.active_class);
43
+ aunts.removeClass(settings.active_class);
44
+ }
45
+
42
46
  target.addClass(settings.active_class).parent().addClass(settings.active_class);
43
47
  });
44
48
  },
@@ -4,11 +4,9 @@
4
4
  Foundation.libs.alert = {
5
5
  name : 'alert',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  settings : {
10
- animation: 'fadeOut',
11
- speed: 300, // fade out speed
12
10
  callback: function (){}
13
11
  },
14
12
 
@@ -25,10 +23,18 @@
25
23
  settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
26
24
 
27
25
  e.preventDefault();
28
- alertBox[settings.animation](settings.speed, function () {
29
- S(this).trigger('close').remove();
30
- settings.callback();
31
- });
26
+ if ('transitionend' in window || 'webkitTransitionEnd' in window || 'oTransitionEnd' in window) {
27
+ alertBox.addClass("alert-close");
28
+ alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function(e) {
29
+ S(this).trigger('close').remove();
30
+ settings.callback();
31
+ });
32
+ } else {
33
+ alertBox.fadeOut(300, function () {
34
+ S(this).trigger('close').remove();
35
+ settings.callback();
36
+ });
37
+ }
32
38
  });
33
39
  },
34
40
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.clearing = {
5
5
  name : 'clearing',
6
6
 
7
- version: '5.2.1',
7
+ version: '5.2.2',
8
8
 
9
9
  settings : {
10
10
  templates : {
@@ -18,7 +18,7 @@
18
18
  // add 'div.clearing-blackout, div.visible-img' to close on background click
19
19
  close_selectors : '.clearing-close',
20
20
 
21
- touch_label : '&larr;&nbsp;Swipe to Advance&nbsp;&rarr;',
21
+ touch_label : '',
22
22
 
23
23
  // event initializers and locks
24
24
  init : false,
@@ -146,14 +146,24 @@
146
146
  assemble : function ($li) {
147
147
  var $el = $li.parent();
148
148
 
149
- if ($el.parent().hasClass('carousel')) return;
149
+ if ($el.parent().hasClass('carousel')) {
150
+ return;
151
+ }
152
+
150
153
  $el.after('<div id="foundationClearingHolder"></div>');
151
-
154
+ var grid = $el.detach();
155
+ var grid_outerHTML = '';
156
+ if (grid[0] == null) {
157
+ return;
158
+ } else {
159
+ grid_outerHTML = grid[0].outerHTML;
160
+ }
161
+
152
162
  var holder = this.S('#foundationClearingHolder'),
153
163
  settings = $el.data(this.attr_name(true) + '-init'),
154
164
  grid = $el.detach(),
155
165
  data = {
156
- grid: '<div class="carousel">' + grid[0].outerHTML + '</div>',
166
+ grid: '<div class="carousel">' + grid_outerHTML + '</div>',
157
167
  viewing: settings.templates.viewing
158
168
  },
159
169
  wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
@@ -171,10 +181,10 @@
171
181
  var self = this,
172
182
  body = $(document.body),
173
183
  root = target.closest('.clearing-assembled'),
174
- container = $('div', root).first(),
175
- visible_image = $('.visible-img', container),
176
- image = $('img', visible_image).not($image),
177
- label = $('.clearing-touch-label', '.clearing-blackout'),
184
+ container = self.S('div', root).first(),
185
+ visible_image = self.S('.visible-img', container),
186
+ image = self.S('img', visible_image).not($image),
187
+ label = self.S('.clearing-touch-label', container),
178
188
  error = false;
179
189
 
180
190
  image.error(function () {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.dropdown = {
5
5
  name : 'dropdown',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  settings : {
10
10
  active_class: 'open',
@@ -28,8 +28,10 @@
28
28
  .off('.dropdown')
29
29
  .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
30
30
  var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
31
- e.preventDefault();
32
- if (!settings.is_hover || Modernizr.touch) self.toggle(S(this));
31
+ if (!settings.is_hover || Modernizr.touch) {
32
+ e.preventDefault();
33
+ self.toggle($(this));
34
+ }
33
35
  })
34
36
  .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
35
37
  var $this = S(this);
@@ -101,6 +103,8 @@
101
103
  if (self.S(this).hasClass(self.settings.active_class)) {
102
104
  self.S(this)
103
105
  .css(Foundation.rtl ? 'right':'left', '-99999px')
106
+ .removeClass(self.settings.active_class)
107
+ .prev('[' + self.attr_name() + ']')
104
108
  .removeClass(self.settings.active_class);
105
109
 
106
110
  self.S(this).trigger('closed', [dropdown]);
@@ -119,6 +123,7 @@
119
123
  this
120
124
  .css(dropdown
121
125
  .addClass(this.settings.active_class), target);
126
+ dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
122
127
  dropdown.trigger('opened', [dropdown, target]);
123
128
  },
124
129
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.equalizer = {
5
5
  name : 'equalizer',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  settings : {
10
10
  use_tallest: true,
@@ -13,6 +13,7 @@
13
13
  },
14
14
 
15
15
  init : function (scope, method, options) {
16
+ Foundation.inherit(this, 'image_loaded');
16
17
  this.bindings(method, options);
17
18
  this.reflow();
18
19
  },
@@ -25,7 +26,7 @@
25
26
 
26
27
  equalize: function(equalizer) {
27
28
  var isStacked = false,
28
- vals = equalizer.find('[' + this.attr_name() + '-watch]'),
29
+ vals = equalizer.find('[' + this.attr_name() + '-watch]:visible'),
29
30
  firstTopOffset = vals.first().offset().top,
30
31
  settings = equalizer.data(this.attr_name(true)+'-init');
31
32
 
@@ -57,7 +58,10 @@
57
58
  var self = this;
58
59
 
59
60
  this.S('[' + this.attr_name() + ']', this.scope).each(function(){
60
- self.equalize($(this));
61
+ var $eq_target = $(this);
62
+ self.image_loaded(self.S('img', this), function(){
63
+ self.equalize($eq_target)
64
+ });
61
65
  });
62
66
  }
63
67
  };
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.interchange = {
5
5
  name : 'interchange',
6
6
 
7
- version : '5.2.1',
7
+ version : '5.2.2',
8
8
 
9
9
  cache : {},
10
10
 
@@ -57,14 +57,10 @@
57
57
 
58
58
  if (last_path == path) return;
59
59
 
60
-
61
- var regex = "/^.(\.jpg|\.jpeg|\.png|\.gif|\.tiff|\.bmp)\??|#?./";
62
-
63
- if (new RegExp(regex,'i').test(path)){
64
-
65
- $(el).css('background-image', 'url('+path+')');
66
- el.data('interchange-last-path', path);
67
- return trigger(path);
60
+ if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
61
+ $(el).css('background-image', 'url('+path+')');
62
+ el.data('interchange-last-path', path);
63
+ return trigger(path);
68
64
  }
69
65
 
70
66
  return $.get(path, function (response) {