compass-bootstrap-rails 0.1.3.3 → 0.1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  /* =========================================================
2
- * bootstrap-modal.js v1.3.0
2
+ * bootstrap-modal.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#modal
4
4
  * =========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -18,7 +18,9 @@
18
18
  * ========================================================= */
19
19
 
20
20
 
21
- (function( $ ){
21
+ !function( $ ){
22
+
23
+ "use strict"
22
24
 
23
25
  /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
24
26
  * ======================================================= */
@@ -53,16 +55,12 @@
53
55
  * ============================= */
54
56
 
55
57
  var Modal = function ( content, options ) {
56
- this.settings = $.extend({}, $.fn.modal.defaults)
58
+ this.settings = $.extend({}, $.fn.modal.defaults, options)
57
59
  this.$element = $(content)
58
60
  .delegate('.close', 'click.modal', $.proxy(this.hide, this))
59
61
 
60
- if ( options ) {
61
- $.extend( this.settings, options )
62
-
63
- if ( options.show ) {
64
- this.show()
65
- }
62
+ if ( this.settings.show ) {
63
+ this.show()
66
64
  }
67
65
 
68
66
  return this
@@ -81,15 +79,22 @@
81
79
 
82
80
  escape.call(this)
83
81
  backdrop.call(this, function () {
82
+ var transition = $.support.transition && that.$element.hasClass('fade')
83
+
84
84
  that.$element
85
85
  .appendTo(document.body)
86
86
  .show()
87
87
 
88
- setTimeout(function () {
89
- that.$element
90
- .addClass('in')
91
- .trigger('shown')
92
- }, 1)
88
+ if (transition) {
89
+ that.$element[0].offsetWidth // force reflow
90
+ }
91
+
92
+ that.$element.addClass('in')
93
+
94
+ transition ?
95
+ that.$element.one(transitionEnd, function () { that.$element.trigger('shown') }) :
96
+ that.$element.trigger('shown')
97
+
93
98
  })
94
99
 
95
100
  return this
@@ -98,6 +103,10 @@
98
103
  , hide: function (e) {
99
104
  e && e.preventDefault()
100
105
 
106
+ if ( !this.isShown ) {
107
+ return this
108
+ }
109
+
101
110
  var that = this
102
111
  this.isShown = false
103
112
 
@@ -107,17 +116,9 @@
107
116
  .trigger('hide')
108
117
  .removeClass('in')
109
118
 
110
- function removeElement () {
111
- that.$element
112
- .hide()
113
- .trigger('hidden')
114
-
115
- backdrop.call(that)
116
- }
117
-
118
119
  $.support.transition && this.$element.hasClass('fade') ?
119
- this.$element.one(transitionEnd, removeElement) :
120
- removeElement()
120
+ hideWithTransition.call(this) :
121
+ hideModal.call(this)
121
122
 
122
123
  return this
123
124
  }
@@ -128,46 +129,78 @@
128
129
  /* MODAL PRIVATE METHODS
129
130
  * ===================== */
130
131
 
132
+ function hideWithTransition() {
133
+ // firefox drops transitionEnd events :{o
134
+ var that = this
135
+ , timeout = setTimeout(function () {
136
+ that.$element.unbind(transitionEnd)
137
+ hideModal.call(that)
138
+ }, 500)
139
+
140
+ this.$element.one(transitionEnd, function () {
141
+ clearTimeout(timeout)
142
+ hideModal.call(that)
143
+ })
144
+ }
145
+
146
+ function hideModal (that) {
147
+ this.$element
148
+ .hide()
149
+ .trigger('hidden')
150
+
151
+ backdrop.call(this)
152
+ }
153
+
131
154
  function backdrop ( callback ) {
132
155
  var that = this
133
156
  , animate = this.$element.hasClass('fade') ? 'fade' : ''
134
157
  if ( this.isShown && this.settings.backdrop ) {
158
+ var doAnimate = $.support.transition && animate
159
+
135
160
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
136
- .click($.proxy(this.hide, this))
137
161
  .appendTo(document.body)
138
162
 
139
- setTimeout(function () {
140
- that.$backdrop && that.$backdrop.addClass('in')
141
- $.support.transition && that.$backdrop.hasClass('fade') ?
142
- that.$backdrop.one(transitionEnd, callback) :
143
- callback()
144
- })
145
- } else if ( !this.isShown && this.$backdrop ) {
146
- this.$backdrop.removeClass('in')
163
+ if ( this.settings.backdrop != 'static' ) {
164
+ this.$backdrop.click($.proxy(this.hide, this))
165
+ }
147
166
 
148
- function removeElement() {
149
- that.$backdrop.remove()
150
- that.$backdrop = null
167
+ if ( doAnimate ) {
168
+ this.$backdrop[0].offsetWidth // force reflow
151
169
  }
152
170
 
171
+ this.$backdrop.addClass('in')
172
+
173
+ doAnimate ?
174
+ this.$backdrop.one(transitionEnd, callback) :
175
+ callback()
176
+
177
+ } else if ( !this.isShown && this.$backdrop ) {
178
+ this.$backdrop.removeClass('in')
179
+
153
180
  $.support.transition && this.$element.hasClass('fade')?
154
- this.$backdrop.one(transitionEnd, removeElement) :
155
- removeElement()
181
+ this.$backdrop.one(transitionEnd, $.proxy(removeBackdrop, this)) :
182
+ removeBackdrop.call(this)
183
+
156
184
  } else if ( callback ) {
157
185
  callback()
158
186
  }
159
187
  }
160
188
 
189
+ function removeBackdrop() {
190
+ this.$backdrop.remove()
191
+ this.$backdrop = null
192
+ }
193
+
161
194
  function escape() {
162
195
  var that = this
163
196
  if ( this.isShown && this.settings.keyboard ) {
164
- $('body').bind('keyup.modal', function ( e ) {
197
+ $(document).bind('keyup.modal', function ( e ) {
165
198
  if ( e.which == 27 ) {
166
199
  that.hide()
167
200
  }
168
201
  })
169
202
  } else if ( !this.isShown ) {
170
- $('body').unbind('keyup.modal')
203
+ $(document).unbind('keyup.modal')
171
204
  }
172
205
  }
173
206
 
@@ -209,7 +242,7 @@
209
242
  $.fn.modal.defaults = {
210
243
  backdrop: false
211
244
  , keyboard: false
212
- , show: true
245
+ , show: false
213
246
  }
214
247
 
215
248
 
@@ -224,4 +257,4 @@
224
257
  })
225
258
  })
226
259
 
227
- })( window.jQuery || window.ender )
260
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-popover.js v1.3.0
2
+ * bootstrap-popover.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#popover
4
4
  * ===========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -18,7 +18,9 @@
18
18
  * =========================================================== */
19
19
 
20
20
 
21
- (function( $ ) {
21
+ !function( $ ) {
22
+
23
+ "use strict"
22
24
 
23
25
  var Popover = function ( element, options ) {
24
26
  this.$element = $(element)
@@ -39,13 +41,17 @@
39
41
  $tip[0].className = 'popover'
40
42
  }
41
43
 
44
+ , hasContent: function () {
45
+ return this.getTitle() || this.getContent()
46
+ }
47
+
42
48
  , getContent: function () {
43
- var contentvar
49
+ var content
44
50
  , $e = this.$element
45
51
  , o = this.options
46
52
 
47
53
  if (typeof this.options.content == 'string') {
48
- content = $e.attr(o.content)
54
+ content = this.options.content
49
55
  } else if (typeof this.options.content == 'function') {
50
56
  content = this.options.content.call(this.$element[0])
51
57
  }
@@ -55,7 +61,7 @@
55
61
  , tip: function() {
56
62
  if (!this.$tip) {
57
63
  this.$tip = $('<div class="popover" />')
58
- .html('<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>')
64
+ .html(this.options.template)
59
65
  }
60
66
  return this.$tip
61
67
  }
@@ -72,6 +78,9 @@
72
78
  return this
73
79
  }
74
80
 
75
- $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, { content: 'data-content', placement: 'right'})
81
+ $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, {
82
+ placement: 'right'
83
+ , template: '<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>'
84
+ })
76
85
 
77
- })( window.jQuery || window.ender )
86
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-scrollspy.js v1.3.0
2
+ * bootstrap-scrollspy.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
4
  * =============================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function ( $ ) {
22
22
 
23
+ "use strict"
24
+
23
25
  var $window = $(window)
24
26
 
25
27
  function ScrollSpy( topbar, selector ) {
@@ -102,4 +104,4 @@
102
104
  $('body').scrollSpy('[data-scrollspy] li > a')
103
105
  })
104
106
 
105
- }( window.jQuery || window.ender )
107
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* ========================================================
2
- * bootstrap-tabs.js v1.3.0
2
+ * bootstrap-tabs.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#tabs
4
4
  * ========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -18,30 +18,48 @@
