foundation-rails 5.4.5.0 → 5.5.0.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 (50) hide show
  1. data/bower.json +2 -2
  2. data/foundation-rails.gemspec +1 -1
  3. data/lib/foundation/rails/generators/install_generator.rb +4 -4
  4. data/lib/foundation/rails/templates/application.html.erb +3 -2
  5. data/lib/foundation/rails/templates/application.html.haml +1 -1
  6. data/lib/foundation/rails/templates/application.html.slim +1 -1
  7. data/lib/foundation/rails/version.rb +1 -1
  8. data/vendor/assets/_settings.scss +25 -21
  9. data/vendor/assets/javascripts/foundation/foundation.abide.js +28 -23
  10. data/vendor/assets/javascripts/foundation/foundation.accordion.js +10 -8
  11. data/vendor/assets/javascripts/foundation/foundation.alert.js +4 -4
  12. data/vendor/assets/javascripts/foundation/foundation.clearing.js +3 -3
  13. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +139 -22
  14. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +1 -2
  15. data/vendor/assets/javascripts/foundation/foundation.interchange.js +14 -10
  16. data/vendor/assets/javascripts/foundation/foundation.joyride.js +18 -9
  17. data/vendor/assets/javascripts/foundation/foundation.js +86 -21
  18. data/vendor/assets/javascripts/foundation/foundation.magellan.js +15 -6
  19. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +14 -14
  20. data/vendor/assets/javascripts/foundation/foundation.orbit.js +3 -3
  21. data/vendor/assets/javascripts/foundation/foundation.reveal.js +16 -11
  22. data/vendor/assets/javascripts/foundation/foundation.slider.js +56 -28
  23. data/vendor/assets/javascripts/foundation/foundation.tab.js +9 -9
  24. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +1 -1
  25. data/vendor/assets/javascripts/foundation/foundation.topbar.js +5 -5
  26. data/vendor/assets/stylesheets/foundation/_functions.scss +57 -12
  27. data/vendor/assets/stylesheets/foundation/_settings.scss +25 -21
  28. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +1 -1
  29. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +2 -0
  30. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +1 -2
  31. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +4 -5
  32. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +11 -10
  33. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +1 -0
  34. data/vendor/assets/stylesheets/foundation/components/_forms.scss +31 -32
  35. data/vendor/assets/stylesheets/foundation/components/_global.scss +53 -25
  36. data/vendor/assets/stylesheets/foundation/components/_grid.scss +18 -4
  37. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +51 -15
  38. data/vendor/assets/stylesheets/foundation/components/_labels.scss +2 -2
  39. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +8 -6
  40. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +11 -11
  41. data/vendor/assets/stylesheets/foundation/components/_panels.scss +6 -0
  42. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +6 -3
  43. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +1 -3
  44. data/vendor/assets/stylesheets/foundation/components/_switches.scss +25 -13
  45. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +2 -2
  46. data/vendor/assets/stylesheets/foundation/components/_toolbar.scss +3 -3
  47. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +64 -53
  48. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +7 -7
  49. data/vendor/assets/stylesheets/normalize.scss +5 -3
  50. metadata +8 -8
data/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "foundation-rails",
3
- "version": "5.4.5.0",
3
+ "version": "5.5.0.0",
4
4
  "dependencies": {
5
- "foundation": "5.4.5"
5
+ "foundation": "5.5.0"
6
6
  }
7
7
  }
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_dependency "sass", [">= 3.2.0"]
22
+ spec.add_dependency "sass", [">= 3.2.0", "< 3.4"]
23
23
  spec.add_dependency "railties", [">= 3.1.0"]
24
24
  spec.add_development_dependency "rake"
25
25
  end
@@ -14,7 +14,7 @@ module Foundation
14
14
  # rails_ujs breaks, need to incorporate rails-behavior plugin for this to work seamlessly
15
15
  # gsub_file "app/assets/javascripts/application#{detect_js_format[0]}", /\/\/= require jquery\n/, ""
16
16
  insert_into_file "app/assets/javascripts/application#{detect_js_format[0]}", "#{detect_js_format[1]} require foundation\n", :after => "jquery_ujs\n"
