ZURB-foundation 2.2.0.1 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,7 +18,7 @@ In Terminal:
18
18
  * `git clone git://github.com/zurb/foundation-sass.git`
19
19
  * `cd foundation-sass`
20
20
  * `sudo gem build ZURB-foundation.gemspec`
21
- * `sudo gem install ZURB-foundation-2.2.0.1.gem`
21
+ * `sudo gem install ZURB-foundation-2.2.1.gem`
22
22
 
23
23
  To create your first project
24
24
  ----------------------------
@@ -39,7 +39,6 @@ Custom Settings
39
39
  ---------------------------------------------
40
40
  Work with your own custom settings by adjusting the _settings.sass file in a new project!
41
41
 
42
-
43
42
  Welcome to Foundation
44
43
  =====================
45
44
 
@@ -47,7 +46,7 @@ Foundation is a rock-solid, responsive framework for rapidly prototyping and ite
47
46
 
48
47
  Homepage: http://foundation.zurb.com
49
48
  Documentation: http://foundation.zurb.com/docs
50
- Download: http://foundation.zurb.com/files/foundation-download-2.2.zip
49
+ Download: http://foundation.zurb.com/files/foundation-download-2.2.1.zip
51
50
 
52
51
  Foundation is MIT-licensed and absolutely free to use. Foundation wouldn't be possible without the support of the entire ZURB team, our friends and colleagues who gave feedback, and some luminaries who did some heavy lifting that we took advantage of (thanks guys).
53
52
 
