materialize-sass 0.96.1 → 0.96.2

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/fonts/material-design-icons/Material-Design-Icons.eot +0 -0
  3. data/app/assets/fonts/material-design-icons/Material-Design-Icons.svg +760 -742
  4. data/app/assets/fonts/material-design-icons/Material-Design-Icons.ttf +0 -0
  5. data/app/assets/fonts/material-design-icons/Material-Design-Icons.woff +0 -0
  6. data/app/assets/fonts/material-design-icons/Material-Design-Icons.woff2 +0 -0
  7. data/app/assets/javascripts/materialize.js +4 -6022
  8. data/app/assets/javascripts/materialize/cards.js +1 -1
  9. data/app/assets/javascripts/materialize/character_counter.js +1 -1
  10. data/app/assets/javascripts/materialize/collapsible.js +6 -6
  11. data/app/assets/javascripts/materialize/dropdown.js +10 -10
  12. data/app/assets/javascripts/materialize/forms.js +29 -19
  13. data/app/assets/javascripts/materialize/global.js +7 -2
  14. data/app/assets/javascripts/materialize/init.js +3 -4
  15. data/app/assets/javascripts/materialize/leanModal.js +56 -31
  16. data/app/assets/javascripts/materialize/materialbox.js +10 -10
  17. data/app/assets/javascripts/materialize/scrollFire.js +3 -28
  18. data/app/assets/javascripts/materialize/sideNav.js +31 -54
  19. data/app/assets/javascripts/materialize/slider.js +246 -200
  20. data/app/assets/javascripts/materialize/tabs.js +9 -2
  21. data/app/assets/javascripts/materialize/toasts.js +7 -3
  22. data/app/assets/javascripts/materialize/tooltip.js +7 -7
  23. data/app/assets/javascripts/materialize/transitions.js +2 -2
  24. data/app/assets/stylesheets/materialize/components/_buttons.scss +6 -0
  25. data/app/assets/stylesheets/materialize/components/_collapsible.scss +4 -7
  26. data/app/assets/stylesheets/materialize/components/_color.scss +1 -1
  27. data/app/assets/stylesheets/materialize/components/_dropdown.scss +7 -5
  28. data/app/assets/stylesheets/materialize/components/_form.scss +43 -6
  29. data/app/assets/stylesheets/materialize/components/_global.scss +32 -25
  30. data/app/assets/stylesheets/materialize/components/_icons-material-design.scss +3231 -757
  31. data/app/assets/stylesheets/materialize/components/_modal.scss +7 -5
  32. data/app/assets/stylesheets/materialize/components/_navbar.scss +6 -5
  33. data/app/assets/stylesheets/materialize/components/_slider.scss +1 -1
  34. data/app/assets/stylesheets/materialize/components/_tabs.scss +5 -0
  35. data/app/assets/stylesheets/materialize/components/_tooltip.scss +1 -1
  36. data/app/assets/stylesheets/materialize/components/_typography.scss +1 -3
  37. data/app/assets/stylesheets/materialize/components/_variables.scss +2 -1
  38. data/app/assets/stylesheets/materialize/components/date_picker/_default.scss +5 -5
  39. data/lib/materialize-sass/engine.rb +1 -1
  40. data/lib/materialize-sass/version.rb +1 -1
  41. metadata +3 -3
@@ -10,7 +10,7 @@
10
10
  duration: 225,
11
11
  queue: false,
12
12
  easing: 'easeInOutQuad',
13
- complete: function() { $(this).css({ display: 'none'}) }
13
+ complete: function() { $(this).css({ display: 'none'}); }
14
14
  }
15
15
  );
16
16
  }
@@ -3,7 +3,7 @@
3
3
  $.fn.characterCounter = function(){
4
4
  return this.each(function(){
5
5
 
6
- itHasLengthAttribute = $(this).attr('length') != undefined;
6
+ itHasLengthAttribute = $(this).attr('length') !== undefined;
7
7
 
8
8
  if(itHasLengthAttribute){
9
9
  $(this).on('input', updateCounter);
@@ -34,10 +34,10 @@
34
34
  object.parent().removeClass('active');
35
35
  }
36
36
  if (object.parent().hasClass('active')){
37
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '')}});
37
+ object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
38
38
  }
