zurb-foundation 2.2.0.2 → 2.2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
21
21
  # specify any dependencies here; for example:
22
22
  # s.add_development_dependency "rspec"
23
23
  # s.add_runtime_dependency "rest-client"
24
- s.add_runtime_dependency "rails", "~> 3.1"
24
+ s.add_runtime_dependency "railties", ">= 3.1.0", "< 4.0"
25
25
  s.add_runtime_dependency "jquery-rails", ">= 1.0"
26
26
  end
@@ -1,4 +1,4 @@
1
1
  module Foundation
2
- COMMIT = "add28ff4b81fa1f2e2ed116fd46e44b8aa17acb7"
3
- VERSION = "2.2.0.2"
2
+ COMMIT = "e9d5d8f5267b5d2db23cb74fb307fe149913ca14"
3
+ VERSION = "2.2.1.0"
4
4
  end
@@ -8,12 +8,15 @@ jQuery(document).ready(function ($) {
8
8
  function activateTab($tab) {
9
9
  var $activeTab = $tab.closest('dl').find('a.active'),
10
10
  contentLocation = $tab.attr("href") + 'Tab';
11
+
12
+ // Strip off the current url that IE adds
13
+ contentLocation = contentLocation.replace(/^.+#/, '#');
11
14
 
12
15
  //Make Tab Active
13
16
  $activeTab.removeClass('active');
14
17
  $tab.addClass('active');
15
18
 
16
- //Show Tab Content
19
+ //Show Tab Content
17
20
  $(contentLocation).closest('.tabs-content').children('li').hide();
18
21
  $(contentLocation).css('display', 'block');
19
22
  }
@@ -28,6 +31,7 @@ jQuery(document).ready(function ($) {
28
31
 
29
32
  if (window.location.hash) {
30
33
  activateTab($('a[href="' + window.location.hash + '"]'));
34
+ $.foundation.customForms.appendCustomMarkup();
31
35
  }
32
36
 
33
37
  /* ALERT BOXES ------------ */
@@ -90,7 +94,6 @@ jQuery(document).ready(function ($) {
90
94
  /* DISABLED BUTTONS ------------- */
91
95
  /* Gives elements with a class of 'disabled' a return: false; */
92
96
 
93
-
94
97
  });
95
98
 
96
99
 
@@ -6,6 +6,9 @@
6
6
  * http://www.opensource.org/licenses/mit-license.php
7
7
  */
8
8
 
9
+ jQuery.foundation = jQuery.foundation || {};
10
+ jQuery.foundation.customForms = jQuery.foundation.customForms || {};
11
+
9
12
  jQuery(document).ready(function ($) {
10
13
 
11
14
  function appendCustomMarkup(type) {
@@ -22,8 +25,6 @@ jQuery(document).ready(function ($) {
22
25
  $span.toggleClass('disabled', $this.is(':disabled'));
23
26
  });
24
27
  }
25
- appendCustomMarkup('checkbox');
26
- appendCustomMarkup('radio');
27
28
 
28
29
  function appendCustomSelect(sel) {
29
30
  var $this = $(sel),
@@ -32,6 +33,7 @@ jQuery(document).ready(function ($) {
32
33
  maxWidth = 0,
33
34
  $li;
34
35
 
36
+ if ($this.hasClass('no-custom')) { return; }
35
37
  if ($customSelect.length === 0) {
36
38
  $customSelectSize = '';
37
39
  if ($(sel).hasClass('small')) {
@@ -71,6 +73,9 @@ jQuery(document).ready(function ($) {
71
73
  }
72
74
  });
73
75
 
76
+ $customSelect.css('width', 'inherit');
77
+ $customSelect.find('ul').css('width', 'inherit');
78
+
74
79
  $customSelect.find('li').each(function () {
75
80
  $customSelect.addClass('open');
76
81
  if ($(this).outerWidth() > maxWidth) {
@@ -85,11 +90,17 @@ jQuery(document).ready(function ($) {
85
90
  }
86
91
 
87
92
  }
88
-
89
- $('form.custom select').each(function () {
90
- appendCustomSelect(this);
91
- });
92
93
 
94
+ $.foundation.customForms.appendCustomMarkup = function () {
95
+ appendCustomMarkup('checkbox');
96
+ appendCustomMarkup('radio');
97
+
98
+ $('form.custom select').each(function () {
99
+ appendCustomSelect(this);
100
+ });
101
+ };
102
+
103
+ $.foundation.customForms.appendCustomMarkup();
93
104
  });
94
105
 
95
106
  (function ($) {
@@ -144,13 +155,15 @@ jQuery(document).ready(function ($) {
144
155
  var $input = $element.prev(),
145
156
  input = $input[0];
146
157
 
147
- $('input:radio[name="' + $input.attr('name') + '"]').each(function () {
148
- $(this).next().removeClass('checked');
149
- });
150
- input.checked = ((input.checked) ? false : true);
151
- $element.toggleClass('checked');
158
+ if (false == $input.is(':disabled')) {
159
+ $('input:radio[name="' + $input.attr('name') + '"]').each(function () {
160
+ $(this).next().removeClass('checked');
161
+ });
162
+ input.checked = ((input.checked) ? false : true);
163
+ $element.toggleClass('checked');
152
164
 
153
- $input.trigger('change');
165
+ $input.trigger('change');
166
+ }
154
167
  }
155
168
 
156
169
  $('form.custom span.custom.checkbox').live('click', function (event) {
@@ -8,21 +8,21 @@
8
8
 
9
9
 
10
10
  (function($) {
11
-
11
+
12
12
  $.fn.findFirstImage = function () {
13
13
  return this.first()
14
14
  .find('img')
15
15
  .andSelf().filter('img')
16
16
  .first();
17
17
  };
18
-
18
+
19
19
  var ORBIT = {
20
-
21
- defaults: {
20
+
21
+ defaults: {
22
22
  animation: 'horizontal-push', // fade, horizontal-slide, vertical-slide, horizontal-push, vertical-push
23
23
  animationSpeed: 600, // how fast animtions are
24
24
  timer: true, // true or false to have the timer
25
- advanceSpeed: 4000, // if timer is enabled, time between transitions
25
+ advanceSpeed: 4000, // if timer is enabled, time between transitions
26
26
  pauseOnHover: false, // if you hover pauses the slider
27
27
  startClockOnMouseOut: false, // if clock should start on MouseOut
28
28
  startClockOnMouseOutAfter: 1000, // how long after MouseOut should the timer start again
@@ -32,14 +32,16 @@
32
32
  captions: true, // do you want captions?
33
33
  captionAnimation: 'fade', // fade, slideOpen, none
34
34
  captionAnimationSpeed: 600, // if so how quickly should they animate in
35
+ resetTimerOnClick: false, // true resets the timer instead of pausing slideshow progress on manual navigation
35
36
  bullets: false, // true or false to activate the bullet navigation
36
37
  bulletThumbs: false, // thumbnails for the bullets
37
38
  bulletThumbLocation: '', // location from this file where thumbs will be
38
- afterSlideChange: $.noop, // empty function
39
+ afterSlideChange: $.noop, // empty function
40
+ afterLoadComplete: $.noop, //callback to execute after everything has been loaded
39
41
  fluid: true,
40
42
  centerBullets: true // center bullet nav with js, turn this off if you want to position the bullet nav manually
41
43
  },
42
-
44
+
43
45
  activeSlide: 0,
44
46
  numberSlides: 0,
45
47
  orbitWidth: null,
@@ -52,12 +54,12 @@
52
54
  captionHTML: '<div class="orbit-caption"></div>',
53
55
  directionalNavHTML: '<div class="slider-nav"><span class="right"></span><span class="left"></span></div>',
54
56
  bulletHTML: '<ul class="orbit-bullets"></ul>',
55
-
57
+
56
58
  init: function (element, options) {
57
59
  var $imageSlides,
58
60
  imagesLoadedCount = 0,
59
61
  self = this;
60
-
62
+
61
63
  // Bind functions to correct context
62
64
  this.clickTimer = $.proxy(this.clickTimer, this);
63
65
  this.addBullet = $.proxy(this.addBullet, this);
@@ -66,38 +68,38 @@
66
68
  this.startTimerAfterMouseLeave = $.proxy(this.startTimerAfterMouseLeave, this);
67
69
  this.clearClockMouseLeaveTimer = $.proxy(this.clearClockMouseLeaveTimer, this);
68
70
  this.rotateTimer = $.proxy(this.rotateTimer, this);
69
-
71
+
70
72
  this.options = $.extend({}, this.defaults, options);
71
73
  if (this.options.timer === 'false') this.options.timer = false;
72
74
  if (this.options.captions === 'false') this.options.captions = false;
73
75
  if (this.options.directionalNav === 'false') this.options.directionalNav = false;
74
-
76
+
75
77
  this.$element = $(element);
76
78
  this.$wrapper = this.$element.wrap(this.wrapperHTML).parent();
77
79
  this.$slides = this.$element.children('img, a, div');
78
-
80
+
79
81
  this.$element.bind('orbit.next', function () {
80
82
  self.shift('next');
81
83
  });
82
-
84
+
83
85
  this.$element.bind('orbit.prev', function () {
84
86
  self.shift('prev');
85
87
  });
86
-
88
+
87
89
  this.$element.bind('orbit.goto', function (event, index) {
88
90
  self.shift(index);
89
91
  });
90
-
92
+
91
93
  this.$element.bind('orbit.start', function (event, index) {
92
94
  self.startClock();
93
95
  });
94
-
96
+
95
97
  this.$element.bind('orbit.stop', function (event, index) {
96
98
  self.stopClock();
97
99
  });
98
-
100
+
99
101
  $imageSlides = this.$slides.filter('img');
100
-
102
+
101
103
  if ($imageSlides.length === 0) {
102
104
  this.loaded();
103
105
  } else {
@@ -109,53 +111,55 @@
109
111
  });
110
112
  }
111
113
  },
112
-
114
+
113
115
  loaded: function () {
114
116
  this.$element
115
117
  .addClass('orbit')
116
118
  .css({width: '1px', height: '1px'});
117
-
119
+
118
120
  this.$slides.addClass('orbit-slide');
119
-
121
+
120
122
  this.setDimentionsFromLargestSlide();
121
123
  this.updateOptionsIfOnlyOneSlide();
122
124
  this.setupFirstSlide();
123
-
125
+
124
126
  if (this.options.timer) {
125
127
  this.setupTimer();
126
128
  this.startClock();
127
129
  }
128
-
130
+
129
131
  if (this.options.captions) {
130
132
  this.setupCaptions();
131
133
  }
132
-
134
+
133
135
  if (this.options.directionalNav) {
134
136
  this.setupDirectionalNav();
135
137
  }
136
-
138
+
137
139
  if (this.options.bullets) {
138
140
  this.setupBulletNav();
139
141
  this.setActiveBullet();
140
142
  }
143
+
144
+ this.options.afterLoadComplete.call(this);
141
145
  },
142
-
146
+
143
147
  currentSlide: function () {
144
148
  return this.$slides.eq(this.activeSlide);
145
149
  },
146
-
150
+
147
151
  setDimentionsFromLargestSlide: function () {
148
152
  //Collect all slides and set slider size of largest image
149
153
  var self = this,
150
154
  $fluidPlaceholder;
151
-
155
+
152
156
  self.$element.add(self.$wrapper).width(this.$slides.first().width());
153
157
  self.$element.add(self.$wrapper).height(this.$slides.first().height());
154
158
  self.orbitWidth = this.$slides.first().width();
155
159
  self.orbitHeight = this.$slides.first().height();
156
160
  $fluidPlaceholder = this.$slides.first().findFirstImage().clone();
157
-
158
-
161
+
162
+
159
163
  this.$slides.each(function () {
160
164
  var slide = $(this),
161
165
  slideWidth = slide.width(),
@@ -163,7 +167,7 @@
163
167
 
164
168
  if (slideWidth > self.$element.width()) {
165
169
  self.$element.add(self.$wrapper).width(slideWidth);
166
- self.orbitWidth = self.$element.width();
170
+ self.orbitWidth = self.$element.width();
167
171
  }
168
172
  if (slideHeight > self.$element.height()) {
169
173
  self.$element.add(self.$wrapper).height(slideHeight);
@@ -172,33 +176,33 @@
172
176
  }
173
177
  self.numberSlides += 1;
174
178
  });
175
-
179
+
176
180
  if (this.options.fluid) {
177
181
  if (typeof this.options.fluid === "string") {
178
182
  $fluidPlaceholder = $('<img src="http://placehold.it/' + this.options.fluid + '" />')
179
183
  }
180
-
184
+
181
185
  self.$element.prepend($fluidPlaceholder);
182
186
  $fluidPlaceholder.addClass('fluid-placeholder');
183
187
  self.$element.add(self.$wrapper).css({width: 'inherit'});
184
188
  self.$element.add(self.$wrapper).css({height: 'inherit'});
185
-
189
+
186
190
  $(window).bind('resize', function () {
187
191
  self.orbitWidth = self.$element.width();
188
192
  self.orbitHeight = self.$element.height();
189
193
  });
190
194
  }
191
195
  },
192
-
196
+
193
197
  //Animation locking functions
194
198
  lock: function () {
195
199
  this.locked = true;
196
200
  },
197
-
198
- unlock: function () {
201
+
202
+ unlock: function () {
199
203
  this.locked = false;
200
204
  },
201
-
205
+
202
206
  updateOptionsIfOnlyOneSlide: function () {
203
207
  if(this.$slides.length === 1) {
204
208
  this.options.directionalNav = false;
@@ -206,7 +210,7 @@
206
210
  this.options.bullets = false;
207
211
  }
208
212
  },
209
-
213
+
210
214
  setupFirstSlide: function () {
211
215
  //Set initial front photo z-index and fades it in
212
216
  var self = this;
@@ -217,29 +221,29 @@
217
221
  self.$slides.css({"display":"block"})
218
222
  });
219
223
  },
220
-
224
+
221
225
  startClock: function () {
222
226
  var self = this;
223
-
224
- if(!this.options.timer) {
227
+
228
+ if(!this.options.timer) {
225
229
  return false;
226
- }
230
+ }
227
231
 
228
232
  if (this.$timer.is(':hidden')) {
229
233
  this.clock = setInterval(function () {
230
234
  self.$element.trigger('orbit.next');
231
- }, this.options.advanceSpeed);
235
+ }, this.options.advanceSpeed);
232
236
  } else {
233
237
  this.timerRunning = true;
234
238
  this.$pause.removeClass('active')
235
239
  this.clock = setInterval(this.rotateTimer, this.options.advanceSpeed / 180);
236
240
  }
237
241
  },
238
-
239
- rotateTimer: function () {
242
+
243
+ rotateTimer: function (reset) {
240
244
  var degreeCSS = "rotate(" + this.degrees + "deg)"
241
245
  this.degrees += 2;
242
- this.$rotator.css({
246
+ this.$rotator.css({
243
247
  "-webkit-transform": degreeCSS,
244
248
  "-moz-transform": degreeCSS,
245
249
  "-o-transform": degreeCSS
@@ -248,24 +252,24 @@
248
252
  this.$rotator.addClass('move');
249
253
  this.$mask.addClass('move');
250
254
  }
251
- if(this.degrees > 360) {
255
+ if(this.degrees > 360 || reset) {
252
256
  this.$rotator.removeClass('move');
253
257
  this.$mask.removeClass('move');
254
258
  this.degrees = 0;
255
259
  this.$element.trigger('orbit.next');
256
260
  }
257
261
  },
258
-
262
+
259
263
  stopClock: function () {
260
- if (!this.options.timer) {
261
- return false;
264
+ if (!this.options.timer) {
265
+ return false;
262
266
  } else {
263
267
  this.timerRunning = false;
264
268
  clearInterval(this.clock);
265
269
  this.$pause.addClass('active');
266
270
  }
267
271
  },
268
-
272
+
269
273
  setupTimer: function () {
270
274
  this.$timer = $(this.timerHTML);
271
275
  this.$wrapper.append(this.$timer);
@@ -273,19 +277,19 @@
273
277
  this.$rotator = this.$timer.find('.rotator');
274
278
  this.$mask = this.$timer.find('.mask');
275
279
  this.$pause = this.$timer.find('.pause');
276
-
280
+
277
281
  this.$timer.click(this.clickTimer);
278
282
 
279
283
  if (this.options.startClockOnMouseOut) {
280
284
  this.$wrapper.mouseleave(this.startTimerAfterMouseLeave);
281
285
  this.$wrapper.mouseenter(this.clearClockMouseLeaveTimer);
282
286
  }
283
-
287
+
284
288
  if (this.options.pauseOnHover) {
285
289
  this.$wrapper.mouseenter(this.stopClock);
286
290
  }
287
291
  },
288
-
292
+
289
293
  startTimerAfterMouseLeave: function () {
290
294
  var self = this;
291
295
 
@@ -295,39 +299,39 @@
295
299
  }
296
300
  }, this.options.startClockOnMouseOutAfter)
297
301
  },
298
-
302
+
299
303
  clearClockMouseLeaveTimer: function () {
300
304
  clearTimeout(this.outTimer);
301
305
  },
302
-
306
+
303
307
  clickTimer: function () {
304
308
  if(!this.timerRunning) {
305
309
  this.startClock();
306
- } else {
310
+ } else {
307
311
  this.stopClock();
308
312
  }
309
313
  },
310
-
314
+
311
315
  setupCaptions: function () {
312
316
  this.$caption = $(this.captionHTML);
313
317
  this.$wrapper.append(this.$caption);
314
318
  this.setCaption();
315
319
  },
316
-
320
+
317
321
  setCaption: function () {
318
322
  var captionLocation = this.currentSlide().attr('data-caption'),
319
323
  captionHTML;
320
-
324
+
321
325
  if (!this.options.captions) {
322
- return false;
323
- }
324
-
326
+ return false;
327
+ }
328
+
325
329
  //Set HTML for the caption if it exists
326
330
  if (captionLocation) {
327
331
  captionHTML = $(captionLocation).html(); //get HTML from the matching HTML entity
328
332
  this.$caption
329
333
  .attr('id', captionLocation) // Add ID caption TODO why is the id being set?
330
- .html(captionHTML); // Change HTML in Caption
334
+ .html(captionHTML); // Change HTML in Caption
331
335
  //Animations for Caption entrances
332
336
  switch (this.options.captionAnimation) {
333
337
  case 'none':
@@ -355,27 +359,35 @@
355
359
  }
356
360
  }
357
361
  },
358
-
362
+
359
363
  setupDirectionalNav: function () {
360
364
  var self = this,
361
365
  $directionalNav = $(this.directionalNavHTML);
362
-
366
+
363
367
  $directionalNav.find('.right').html(this.options.directionalNavRightText);
364
368
  $directionalNav.find('.left').html(this.options.directionalNavLeftText);
365
369
 
366
370
  this.$wrapper.append($directionalNav);
367
-
368
- this.$wrapper.find('.left').click(function () {
371
+
372
+ this.$wrapper.find('.left').click(function () {
369
373
  self.stopClock();
374
+ if (self.options.resetTimerOnClick) {
375
+ self.rotateTimer(true);
376
+ self.startClock();
377
+ }
370
378
  self.$element.trigger('orbit.prev');
371
379
  });
372
-
380
+
373
381
  this.$wrapper.find('.right').click(function () {
374
382
  self.stopClock();
383
+ if (self.options.resetTimerOnClick) {
384
+ self.rotateTimer(true);
385
+ self.startClock();
386
+ }
375
387
  self.$element.trigger('orbit.next');
376
388
  });
377
389
  },
378
-
390
+
379
391
  setupBulletNav: function () {
380
392
  this.$bullets = $(this.bulletHTML);
381
393
  this.$wrapper.append(this.$bullets);
@@ -383,7 +395,7 @@
383
395
  this.$element.addClass('with-bullets');
384
396
  if (this.options.centerBullets) this.$bullets.css('margin-left', -this.$bullets.width() / 2);
385
397
  },
386
-
398
+
387
399
  addBullet: function (index, slide) {
388
400
  var position = index + 1,
389
401
  $li = $('<li>' + (position) + '</li>'),
@@ -402,10 +414,14 @@
402
414
  $li.data('index', index);
403
415
  $li.click(function () {
404
416
  self.stopClock();
417
+ if (self.options.resetTimerOnClick) {
418
+ self.rotateTimer(true);
419
+ self.startClock();
420
+ }
405
421
  self.$element.trigger('orbit.goto', [$li.data('index')])
406
422
  });
407
423
  },
408
-
424
+
409
425
  setActiveBullet: function () {
410
426
  if(!this.options.bullets) { return false; } else {
411
427
  this.$bullets.find('li')
@@ -414,7 +430,7 @@
414
430
  .addClass('active');
415
431
  }
416
432
  },
417
-
433
+
418
434
  resetAndUnlock: function () {
419
435
  this.$slides
420
436
  .eq(this.prevActiveSlide)
@@ -422,16 +438,16 @@
422
438
  this.unlock();
423
439
  this.options.afterSlideChange.call(this, this.$slides.eq(this.prevActiveSlide), this.$slides.eq(this.activeSlide));
424
440
  },
425
-
441
+
426
442
  shift: function (direction) {
427
443
  var slideDirection = direction;
428
-
444
+
429
445
  //remember previous activeSlide
430
446
  this.prevActiveSlide = this.activeSlide;
431
-
447
+
432
448
  //exit function if bullet clicked is same as the current image
433
449
  if (this.prevActiveSlide == slideDirection) { return false; }
434
-
450
+
435
451
  if (this.$slides.length == "1") { return false; }
436
452
  if (!this.locked) {
437
453
  this.lock();
@@ -448,21 +464,21 @@
448
464
  }
449
465
  } else {
450
466
  this.activeSlide = direction;
451
- if (this.prevActiveSlide < this.activeSlide) {
467
+ if (this.prevActiveSlide < this.activeSlide) {
452
468
  slideDirection = "next";
453
- } else if (this.prevActiveSlide > this.activeSlide) {
469
+ } else if (this.prevActiveSlide > this.activeSlide) {
454
470
  slideDirection = "prev"
455
471
  }
456
472
  }
457
473
 
458
474
  //set to correct bullet
459
- this.setActiveBullet();
460
-
475
+ this.setActiveBullet();
476
+
461
477
  //set previous slide z-index to one below what new activeSlide will be
462
478
  this.$slides
463
479
  .eq(this.prevActiveSlide)
464
- .css({"z-index" : 2});
465
-
480
+ .css({"z-index" : 2});
481
+
466
482
  //fade
467
483
  if (this.options.animation == "fade") {
468
484
  this.$slides
@@ -470,7 +486,7 @@
470
486
  .css({"opacity" : 0, "z-index" : 3})
471
487
  .animate({"opacity" : 1}, this.options.animationSpeed, this.resetAndUnlock);
472
488
  }
473
-
489
+
474
490
  //horizontal-slide
475
491
  if (this.options.animation == "horizontal-slide") {
476
492
  if (slideDirection == "next") {
@@ -486,9 +502,9 @@
486
502
  .animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock);
487
503
  }
488
504
  }
489
-
505
+
490
506
  //vertical-slide
491
- if (this.options.animation == "vertical-slide") {
507
+ if (this.options.animation == "vertical-slide") {
492
508
  if (slideDirection == "prev") {
493
509
  this.$slides
494
510
  .eq(this.activeSlide)
@@ -502,7 +518,7 @@
502
518
  .animate({"top" : 0}, this.options.animationSpeed, this.resetAndUnlock);
503
519
  }
504
520
  }
505
-
521
+
506
522
  //horizontal-push
507
523
  if (this.options.animation == "horizontal-push") {
508
524
  if (slideDirection == "next") {
@@ -524,7 +540,7 @@
524
540
  .animate({"left" : this.orbitWidth}, this.options.animationSpeed);
525
541
  }
526
542
  }
527
-
543
+
528
544
  //vertical-push
529
545
  if (this.options.animation == "vertical-push") {
530
546
  if (slideDirection == "next") {
@@ -546,7 +562,7 @@
546
562
  .animate({top : -this.orbitHeight}, this.options.animationSpeed);
547
563
  }
548
564
  }
549
-
565
+
550
566
  this.setCaption();
551
567
  }
552
568
  }
@@ -560,7 +576,7 @@
560
576
  };
561
577
 
562
578
  })(jQuery);
563
-
579
+
564
580
  /*!
565
581
  * jQuery imageready Plugin
566
582
  * http://www.zurb.com/playground/
@@ -569,19 +585,19 @@
569
585
  * Released under the MIT License
570
586
  */
571
587
  (function ($) {
572
-
588
+
573
589
  var options = {};
574
-
590
+
575
591
  $.event.special.imageready = {
576
-
592
+
577
593
  setup: function (data, namespaces, eventHandle) {
578
594
  options = data || options;
579
595
  },
580
-
596
+
581
597
  add: function (handleObj) {
582
598
  var $this = $(this),
583
599
  src;
584
-
600
+
585
601
  if ( this.nodeType === 1 && this.tagName.toLowerCase() === 'img' && this.src !== '' ) {
586
602
  if (options.forceLoad) {
587
603
  src = $this.attr('src');
@@ -595,12 +611,12 @@
595
611
  }
596
612
  }
597
613
  },
598
-
614
+
599
615
  teardown: function (namespaces) {
600
616
  $(this).unbind('.imageready');
601
617
  }
602
618
  };
603
-
619
+
604
620
  function bindToLoad(element, callback) {
605
621
  var $this = $(element);
606
622
 
@@ -612,3 +628,4 @@
612
628
 
613
629
  }(jQuery));
614
630
 
631
+
@@ -33,6 +33,12 @@
33
33
  input.medium, textarea.medium { width: 254px; }
34
34
  input.large, textarea.large { width: 434px; }
35
35
  input.expand, textarea.expand { width: 100%; }
36
+
37
+ /* Lock textareas so they can't be resized beyond their set width in webkit */
38
+ textarea.locked { max-width: 254px; }
39
+ textarea.locked.small { max-width: 134px; }
40
+ textarea.locked.large { max-width: 434px; }
41
+ textarea.locked.expand { max-width: 100%; }
36
42
 
37
43
  /* Fieldsets */
38
44
  form fieldset { padding: 9px 9px 2px 9px; border: solid 1px #ddd; margin: 18px 0; }
@@ -89,7 +95,7 @@
89
95
  form.custom span.custom.checkbox.checked { background-position: 0 -28px; }
90
96
 
91
97
  form.custom div.custom.dropdown { display: block; position: relative; width: auto; height: 28px; margin-bottom: 9px; margin-top: 2px; }
92
- form.custom div.custom.dropdown a.current { display: block; width: auto; line-height: 26px; min-height: 26px; padding: 0 38px 0 6px; border: solid 1px #ddd; color: #141414; background-color: #fff; }
98
+ form.custom div.custom.dropdown a.current { display: block; width: auto; line-height: 26px; min-height: 26px; padding: 0 38px 0 6px; border: solid 1px #ddd; color: #141414; background-color: #fff; word-wrap: nowrap; }
93
99
  form.custom div.custom.dropdown a.selector { position: absolute; width: 26px; height: 26px; display: block; background: image-url("foundation/misc/custom-form-sprites.png") -14px 1px no-repeat; right: 0; top: 0; border: solid 1px #ddd; }
94
100
  form.custom div.custom.dropdown:hover a.selector,
95
101
  form.custom div.custom.dropdown.open a.selector { background-position: -14px -26px; }
@@ -71,7 +71,7 @@
71
71
  sub {vertical-align: sub;}
72
72
  sup {vertical-align: super;}
73
73
 
74
- body { background: #fff; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 13px; line-height: 18px; color: #555; position: relative; -webkit-font-smoothing: antialiased; }
74
+ body { background: #fff; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 13px; font-size: 1.3rem; line-height: 18px; color: #555; position: relative; -webkit-font-smoothing: antialiased; }
75
75
 
76
76
 
77
77
 
@@ -17,6 +17,7 @@
17
17
  .column, .columns { margin-left: 4.4%; float: left; min-height: 1px; position: relative; }
18
18
  .column:first-child, .columns:first-child { margin-left: 0; }
19
19
  [class*="column"] + [class*="column"]:last-child { float: right; }
20
+ [class*="column"] + [class*="column"].end { float: left; }
20
21
 
21
22
  .row .one { width: 4.3%; }
22
23
  .row .two { width: 13%; }
@@ -109,19 +110,19 @@
109
110
  .block-grid>li { display: block; height: auto; float: left; }
110
111
 
111
112
  .block-grid.two-up { margin-left: -4% }
112
- .block-grid.two-up>li { margin-left: 4%; width: 46%; }
113
+ .block-grid.two-up>li { margin-left: 4%; width: 46%; margin-bottom: 4%;}
113
114
  /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */
114
115
 
115
116
  .block-grid.three-up { margin-left: -2% }
116
- .block-grid.three-up>li { margin-left: 2%; width: 31.3%; }
117
+ .block-grid.three-up>li { margin-left: 2%; width: 31.3%; margin-bottom: 2%;}
117
118
  /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */
118
119
 
119
120
  .block-grid.four-up { margin-left: -2% }
120
- .block-grid.four-up>li { margin-left: 2%; width: 23%; }
121
+ .block-grid.four-up>li { margin-left: 2%; width: 23%; margin-bottom: 2%;}
121
122
  /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */
122
123
 
123
124
  .block-grid.five-up { margin-left: -1.5% }
124
- .block-grid.five-up>li { margin-left: 1.5%; width: 18.5%; }
125
+ .block-grid.five-up>li { margin-left: 1.5%; width: 18.5%; margin-bottom: 1.5%;}
125
126
  /* .block-grid.five-up>li:nth-child(5n+1) {clear: left;} */
126
127
 
127
128
 
@@ -26,8 +26,8 @@
26
26
  .column, .columns { width: auto !important; float: none; margin-left: 0; margin-right: 0; }
27
27
  .column:last-child, .columns:last-child { margin-right: 0; float: none; }
28
28
  [class*="column"] + [class*="column"]:last-child { float: none; }
29
- [class*="column"]:before, [class*="column"]:after { content:""; display:table; }
30
- [class*="column"]:after { clear: both; }
29
+ .column:before, .columns:before, .column:after, .columns:after { content:""; display:table; }
30
+ .column:after, .columns:after { clear: both; }
31
31
 
32
32
  .offset-by-one, .offset-by-two, .offset-by-three, .offset-by-four, .offset-by-five, .offset-by-six, .offset-by-seven, .offset-by-eight, .offset-by-nine, .offset-by-ten, .offset-by-eleven, .centered { margin-left: 0 !important; }
33
33
 
@@ -174,6 +174,12 @@
174
174
 
175
175
  /* Nav Bar */
176
176
 
177
+ /* Modernizr-enabled tablet targeting */
178
+ @media only screen and (max-width: 1280px) and (min-width: 768px) {
179
+ .touch .nav-bar li a { font-size: 13px; font-size: 1.3rem; }
180
+ .touch .nav-bar li.has-flyout>a.flyout-toggle { padding: 20px; }
181
+ }
182
+
177
183
  @media only screen and (max-width: 767px) {
178
184
  .nav-bar { height: auto; }
179
185
  .nav-bar>li { float: none; display: block; border-right: none; }
@@ -224,4 +224,9 @@ ul.orbit-bullets li.active {
224
224
  ul.orbit-bullets li.active.has-thumb {
225
225
  background-position: 0 0;
226
226
  border-top: 2px solid #000; }
227
+
228
+
229
+ /* Correct timer in IE */
230
+ .timer { display: none !important; }
231
+ div.caption { background:transparent; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000);zoom: 1; }
227
232
 
@@ -227,7 +227,7 @@
227
227
  ul.breadcrumbs li a, ul.breadcrumbs li span { text-transform: uppercase; font-size: 11px; padding-left: 12px; }
228
228
  ul.breadcrumbs li:first-child a, ul.breadcrumbs li:first-child span { padding-left: 0; }
229
229
  ul.breadcrumbs li:before { content: "/"; color: #aaa; }
230
- ul.breadcrumbs li:first-child:before { content: ""; }
230
+ ul.breadcrumbs li:first-child:before { content: " "; }
231
231
  ul.breadcrumbs li.current a { cursor: default; color: #333; }
232
232
  ul.breadcrumbs li:hover a, ul.breadcrumbs li a:focus { text-decoration: underline; }
233
233
  ul.breadcrumbs li.current:hover a, ul.breadcrumbs li.current a:focus { text-decoration: none; }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zurb-foundation
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0.2
4
+ version: 2.2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,25 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-05 00:00:00.000000000Z
12
+ date: 2012-04-10 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: &70290791276940 !ruby/object:Gem::Requirement
15
+ name: railties
16
+ requirement: &70095506911960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.1.0
22
+ - - <
20
23
  - !ruby/object:Gem::Version
21
- version: '3.1'
24
+ version: '4.0'
22
25
  type: :runtime
23
26
  prerelease: false
24
- version_requirements: *70290791276940
27
+ version_requirements: *70095506911960
25
28
  - !ruby/object:Gem::Dependency
26
29
  name: jquery-rails
27
- requirement: &70290791276260 !ruby/object:Gem::Requirement
30
+ requirement: &70095506911000 !ruby/object:Gem::Requirement
28
31
  none: false
29
32
  requirements:
30
33
  - - ! '>='
@@ -32,7 +35,7 @@ dependencies:
32
35
  version: '1.0'
33
36
  type: :runtime
34
37
  prerelease: false
35
- version_requirements: *70290791276260
38
+ version_requirements: *70095506911000
36
39
  description: An easy to use, powerful, and flexible framework for building prototypes
37
40
  and production code on any kind of device.
38
41
  email:
@@ -105,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
108
  version: '0'
106
109
  segments:
107
110
  - 0
108
- hash: -2580547679821653579
111
+ hash: 2326784064139831020
109
112
  required_rubygems_version: !ruby/object:Gem::Requirement
110
113
  none: false
111
114
  requirements:
@@ -114,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
117
  version: '0'
115
118
  segments:
116
119
  - 0
117
- hash: -2580547679821653579
120
+ hash: 2326784064139831020
118
121
  requirements: []
119
122
  rubyforge_project: foundation
120
123
  rubygems_version: 1.8.10