@@ -80,6 +79,10 @@ WordPress
80
79
  * [Starter Theme](https://github.com/drewsymo/Foundation) by Drew Morris
81
80
  * [Reverie](http://themefortress.com/reverie/) by Zhen
82
81
 
82
+ Joomla
83
+
84
+ * [Joomla Template](https://github.com/meridiansoftech/joomla_foundation_template) by Arnold Mwumva Ford, Meridian Softech
85
+
83
86
  Drupal
84
87
 
85
88
  * [Drupal Theme](https://github.com/drewkennelly/foundation7) by Drew Kennelly
@@ -90,7 +93,7 @@ MODX
90
93
 
91
94
  .NET
92
95
 
93
- * [NuGet Package for ASP.Net MVC](http://nuget.org/List/Packages/Zurb_Foundation_MPC3) by Edward Charbeneau, @EdCharbeneau
96
+ * [NuGet Package for ASP.Net MVC](http://www.nuget.org/packages/Zurb_Foundation_MVC3) by Edward Charbeneau, @EdCharbeneau
94
97
 
95
98
  Other Implementations
96
99
 
@@ -110,6 +113,10 @@ Grid Generator
110
113
 
111
114
  * [Experimental Grid Generator](http://www.gridlover.net/foundation/) courtesy of [Ville Vanninen](http://foolproof.me)
112
115
 
116
+ Grid displayer
117
+
118
+ * [Grid displayer bookmarklet](http://alefeuvre.github.com/foundation-grid-displayer/) by [Antoine Lefeuvre](http://twitter.com/jiraisurfer)
119
+
113
120
  MIT Open Source License
114
121
  =======================
115
122
 
@@ -117,4 +124,5 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
117
124
 
118
125
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
119
126
 
120
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
127
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
128
+
@@ -3,7 +3,7 @@ Compass::Frameworks.register("ZURB-foundation", :path => File.join(File.dirname(
3
3
 
4
4
  module ZURBfoundation
5
5
 
6
- VERSION = "2.2.0.1"
7
- DATE = "2012-03-01"
6
+ VERSION = "2.2.1"
7
+ DATE = "2012-04-24"
8
8
 
9
9
  end
@@ -40,7 +40,7 @@ button::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, input[type="but
40
40
  &.radius
41
41
  +border-radius(3px)
42
42
  &.round
43
- +border-radius(3px)
43
+ +border-radius(1000px)
44
44
  &.full-width
45
45
  width: 100%
46
46
  padding-left: 0 !important
@@ -131,4 +131,4 @@ button::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, input[type="but
131
131
  input[type=submit].medium.button
132
132
  padding: 8px 34px 9px
133
133
  input[type=submit].large.button
134
- padding: 9px 48px 20px
134
+ padding: 9px 48px 10px
@@ -18,6 +18,8 @@ input.input-text, textarea, select
18
18
  margin-bottom: 9px
19
19
  label + input.input-text, label + textarea, label + select, label + div.dropdown, select + div.dropdown
20
20
  margin-top: -9px
21
+ textarea
22
+ max-width: 100%
21
23
 
22
24
  // Text input and textarea font and padding
23
25
  //-----------------------------------------
@@ -60,6 +62,19 @@ input, textarea
60
62
  &.expand
61
63
  width: 100%
62
64
 
65
+ // Lock textareas so they can't be resized
66
+ // beyond their set width in webkit
67
+ //-----------------------------------------
68
+ textarea
69
+ &.locked
70
+ max-width: 254px
71
+ &.small
72
+ max-width: 134px
73
+ &.large
74
+ max-width: 434px
75
+ &.expand
76
+ max-width: 100%
77
+
63
78
  // Fieldsets
64
79
  //-----------------------------------------
65
80
 
@@ -129,6 +144,8 @@ form.nice
129
144
  +border-radius(3px)
130
145
  div.form-field input[disabled], input.input-text[disabled], textarea[disabled]
131
146
  background: #ddd
147
+ fieldset
148
+ +border-radius(3px)
132
149
  div.form-field input[type=radio], div.form-field input[type=checkbox]
133
150
  display: inline
134
151
  width: auto
@@ -197,6 +214,7 @@ form.custom
197
214
  border: solid 1px #ddd
198
215
  color: #141414
199
216
  background-color: #fff
217
+ word-wrap: nowrap
200
218
  a.selector
201
219
  position: absolute
202
220
  width: 26px
@@ -238,12 +256,31 @@ form.custom
238
256
  ul
239
257
  display: block
240
258
  z-index: 10
259
+ &.small
260
+ ul
261
+ width: 132px !important
262
+ &.medium
263
+ ul
264
+ width: 252px !important
265
+ &.large
266
+ ul
267
+ width: 432px !important
268
+ &.expand
269
+ ul
270
+ width: 100% !important
271
+ &.small
272
+ width: 134px !important
273
+ &.medium
274
+ width: 254px !important
275
+ &.large
276
+ width: 434px !important
277
+ &.expand
278
+ width: 100% !important
241
279
 
242
280
  // Custom input, disabled
243
281
  .custom.disabled
244
282
  background-color: #ddd
245
283
 
246
-
247
284
  // Nicer Customer Forms
248
285
  &.nice
249
286
  span.custom.checkbox
@@ -119,9 +119,6 @@ table
119
119
  &:nth-child(even)
120
120
  background: #f9f9f9
121
121
  td
122
- +font-size(12)
123
- line-height: 18px
124
- text-align: left
125
122
  color: #333
126
123
  padding: 9px 10px
127
124
  vertical-align: top
@@ -279,7 +279,7 @@ table
279
279
  top: 0
280
280
  height: auto
281
281
  .nice.tabs.mobile dd:first-child a.active
282
- margin-bottom: 0
282
+ margin: 0
283
283
 
284
284
  dl.contained.mobile, dl.nice.contained.mobile
285
285
  margin-bottom: 0
@@ -292,7 +292,19 @@ table
292
292
  margin-right: -20px
293
293
  border-width: 0 0 1px 0
294
294
 
295
- // Nav Bar with Dropdowns
295
+ // Modernizr-enabled tablet targeting
296
+ @media only screen and (max-width: 1280px) and (min-width: 768px)
297
+ .touch
298
+ .nav-bar
299
+ li
300
+ a
301
+ +font-size(13)
302
+ &.has-flyout
303
+ &>a.flyout-toggle
304
+ padding: 20px
305
+
306
+ // Nav Bar with Dropdowns
307
+ @media only screen and (max-width: 767px)
296
308
  .nav-bar
297
309
  height: auto
298
310
  & > li
@@ -197,4 +197,12 @@ ul.orbit-bullets
197
197
  &.has-thumb
198
198
  background-position: 0 0
199
199
  border-top: 2px solid #000
200
+
201
+ // Correct timer in IE
202
+ .timer
203
+ display: none !important
204
+ div.caption
205
+ background: transparent
206
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000)
207
+ zoom: 1
200
208
 
@@ -5,7 +5,8 @@
5
5
  color: #181818
6
6
  font-weight: bold
7
7
  line-height: 1.25
8
-
8
+ a
9
+ font-weight: inherit
9
10
  h1
10
11
  +font-size(46)
11
12
  margin-bottom: 12px
@@ -50,6 +51,8 @@ strong, b
50
51
  small
51
52
  font-size: 60%
52
53
  line-height: inherit
54
+ h1 small, h2 small, h3 small, h4 small, h5 small
55
+ color: #777
53
56
 
54
57
  // Blockquotes
55
58
  //--------------------------------------------
@@ -65,7 +68,7 @@ blockquote
65
68
  +font-size(12)
66
69
  color: #555
67
70
  &:before
68
- content: "/2014 /0020"
71
+ content: "\2014 \0020"
69
72
  a, a:visited
70
73
  color: #555
71
74
 
@@ -148,7 +148,7 @@ dl.tabs
148
148
  background: #fff
149
149
  border-left: 1px solid #eee
150
150
  border-right: 1px solid #eee
151
- border-top: 1px solid #00a6fc
151
+ border-top: 3px solid #00a6fc
152
152
  margin: 0 10px
153
153
  position: relative
154
154
  top: -5px
@@ -529,6 +529,8 @@ p.vevent abbr
529
529
  left: -10px
530
530
  &.noradius
531
531
  +border-radius(0px)
532
+ &.tip-left, .tip-right
533
+ float: none !important
532
534
  .has-tip
533
535
  &.opened
534
536
  color: $default-color !important
@@ -537,7 +539,6 @@ p.vevent abbr
537
539
  float: none !important
538
540
  .tap-to-close
539
541
  display: block
540
- font-size: 10px
541
- font-size: 1.0rem
542
+ +font-size(10)
542
543
  color: #888
543
544
  font-weight: normal
@@ -8,6 +8,6 @@ $red: #e91c21
8
8
  $green: #5b8737
9
9
  $orange: #cc4714
10
10
  $yellow: #ff0
11
- $black: #141414
11
+ $charcoal: #141414
12
12
 
13
13
  $default-color: $blue !default
@@ -4,24 +4,34 @@
4
4
  <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
5
5
  <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
6
6
  <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
7
- <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
7
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
8
8
  <head>
9
9
  <meta charset="utf-8" />
10
-
10
+
11
11
  <!-- Set the viewport width to device width for mobile -->
12
12
  <meta name="viewport" content="width=device-width" />
13
-
13
+
14
14
  <title>Welcome to Foundation</title>
15
15
 
16
16
  <!-- Included CSS Files -->
17
- <link rel="stylesheet" href="stylesheets/foundation.css">
17
+ <!-- Combine and Compress These CSS Files -->
18
+ <link rel="stylesheet" href="stylesheets/globals.css">
19
+ <link rel="stylesheet" href="stylesheets/typography.css">
20
+ <link rel="stylesheet" href="stylesheets/grid.css">
21
+ <link rel="stylesheet" href="stylesheets/ui.css">
22
+ <link rel="stylesheet" href="stylesheets/forms.css">
23
+ <link rel="stylesheet" href="stylesheets/orbit.css">
24
+ <link rel="stylesheet" href="stylesheets/reveal.css">
25
+ <link rel="stylesheet" href="stylesheets/mobile.css">
26
+ <!-- End Combine and Compress These CSS Files -->
18
27
  <link rel="stylesheet" href="stylesheets/app.css">
19
28
 
20
29
  <!--[if lt IE 9]>
21
30
  <link rel="stylesheet" href="stylesheets/ie.css">
22
31
  <![endif]-->
23
-
24
32
 
33
+ <script src="javascripts/modernizr.foundation.js"></script>
34
+
25
35
  <!-- IE Fix for HTML5 Tags -->
26
36
  <!--[if lt IE 9]>
27
37
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
@@ -36,7 +46,7 @@
36
46
  <div class="row">
37
47
  <div class="twelve columns">
38
48
  <h2>Welcome to Foundation</h2>
39
- <p>This is version 2.2 released on February 21, 2012</p>
49
+ <p>This is version 2.2.1 released on April 10, 2012</p>
40
50
  <hr />
41
51
  </div>
42
52
  </div>
@@ -142,12 +152,13 @@
142
152
 
143
153
  <!-- Included JS Files -->
144
154
  <script src="javascripts/jquery.min.js"></script>
145
- <script src="javascripts/modernizr.foundation.js"></script>
155
+ <!-- Combine and Compress These JS Files -->
146
156
  <script src="javascripts/jquery.reveal.js"></script>
147
157
  <script src="javascripts/jquery.orbit-1.4.0.js"></script>
148
158
  <script src="javascripts/jquery.customforms.js"></script>
149
159
  <script src="javascripts/jquery.placeholder.min.js"></script>
150
160
  <script src="javascripts/jquery.tooltips.js"></script>
161
+ <!-- End Combine and Compress These JS Files -->
151
162
  <script src="javascripts/app.js"></script>
152
163
 
153
164
  </body>
@@ -8,26 +8,26 @@ 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
  }
20
23
 
21
- $('dl.tabs').each(function () {
22
- //Get all tabs
23
- var tabs = $(this).children('dd').children('a');
24
- tabs.click(function (e) {
25
- activateTab($(this));
26
- });
27
- });
24
+ $('dl.tabs dd a').live('click', function (event) {
25
+ activateTab($(this));
26
+ });
28
27
 
29
28
  if (window.location.hash) {
30
29
  activateTab($('a[href="' + window.location.hash + '"]'));
30
+ $.foundation.customForms.appendCustomMarkup();
31
31
  }
32
32
 
33
33
  /* ALERT BOXES ------------ */
@@ -90,5 +90,4 @@ jQuery(document).ready(function ($) {
90
90
  /* DISABLED BUTTONS ------------- */
91
91
  /* Gives elements with a class of 'disabled' a return: false; */
92
92
 
93
-
94
- });
93
+ });
@@ -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
 
@@ -610,4 +626,4 @@
610
626
  });
611
627
  }
612
628
 
613
- }(jQuery));
629
+ }(jQuery));
@@ -149,4 +149,4 @@
149
149
  });
