fix-twitter-bootstrap-rails 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/README.md +213 -0
  2. data/Rakefile +14 -0
  3. data/lib/generators/bootstrap/install/install_generator.rb +53 -0
  4. data/lib/generators/bootstrap/install/templates/application.css +7 -0
  5. data/lib/generators/bootstrap/install/templates/application.js +10 -0
  6. data/lib/generators/bootstrap/install/templates/bootstrap.coffee +4 -0
  7. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +19 -0
  8. data/lib/generators/bootstrap/layout/layout_generator.rb +23 -0
  9. data/lib/generators/bootstrap/layout/templates/layout.html.erb +99 -0
  10. data/lib/generators/bootstrap/layout/templates/layout.html.haml +71 -0
  11. data/lib/generators/bootstrap/layout/templates/layout.html.slim +72 -0
  12. data/lib/generators/bootstrap/themed/templates/_form.html.erb +19 -0
  13. data/lib/generators/bootstrap/themed/templates/_form.html.haml +13 -0
  14. data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -0
  15. data/lib/generators/bootstrap/themed/templates/edit.html.erb +1 -0
  16. data/lib/generators/bootstrap/themed/templates/edit.html.haml +2 -0
  17. data/lib/generators/bootstrap/themed/templates/edit.html.slim +3 -0
  18. data/lib/generators/bootstrap/themed/templates/index.html.erb +30 -0
  19. data/lib/generators/bootstrap/themed/templates/index.html.haml +25 -0
  20. data/lib/generators/bootstrap/themed/templates/index.html.slim +25 -0
  21. data/lib/generators/bootstrap/themed/templates/new.html.erb +1 -0
  22. data/lib/generators/bootstrap/themed/templates/new.html.haml +2 -0
  23. data/lib/generators/bootstrap/themed/templates/new.html.slim +2 -0
  24. data/lib/generators/bootstrap/themed/templates/show.html.erb +14 -0
  25. data/lib/generators/bootstrap/themed/templates/show.html.haml +9 -0
  26. data/lib/generators/bootstrap/themed/templates/show.html.slim +9 -0
  27. data/lib/generators/bootstrap/themed/themed_generator.rb +96 -0
  28. data/lib/twitter-bootstrap-rails.rb +10 -0
  29. data/lib/twitter/bootstrap/rails/bootstrap.rb +2 -0
  30. data/lib/twitter/bootstrap/rails/engine.rb +17 -0
  31. data/lib/twitter/bootstrap/rails/version.rb +7 -0
  32. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  33. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  34. data/vendor/assets/javascripts/twitter/bootstrap.js +12 -0
  35. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +94 -0
  36. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +100 -0
  37. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +157 -0
  38. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +136 -0
  39. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +92 -0
  40. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +210 -0
  41. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +95 -0
  42. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +125 -0
  43. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +130 -0
  44. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +270 -0
  45. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +51 -0
  46. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +271 -0
  47. data/vendor/toolkit/twitter/bootstrap/accordion.less +28 -0
  48. data/vendor/toolkit/twitter/bootstrap/alerts.less +70 -0
  49. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +62 -0
  50. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +22 -0
  51. data/vendor/toolkit/twitter/bootstrap/button-groups.less +148 -0
  52. data/vendor/toolkit/twitter/bootstrap/buttons.less +183 -0
  53. data/vendor/toolkit/twitter/bootstrap/carousel.less +121 -0
  54. data/vendor/toolkit/twitter/bootstrap/close.less +18 -0
  55. data/vendor/toolkit/twitter/bootstrap/code.less +57 -0
  56. data/vendor/toolkit/twitter/bootstrap/component-animations.less +18 -0
  57. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +130 -0
  58. data/vendor/toolkit/twitter/bootstrap/forms.less +522 -0
  59. data/vendor/toolkit/twitter/bootstrap/grid.less +8 -0
  60. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +20 -0
  61. data/vendor/toolkit/twitter/bootstrap/labels.less +32 -0
  62. data/vendor/toolkit/twitter/bootstrap/layouts.less +17 -0
  63. data/vendor/toolkit/twitter/bootstrap/mixins.less +590 -0
  64. data/vendor/toolkit/twitter/bootstrap/modals.less +83 -0
  65. data/vendor/toolkit/twitter/bootstrap/navbar.less +299 -0
  66. data/vendor/toolkit/twitter/bootstrap/navs.less +353 -0
  67. data/vendor/toolkit/twitter/bootstrap/pager.less +30 -0
  68. data/vendor/toolkit/twitter/bootstrap/pagination.less +55 -0
  69. data/vendor/toolkit/twitter/bootstrap/popovers.less +49 -0
  70. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +95 -0
  71. data/vendor/toolkit/twitter/bootstrap/reset.less +126 -0
  72. data/vendor/toolkit/twitter/bootstrap/responsive.less +327 -0
  73. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +29 -0
  74. data/vendor/toolkit/twitter/bootstrap/sprites.less +158 -0
  75. data/vendor/toolkit/twitter/bootstrap/tables.less +150 -0
  76. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +35 -0
  77. data/vendor/toolkit/twitter/bootstrap/tooltip.less +35 -0
  78. data/vendor/toolkit/twitter/bootstrap/type.less +218 -0
  79. data/vendor/toolkit/twitter/bootstrap/utilities.less +23 -0
  80. data/vendor/toolkit/twitter/bootstrap/variables.less +107 -0
  81. data/vendor/toolkit/twitter/bootstrap/wells.less +17 -0
  82. data/vendor/toolkit/twitter/bootstrap_base.less +2 -0
  83. metadata +172 -0