39
39
  else{
40
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '')}});
40
+ object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
41
41
  }
42
42
 
43
43
  $panel_headers.not(object).removeClass('active').parent().removeClass('active');
@@ -48,7 +48,7 @@
48
48
  queue: false,
49
49
  complete:
50
50
  function() {
51
- $(this).css('height', '')
51
+ $(this).css('height', '');
52
52
  }
53
53
  });
54
54
  }
@@ -62,10 +62,10 @@
62
62
  object.parent().removeClass('active');
63
63
  }
64
64
  if (object.parent().hasClass('active')){
65
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '')}});
65
+ object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
66
66
  }
67
67
  else{
68
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '')}});
68
+ object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
69
69
  }
70
70
  }
71
71
 
@@ -95,7 +95,7 @@
95
95
 
96
96
 
97
97
 
98
- if (options.accordion || collapsible_type == "accordion" || collapsible_type == undefined) { // Handle Accordion
98
+ if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
99
99
  // Add click handler to only direct collapsible header children
100
100
  $panel_headers = $this.find('> li > .collapsible-header');
101
101
  $panel_headers.on('click.collapse', function (e) {
@@ -15,7 +15,7 @@
15
15
  hover: false,
16
16
  gutter: 0, // Spacing from edge
17
17
  belowOrigin: false
18
- }
18
+ };
19
19
 
20
20
  this.each(function(){
21
21
  var origin = $(this);
@@ -25,17 +25,17 @@
25
25
  var activates = $("#"+ origin.attr('data-activates'));
26
26
 
27
27
  function updateOptions() {
28
- if (origin.data('induration') != undefined)
28
+ if (origin.data('induration') !== undefined)
29
29
  options.inDuration = origin.data('inDuration');
30
- if (origin.data('outduration') != undefined)
30
+ if (origin.data('outduration') !== undefined)
31
31
  options.outDuration = origin.data('outDuration');
32
- if (origin.data('constrainwidth') != undefined)
32
+ if (origin.data('constrainwidth') !== undefined)
33
33
  options.constrain_width = origin.data('constrainwidth');
34
- if (origin.data('hover') != undefined)
34
+ if (origin.data('hover') !== undefined)
35
35
  options.hover = origin.data('hover');
36
- if (origin.data('gutter') != undefined)
36
+ if (origin.data('gutter') !== undefined)
37
37
  options.gutter = origin.data('gutter');
38
- if (origin.data('beloworigin') != undefined)
38
+ if (origin.data('beloworigin') !== undefined)
39
39
  options.belowOrigin = origin.data('beloworigin');
40
40
  }
41
41
 
@@ -56,11 +56,11 @@
56
56
  activates.addClass('active');
57
57
 
58
58
  // Constrain width
59
- if (options.constrain_width == true) {
59
+ if (options.constrain_width === true) {
60
60
  activates.css('width', origin.outerWidth());
61
61
  }
62
62
  var offset = 0;
63
- if (options.belowOrigin == true) {
63
+ if (options.belowOrigin === true) {
64
64
  offset = origin.height();
65
65
  }
66
66
 
@@ -110,7 +110,7 @@
110
110
  origin.on('mouseenter', function(e){ // Mouse over
111
111
  if (open === false) {
112
112
  placeDropdown();
113
- open = true
113
+ open = true;
114
114
  }
115
115
  });
116
116
  origin.on('mouseleave', function(e){
@@ -5,14 +5,14 @@
5
5
  Materialize.updateTextFields = function() {
6
6
  var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
7
7
  $(input_selector).each(function(index, element) {
8
- if ($(element).val().length > 0 || $(this).attr('placeholder') !== undefined) {
8
+ if ($(element).val().length > 0 || $(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) {
9
9
  $(this).siblings('label, i').addClass('active');
10
10
  }
11
11
  else {
12
12
  $(this).siblings('label, i').removeClass('active');
13
13
  }
14
14
  });
15
- }
15
+ };
16
16
 
17
17
  // Text based inputs
18
18
  var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
@@ -53,14 +53,15 @@
53
53
  });
54
54
 
55
55
  $(document).on('blur', input_selector, function () {
56
- if ($(this).val().length === 0 && $(this).attr('placeholder') === undefined) {
57
- $(this).siblings('label, i').removeClass('active');
56
+ var $inputElement = $(this);
57
+ if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) {
58
+ $inputElement.siblings('label, i').removeClass('active');
58
59
  }
59
- validate_field($(this));
60
+ validate_field($inputElement);
60
61
  });
61
62
 
62
63
  validate_field = function(object) {
63
- if (object.val().length === 0) {
64
+ if (object.val().length === 0 && object[0].validity.badInput === false) {
64
65
  if (object.hasClass('validate')) {
65
66
  object.removeClass('valid');
66
67
  object.removeClass('invalid');
@@ -78,7 +79,7 @@
78
79
  }
79
80
  }
80
81
  }
81
- }
82
+ };
82
83
 
83
84
 
84
85
  // Textarea Auto Resize
@@ -90,10 +91,17 @@
90
91
  var text_area_selector = '.materialize-textarea';
91
92
 
92
93
  function textareaAutoResize($textarea) {
94
+ // Set fontsize of hiddenDiv
95
+ var fontSize = $textarea.css('font-size');
96
+ if (fontSize) {
97
+ hiddenDiv.css('font-size', fontSize);
98
+ }
99
+
93
100
  hiddenDiv.text($textarea.val() + '\n');
94
101
  var content = hiddenDiv.html().replace(/\n/g, '<br>');
95
102
  hiddenDiv.html(content);
96
103
 
104
+
97
105
  // When textarea is hidden, width goes crazy.
98
106
  // Approximate with half of window size
99
107
 
@@ -240,11 +248,13 @@
240
248
  wrapper.addClass($select.attr('class'));
241
249
  var options = $('<ul id="select-options-' + uniqueID+'" class="dropdown-content select-dropdown"></ul>');
242
250
  var selectOptions = $select.children('option');
251
+
252
+ var label;
243
253
  if ($select.find('option:selected') !== undefined) {
244
- var label = $select.find('option:selected');
254
+ label = $select.find('option:selected');
245
255
  }
246
256
  else {
247
- var label = options.first();
257
+ label = options.first();
248
258
  }
249
259
 
250
260
 
@@ -313,36 +323,36 @@
313
323
  collection.find('li.active').removeClass('active');
314
324
  $(newOption).addClass('active');
315
325
  collection.scrollTo(newOption);
316
- }
326
+ };
317
327
 
318
328
  // Allow user to search by typing
319
329
  // this array is cleared after 1 second
320
- filterQuery = []
330
+ filterQuery = [];
321
331
 
322
332
  onKeyDown = function(event){
323
333
  // TAB - switch to another input
324
334
  if(event.which == 9){
325
335
  $newSelect.trigger('close');
326
- return
336
+ return;
327
337
  }
328
338
 
329
339
  // ARROW DOWN WHEN SELECT IS CLOSED - open select options
330
340
  if(event.which == 40 && !options.is(":visible")){
331
341
  $newSelect.trigger('open');
332
- return
342
+ return;
333
343
  }
334
344
 
335
345
  // ENTER WHEN SELECT IS CLOSED - submit form
336
346
  if(event.which == 13 && !options.is(":visible")){
337
- return
347
+ return;
338
348
  }
339
349
 
340
350
  event.preventDefault();
341
351
 
342
352
  // CASE WHEN USER TYPE LETTERS
343
353
  letter = String.fromCharCode(event.which).toLowerCase();
344
-
345
- if (letter){
354
+ var nonLetters = [9,13,27,38,40];
355
+ if (letter && (nonLetters.indexOf(event.which) === -1)){
346
356
  filterQuery.push(letter);
347
357
 
348
358
  string = filterQuery.join("");
@@ -387,11 +397,11 @@
387
397
  }
388
398
 
389
399
  // Automaticaly clean filter query so user can search again by starting letters
390
- setTimeout(function(){filterQuery = []}, 1000)
391
- }
400
+ setTimeout(function(){ filterQuery = []; }, 1000);
401
+ };
392
402
 
393
403
  $newSelect.on('keydown', onKeyDown);
394
404
  });
395
- }
405
+ };
396
406
 