150
150
  });
151
151
  };
152
- } (jQuery));
152
+ } (jQuery));
@@ -13,9 +13,9 @@
13
13
  };
14
14
 
15
15
  var methods = {
16
- init : function( options ) {
16
+ init : function( options ) {
17
17
 
18
- return this.each(function() {
18
+ return this.each(function() {
19
19
  var targets = $('.has-tip'),
20
20
  tips = $('.tooltip'),
21
21
  tipTemplate = function(target, content) {
@@ -50,7 +50,7 @@
50
50
  });
51
51
  methods.reposition(target, tip, classes);
52
52
  });
53
-
53
+
54
54
  });
55
55
 
56
56
  if (Modernizr.touch) {
@@ -71,7 +71,7 @@
71
71
  targets.attr('title', "");
72
72
  }, function() {
73
73
  $('span[data-id=' + $(this).data('id') + '].tooltip').fadeOut(150);
74
- });
74
+ });
75
75
  }
76
76
 
77
77
  });
@@ -81,7 +81,7 @@
81
81
  nub = tip.children('.nub'),
82
82
  nubHeight = nub.outerHeight(),
83
83
  nubWidth = nub.outerWidth();
84
-
84
+
85
85
  function nubPos(nub, top, right, bottom, left) {
86
86
  nub.css({
87
87
  'top' : top,
@@ -104,23 +104,22 @@
104
104
  nubPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
105
105
  } else {
106
106
  if (classes.indexOf('tip-top') > -1) {
107
- var top = target.offset().top - tip.outerHeight() - nubHeight;
108
107
  tip.css({
109
- 'top' : top,
108
+ 'top' : target.offset().top - tip.outerHeight() - nubHeight,
110
109
  'left' : target.offset().left,
111
110
  'width' : width
112
111
  }).removeClass('tip-override');
113
112
  nubPos(nub, 'auto', 'auto', -nubHeight, 'auto');
114
113
  } else if (classes.indexOf('tip-left') > -1) {
115
114
  tip.css({
116
- 'top' : target.offset().top - (target.outerHeight() / 2) - (nubHeight / 2),
115
+ 'top' : target.offset().top + (target.outerHeight() / 2) - nubHeight,
117
116
  'left' : target.offset().left - tip.outerWidth() - 10,
118
117
  'width' : width
119
118
  }).removeClass('tip-override');
120
119
  nubPos(nub, (tip.outerHeight() / 2) - (nubHeight / 2), -nubHeight, 'auto', 'auto');
121
120
  } else if (classes.indexOf('tip-right') > -1){
122
121
  tip.css({
123
- 'top' : target.offset().top - (target.outerHeight() / 2) - (nubHeight / 2),
122
+ 'top' : target.offset().top + (target.outerHeight() / 2) - nubHeight,
124
123
  'left' : target.offset().left + target.outerWidth() + 10,
125
124
  'width' : width
126
125
  }).removeClass('tip-override');
@@ -138,14 +137,14 @@
138
137
  };
139
138
 
140
139
  $.fn.tooltips = function( method ) {
141
-
140
+
142
141
  if ( methods[method] ) {
143
142
  return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
144
143
  } else if ( typeof method === 'object' || ! method ) {
145
144
  return methods.init.apply( this, arguments );
146
145
  } else {
147
146
  $.error( 'Method ' + method + ' does not exist on jQuery.tooltips' );
148
- }
149
-
147
+ }
148
+
150
149
  };
151
- })(jQuery);;
150
+ })(jQuery);;
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.1
4
+ version: 2.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,19 +9,19 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-01 00:00:00.000000000Z
12
+ date: 2012-04-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: compass
16
- requirement: &70305631093660 !ruby/object:Gem::Requirement
16
+ requirement: &70147250209440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.11.5
21
+ version: 0.12.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70305631093660
24
+ version_requirements: *70147250209440
25
25
  description: ZURB Foundation ported over to work with the power of Compass.
26
26
  email: foundation@zurb.com
27
27
  executables: []