foundation-rails 5.3.1.0 → 5.3.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 (39) hide show
  1. data/bower.json +2 -2
  2. data/lib/foundation/rails/version.rb +1 -1
  3. data/vendor/assets/_settings.scss +24 -7
  4. data/vendor/assets/javascripts/foundation/foundation.abide.js +23 -28
  5. data/vendor/assets/javascripts/foundation/foundation.accordion.js +5 -5
  6. data/vendor/assets/javascripts/foundation/foundation.alert.js +1 -1
  7. data/vendor/assets/javascripts/foundation/foundation.clearing.js +9 -1
  8. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +2 -2
  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 +55 -15
  12. data/vendor/assets/javascripts/foundation/foundation.magellan.js +12 -5
  13. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +2 -2
  14. data/vendor/assets/javascripts/foundation/foundation.orbit.js +19 -19
  15. data/vendor/assets/javascripts/foundation/foundation.reveal.js +3 -3
  16. data/vendor/assets/javascripts/foundation/foundation.slider.js +1 -1
  17. data/vendor/assets/javascripts/foundation/foundation.tab.js +1 -1
  18. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +2 -2
  19. data/vendor/assets/javascripts/foundation/foundation.topbar.js +11 -4
  20. data/vendor/assets/stylesheets/foundation.scss +38 -39
  21. data/vendor/assets/stylesheets/foundation/_settings.scss +24 -7
  22. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +52 -29
  23. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +20 -20
  24. data/vendor/assets/stylesheets/foundation/components/_forms.scss +43 -2
  25. data/vendor/assets/stylesheets/foundation/components/_global.scss +2 -2
  26. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -1
  27. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +3 -1
  28. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +4 -7
  29. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +25 -27
  30. data/vendor/assets/stylesheets/foundation/components/_switches.scss +3 -3
  31. data/vendor/assets/stylesheets/foundation/components/_tables.scss +4 -0
  32. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +4 -1
  33. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -2
  34. data/vendor/assets/stylesheets/foundation/components/_toolbar.scss +3 -0
  35. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +7 -6
  36. data/vendor/assets/stylesheets/foundation/components/_type.scss +12 -2
  37. metadata +29 -14
  38. checksums.yaml +0 -7
  39. data/vendor/assets/stylesheets/foundation/components/_reveal-new.scss +0 -0
data/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "foundation-rails",
3
- "version": "5.3.1.0",
3
+ "version": "5.3.3.0",
4
4
  "dependencies": {
5
- "foundation": "5.3.1"
5
+ "foundation": "5.3.3"
6
6
  }
7
7
  }
@@ -1,5 +1,5 @@
1
1
  module Foundation
2
2
  module Rails
3
- VERSION = "5.3.1.0"
3
+ VERSION = "5.3.3.0"
4
4
  end
5
5
  end
@@ -171,9 +171,14 @@ $primary-color: #008CBA;
171
171
  // $paragraph-text-rendering: optimizeLegibility;
172
172
 
173
173
  // We use these to style <code> tags
174
- // $code-color: scale-color($alert-color, $lightness: -27%);
174
+ // $code-color: #333;
175
175
  // $code-font-family: Consolas, 'Liberation Mono', Courier, monospace;
176
- // $code-font-weight: $font-weight-bold;
176
+ // $code-font-weight: $font-weight-normal;
177
+ // $code-background-color: scale-color($secondary-color, $lightness: 70%);
178
+ // $code-border-size: 1px;
179
+ // $code-border-style: solid;
180
+ // $code-border-color: scale-color($code-background-color, $lightness: -10%);
181
+ // $code-padding: rem-calc(2) rem-calc(5) rem-calc(1);
177
182
 
178
183
  // We use these to style anchors
179
184
  // $anchor-text-decoration: none;
@@ -365,18 +370,26 @@ $primary-color: #008CBA;
365
370
  // We use these to control various hover effects.
366
371
  // $button-function-factor: -20%;
367
372
 
368
- // We use these to control button border styles.
373
+ // We use these to control button border and hover styles.
369
374
  // $button-border-width: 0px;