17
- append_to_file "app/assets/javascripts/application#{detect_js_format[0]}", "\n$(function(){ $(document).foundation(); });\n"
17
+ append_to_file "app/assets/javascripts/application#{detect_js_format[0]}", "#{detect_js_format[2]}"
18
18
  settings_file = File.join(File.dirname(__FILE__),"..", "..", "..", "..", "vendor", "assets", "stylesheets", "foundation", "_settings.scss")
19
19
  create_file "app/assets/stylesheets/foundation_and_overrides.scss", File.read(settings_file)
20
20
  append_to_file "app/assets/stylesheets/foundation_and_overrides.scss", "\n@import 'foundation';\n"
@@ -22,9 +22,9 @@ module Foundation
22
22
  end
23
23
 
24
24
  def detect_js_format
25
- return ['.coffee', '#='] if File.exist?('app/assets/javascripts/application.coffee')
26
- return ['.js.coffee', '#='] if File.exist?('app/assets/javascripts/application.js.coffee')
27
- return ['.js', '//='] if File.exist?('app/assets/javascripts/application.js')
25
+ return ['.coffee', '#=', "\n() ->\n $(document).foundation()\n"] if File.exist?('app/assets/javascripts/application.coffee')
26
+ return ['.js.coffee', '#=', "\n() ->\n $(document).foundation()\n"] if File.exist?('app/assets/javascripts/application.js.coffee')
27
+ return ['.js', '//=', "\n$(function(){ $(document).foundation(); });\n"] if File.exist?('app/assets/javascripts/application.js')
28
28
  end
29
29
 
30
30
  def detect_css_format
@@ -8,12 +8,13 @@
8
8
 
9
9
  <%%= stylesheet_link_tag "application" %>
10
10
  <%%= javascript_include_tag "vendor/modernizr" %>
11
+ <%%= javascript_include_tag "application" 'data-turbolinks-track' => true %>
11
12
  <%%= csrf_meta_tags %>
12
13
  </head>
13
14
 
14
15
  <body>
15
16
 
16
17
  <%%= yield %>
17
- <%%= javascript_include_tag "application" %>
18
+
18
19
  </body>
19
- </html>
20
+ </html>
@@ -9,10 +9,10 @@
9
9
 
10
10
  = stylesheet_link_tag "application"
11
11
  = javascript_include_tag "vendor/modernizr"
12
+ = javascript_include_tag "application", 'data-turbolinks-track' => true
12
13
  = csrf_meta_tag
13
14
 
14
15
  %body
15
16
 
16
17
  = yield
17
18
 
18
- = javascript_include_tag "application"
@@ -8,10 +8,10 @@ html lang="en"
8
8
 
9
9
  = stylesheet_link_tag "application"
10
10
  = javascript_include_tag "vendor/modernizr"
11
+ = javascript_include_tag "application", 'data-turbolinks-track' => true
11
12
  = csrf_meta_tag
12
13
 
13
14
  body
14
15
 
15
16
  == yield
16
17
 
17
- = javascript_include_tag "application"
@@ -1,5 +1,5 @@
1
1
  module Foundation
2
2
  module Rails
3
- VERSION = "5.4.5.0"
3
+ VERSION = "5.5.0.0"
4
4
  end
5
5
  end
@@ -95,14 +95,6 @@ $include-html-global-classes: $include-html-classes;
95
95
  // $font-weight-normal: normal !default;
96
96
  // $font-weight-bold: bold !default;
97
97
 
98
- // We use these as default colors throughout
99
- // $primary-color: #008CBA;
100
- // $secondary-color: #e7e7e7;
101
- // $alert-color: #f04124;
102
- // $success-color: #43AC6A;
103
- // $warning-color: #f08a24;
104
- // $info-color: #a0d3e8;
105
-
106
98
  // $white : #FFFFFF;
107
99
  // $ghost : #FAFAFA;
108
100
  // $snow : #F9F9F9;
@@ -123,6 +115,14 @@ $include-html-global-classes: $include-html-classes;
123
115
  // $jet : #222222;
124
116
  // $black : #000000;
125
117
 
118
+ // We use these as default colors throughout
119
+ // $primary-color: #008CBA;
120
+ // $secondary-color: #e7e7e7;
121
+ // $alert-color: #f04124;
122
+ // $success-color: #43AC6A;
123
+ // $warning-color: #f08a24;
124
+ // $info-color: #a0d3e8;
125
+
126
126
  // We use these to control various global styles
127
127
  // $body-bg: $white;