@@ -0,0 +1,271 @@
1
+ /* =============================================================
2
+ * bootstrap-typeahead.js v2.0.1
3
+ * http://twitter.github.com/bootstrap/javascript.html#typeahead
4
+ * =============================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ============================================================ */
19
+
20
+ !function( $ ){
21
+
22
+ "use strict"
23
+
24
+ var Typeahead = function ( element, options ) {
25
+ this.$element = $(element)
26
+ this.options = $.extend({}, $.fn.typeahead.defaults, options)
27
+ this.matcher = this.options.matcher || this.matcher
28
+ this.sorter = this.options.sorter || this.sorter
29
+ this.highlighter = this.options.highlighter || this.highlighter
30
+ this.$menu = $(this.options.menu).appendTo('body')
31
+ this.source = this.options.source
32
+ this.shown = false
33
+ this.listen()
34
+ }
35
+
36
+ Typeahead.prototype = {
37
+
38
+ constructor: Typeahead
39
+
40
+ , select: function () {
41
+ var val = this.$menu.find('.active').attr('data-value')
42
+ this.$element.val(val)
43
+ return this.hide()
44
+ }
45
+
46
+ , show: function () {
47
+ var pos = $.extend({}, this.$element.offset(), {
48
+ height: this.$element[0].offsetHeight
49
+ })
50
+
51
+ this.$menu.css({
52
+ top: pos.top + pos.height
53
+ , left: pos.left
54
+ })
55
+
56
+ this.$menu.show()
57
+ this.shown = true
58
+ return this
59
+ }
60
+
61
+ , hide: function () {
62
+ this.$menu.hide()
63
+ this.shown = false
64
+ return this
65
+ }
66
+
67
+ , lookup: function (event) {
68
+ var that = this
69
+ , items
70
+ , q
71
+
72
+ this.query = this.$element.val()
73
+
74
+ if (!this.query) {
75
+ return this.shown ? this.hide() : this
76
+ }
77
+
78
+ items = $.grep(this.source, function (item) {
79
+ if (that.matcher(item)) return item
80
+ })
81
+
82
+ items = this.sorter(items)
83
+
84
+ if (!items.length) {
85
+ return this.shown ? this.hide() : this
86
+ }
87
+
88
+ return this.render(items.slice(0, this.options.items)).show()
89
+ }
90
+
91
+ , matcher: function (item) {
92
+ return ~item.toLowerCase().indexOf(this.query.toLowerCase())
93
+ }
94
+
95
+ , sorter: function (items) {
96
+ var beginswith = []
97
+ , caseSensitive = []
98
+ , caseInsensitive = []
99
+ , item
100
+
101
+ while (item = items.shift()) {
102
+ if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
103
+ else if (~item.indexOf(this.query)) caseSensitive.push(item)
104
+ else caseInsensitive.push(item)
105
+ }
106
+
107
+ return beginswith.concat(caseSensitive, caseInsensitive)
108
+ }
109
+
110
+ , highlighter: function (item) {
111
+ return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) {
112
+ return '<strong>' + match + '</strong>'
113
+ })
114
+ }
115
+
116
+ , render: function (items) {
117
+ var that = this
118
+
119
+ items = $(items).map(function (i, item) {
120
+ i = $(that.options.item).attr('data-value', item)
121
+ i.find('a').html(that.highlighter(item))
122
+ return i[0]
123
+ })
124
+
125
+ items.first().addClass('active')
126
+ this.$menu.html(items)
127
+ return this
128
+ }
129
+
130
+ , next: function (event) {
131
+ var active = this.$menu.find('.active').removeClass('active')
132
+ , next = active.next()
133
+
134
+ if (!next.length) {
135
+ next = $(this.$menu.find('li')[0])
136
+ }
137
+
138
+ next.addClass('active')
139
+ }
140
+
141
+ , prev: function (event) {
142
+ var active = this.$menu.find('.active').removeClass('active')
143
+ , prev = active.prev()
144
+
145
+ if (!prev.length) {
146
+ prev = this.$menu.find('li').last()
147
+ }
148
+
149
+ prev.addClass('active')
150
+ }
151
+
152
+ , listen: function () {
153
+ this.$element
154
+ .on('blur', $.proxy(this.blur, this))
155
+ .on('keypress', $.proxy(this.keypress, this))
156
+ .on('keyup', $.proxy(this.keyup, this))
157
+
158
+ if ($.browser.webkit || $.browser.msie) {
159
+ this.$element.on('keydown', $.proxy(this.keypress, this))
160
+ }
161
+
162
+ this.$menu
163
+ .on('click', $.proxy(this.click, this))
164
+ .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
165
+ }
166
+
167
+ , keyup: function (e) {
168
+ e.stopPropagation()
169
+ e.preventDefault()
170
+
171
+ switch(e.keyCode) {
172
+ case 40: // down arrow
173
+ case 38: // up arrow
174
+ break
175
+
176
+ case 9: // tab
177
+ case 13: // enter
178
+ if (!this.shown) return
179
+ this.select()
180
+ break
181
+
182
+ case 27: // escape
183
+ this.hide()
184
+ break
185
+
186
+ default:
187
+ this.lookup()
188
+ }
189
+
190
+ }
191
+
192
+ , keypress: function (e) {
193
+ e.stopPropagation()
194
+ if (!this.shown) return
195
+
196
+ switch(e.keyCode) {
197
+ case 9: // tab
198
+ case 13: // enter
199
+ case 27: // escape
200
+ e.preventDefault()
201
+ break
202
+
203
+ case 38: // up arrow
204
+ e.preventDefault()
205
+ this.prev()
206
+ break
207
+
208
+ case 40: // down arrow
209
+ e.preventDefault()
210
+ this.next()
211
+ break
212
+ }
213
+ }
214
+
215
+ , blur: function (e) {
216
+ var that = this
217
+ e.stopPropagation()
218
+ e.preventDefault()
219
+ setTimeout(function () { that.hide() }, 150)
220
+ }
221
+
222
+ , click: function (e) {
223
+ e.stopPropagation()
224
+ e.preventDefault()
225
+ this.select()
226
+ }
227
+
228
+ , mouseenter: function (e) {
229
+ this.$menu.find('.active').removeClass('active')
230
+ $(e.currentTarget).addClass('active')
231
+ }
232
+
233
+ }
234
+
235
+
236
+ /* TYPEAHEAD PLUGIN DEFINITION
237
+ * =========================== */
238
+
239
+ $.fn.typeahead = function ( option ) {
240
+ return this.each(function () {
241
+ var $this = $(this)
242
+ , data = $this.data('typeahead')
243
+ , options = typeof option == 'object' && option
244
+ if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
245
+ if (typeof option == 'string') data[option]()
246
+ })
247
+ }
248
+
249
+ $.fn.typeahead.defaults = {
250
+ source: []
251
+ , items: 8
252
+ , menu: '<ul class="typeahead dropdown-menu"></ul>'
253
+ , item: '<li><a href="#"></a></li>'
254
+ }
255
+
256
+ $.fn.typeahead.Constructor = Typeahead
257
+
258
+
259
+ /* TYPEAHEAD DATA-API
260
+ * ================== */
261
+
262
+ $(function () {
263
+ $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
264
+ var $this = $(this)
265
+ if ($this.data('typeahead')) return
266
+ e.preventDefault()
267
+ $this.typeahead($this.data())
268
+ })
269
+ })
270
+
271
+ }( window.jQuery );
@@ -0,0 +1,28 @@
1
+ // ACCORDION
2
+ // ---------
3
+
4
+
5
+ // Parent container
6
+ .accordion {
7
+ margin-bottom: @baseLineHeight;
8
+ }
9
+
10
+ // Group == heading + body
11
+ .accordion-group {
12
+ margin-bottom: 2px;
13
+ border: 1px solid #e5e5e5;
14
+ .border-radius(4px);
15
+ }
16
+ .accordion-heading {
17
+ border-bottom: 0;
18
+ }
19
+ .accordion-heading .accordion-toggle {
20
+ display: block;
21
+ padding: 8px 15px;
22
+ }
23
+
24
+ // Inner needs the styles because you can't animate properly with any styles on the element
25
+ .accordion-inner {
26
+ padding: 9px 15px;
27
+ border-top: 1px solid #e5e5e5;
28
+ }
@@ -0,0 +1,70 @@
1
+ // ALERT STYLES
2
+ // ------------
3
+
4
+ // Base alert styles
5
+ .alert {
6
+ padding: 8px 35px 8px 14px;
7
+ margin-bottom: @baseLineHeight;
8
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
9
+ background-color: @warningBackground;
10
+ border: 1px solid @warningBorder;
11
+ .border-radius(4px);
12
+ }
13
+ .alert,
14
+ .alert-heading {
15
+ color: @warningText;
16
+ }
17
+
18
+ // Adjust close link position
19
+ .alert .close {
20
+ position: relative;
21
+ top: -2px;
22
+ right: -21px;
23
+ line-height: 18px;
24
+ }
25
+
26
+ // Alternate styles
27
+ // ----------------
28
+
29
+ .alert-success {
30
+ background-color: @successBackground;
31
+ border-color: @successBorder;
32
+ }
33
+ .alert-success,
34
+ .alert-success .alert-heading {
35
+ color: @successText;
36
+ }
37
+ .alert-danger,
38
+ .alert-error {
39
+ background-color: @errorBackground;
40
+ border-color: @errorBorder;
41
+ }
42
+ .alert-danger,
43
+ .alert-error,
44
+ .alert-danger .alert-heading,
45
+ .alert-error .alert-heading {
46
+ color: @errorText;
47
+ }
48
+ .alert-info {
49
+ background-color: @infoBackground;
50
+ border-color: @infoBorder;
51
+ }
52
+ .alert-info,
53
+ .alert-info .alert-heading {
54
+ color: @infoText;
55
+ }
56
+
57
+
58
+ // Block alerts
59
+ // ------------------------
60
+ .alert-block {
61
+ padding-top: 14px;
62
+ padding-bottom: 14px;
63
+ }
64
+ .alert-block > p,
65
+ .alert-block > ul {
66
+ margin-bottom: 0;
67
+ }
68
+ .alert-block p + p {
69
+ margin-top: 5px;
70
+ }
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * Bootstrap v2.0.1
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ */
10
+
11
+ // CSS Reset
12
+ @import "reset.less";
13
+
14
+ // Core variables and mixins
15
+ @import "variables.less"; // Modify this for custom colors, font-sizes, etc
16
+ @import "mixins.less";
17
+
18
+ // Grid system and page structure
19
+ @import "scaffolding.less";
20
+ @import "grid.less";
21
+ @import "layouts.less";
22
+
23
+ // Base CSS
24
+ @import "type.less";
25
+ @import "code.less";
26
+ @import "forms.less";
27
+ @import "tables.less";
28
+
29
+ // Components: common
30
+ @import "sprites.less";
31
+ @import "dropdowns.less";
32
+ @import "wells.less";
33
+ @import "component-animations.less";
34
+ @import "close.less";
35
+
36
+ // Components: Buttons & Alerts
37
+ @import "buttons.less";
38
+ @import "button-groups.less";
39
+ @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
40
+
41
+ // Components: Nav
42
+ @import "navs.less";
43
+ @import "navbar.less";
44
+ @import "breadcrumbs.less";
45
+ @import "pagination.less";
46
+ @import "pager.less";
47
+
48
+ // Components: Popovers
49
+ @import "modals.less";
50
+ @import "tooltip.less";
51
+ @import "popovers.less";
52
+
53
+ // Components: Misc
54
+ @import "thumbnails.less";
55
+ @import "labels.less";
56
+ @import "progress-bars.less";
57
+ @import "accordion.less";
58
+ @import "carousel.less";
59
+ @import "hero-unit.less";
60
+
61
+ // Utility classes
62
+ @import "utilities.less"; // Has to be last to override when necessary
@@ -0,0 +1,22 @@
1
+ // BREADCRUMBS
2
+ // -----------
3
+
4
+ .breadcrumb {
5
+ padding: 7px 14px;
6
+ margin: 0 0 @baseLineHeight;
7
+ #gradient > .vertical(@white, #f5f5f5);
8
+ border: 1px solid #ddd;
9
+ .border-radius(3px);
10
+ .box-shadow(inset 0 1px 0 @white);
11
+ li {
12
+ display: inline-block;
13
+ text-shadow: 0 1px 0 @white;
14
+ }
15
+ .divider {
16
+ padding: 0 5px;
17
+ color: @grayLight;
18
+ }
19
+ .active a {
20
+ color: @grayDark;
21
+ }
22
+ }