18
18
  * ======================================================== */
19
19
 
20
20
 
21
- (function( $ ){
21
+ !function( $ ){
22
+
23
+ "use strict"
22
24
 
23
25
  function activate ( element, container ) {
24
- container.find('.active').removeClass('active')
26
+ container
27
+ .find('> .active')
28
+ .removeClass('active')
29
+ .find('> .dropdown-menu > .active')
30
+ .removeClass('active')
31
+
25
32
  element.addClass('active')
33
+
34
+ if ( element.parent('.dropdown-menu') ) {
35
+ element.closest('li.dropdown').addClass('active')
36
+ }
26
37
  }
27
38
 
28
39
  function tab( e ) {
29
40
  var $this = $(this)
41
+ , $ul = $this.closest('ul:not(.dropdown-menu)')
30
42
  , href = $this.attr('href')
31
- , $ul = $(e.liveFired)
32
- , $controlled
43
+ , previous
44
+ , $href
33
45
 
34
- if (/^#\w+/.test(href)) {
46
+ if ( /^#\w+/.test(href) ) {
35
47
  e.preventDefault()
36
48
 
37
- if ($this.hasClass('active')) {
49
+ if ( $this.parent('li').hasClass('active') ) {
38
50
  return
39
51
  }
40
52
 
53
+ previous = $ul.find('.active a').last()[0]
41
54
  $href = $(href)
42
55
 
43
56
  activate($this.parent('li'), $ul)
44
57
  activate($href, $href.parent())
58
+
59
+ $this.trigger({
60
+ type: 'change'
61
+ , relatedTarget: previous
62
+ })
45
63
  }
46
64
  }
47
65
 
@@ -59,4 +77,4 @@
59
77
  $('body').tabs('ul[data-tabs] li > a, ul[data-pills] > li > a')
60
78
  })
61
79
 
62
- })( window.jQuery || window.ender )
80
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-twipsy.js v1.3.0
2
+ * bootstrap-twipsy.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#twipsy
4
4
  * Adapted from the original jQuery.tipsy by Jason Frame
5
5
  * ==========================================================
@@ -19,7 +19,9 @@
19
19
  * ========================================================== */
20
20
 
21
21
 
22
- (function( $ ) {
22
+ !function( $ ) {
23
+
24
+ "use strict"
23
25
 
24
26
  /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
25
27
  * ======================================================= */
@@ -70,7 +72,7 @@
70
72
  , $tip
71
73
  , tp
72
74
 
73
- if (this.getTitle() && this.enabled) {
75
+ if (this.hasContent() && this.enabled) {
74
76
  $tip = this.tip()
75
77
  this.setContent()
76
78
 
@@ -90,7 +92,8 @@
90
92
 
91
93
  actualWidth = $tip[0].offsetWidth
92
94
  actualHeight = $tip[0].offsetHeight
93
- placement = _.maybeCall(this.options.placement, this.$element[0])
95
+
96
+ placement = maybeCall(this.options.placement, this, [ $tip[0], this.$element[0] ])
94
97
 
95
98
  switch (placement) {
96
99
  case 'below':
@@ -142,6 +145,10 @@
142
145
  }
143
146
  }
144
147
 
148
+ , hasContent: function () {
149
+ return this.getTitle()
150
+ }
151
+
145
152
  , getTitle: function() {
146
153
  var title
147
154
  , $e = this.$element
@@ -162,7 +169,7 @@
162
169
 
163
170
  , tip: function() {
164
171
  if (!this.$tip) {
165
- this.$tip = $('<div class="twipsy" />').html('<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>')
172
+ this.$tip = $('<div class="twipsy" />').html(this.options.template)
166
173
  }
167
174
  return this.$tip
168
175
  }
@@ -193,15 +200,10 @@
193
200
  /* TWIPSY PRIVATE METHODS
194
201
  * ====================== */
195
202
 
196
- var _ = {
197
-
198
- maybeCall: function ( thing, ctx ) {
199
- return (typeof thing == 'function') ? (thing.call(ctx)) : thing
200
- }
201
-
203
+ function maybeCall ( thing, ctx, args ) {
204
+ return typeof thing == 'function' ? thing.apply(ctx, args) : thing
202
205
  }
203
206
 
204
-
205
207
  /* TWIPSY PLUGIN DEFINITION
206
208
  * ======================== */
207
209
 
@@ -298,10 +300,11 @@
298
300
  , offset: 0
299
301
  , title: 'title'
300
302
  , trigger: 'hover'
303
+ , template: '<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>'
301
304
  }
302
305
 
303
306
  $.fn.twipsy.elementOptions = function(ele, options) {
304
- return $.metadata ? $.extend({}, options, $(ele).metadata()) : options
307
+ return $.extend({}, options, $(ele).data())
305
308
  }
306
309
 
307
- })( window.jQuery || window.ender )
310
+ }( window.jQuery || window.ender );
@@ -36,7 +36,7 @@ label,
36
36
  input,
37
37
  select,
38
38
  textarea {
39
- @include font-sans-serif(normal,13px,normal);
39
+ @include sans-serif(normal,13px,normal);
40
40
  }
41
41
 
42
42
  // Float labels left
@@ -77,6 +77,11 @@ select,
77
77
  @include border-radius(3px);
78
78
  }
79
79
 
80
+ /* remove padding from select */
81
+ select {
82
+ padding: initial;
83
+ }
84
+
80
85
  /* mini reset for non-html5 file types */
81
86
  input[type=checkbox],
82
87
  input[type=radio] {
@@ -107,6 +112,7 @@ input[type=submit] {
107
112
  select,
108
113
  input[type=file] {
109
114
  height: $baseline * 1.5; // In IE7, the height of the select element cannot be changed by height, only font-size
115
+ *height: auto; // Reset for IE7
110
116
  line-height: $baseline * 1.5;
111
117
  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
112
118
  }
@@ -114,6 +120,7 @@ input[type=file] {
114
120
  // Make multiple select elements height not fixed
115
121
  select[multiple] {
116
122
  height: inherit;
123
+ background-color: $white; // Fixes Chromium bug of unreadable items
117
124
  }
118
125
 
119
126
  textarea {
@@ -158,36 +165,47 @@ select:focus {
158
165
  outline: 1px dotted #666; // Selet elements don't get box-shadow styles, so instead we do outline
159
166
  }
160
167
 
161
- // Error styles
162
- form div.clearfix.error {
163
- background: lighten($red, 57%);
164
- padding: 10px 0;
165
- margin: -10px 0 10px;
166
- @include border-radius(4px);
167
- $error-text: desaturate(lighten($red, 25%), 25%);
168
+ /* FORM FIELD FEEDBACK STATES
169
+ -------------------------- */
170
+
171
+ // Mixin for form field states
172
+ @mixin formFieldState($textColor: #555, $borderColor: #ccc, $backgroundColor: #f5f5f5) {
173
+ // Set the text color
168
174
  > label,
169
- span.help-inline,
170
- span.help-block {
171
- color: $red;
175
+ .help-block,
176
+ .help-inline {
177
+ color: $textColor;
172
178
  }
179
+ // Style inputs accordingly
173
180
  input,
174
181
  textarea {
175
- border-color: $error-text;
176
- @include box-shadow(0 0 3px rgba(171,41,32,.25));
182
+ color: $textColor;
183
+ border-color: $borderColor;
177
184
  &:focus {
178
- border-color: darken($error-text, 10%);
179
- @include box-shadow(0 0 6px rgba(171,41,32,.5));
185
+ border-color: darken($borderColor, 10%);
186
+ .box-shadow(0 0 6px lighten($borderColor, 20%);
180
187
  }
181
188
  }
182
- .input-prepend,
183
- .input-append {
184
- span.add-on {
185
- background: lighten($red, 50%);
186
- border-color: $error-text;
187
- color: darken($error-text, 10%);
188
- }
189
+ // Give a small background color for input-prepend/-append
190
+ .input-prepend .add-on,
191
+ .input-append .add-on {
192
+ color: $textColor;
193
+ background-color: $backgroundColor;
194
+ border-color: $textColor;
189
195
  }
190
196
  }
197
+ // Error
198
+ form .clearfix.error {
199
+ @include formFieldState(#b94a48, #ee5f5b, lighten(#ee5f5b, 30%));
200
+ }
201
+ // Warning
202
+ form .clearfix.warning {
203
+ @include formFieldState(#c09853, #ccae64, lighten(#CCAE64, 5%));
204
+ }
205
+ // Success
206
+ form .clearfix.success {
207
+ @include formFieldState(#468847, #57a957, lighten(#57a957, 30%));
208
+ }
191
209
 
192
210
  // Form element sizes
193
211
  // TODO v2: remove duplication here and just stick to .input-[size] in light of adding .spanN sizes
@@ -236,12 +254,11 @@ textarea.xxlarge {
236
254
  @mixin formColumns($columnSpan: 1) {
237
255
  display: inline-block;
238
256
  float: none;
239
- width: (($gridColumnWidth - 10) * $columnSpan) + (($gridColumnWidth - 10) * ($columnSpan - 1));
257
+ width: (($gridColumnWidth) * $columnSpan) + ($gridGutterWidth * ($columnSpan - 1)) - 10;
240
258
  margin-left: 0;
241
259
  }
242
260
  input,
243
- textarea,
244
- select {
261
+ textarea {
245
262
  // Default columns
246
263
  &.span1 { @include formColumns(1); }
247
264
  &.span2 { @include formColumns(2); }
@@ -293,9 +310,10 @@ textarea[readonly] {
293
310
  }
294
311
 
295
312
  // Help Text
313
+ // TODO: Do we need to set basefont and baseline here?
296
314
  .help-inline,
297
315
  .help-block {
298
- font-size: $basefont - 2;
316
+ font-size: $basefont;
299
317
  line-height: $baseline;
300
318
  color: $grayLight;
301
319
  }
@@ -314,15 +332,6 @@ textarea[readonly] {
314
332
  // Inline Fields (input fields that appear as inline objects
315
333
  .inline-inputs {
316
334
  color: $gray;
317
- span, input {
318
- display: inline-block;
319
- }
320
- input.mini {
321
- width: 60px;
322
- }
323
- input.small {
324
- width: 90px;
325
- }
326
335
  span {
327
336
  padding: 0 2px 0 1px;
328
337
  }
@@ -389,6 +398,7 @@ textarea[readonly] {
389
398
  float: none;
390
399
  width: auto;
391
400
  padding: 0;
401
+ margin-left: 20px;
392
402
  line-height: $baseline;
393
403
  text-align: left;
394
404
  white-space: normal;
@@ -414,6 +424,8 @@ textarea[readonly] {
414
424
  input[type=radio],
415
425
  input[type=checkbox] {
416
426
  margin-bottom: 0;
427
+ margin-left: -20px;
428
+ float: left;
417
429
  }
418
430
  }
419
431