397
407
  }( jQuery ));
@@ -24,8 +24,13 @@ Materialize.elementOrParentIsFixed = function(element) {
24
24
  }
25
25
  });
26
26
  return isFixed;
27
- }
27
+ };
28
28
 
29
29
  // Velocity has conflicts when loaded with jQuery, this will check for it
30
30
  var Vel;
31
- if ($) { Vel = $.Velocity } else { Vel = Velocity};
31
+ if ($) {
32
+ Vel = $.Velocity;
33
+ }
34
+ else {
35
+ Vel = Velocity;
36
+ }
@@ -81,11 +81,11 @@
81
81
  }
82
82
 
83
83
  // Toggle Flow Text
84
- var toggleFlowTextButton = $('#flow-toggle')
84
+ var toggleFlowTextButton = $('#flow-toggle');
85
85
  toggleFlowTextButton.click( function(){
86
86
  $('#flow-text-demo').children('p').each(function(){
87
87
  $(this).toggleClass('flow-text');
88
- })
88
+ });
89
89
  });
90
90
 
91
91
  // Toggle Containers on page
@@ -113,7 +113,7 @@
113
113
  }
114
114
  }
115
115
  if (is_touch_device()) {
116
- $('#nav-mobile').css({ overflow: 'auto'})
116
+ $('#nav-mobile').css({ overflow: 'auto'});
117
117
  }