128
128
  // $body-font-color: $jet;
@@ -318,14 +318,14 @@ $include-html-global-classes: $include-html-classes;
318
318
  // $include-html-accordion-classes: $include-html-classes;
319
319
 
320
320
  // $accordion-navigation-padding: rem-calc(16);
321
- // $accordion-navigation-bg-color: $silver ;
321
+ // $accordion-navigation-bg-color: $silver;
322
322
  // $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
323
323
  // $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
324
324
  // $accordion-navigation-font-color: $jet;
325
325
  // $accordion-navigation-font-size: rem-calc(16);
326
326
  // $accordion-navigation-font-family: $body-font-family;
327
327
 
328
- // $accordion-content-padding: $column-gutter/2;
328
+ // $accordion-content-padding: ($column-gutter/2);
329
329
  // $accordion-content-active-bg-color: $white;
330
330
 
331
331
  // 02. Alert Boxes
@@ -545,7 +545,7 @@ $include-html-global-classes: $include-html-classes;
545
545
  // $f-dropdown-font-size: rem-calc(14);
546
546
  // $f-dropdown-list-padding: rem-calc(5, 10);
547
547
  // $f-dropdown-line-height: rem-calc(18);
548
- // $f-dropdown-list-hover-bg: $smoke ;
548
+ // $f-dropdown-list-hover-bg: $smoke;
549
549
  // $dropdown-mobile-default-float: 0;
550
550
 
551
551
  // We use this to control the styles for when the dropdown has custom content.
@@ -573,25 +573,25 @@ $include-html-global-classes: $include-html-classes;
573
573
  // $dropdown-button-padding-tny: $button-pip-tny * 7;
574
574
  // $dropdown-button-pip-size-tny: $button-pip-tny;
575
575
  // $dropdown-button-pip-opposite-tny: $button-pip-tny * 3;
576
- // $dropdown-button-pip-top-tny: -$button-pip-tny / 2 + rem-calc(1);
576
+ // $dropdown-button-pip-top-tny: (-$button-pip-tny / 2) + rem-calc(1);
577
577
 
578
578
  // We use these to style small dropdown buttons
579
579
  // $dropdown-button-padding-sml: $button-pip-sml * 7;
580
580
  // $dropdown-button-pip-size-sml: $button-pip-sml;
581
581
  // $dropdown-button-pip-opposite-sml: $button-pip-sml * 3;
582
- // $dropdown-button-pip-top-sml: -$button-pip-sml / 2 + rem-calc(1);
582
+ // $dropdown-button-pip-top-sml: (-$button-pip-sml / 2) + rem-calc(1);
583
583
 
584
584
  // We use these to style medium dropdown buttons
585
585
  // $dropdown-button-padding-med: $button-pip-med * 6 + rem-calc(3);
586
586
  // $dropdown-button-pip-size-med: $button-pip-med - rem-calc(3);
587
587
  // $dropdown-button-pip-opposite-med: $button-pip-med * 2.5;
588
- // $dropdown-button-pip-top-med: -$button-pip-med / 2 + rem-calc(2);
588
+ // $dropdown-button-pip-top-med: (-$button-pip-med / 2) + rem-calc(2);
589
589
 
590
590
  // We use these to style large dropdown buttons
591
591
  // $dropdown-button-padding-lrg: $button-pip-lrg * 5 + rem-calc(3);
592
592
  // $dropdown-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
593
593
  // $dropdown-button-pip-opposite-lrg: $button-pip-lrg * 2.5;
594
- // $dropdown-button-pip-top-lrg: -$button-pip-lrg / 2 + rem-calc(3);
594
+ // $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3);
595
595
 
596
596
  // 10. Flex Video
597
597
  // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -667,6 +667,7 @@ $include-html-global-classes: $include-html-classes;
667
667
  // $input-error-message-font-weight: $font-weight-normal;
668
668
  // $input-error-message-font-style: italic;
669
669
  // $input-error-message-font-color: $white;
670
+ // $input-error-message-bg-color: $alert-color;
670
671
  // $input-error-message-font-color-alt: $oil;
671
672
 
672
673
  // We use this to style the glowing effect of inputs when focused
@@ -685,9 +686,11 @@ $include-html-global-classes: $include-html-classes;
685
686
  // $include-html-icon-bar-classes: $include-html-classes;
