foundation-rails 5.2.2.0 → 5.2.3.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/bower.json +2 -2
  3. data/lib/foundation/rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/foundation/foundation.abide.js +5 -5
  5. data/vendor/assets/javascripts/foundation/foundation.accordion.js +13 -8
  6. data/vendor/assets/javascripts/foundation/foundation.alert.js +2 -2
  7. data/vendor/assets/javascripts/foundation/foundation.clearing.js +36 -33
  8. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +15 -10
  9. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +12 -6
  10. data/vendor/assets/javascripts/foundation/foundation.interchange.js +3 -3
  11. data/vendor/assets/javascripts/foundation/foundation.joyride.js +9 -15
  12. data/vendor/assets/javascripts/foundation/foundation.js +30 -28
  13. data/vendor/assets/javascripts/foundation/foundation.magellan.js +36 -31
  14. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +72 -14
  15. data/vendor/assets/javascripts/foundation/foundation.orbit.js +19 -15
  16. data/vendor/assets/javascripts/foundation/foundation.reveal.js +26 -16
  17. data/vendor/assets/javascripts/foundation/foundation.slider.js +2 -3
  18. data/vendor/assets/javascripts/foundation/foundation.tab.js +8 -9
  19. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +30 -4
  20. data/vendor/assets/javascripts/foundation/foundation.topbar.js +22 -19
  21. data/vendor/assets/stylesheets/foundation/_settings.scss +50 -40
  22. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +8 -7
  23. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +2 -2
  24. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +1 -1
  25. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +1 -1
  26. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +8 -8
  27. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +6 -6
  28. data/vendor/assets/stylesheets/foundation/components/_forms.scss +7 -5
  29. data/vendor/assets/stylesheets/foundation/components/_global.scss +67 -3
  30. data/vendor/assets/stylesheets/foundation/components/_grid.scss +1 -2
  31. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +2 -1
  32. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +3 -3
  33. data/vendor/assets/stylesheets/foundation/components/_labels.scss +1 -1
  34. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +32 -58
  35. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +39 -31
  36. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +5 -5
  37. data/vendor/assets/stylesheets/foundation/components/_panels.scss +4 -5
  38. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +5 -5
  39. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +2 -2
  40. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +2 -2
  41. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +26 -4
  42. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +7 -7
  43. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +2 -2
  44. data/vendor/assets/stylesheets/foundation/components/_switch.scss +2 -2
  45. data/vendor/assets/stylesheets/foundation/components/_tables.scss +44 -12
  46. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +9 -5
  47. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +4 -4
  48. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +30 -26
  49. data/vendor/assets/stylesheets/foundation/components/_type.scss +39 -21
  50. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +64 -1
  51. data/vendor/assets/stylesheets/normalize.scss +20 -18
  52. metadata +2 -2
@@ -81,7 +81,8 @@
81
81
  container.append(bullets_container);
82
82
  bullets_container.wrap('<div class="orbit-bullets-container"></div>');
83
83
  self.slides().each(function(idx, el) {
84
- var bullet = $('<li>').attr('data-orbit-slide', idx);
84
+ var bullet = $('<li>').attr('data-orbit-slide', idx)
85
+ .on('click', self.link_bullet);
85
86
  bullets_container.append(bullet);
86
87
  });
87
88
  }
@@ -142,6 +143,8 @@
142
143
  var unlock = function() {
143
144
  if (start_timer === true) {self.cache.timer.restart();}
144
145
  self.update_slide_number(idx);
146
+ // Remove "animate-in" class as late as possible to avoid "flickering" (especially with variable_height).
147
+ next.removeClass("animate-in");
145
148
  next.addClass(settings.active_slide_class);
146
149
  self.update_active_link(next_idx);
147
150
  slides_container.trigger('after-slide-change.fndtn.orbit',[{slide_number: idx, total_slides: slides.length}]);
@@ -152,7 +155,7 @@
152
155
 
153
156
  };