118
118
 
119
119
  // Set checkbox on forms.html to indeterminate
@@ -124,7 +124,6 @@
124
124
 
125
125
  // Plugin initialization
126
126
  $('.slider').slider({full_width: true});
127
- $('.tab-demo').show().tabs();
128
127
  $('.parallax').parallax();
129
128
  $('.modal-trigger').leanModal();
130
129
  $('.scrollspy').scrollSpy();
@@ -1,9 +1,16 @@
1
1
  (function($) {
2
+ var _stack = 0,
3
+ _lastID = 0,
4
+ _generateID = function() {
5
+ _lastID++;
6
+ return 'materialize-lean-overlay-' + _lastID;
7
+ };
8
+
2
9
  $.fn.extend({
3
10
  openModal: function(options) {
4
- var modal = this;
11
+
5
12
  var overlay = $('<div id="lean-overlay"></div>');
6
- $("body").append(overlay);
13
+ $('body').css('overflow', 'hidden').append(overlay);
7
14
 
8
15
  var defaults = {
9
16
  opacity: 0.5,
@@ -12,40 +19,50 @@
12
19
  ready: undefined,
13
20
  complete: undefined,
14
21
  dismissible: true
15
- }
22
+ },
23
+ overlayID = _generateID(),
24
+ $modal = $(this),
25
+ $overlay = $('<div class="lean-overlay"></div>'),
26
+ lStack = (++_stack);
27
+
28
+ // Store a reference of the overlay
29
+ $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2);
30
+ $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1);
31
+
32
+ $("body").append($overlay);
16
33
 
17
34
  // Override defaults
18
35
  options = $.extend(defaults, options);
19
36
 
20
37
  if (options.dismissible) {
21
- $("#lean-overlay").click(function() {
22
- $(modal).closeModal(options);
38
+ $overlay.click(function() {
39
+ $modal.closeModal(options);
23
40
  });
24
41
  // Return on ESC
25
- $(document).on('keyup.leanModal', function(e) {
42
+ $(document).on('keyup.leanModal' + overlayID, function(e) {
26
43
  if (e.keyCode === 27) { // ESC key
27
- $(modal).closeModal(options);
44
+ $modal.closeModal(options);
28
45
  }
29
46
  });
30
47
  }
31
48
 
32
- $(modal).find(".modal-close").click(function(e) {
33
- $(modal).closeModal(options);
49
+ $modal.find(".modal-close").click(function(e) {
50
+ $modal.closeModal(options);
34
51
  });
35
52
 
36
- $("#lean-overlay").css({ display : "block", opacity : 0 });
53
+ $overlay.css({ display : "block", opacity : 0 });
37
54
 
38
- $(modal).css({
55
+ $modal.css({
39
56
  display : "block",
40
57
  opacity: 0
41
58
  });
42
59
 
43
- $("#lean-overlay").velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"});
44
-
60
+ $overlay.velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"});
61
+ $modal.data('associated-overlay', $overlay[0]);
45
62
 
46
63
  // Define Bottom Sheet animation
47
- if ($(modal).hasClass('bottom-sheet')) {
48
- $(modal).velocity({bottom: "0", opacity: 1}, {
64
+ if ($modal.hasClass('bottom-sheet')) {
65
+ $modal.velocity({bottom: "0", opacity: 1}, {
49
66
  duration: options.in_duration,
50
67
  queue: false,
51
68
  ease: "easeOutCubic",
@@ -58,8 +75,8 @@
58
75
  });
59
76
  }
60
77
  else {
61
- $(modal).css({ top: "4%" });
62
- $(modal).velocity({top: "10%", opacity: 1}, {
78
+ $modal.css({ top: "4%" });
79
+ $modal.velocity({top: "10%", opacity: 1}, {
63
80
  duration: options.in_duration,
64
81
  queue: false,
65
82
  ease: "easeOutCubic",
@@ -81,48 +98,56 @@
81
98
  var defaults = {
82
99
  out_duration: 250,
83
100
  complete: undefined
84
- }
85
- var options = $.extend(defaults, options);
101
+ },
102
+ options = $.extend(defaults, options),
103
+ $modal = $(this),
104
+ overlayID = $modal.data('overlay-id'),
105
+ $overlay = $('#' + overlayID);
86
106
 
87
- $('.modal-close').off();
88
- $(document).off('keyup.leanModal');
107
+ // Disable scrolling
108
+ $('body').css('overflow', '');
89
109
 
90
- $("#lean-overlay").velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"});
110
+ $modal.find('.modal-close').off();
111
+ $(document).off('keyup.leanModal' + overlayID);
112
+
113
+ $overlay.velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"});
91
114
 
92
115
 
93
116
  // Define Bottom Sheet animation
94
- if ($(this).hasClass('bottom-sheet')) {
95
- $(this).velocity({bottom: "-100%", opacity: 0}, {
117
+ if ($modal.hasClass('bottom-sheet')) {
118
+ $modal.velocity({bottom: "-100%", opacity: 0}, {
96
119
  duration: options.out_duration,
97
120
  queue: false,
98
121
  ease: "easeOutCubic",
99
122
  // Handle modal ready callback
100
123
  complete: function() {
101
- $("#lean-overlay").css({display:"none"});
124
+ $overlay.css({display:"none"});
102
125
 
103
126
  // Call complete callback
104
127
  if (typeof(options.complete) === "function") {
105
128
  options.complete();
106
129
  }
107
- $('#lean-overlay').remove();
130
+ $overlay.remove();
131
+ _stack--;
108
132
  }
109
133
  });
110
134
  }
111
135
  else {
112
- $(this).fadeOut(options.out_duration, function() {
113
- $(this).css({ top: 0});
114
- $("#lean-overlay").css({display:"none"});
136
+ $modal.fadeOut(options.out_duration, function() {
137
+ $modal.css({ top: 0});
138
+ $overlay.css({display:"none"});
115
139
 
116
140
  // Call complete callback
117
141
  if (typeof(options.complete) === "function") {
118
142
  options.complete();
119
143
  }
120
- $('#lean-overlay').remove();
144
+ $overlay.remove();
145
+ _stack--;
121
146
  });
122
147
  }
123
148
 
124
149
  }
125
- })
150
+ });
126
151
 
127
152
  $.fn.extend({
128
153
  leanModal: function(options) {