370
375
  // $button-border-style: solid;
371
- // $button-bg: $primary-color;
372
- // $button-border-color: scale-color($button-bg, $lightness: $button-function-factor);
376
+ // $button-bg-color: $primary-color;
377
+ // $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor);
378
+ // $button-border-color: $button-bg-hover;
379
+ // $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor);
380
+ // $secondary-button-border-color: $secondary-button-bg-hover;
381
+ // $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor);
382
+ // $success-button-border-color: $success-button-bg-hover;
383
+ // $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor);
384
+ // $alert-button-border-color: $alert-button-bg-hover;
373
385
 
374
386
  // We use this to set the default radius used throughout the core.
375
387
  // $button-radius: $global-radius;
376
388
  // $button-round: $global-rounded;
377
389
 
378
- // We use this to set default opacity for disabled buttons.
390
+ // We use this to set default opacity and cursor for disabled buttons.
379
391
  // $button-disabled-opacity: 0.7;
392
+ // $button-disabled-cursor: $cursor-default-value;
380
393
 
381
394
  // Button Groups
382
395
 
@@ -536,8 +549,8 @@ $primary-color: #008CBA;
536
549
  // $input-border-width: 1px;
537
550
  // $input-border-radius: $global-radius;
538
551
  // $input-disabled-bg: #ddd;
552
+ // $input-disabled-cursor: $cursor-default-value;
539
553
  // $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
540
- // $input-include-glowing-effect: true;
541
554
 
542
555
  // We use these to style the fieldset border and spacing.
543
556
  // $fieldset-border-style: solid;
@@ -560,6 +573,9 @@ $primary-color: #008CBA;
560
573
  // $input-prefix-font-color: #333;
561
574
  // $input-prefix-font-color-alt: #fff;
562
575
 
576
+ // We use this setting to turn on/off HTML5 number spinners (the up/down arrows)
577
+ // $input-number-spinners: true;
578
+
563
579
  // We use these to style the error states for inputs and labels
564
580
  // $input-error-message-padding: rem-calc(6 9 9);
565
581
  // $input-error-message-top: -1px;
@@ -570,6 +586,7 @@ $primary-color: #008CBA;
570
586
  // $input-error-message-font-color-alt: #333;
571
587
 
572
588
  // We use this to style the glowing effect of inputs when focused
589
+ // $input-include-glowing-effect: true;
573
590
  // $glowing-effect-fade-time: 0.45s;
574
591
  // $glowing-effect-color: $input-focus-border-color;