154
157
  if (slides_container.height() != next.height() && settings.variable_height) {
155
- slides_container.animate({'height': next.height()}, 250, 'linear', unlock);
158
+ slides_container.animate({'min-height': next.height()}, 250, 'linear', unlock);
156
159
  } else {
157
160
  unlock();
158
161
  }
@@ -166,7 +169,7 @@
166
169
  };
167
170
 
168
171
  if (next.height() > slides_container.height() && settings.variable_height) {
169
- slides_container.animate({'height': next.height()}, 250, 'linear', start_animation);
172
+ slides_container.animate({'min-height': next.height()}, 250, 'linear', start_animation);
170
173
  } else {
171
174
  start_animation();
172
175
  }
@@ -203,6 +206,7 @@
203
206
  }
204
207
  };
205
208
 
209
+ // Click handler for slides and bullets.
206
210
  self.link_bullet = function(e) {
207
211
  var index = $(this).attr('data-orbit-slide');
208
212
  if ((typeof index === 'string') && (index = $.trim(index)) != "") {
@@ -210,19 +214,22 @@
210
214
  {
211
215
  var slide = container.find('[data-orbit-slide='+index+']');
212
216
  if (slide.index() != -1) {
217
+ index = slide.index() + 1;
218
+ self._prepare_direction(index);
213
219
  setTimeout(function(){
214
- self._goto(slide.index() + 1);
220
+ self._goto(index);
215
221
  },100);
216
222
  }
217
223
  }
218
224
  else
219
225
  {
226
+ index = parseInt(index);
227
+ self._prepare_direction(index);
220
228
  setTimeout(function(){
221
- self._goto(parseInt(index));
229
+ self._goto(index);
222
230
  },100);
223
231
  }
224
232
  }
225
-
226
233
  }
227
234
 
228
235
  self.timer_callback = function() {
@@ -237,7 +244,7 @@
237
244
  if ($(this).height() > h) { h = $(this).height(); }
238
245
  });
239
246
  }
240
- slides_container.height(h);
247
+ slides_container.css('minHeight', String(h)+'px');
241
248
  };
242
249
 