686
687
  // $icon-bar-bg: $oil;
687
688
  // $icon-bar-font-color: $white;
689
+ // $icon-bar-font-color-hover: $icon-bar-font-color;
688
690
  // $icon-bar-font-size: 1rem;
689
691
  // $icon-bar-hover-color: $primary-color;
690
692
  // $icon-bar-icon-color: $white;
693
+ // $icon-bar-icon-color-hover: $icon-bar-icon-color;
691
694
  // $icon-bar-icon-size: 1.875rem;
692
695
  // $icon-bar-image-width: 1.875rem;
693
696
  // $icon-bar-image-height: 1.875rem;
@@ -991,7 +994,7 @@ $include-html-global-classes: $include-html-classes;
991
994
  // $price-title-font-family: $body-font-family;
992
995
 
993
996
  // We use these to control the price styles
994
- // $price-money-bg: $vapor ;
997
+ // $price-money-bg: $vapor;
995
998
  // $price-money-padding: rem-calc(15 20);
996
999
  // $price-money-align: center;
997
1000
  // $price-money-color: $oil;
@@ -1268,7 +1271,7 @@ $include-html-global-classes: $include-html-classes;
1268
1271
 
1269
1272
  // These control the background color for the table and even rows
1270
1273
  // $table-bg: $white;
1271
- // $table-even-row-bg: $snow ;
1274
+ // $table-even-row-bg: $snow;
1272
1275
 
1273
1276
  // These control the table cell border style
1274
1277
  // $table-border-style: solid;
@@ -1308,7 +1311,7 @@ $include-html-global-classes: $include-html-classes;
1308
1311
  // $tabs-navigation-font-family: $body-font-family;
1309
1312
 
1310
1313
  // $tabs-content-margin-bottom: rem-calc(24);
1311
- // $tabs-content-padding: $column-gutter/2;
1314
+ // $tabs-content-padding: ($column-gutter/2);
1312
1315
 
1313
1316
  // $tabs-vertical-navigation-margin-bottom: 1.25rem;
1314
1317
 
@@ -1365,7 +1368,7 @@ $include-html-global-classes: $include-html-classes;
1365
1368
  // $topbar-bg: $topbar-bg-color;
1366
1369
 
1367
1370
  // Height and margin
1368
- // $topbar-height: 45px;
1371
+ // $topbar-height: rem-calc(45);
1369
1372
  // $topbar-margin-bottom: 0;
1370
1373
 
1371
1374
  // Controlling the styles for the title in the top bar
@@ -1376,6 +1379,7 @@ $include-html-global-classes: $include-html-classes;
1376
1379
  // $topbar-dropdown-bg: $oil;
1377
1380
  // $topbar-dropdown-link-color: $white;
1378
1381
  // $topbar-dropdown-link-bg: $oil;
1382
+ // $topbar-dropdown-link-bg-hover: $oil;
1379
1383
  // $topbar-dropdown-link-weight: $font-weight-normal;
1380
1384
  // $topbar-dropdown-toggle-size: 5px;
1381
1385
  // $topbar-dropdown-toggle-color: $white;
@@ -1391,12 +1395,12 @@ $include-html-global-classes: $include-html-classes;
1391
1395
  // $topbar-link-hover-lightness: -10%; // Darken by 10%
1392
1396
  // $topbar-link-bg: $topbar-bg;
1393
1397
  // $topbar-link-bg-color-hover: $charcoal;
1394
- // $topbar-link-bg-hover: #272727;
1398
+ // $topbar-link-bg-hover: $oil;
1395
1399
  // $topbar-link-bg-active: $primary-color;
1396
1400
  // $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
1397
1401
  // $topbar-link-font-family: $body-font-family;
1398
1402
  // $topbar-link-text-transform: none;
1399
- // $topbar-link-padding: $topbar-height / 3;
1403
+ // $topbar-link-padding: ($topbar-height / 3);
1400
1404
  // $topbar-back-link-size: $h5-font-size;
1401
1405
  // $topbar-link-dropdown-padding: 20px;
1402
1406
 