575
592
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.abide = {
5
5
  name : 'abide',
6
6
 
7
- version : '5.3.1',
7
+ version : '5.3.3',
8
8
 
9
9
  settings : {
10
10
  live_validate : true,
@@ -97,23 +97,21 @@
97
97
  validate : function (els, e, is_ajax) {
98
98
  var validations = this.parse_patterns(els),
99
99
  validation_count = validations.length,
100
- form = this.S(els[0]).closest('[data-' + this.attr_name(true) + ']'),
101
- settings = form.data(this.attr_name(true) + '-init') || {},
100
+ form = this.S(els[0]).closest('form'),
102
101
  submit_event = /submit/.test(e.type);
103
102
 
104
- form.trigger('validated').trigger('validated.fndtn.abide');
105
103
  // Has to count up to make sure the focus gets applied to the top error
106
104
  for (var i=0; i < validation_count; i++) {
107
105
  if (!validations[i] && (submit_event || is_ajax)) {
108
- if (settings.focus_on_invalid) els[i].focus();
109
- form.trigger('invalid').trigger('invalid.fndtn.abide');
110
- this.S(els[i]).closest('[data-' + this.attr_name(true) + ']').attr(this.invalid_attr, '');
106
+ if (this.settings.focus_on_invalid) els[i].focus();
107
+ form.trigger('invalid');
108
+ this.S(els[i]).closest('form').attr(this.invalid_attr, '');
111
109
  return false;
112
110
  }
113
111
  }
114
112
 
115
113
  if (submit_event || is_ajax) {
116
- form.trigger('valid').trigger('valid.fndtn.abide');
114
+ form.trigger('valid');
117
115
  }
118
116
 
119
117
  form.removeAttr(this.invalid_attr);
@@ -143,7 +141,7 @@
143
141
  if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
144
142
  return [el, this.settings.patterns[pattern], required];
145
143
  } else if (pattern.length > 0) {
146
- return [el, new RegExp('^'+pattern+'$'), required];
144
+ return [el, new RegExp(pattern), required];
147
145
  }
148
146
 
149
147
  if (this.settings.patterns.hasOwnProperty(type)) {
@@ -160,7 +158,6 @@
160
158
  validations = [],
161
159
  form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
162
160
  settings = form.data(this.attr_name(true) + '-init') || {};
163
-
164
161
  while (i--) {
165
162
  var el = el_patterns[i][0],
166
163
  required = el_patterns[i][2],
@@ -187,36 +184,34 @@
187
184
  validations.push(this.valid_radio(el, required));
188
185
  } else if (is_checkbox && required) {
189
186
  validations.push(this.valid_checkbox(el, required));
190
- } else if (validator) {
191
- valid = this.settings.validators[validator].apply(this, [el, required, parent])
192
- validations.push(valid);
187
+ } else {
188
+
189
+ if (validator) {
190
+ valid = this.settings.validators[validator].apply(this, [el, required, parent]);
191
+ validations.push(valid);
192
+ }
193
193
 
194
- if (valid) {
195
- this.S(el).removeAttr(this.invalid_attr);
196
- parent.removeClass('error');
194
+ if (el_patterns[i][1].test(value) && valid_length ||
195
+ !required && el.value.length < 1 || $(el).attr('disabled')) {
196
+ validations.push(true);
197
197
  } else {
198
- this.S(el).attr(this.invalid_attr, '');
199
- parent.addClass('error');
198
+ validations.push(false);
200
199
  }
201
200
 
202
- } else {
201
+ validations = [validations.every(function(valid){return valid;})];
203
202
 
204
- if (el_patterns[i][1].test(value) && valid_length ||
205
- !required && el.value.length < 1 || $(el).attr('disabled')) {
203
+ if(validations[0]){
206
204
  this.S(el).removeAttr(this.invalid_attr);
207
205
  parent.removeClass('error');
208
- if (label.length > 0 && settings.error_labels) label.removeClass('error');
209
-
210
- validations.push(true);
206
+ if (label.length > 0 && this.settings.error_labels) label.removeClass('error');
211
207
  $(el).triggerHandler('valid');
212
208
  } else {
213
- this.S(el).attr(this.invalid_attr, '');
214
209
  parent.addClass('error');
215
- if (label.length > 0 && settings.error_labels) label.addClass('error');
216
-
217
- validations.push(false);
210
+ this.S(el).attr(this.invalid_attr, '');
211
+ if (label.length > 0 && this.settings.error_labels) label.addClass('error');
218
212
  $(el).triggerHandler('invalid');
219
213
  }
214
+
220
215
  }
221
216
  }
222
217
 
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.accordion = {
5
5
  name : 'accordion',
6
6
 
7
- version : '5.3.1',
7
+ version : '5.3.3',
8
8
 
9
9
  settings : {
10
10
  active_class: 'active',
@@ -24,12 +24,12 @@
24
24
  .off('.fndtn.accordion')
25
25
  .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) {
26
26
  var accordion = S(this).closest('[' + self.attr_name() + ']'),
27
- target = S('#' + this.href.split('#')[1]),
28
- siblings = S('dd > .content', accordion),
29
- aunts = $('>dd', accordion),
30
27
  groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
31
28
  settings = accordion.data(self.attr_name(true) + '-init'),
32
- active_content = S('dd > .content.' + settings.active_class, accordion);
29
+ target = S('#' + this.href.split('#')[1]),
30
+ aunts = $('> dd', accordion),
31
+ siblings = aunts.children('.content'),
32
+ active_content = siblings.filter('.' + settings.active_class);
33
33
  e.preventDefault();
34
34
 
35
35
  if (accordion.attr(self.attr_name())) {
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.alert = {
5
5
  name : 'alert',
6
6
 
7
- version : '5.3.1',
7
+ version : '5.3.3',
8
8
 
9
9
  settings : {
10
10
  callback: function (){}
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.clearing = {
5
5
  name : 'clearing',
6
6
 
7
- version: '5.3.1',
7
+ version: '5.3.3',
8
8
 
9
9
  settings : {
10
10
  templates : {
@@ -21,6 +21,9 @@
21
21
  // Default to the entire li element.
22
22
  open_selectors : '',
23
23
 
24
+ // Image will be skipped in carousel.
25
+ skip_selector : '',
26
+
24
27
  touch_label : '',
25
28
 
26
29
  // event initializers and locks
@@ -441,6 +444,11 @@
441
444
  var current = this.S('.visible', $ul),
442
445
  target = current[direction]();
443
446
 
447
+ // Check for skip selector.
448
+ if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
449
+ target = target[direction]();
450
+ }
451
+
444
452
  if (target.length) {
445
453
  this.S('img', target)
446
454
  .trigger('click', [current, target]).trigger('click.fndtn.clearing', [current, target])
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.dropdown = {
5
5
  name : 'dropdown',
6
6
 
7
- version : '5.3.1',
7
+ version : '5.3.3',
8
8
 
9
9
  settings : {
10
10
  active_class: 'open',
@@ -72,7 +72,7 @@
72
72
  .on('click.fndtn.dropdown', function (e) {
73
73
  var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
74
74
 
75
- if (S(e.target).data(self.data_attr()) || S(e.target).parent().data(self.data_attr())) {
75
+ if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
76
76
  return;
77
77
  }
78
78
  if (!(S(e.target).data('revealId')) &&
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.equalizer = {
5
5
  name : 'equalizer',
6
6
 
7
- version : '5.3.1',
7
+ version : '5.3.3',
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.1',
7
+ version : '5.3.3',
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.1',
9
+ version : '5.3.3',
10
10
 
11
11
  defaults : {
12
12
  expose : false, // turn on or off the expose feature
@@ -19,6 +19,7 @@
19
19
  start_timer_on_click : true, // true or false - true requires clicking the first button start the timer
20
20
  start_offset : 0, // the index of the tooltip you want to start on (index of the li)
21
21
  next_button : true, // true or false to control whether a next button is used
22
+ prev_button : true, // true or false to control whether a prev button is used
22
23
  tip_animation : 'fade', // 'pop' or 'fade' in each tip
23
24
  pause_after : [], // array of indexes where to pause the tour after
24
25
  exposed : [], // array of expose elements
@@ -41,14 +42,15 @@
41
42
  pre_ride_callback : function (){}, // A method to call before the tour starts (passed index, tip, and cloned exposed element)
42
43
  post_expose_callback : function (){}, // A method to call after an element has been exposed
43
44
  template : { // HTML segments for tip layout
44
- link : '<a href="#close" class="joyride-close-tip">&times;</a>',
45
- timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
46
- tip : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
47
- wrapper : '<div class="joyride-content-wrapper"></div>',
48
- button : '<a href="#" class="small button joyride-next-tip"></a>',
49
- modal : '<div class="joyride-modal-bg"></div>',
50
- expose : '<div class="joyride-expose-wrapper"></div>',
51
- expose_cover: '<div class="joyride-expose-cover"></div>'
45
+ link : '<a href="#close" class="joyride-close-tip">&times;</a>',
46
+ timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
47
+ tip : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
48
+ wrapper : '<div class="joyride-content-wrapper"></div>',
49
+ button : '<a href="#" class="small button joyride-next-tip"></a>',
50
+ prev_button : '<a href="#" class="small button joyride-prev-tip"></a>',
51
+ modal : '<div class="joyride-modal-bg"></div>',
52
+ expose : '<div class="joyride-expose-wrapper"></div>',
53
+ expose_cover : '<div class="joyride-expose-cover"></div>'
52
54
  },
53
55
  expose_add_class : '' // One or more space-separated class names to be added to exposed element
54
56
  },
@@ -81,6 +83,22 @@
81
83
  this.show();
82
84
  }
83
85
 
86
+ }.bind(this))
87
+ .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
88
+ e.preventDefault();
89
+
90
+ if (this.settings.$li.prev().length < 1) {
91
+ // Do nothing if there are no prev element
92
+ } else if (this.settings.timer > 0) {
93
+ clearTimeout(this.settings.automate);
94
+ this.hide();
95
+ this.show(null, true);
96
+ this.startTimer();
97
+ } else {
98
+ this.hide();
99
+ this.show(null, true);
100
+ }
101
+
84
102
  }.bind(this))
85
103
 
86
104
  .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
@@ -173,6 +191,7 @@
173
191
 
174
192
  $blank = $(this.settings.template.tip).addClass(opts.tip_class);
175
193
  content = $.trim($(opts.li).html()) +
194
+ this.prev_button_text(opts.prev_button_text, opts.index) +
176
195
  this.button_text(opts.button_text) +
177
196
  this.settings.template.link +
178
197
  this.timer_instance(opts.index);
@@ -205,22 +224,40 @@
205
224
  return txt;
206
225
  },
207
226
 
227
+ prev_button_text : function (txt, idx) {
228
+ if (this.settings.tip_settings.prev_button) {
229
+ txt = $.trim(txt) || 'Previous';
230
+
231
+ // Add the disabled class to the button if it's the first element
232
+ if (idx == 0)
233
+ txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
234
+ else
235
+ txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
236
+ } else {
237
+ txt = '';
238
+ }
239
+ return txt;
240
+ },
241
+
208
242
  create : function (opts) {
209
243
  this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
210
- var buttonText = opts.$li.attr(this.add_namespace('data-button'))
244
+ var buttonText = opts.$li.attr(this.add_namespace('data-button'))
211
245
  || opts.$li.attr(this.add_namespace('data-text')),
246
+ prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev'))
247
+ || opts.$li.attr(this.add_namespace('data-prev-text')),
212
248
  tipClass = opts.$li.attr('class'),
213
249
  $tip_content = $(this.tip_template({
214
250
  tip_class : tipClass,
215
251
  index : opts.index,
216
252
  button_text : buttonText,
253
+ prev_button_text : prevButtonText,
217
254
  li : opts.$li
218
255
  }));
219
256
 
220
257
  $(this.settings.tip_container).append($tip_content);
221
258
  },
222
259
 
223
- show : function (init) {
260
+ show : function (init, is_prev) {
224
261
  var $timer = null;
225
262
 
226
263
  // are we paused?
@@ -231,7 +268,7 @@
231
268
  if (this.settings.paused) {
232
269
  this.settings.paused = false;
233
270
  } else {
234
- this.set_li(init);
271
+ this.set_li(init, is_prev);
235
272
  }
236
273
 
237
274
  this.settings.attempts = 0;
@@ -354,13 +391,16 @@
354
391
  this.settings.$current_tip);
355
392
  },
356
393
 
357
- set_li : function (init) {
394
+ set_li : function (init, is_prev) {
358
395
  if (init) {
359
396
  this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
360
397
  this.set_next_tip();
361
398
  this.settings.$current_tip = this.settings.$next_tip;
362
399
  } else {
363
- this.settings.$li = this.settings.$li.next();
400
+ if (is_prev)
401
+ this.settings.$li = this.settings.$li.prev();
402
+ else
403
+ this.settings.$li = this.settings.$li.next();
364
404
  this.set_next_tip();
365
405
  }
366
406
 
@@ -426,7 +466,7 @@
426
466
  if (!/body/i.test(this.settings.$target.selector)) {
427
467
  var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
428
468
  leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
429
-
469
+
430
470
  if (this.bottom()) {
431
471
  if (this.rtl) {
432
472
  this.settings.$next_tip.css({