243
250
  self.create_timer = function() {
@@ -268,7 +275,7 @@
268
275
  self.build_markup();
269
276
  if (settings.timer) {
270
277
  self.cache.timer = self.create_timer();
271
- Foundation.utils.image_loaded(this.slides().children('img'), self.cache.timer.start);
278
+ Foundation.utils.image_loaded(this.slides().find('img'), self.cache.timer.start);
272
279
  }
273
280
 
274
281
  animate = new CSSAnimation(settings, slides_container);
@@ -286,7 +293,7 @@
286
293
  container.on('click', '.'+settings.prev_class, self.prev);
287
294
 
288
295
  if (settings.next_on_click) {
289
- container.on('click', '[data-orbit-slide]', self.link_bullet);
296
+ container.on('click', '.'+settings.slides_container_class+' [data-orbit-slide]', self.link_bullet);
290
297
  }
291
298
 
292
299
  container.on('click', self.toggle_timer);
@@ -447,7 +454,6 @@
447
454
  next.on(animation_end, function(e){
448
455
  next.unbind(animation_end);
449
456
  current.removeClass("active animate-out");
450
- next.removeClass("animate-in");
451
457
  container.children().css({
452
458
  "transform":"",
453
459
  "-ms-transform":"",
@@ -461,7 +467,6 @@
461
467
  } else {
462
468
  setTimeout(function(){
463
469
  current.removeClass("active animate-out");
464
- next.removeClass("animate-in");
465
470
  container.children().css({
466
471
  "transform":"",
467
472
  "-ms-transform":"",
@@ -490,7 +495,6 @@
490
495
  prev.on(animation_end, function(e){
491
496
  prev.unbind(animation_end);
492
497
  current.removeClass("active animate-out");
493
- prev.removeClass("animate-in");
494
498
  container.children().css({
495
499
  "transform":"",
496
500
  "-ms-transform":"",
@@ -504,7 +508,6 @@
504
508
  } else {
505
509
  setTimeout(function(){
506
510
  current.removeClass("active animate-out");
507
- prev.removeClass("animate-in");
508
511
  container.children().css({
509
512
  "transform":"",
510
513
  "-ms-transform":"",
@@ -535,7 +538,7 @@
535
538
  Foundation.libs.orbit = {
536
539
  name: 'orbit',
537
540
 
538
- version: '5.2.2',
541
+ version: '5.2.3',
539
542
 
540
543
  settings: {
541
544
  animation: 'slide',
@@ -580,6 +583,7 @@
580
583
  },
581
584
 
582
585
  events : function (instance) {
586
+ var self = this;
583
587
  var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
584
588
  this.S(instance).data(self.name + '-instance', orbit_instance);
585
589
  },
@@ -603,4 +607,4 @@
603
607
  };
604
608
 
605
609
 
606
- }(jQuery, this, this.document));
610
+ }(jQuery, window, window.document));
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.reveal = {
5
5
  name : 'reveal',
6
6
 
7
- version : '5.2.2',
7
+ version : '5.2.3',
8
8
 
9
9
  locked : false,
10
10
 
@@ -134,20 +134,24 @@
134
134
  },
135
135
 
136
136
  open : function (target, ajax_settings) {
137
- var self = this;
137
+ var self = this,
138
+ modal;
139
+
138
140
  if (target) {
139
141
  if (typeof target.selector !== 'undefined') {
140
- var modal = self.S('#' + target.data(self.data_attr('reveal-id')));
142
+ // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
143
+ modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
141
144
  } else {
142
- var modal = self.S(this.scope);
145
+ modal = self.S(this.scope);
143
146
 
144
147
  ajax_settings = target;
145
148
  }
146
149
  } else {
147
- var modal = self.S(this.scope);
150
+ modal = self.S(this.scope);
148
151
  }
149
152
 
150
153
  var settings = modal.data(self.attr_name(true) + '-init');
154
+ settings = settings || this.settings;
151
155
 
152
156
  if (!modal.hasClass('open')) {
153
157
  var open_modal = self.S('[' + self.attr_name() + '].open');
@@ -161,7 +165,7 @@
161
165
  modal.trigger('open');
162
166
 
163
167
  if (open_modal.length < 1) {
164
- this.toggle_bg(modal);
168
+ this.toggle_bg(modal, true);
165
169
  }
166
170
 
167
171
  if (typeof ajax_settings === 'string') {
@@ -187,6 +191,7 @@
187
191
 
188
192
  modal.html(data);
189
193
  self.S(modal).foundation('section', 'reflow');
194
+ self.S(modal).children().foundation();
190
195
 
191
196
  if (open_modal.length > 0) {
192
197
  self.hide(open_modal, settings.css.close);
@@ -203,13 +208,13 @@
203
208
  close : function (modal) {
204
209
  var modal = modal && modal.length ? modal : this.S(this.scope),
205
210
  open_modals = this.S('[' + this.attr_name() + '].open'),
206
- settings = modal.data(this.attr_name(true) + '-init');
211
+ settings = modal.data(this.attr_name(true) + '-init') || this.settings;
207
212
 
208
213
  if (open_modals.length > 0) {
209
214
  this.locked = true;
210
215
  this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
211
216
  modal.trigger('close');
212
- this.toggle_bg(modal);
217
+ this.toggle_bg(modal, false);
213
218
  this.hide(open_modals, settings.css.close, settings);
214
219
  }
215
220
  },
@@ -224,18 +229,19 @@
224
229
  return base;
225
230
  },
226
231
 
227
- toggle_bg : function (modal) {
228
- var settings = modal.data(this.attr_name(true));
229
-
232
+ toggle_bg : function (modal, state) {
230
233
  if (this.S('.' + this.settings.bg_class).length === 0) {
231
234
  this.settings.bg = $('<div />', {'class': this.settings.bg_class})
232
235
  .appendTo('body').hide();
233
236
  }
234
237
 
235
- if (this.settings.bg.filter(':visible').length > 0) {
236
- this.hide(this.settings.bg);
237
- } else {
238
- this.show(this.settings.bg);
238
+ var visible = this.settings.bg.filter(':visible').length > 0;
239
+ if ( state != visible ) {
240
+ if ( state == undefined ? visible : !state ) {
241
+ this.hide(this.settings.bg);
242
+ } else {
243
+ this.show(this.settings.bg);
244
+ }
239
245
  }
240
246
  },
241
247
 
@@ -243,6 +249,8 @@
243
249
  // is modal
244
250
  if (css) {
245
251
  var settings = el.data(this.attr_name(true) + '-init');
252
+ settings = settings || this.settings;
253
+
246
254
  if (el.parent('body').length === 0) {
247
255
  var placeholder = el.wrap('<div style="display: none;" />').parent(),
248
256
  rootElement = this.settings.rootElement || 'body';
@@ -311,6 +319,8 @@
311
319
  // is modal
312
320
  if (css) {
313
321
  var settings = el.data(this.attr_name(true) + '-init');
322
+ settings = settings || this.settings;
323
+
314
324
  var animData = getAnimationData(settings.animation);
315
325
  if (!animData.animate) {
316
326
  this.locked = false;
@@ -424,4 +434,4 @@
424
434
  fade: fade
425
435
  };
426
436
  }
427
- }(jQuery, this, this.document));
437
+ }(jQuery, window, window.document));
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.slider = {
5
5
  name : 'slider',
6
6
 
7
- version : '5.2.2',
7
+ version : '5.2.3',
8
8
 
9
9
  settings: {
10
10
  start: 0,
@@ -123,7 +123,6 @@
123
123
 
124
124
  normalized_value : function(val, start, end, step) {
125
125
  var range = end - start,
126
- step = step,
127
126
  point = val*range,
128
127
  mod = (point-(point%step)) / step,
129
128
  rem = point % step,
@@ -197,4 +196,4 @@
197
196
 
198
197
  };
199
198
 
200
- }(jQuery, this, this.document));
199
+ }(jQuery, window, window.document));
@@ -1,11 +1,10 @@
1
- /*jslint unparam: true, browser: true, indent: 2 */
2
1
  ;(function ($, window, document, undefined) {
3
2
  'use strict';
4
3
 
5
4
  Foundation.libs.tab = {
6
5
  name : 'tab',
7
6
 
8
- version : '5.2.2',
7
+ version : '5.2.3',
9
8
 
10
9
  settings : {
11
10
  active_class: 'active',
@@ -27,7 +26,7 @@
27
26
  // Store the default active tabs which will be referenced when the
28
27
  // location hash is absent, as in the case of navigating the tabs and
29
28
  // returning to the first viewing via the browser Back button.
30
- S('[' + this.attr_name() + '] > dd.active > a', this.scope).each(function () {
29
+ S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
31
30
  self.default_tab_hashes.push(this.hash);
32
31
  });
33
32
  },
@@ -39,7 +38,7 @@
39
38
  S(this.scope)
40
39
  .off('.tab')
41
40
  // Click event: tab title
42
- .on('click.fndtn.tab', '[' + this.attr_name() + '] > dd > a', function (e) {
41
+ .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
43
42
  var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
44
43
  if (!settings.is_hover || Modernizr.touch) {
45
44
  e.preventDefault();
@@ -48,7 +47,7 @@
48
47
  }
49
48
  })
50
49
  // Hover event: tab title
51
- .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > dd > a', function (e) {
50
+ .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
52
51
  var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
53
52
  if (settings.is_hover) self.toggle_active_tab(S(this).parent());
54
53
  });
@@ -75,19 +74,19 @@
75
74
  var hash_element = S(hash);
76
75
  if (hash_element.hasClass('content') && hash_element.parent().hasClass('tab-content')) {
77
76
  // Tab content div
78
- self.toggle_active_tab($('[' + self.attr_name() + '] > dd > a[href=' + hash + ']').parent());
77
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
79
78
  } else {
80
79
  // Not the tab content div. If inside the tab content, find the
81
80
  // containing tab and toggle it as active.
82
81
  var hash_tab_container_id = hash_element.closest('.content').attr('id');
83
82
  if (hash_tab_container_id != undefined) {
84
- self.toggle_active_tab($('[' + self.attr_name() + '] > dd > a[href=#' + hash_tab_container_id + ']').parent(), hash);
83
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
85
84
  }
86
85
  }
87
86
  } else {
88
87
  // Reference the default tab hashes which were initialized in the init function
89
88
  for (var ind in self.default_tab_hashes) {
90
- self.toggle_active_tab($('[' + self.attr_name() + '] > dd > a[href=' + self.default_tab_hashes[ind] + ']').parent());
89
+ self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
91
90
  }
92
91
  }
93
92
  }
@@ -165,4 +164,4 @@
165
164
 
166
165
  reflow : function () {}
167
166
  };
168
- }(jQuery, this, this.document));
167
+ }(jQuery, window, window.document));
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.tooltip = {
5
5
  name : 'tooltip',
6
6
 
7
- version : '5.2.2',
7
+ version : '5.2.3',
8
8
 
9
9
  settings : {
10
10
  additional_inheritable_classes : [],
@@ -13,6 +13,7 @@
13
13
  touch_close_text: 'Tap To Close',
14
14
  disable_for_touch: false,
15
15
  hover_delay: 200,
16
+ show_on : 'all',
16
17
  tip_template : function (selector, content) {
17
18
  return '<span data-selector="' + selector + '" class="'
18
19
  + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
@@ -27,6 +28,29 @@
27
28
  this.bindings(method, options);
28
29
  },
29
30
 
31
+ should_show: function (target, tip) {
32
+ var settings = $.extend({}, this.settings, this.data_options(target));
33
+
34
+ if (settings.show_on === 'all') {
35
+ return true;
36
+ } else if (this.small() && settings.show_on === 'small') {
37
+ return true;
38
+ } else if (this.medium() && settings.show_on === 'medium') {
39
+ return true;
40
+ } else if (this.large() && settings.show_on === 'large') {
41
+ return true;
42
+ }
43
+ return false;
44
+ },
45
+
46
+ medium : function () {
47
+ return matchMedia(Foundation.media_queries['medium']).matches;
48
+ },
49
+
50
+ large : function () {
51
+ return matchMedia(Foundation.media_queries['large']).matches;
52
+ },
53
+
30
54
  events : function (instance) {
31
55
  var self = this,
32
56
  S = self.S;
@@ -95,8 +119,10 @@
95
119
 
96
120
  showTip : function ($target) {
97
121
  var $tip = this.getTip($target);
98
-
122
+ if (this.should_show($target, $tip)){
99
123
  return this.show($target);
124
+ }
125
+ return;
100
126
  },
101
127
 
102
128
  getTip : function ($target) {
@@ -168,7 +194,7 @@
168
194
  'top' : (top) ? top : 'auto',
169
195
  'bottom' : (bottom) ? bottom : 'auto',
170
196
  'left' : (left) ? left : 'auto',
171
- 'right' : (right) ? right : 'auto',
197
+ 'right' : (right) ? right : 'auto'
172
198
  }).end();
173
199
  };
174
200
 
@@ -269,4 +295,4 @@
269
295
 
270
296
  reflow : function () {}
271
297
  };
272
- }(jQuery, this, this.document));
298
+ }(jQuery, window, window.document));
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.topbar = {
5
5
  name : 'topbar',
6
6
 
7
- version: '5.2.2',
7
+ version: '5.2.3',
8
8
 
9
9
  settings : {
10
10
  index : 0,
@@ -28,11 +28,10 @@
28
28
  self.S('[' + this.attr_name() + ']', this.scope).each(function () {
29
29
  var topbar = $(this),
30
30
  settings = topbar.data(self.attr_name(true) + '-init'),
31
- section = self.S('section', this),
32
- titlebar = topbar.children().filter('ul').first();
31
+ section = self.S('section', this);
33
32
  topbar.data('index', 0);
34
33
  var topbarContainer = topbar.parent();
35
- if(topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
34
+ if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
36
35
  self.settings.sticky_class = settings.sticky_class;
37
36
  self.settings.sticky_topbar = topbar;
38
37
  topbar.data('height', topbarContainer.outerHeight());
@@ -41,7 +40,9 @@
41
40
  topbar.data('height', topbar.outerHeight());
42
41
  }
43
42
 
44
- if (!settings.assembled) self.assemble(topbar);
43
+ if (!settings.assembled) {
44
+ self.assemble(topbar);
45
+ }
45
46
 
46
47
  if (settings.is_hover) {
47
48
  self.S('.has-dropdown', topbar).addClass('not-click');
@@ -76,12 +77,13 @@
76
77
  },
77
78
 
78
79
  toggle: function (toggleEl) {
79
- var self = this;
80
+ var self = this,
81
+ topbar;
80
82
 
81
83
  if (toggleEl) {
82
- var topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
84
+ topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
83
85
  } else {
84
- var topbar = self.S('[' + this.attr_name() + ']');
86
+ topbar = self.S('[' + this.attr_name() + ']');
85
87
  }
86
88
 
87
89
  var settings = topbar.data(this.attr_name(true) + '-init');
@@ -120,15 +122,15 @@
120
122
 
121
123
  window.scrollTo(0,0);
122
124
  } else {
123
- topbar.parent().removeClass('expanded');
125
+ topbar.parent().removeClass('expanded');
124
126
  }
125
127
  }
126
128
  } else {
127
- if(self.is_sticky(topbar, topbar.parent(), settings)) {
129
+ if (self.is_sticky(topbar, topbar.parent(), settings)) {
128
130
  topbar.parent().addClass('fixed');
129
131
  }
130
132
 
131
- if(topbar.parent().hasClass('fixed')) {
133
+ if (topbar.parent().hasClass('fixed')) {
132
134
  if (!topbar.hasClass('expanded')) {
133
135
  topbar.removeClass('fixed');
134
136
  topbar.parent().removeClass('expanded');
@@ -330,8 +332,7 @@
330
332
  assemble : function (topbar) {
331
333
  var self = this,
332
334
  settings = topbar.data(this.attr_name(true) + '-init'),
333
- section = self.S('section', topbar),
334
- titlebar = $(this).children().filter('ul').first();
335
+ section = self.S('section', topbar);
335
336
 
336
337
  // Pull element out of the DOM for manipulation
337
338
  section.detach();
@@ -339,13 +340,14 @@
339
340
  self.S('.has-dropdown>a', section).each(function () {
340
341
  var $link = self.S(this),
341
342
  $dropdown = $link.siblings('.dropdown'),
342
- url = $link.attr('href');
343
+ url = $link.attr('href'),
344
+ $titleLi;
343
345
 
344
346
  if (!$dropdown.find('.title.back').length) {
345
347
  if (settings.mobile_show_parent_link && url && url.length > 1) {
346
- var $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li><a class="parent-link js-generated" href="' + url + '">' + $link.text() +'</a></li>');
348
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li><a class="parent-link js-generated" href="' + url + '">' + $link.text() +'</a></li>');
347
349
  } else {
348
- var $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li>');
350
+ $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li>');
349
351
  }
350
352
 
351
353
  // Copy link to subnav
@@ -375,14 +377,15 @@
375
377
  var total = 0,
376
378
  self = this;
377
379
 
378
- $('> li', ul).each(function () { total += self.S(this).outerHeight(true); });
380
+ $('> li', ul).each(function () {
381
+ total += self.S(this).outerHeight(true);
382
+ });
379
383
 
380
384
  return total;
381
385
  },
382
386
 
383
387
  sticky : function () {
384
- var $window = this.S(window),
385
- self = this;
388
+ var self = this;
386
389
 
387
390
  this.S(window).on('scroll', function() {
388
391
  self.update_sticky_positioning();