@@ -4,12 +4,14 @@
4
4
  Foundation.libs.abide = {
5
5
  name : 'abide',
6
6
 
7
- version : '5.4.5',
7
+ version : '5.5.0',
8
8
 
9
9
  settings : {
10
10
  live_validate : true,
11
+ validate_on_blur: true,
11
12
  focus_on_invalid : true,
12
13
  error_labels: true, // labels with a for="inputId" will recieve an `error` class
14
+ error_class: 'error',
13
15
  timeout : 1000,
14
16
  patterns : {
15
17
  alpha: /^[a-zA-Z]+$/,
@@ -26,7 +28,7 @@
26
28
 
27
29
  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
30
  // abc.de
29
- domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/,
31
+ domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
30
32
 
31
33
  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
34
  // YYYY-MM-DD
@@ -78,10 +80,12 @@
78
80
  .find('input, textarea, select')
79
81
  .off('.abide')
80
82
  .on('blur.fndtn.abide change.fndtn.abide', function (e) {
81
- self.validate([this], e);
83
+ if (settings.validate_on_blur === true) {
84
+ self.validate([this], e);
85
+ }
82
86
  })
83
87
  .on('keydown.fndtn.abide', function (e) {
84
- if (settings.live_validate === true) {
88
+ if (settings.live_validate === true && e.which != 9) {
85
89
  clearTimeout(self.timer);
86
90
  self.timer = setTimeout(function () {
87
91
  self.validate([this], e);
@@ -93,7 +97,7 @@
93
97
  reset : function (form) {
94
98
  form.removeAttr(this.invalid_attr);
95
99
  $(this.invalid_attr, form).removeAttr(this.invalid_attr);
96
- $('.error', form).not('small').removeClass('error');
100
+ $('.' + this.settings.error_class, form).not('small').removeClass(this.settings.error_class);
97
101
  },
98
102
 
99
103
  validate : function (els, e, is_ajax) {
@@ -106,14 +110,14 @@
106
110
  for (var i=0; i < validation_count; i++) {
107
111
  if (!validations[i] && (submit_event || is_ajax)) {
108
112
  if (this.settings.focus_on_invalid) els[i].focus();
109
- form.trigger('invalid');
113
+ form.trigger('invalid').trigger('invalid.fndtn.abide');
110
114
  this.S(els[i]).closest('form').attr(this.invalid_attr, '');
111
115
  return false;
112
116
  }
113
117
  }
114
118
 
115
119
  if (submit_event || is_ajax) {
116
- form.trigger('valid');
120
+ form.trigger('valid').trigger('valid.fndtn.abide');
117
121
  }
118
122
 
119
123
  form.removeAttr(this.invalid_attr);
@@ -155,6 +159,7 @@
155
159
  return [el, pattern, required];
156
160
  },
157
161
 
162
+ // TODO: Break this up into smaller methods, getting hard to read.
158
163
  check_validation_and_apply_styles : function (el_patterns) {
159
164
  var i = el_patterns.length,
160
165
  validations = [],
@@ -207,9 +212,9 @@
207
212
  this.S(el).removeAttr(this.invalid_attr);
208
213
  el.setAttribute('aria-invalid', 'false');
209
214
  el.removeAttribute('aria-describedby');
210
- parent.removeClass('error');
215
+ parent.removeClass(this.settings.error_class);
211
216
  if (label.length > 0 && this.settings.error_labels) {
212
- label.removeClass('error').removeAttr('role');
217
+ label.removeClass(this.settings.error_class).removeAttr('role');
213
218
  }
214
219
  $(el).triggerHandler('valid');
215
220
  } else {
@@ -217,19 +222,19 @@
217
222
  el.setAttribute('aria-invalid', 'true');
218
223
 
219
224
  // Try to find the error associated with the input
220
- var errorElem = parent.find('small.error, span.error');
225
+ var errorElem = parent.find('small.'+this.settings.error_class, 'span.'+this.settings.error_class);
221
226
  var errorID = errorElem.length > 0 ? errorElem[0].id : "";
222
227
  if (errorID.length > 0) el.setAttribute('aria-describedby', errorID);
223
228
 
224
229
  // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
225
- parent.addClass('error');
230
+ parent.addClass(this.settings.error_class);
226
231
  if (label.length > 0 && this.settings.error_labels) {
227
- label.addClass('error').attr('role', 'alert');
232
+ label.addClass(this.settings.error_class).attr('role', 'alert');
228
233
  }
229
234
  $(el).triggerHandler('invalid');
230
235
  }
231
- validations.push(el_validations[0]);
232
236
  }
237
+ validations.push(el_validations[0]);
233
238
  }
234
239
  validations = [validations.every(function(valid){return valid;})];
235
240
  return validations;
@@ -240,9 +245,9 @@
240
245
  valid = (el.is(':checked') || !required);
241
246
 
242
247
  if (valid) {
243
- el.removeAttr(this.invalid_attr).parent().removeClass('error');
248
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
244
249
  } else {
245
- el.attr(this.invalid_attr, '').parent().addClass('error');
250
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
246
251
  }
247
252
 
248
253
  return valid;
@@ -262,9 +267,9 @@
262
267
  // Has to count up to make sure the focus gets applied to the top error
263
268
  for (var i=0; i < count; i++) {
264
269
  if (valid) {
265
- this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass('error');
270
+ this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
266
271
  } else {
267
- this.S(group[i]).attr(this.invalid_attr, '').parent().addClass('error');
272
+ this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
268
273
  }
269
274
  }
270
275
 
@@ -278,12 +283,12 @@
278
283
 
279
284
  if (valid) {
280
285
  this.S(el).removeAttr(this.invalid_attr);
281
- parent.removeClass('error');
282
- if (label.length > 0 && settings.error_labels) label.removeClass('error');
286
+ parent.removeClass(this.settings.error_class);
287
+ if (label.length > 0 && settings.error_labels) label.removeClass(this.settings.error_class);
283
288
  } else {
284
289
  this.S(el).attr(this.invalid_attr, '');
285
- parent.addClass('error');
286
- if (label.length > 0 && settings.error_labels) label.addClass('error');
290
+ parent.addClass(this.settings.error_class);
291
+ if (label.length > 0 && settings.error_labels) label.addClass(this.settings.error_class);
287
292
  }
288
293
 
289
294
  return valid;
@@ -295,9 +300,9 @@
295
300
  valid = others.filter(':checked').length > 0;
296
301
 
297
302
  if (valid) {
298
- el.removeAttr(this.invalid_attr).parent().removeClass('error');
303
+ el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
299
304
  } else {
300
- el.attr(this.invalid_attr, '').parent().addClass('error');
305
+ el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
301
306
  }
302
307
 
303
308
  if (!doNotValidateOthers) {
@@ -4,9 +4,10 @@
4
4
  Foundation.libs.accordion = {
5
5
  name : 'accordion',
6
6
 
7
- version : '5.4.5',
7
+ version : '5.5.0',
8
8
 
9
9
  settings : {
10
+ content_class: 'content',
10
11
  active_class: 'active',
11
12
  multi_expand: false,
12
13
  toggleable: true,
@@ -22,23 +23,24 @@
22
23
  var S = this.S;
23
24
  S(this.scope)
24
25
  .off('.fndtn.accordion')
25
- .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) {
26
+ .on('click.fndtn.accordion', '[' + this.attr_name() + '] > .accordion-navigation > a', function (e) {
26
27
  var accordion = S(this).closest('[' + self.attr_name() + ']'),
27
28
  groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
28
- settings = accordion.data(self.attr_name(true) + '-init'),
29
+ settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
29
30
  target = S('#' + this.href.split('#')[1]),
30
- aunts = $('> dd', accordion),
31
- siblings = aunts.children('.content'),
31
+ aunts = $('> .accordion-navigation', accordion),
32
+ siblings = aunts.children('.'+settings.content_class),
32
33
  active_content = siblings.filter('.' + settings.active_class);
34
+
33
35
  e.preventDefault();
34
36
 
35
37
  if (accordion.attr(self.attr_name())) {
36
- siblings = siblings.add('[' + groupSelector + '] dd > .content');
37
- aunts = aunts.add('[' + groupSelector + '] dd');
38
+ siblings = siblings.add('[' + groupSelector + '] dd > '+'.'+settings.content_class);
39
+ aunts = aunts.add('[' + groupSelector + '] .accordion-navigation');
38
40
  }
39
41
 
40
42
  if (settings.toggleable && target.is(active_content)) {
41
- target.parent('dd').toggleClass(settings.active_class, false);
43
+ target.parent('.accordion-navigation').toggleClass(settings.active_class, false);
42
44
  target.toggleClass(settings.active_class, false);
43
45
  settings.callback(target);
44
46
  target.triggerHandler('toggled', [accordion]);