twitter_bootstrap 0.0.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. data/README.markdown +16 -1
  2. data/lib/twitter_bootstrap/version.rb +1 -1
  3. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  4. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  5. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +91 -0
  6. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +98 -0
  7. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +154 -0
  8. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +136 -0
  9. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +58 -21
  10. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +64 -114
  11. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +38 -33
  12. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +62 -44
  13. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +130 -0
  14. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +270 -0
  15. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +51 -0
  16. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +271 -0
  17. data/vendor/toolkit/twitter/bootstrap/accordion.less +28 -0
  18. data/vendor/toolkit/twitter/bootstrap/alerts.less +70 -0
  19. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +41 -5
  20. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +22 -0
  21. data/vendor/toolkit/twitter/bootstrap/button-groups.less +147 -0
  22. data/vendor/toolkit/twitter/bootstrap/buttons.less +165 -0
  23. data/vendor/toolkit/twitter/bootstrap/carousel.less +121 -0
  24. data/vendor/toolkit/twitter/bootstrap/close.less +18 -0
  25. data/vendor/toolkit/twitter/bootstrap/code.less +44 -0
  26. data/vendor/toolkit/twitter/bootstrap/component-animations.less +18 -0
  27. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +131 -0
  28. data/vendor/toolkit/twitter/bootstrap/forms.less +335 -299
  29. data/vendor/toolkit/twitter/bootstrap/grid.less +8 -0
  30. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +20 -0
  31. data/vendor/toolkit/twitter/bootstrap/labels.less +16 -0
  32. data/vendor/toolkit/twitter/bootstrap/layouts.less +17 -0
  33. data/vendor/toolkit/twitter/bootstrap/mixins.less +391 -76
  34. data/vendor/toolkit/twitter/bootstrap/modals.less +72 -0
  35. data/vendor/toolkit/twitter/bootstrap/navbar.less +292 -0
  36. data/vendor/toolkit/twitter/bootstrap/navs.less +344 -0
  37. data/vendor/toolkit/twitter/bootstrap/pager.less +30 -0
  38. data/vendor/toolkit/twitter/bootstrap/pagination.less +55 -0
  39. data/vendor/toolkit/twitter/bootstrap/popovers.less +49 -0
  40. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +95 -0
  41. data/vendor/toolkit/twitter/bootstrap/reset.less +37 -52
  42. data/vendor/toolkit/twitter/bootstrap/responsive.less +323 -0
  43. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +13 -123
  44. data/vendor/toolkit/twitter/bootstrap/sprites.less +156 -0
  45. data/vendor/toolkit/twitter/bootstrap/tables.less +75 -160
  46. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +35 -0
  47. data/vendor/toolkit/twitter/bootstrap/tooltip.less +35 -0
  48. data/vendor/toolkit/twitter/bootstrap/type.less +100 -70
  49. data/vendor/toolkit/twitter/bootstrap/utilities.less +23 -0
  50. data/vendor/toolkit/twitter/bootstrap/variables.less +94 -55
  51. data/vendor/toolkit/twitter/bootstrap/wells.less +17 -0
  52. metadata +53 -16
@@ -1 +1,16 @@
1
- # Work in Progress, DO NOT USE YET
1
+ # Installation
2
+
3
+ Add to your Gemfile:
4
+
5
+ ```ruby
6
+ gem 'twitter_bootstrap'
7
+ ```
8
+
9
+ Then, run from your shell:
10
+
11
+ ```
12
+ bundle install && rails g twitter_bootstrap:install
13
+ ```
14
+
15
+ You should install another gem of mine here,
16
+ [will_paginate_twitter_bootstrap](https://github.com/travisjeffery/will_paginate_twitter_bootstrap), too. This gem fixes will_paginate to work with Twitter's Bootstrap.
@@ -1,3 +1,3 @@
1
1
  module TwitterBootstrap
2
- VERSION = "0.0.8"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -0,0 +1,91 @@
1
+ /* ==========================================================
2
+ * bootstrap-alert.js v2.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#alerts
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
+
21
+ !function( $ ){
22
+
23
+ "use strict"
24
+
25
+ /* ALERT CLASS DEFINITION
26
+ * ====================== */
27
+
28
+ var dismiss = '[data-dismiss="alert"]'
29
+ , Alert = function ( el ) {
30
+ $(el).on('click', dismiss, this.close)
31
+ }
32
+
33
+ Alert.prototype = {
34
+
35
+ constructor: Alert
36
+
37
+ , close: function ( e ) {
38
+ var $this = $(this)
39
+ , selector = $this.attr('data-target')
40
+ , $parent
41
+
42
+ if (!selector) {
43
+ selector = $this.attr('href')
44
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
45
+ }
46
+
47
+ $parent = $(selector)
48
+ $parent.trigger('close')
49
+
50
+ e && e.preventDefault()
51
+
52
+ $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
53
+
54
+ $parent.removeClass('in')
55
+
56
+ function removeElement() {
57
+ $parent.remove()
58
+ $parent.trigger('closed')
59
+ }
60
+
61
+ $.support.transition && $parent.hasClass('fade') ?
62
+ $parent.on($.support.transition.end, removeElement) :
63
+ removeElement()
64
+ }
65
+
66
+ }
67
+
68
+
69
+ /* ALERT PLUGIN DEFINITION
70
+ * ======================= */
71
+
72
+ $.fn.alert = function ( option ) {
73
+ return this.each(function () {
74
+ var $this = $(this)
75
+ , data = $this.data('alert')
76
+ if (!data) $this.data('alert', (data = new Alert(this)))
77
+ if (typeof option == 'string') data[option].call($this)
78
+ })
79
+ }
80
+
81
+ $.fn.alert.Constructor = Alert
82
+
83
+
84
+ /* ALERT DATA-API
85
+ * ============== */
86
+
87
+ $(function () {
88
+ $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
89
+ })
90
+
91
+ }( window.jQuery )
@@ -0,0 +1,98 @@
1
+ /* ============================================================
2
+ * bootstrap-button.js v2.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#buttons
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
+ /* BUTTON PUBLIC CLASS DEFINITION
25
+ * ============================== */
26
+
27
+ var Button = function ( element, options ) {
28
+ this.$element = $(element)
29
+ this.options = $.extend({}, $.fn.button.defaults, options)
30
+ }
31
+
32
+ Button.prototype = {
33
+
34
+ constructor: Button
35
+
36
+ , setState: function ( state ) {
37
+ var d = 'disabled'
38
+ , $el = this.$element
39
+ , data = $el.data()
40
+ , val = $el.is('input') ? 'val' : 'html'
41
+
42
+ state = state + 'Text'
43
+ data.resetText || $el.data('resetText', $el[val]())
44
+
45
+ $el[val](data[state] || this.options[state])
46
+
47
+ // push to event loop to allow forms to submit
48
+ setTimeout(function () {
49
+ state == 'loadingText' ?
50
+ $el.addClass(d).attr(d, d) :
51
+ $el.removeClass(d).removeAttr(d)
52
+ }, 0)
53
+ }
54
+
55
+ , toggle: function () {
56
+ var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
57
+
58
+ $parent && $parent
59
+ .find('.active')
60
+ .removeClass('active')
61
+
62
+ this.$element.toggleClass('active')
63
+ }
64
+
65
+ }
66
+
67
+
68
+ /* BUTTON PLUGIN DEFINITION
69
+ * ======================== */
70
+
71
+ $.fn.button = function ( option ) {
72
+ return this.each(function () {
73
+ var $this = $(this)
74
+ , data = $this.data('button')
75
+ , options = typeof option == 'object' && option
76
+ if (!data) $this.data('button', (data = new Button(this, options)))
77
+ if (option == 'toggle') data.toggle()
78
+ else if (option) data.setState(option)
79
+ })
80
+ }
81
+
82
+ $.fn.button.defaults = {
83
+ loadingText: 'loading...'
84
+ }
85
+
86
+ $.fn.button.Constructor = Button
87
+
88
+
89
+ /* BUTTON DATA-API
90
+ * =============== */
91
+
92
+ $(function () {
93
+ $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
94
+ $(e.target).button('toggle')
95
+ })
96
+ })
97
+
98
+ }( window.jQuery )
@@ -0,0 +1,154 @@
1
+ /* ==========================================================
2
+ * bootstrap-carousel.js v2.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#carousel
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
+
21
+ !function( $ ){
22
+
23
+ "use strict"
24
+
25
+ /* CAROUSEL CLASS DEFINITION
26
+ * ========================= */
27
+
28
+ var Carousel = function (element, options) {
29
+ this.$element = $(element)
30
+ this.options = $.extend({}, $.fn.carousel.defaults, options)
31
+ this.options.slide && this.slide(this.options.slide)
32
+ }
33
+
34
+ Carousel.prototype = {
35
+
36
+ cycle: function () {
37
+ this.interval = setInterval($.proxy(this.next, this), this.options.interval)
38
+ return this
39
+ }
40
+
41
+ , to: function (pos) {
42
+ var $active = this.$element.find('.active')
43
+ , children = $active.parent().children()
44
+ , activePos = children.index($active)
45
+ , that = this
46
+
47
+ if (pos > (children.length - 1) || pos < 0) return
48
+
49
+ if (this.sliding) {
50
+ return this.$element.one('slid', function () {
51
+ that.to(pos)
52
+ })
53
+ }
54
+
55
+ if (activePos == pos) {
56
+ return this.pause().cycle()
57
+ }
58
+
59
+ return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
60
+ }
61
+
62
+ , pause: function () {
63
+ clearInterval(this.interval)
64
+ return this
65
+ }
66
+
67
+ , next: function () {
68
+ if (this.sliding) return
69
+ return this.slide('next')
70
+ }
71
+
72
+ , prev: function () {
73
+ if (this.sliding) return
74
+ return this.slide('prev')
75
+ }
76
+
77
+ , slide: function (type, next) {
78
+ var $active = this.$element.find('.active')
79
+ , $next = next || $active[type]()
80
+ , isCycling = this.interval
81
+ , direction = type == 'next' ? 'left' : 'right'
82
+ , fallback = type == 'next' ? 'first' : 'last'
83
+ , that = this
84
+
85
+ this.sliding = true
86
+
87
+ isCycling && this.pause()
88
+
89
+ $next = $next.length ? $next : this.$element.find('.item')[fallback]()
90
+
91
+ if (!$.support.transition && this.$element.hasClass('slide')) {
92
+ this.$element.trigger('slide')
93
+ $active.removeClass('active')
94
+ $next.addClass('active')
95
+ this.sliding = false
96
+ this.$element.trigger('slid')
97
+ } else {
98
+ $next.addClass(type)
99
+ $next[0].offsetWidth // force reflow
100
+ $active.addClass(direction)
101
+ $next.addClass(direction)
102
+ this.$element.trigger('slide')
103
+ this.$element.one($.support.transition.end, function () {
104
+ $next.removeClass([type, direction].join(' ')).addClass('active')
105
+ $active.removeClass(['active', direction].join(' '))
106
+ that.sliding = false
107
+ setTimeout(function () { that.$element.trigger('slid') }, 0)
108
+ })
109
+ }
110
+
111
+ isCycling && this.cycle()
112
+
113
+ return this
114
+ }
115
+
116
+ }
117
+
118
+
119
+ /* CAROUSEL PLUGIN DEFINITION
120
+ * ========================== */
121
+
122
+ $.fn.carousel = function ( option ) {
123
+ return this.each(function () {
124
+ var $this = $(this)
125
+ , data = $this.data('carousel')
126
+ , options = typeof option == 'object' && option
127
+ if (!data) $this.data('carousel', (data = new Carousel(this, options)))
128
+ if (typeof option == 'number') data.to(option)
129
+ else if (typeof option == 'string' || (option = options.slide)) data[option]()
130
+ else data.cycle()
131
+ })
132
+ }
133
+
134
+ $.fn.carousel.defaults = {
135
+ interval: 5000
136
+ }
137
+
138
+ $.fn.carousel.Constructor = Carousel
139
+
140
+
141
+ /* CAROUSEL DATA-API
142
+ * ================= */
143
+
144
+ $(function () {
145
+ $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
146
+ var $this = $(this), href
147
+ , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
148
+ , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
149
+ $target.carousel(options)
150
+ e.preventDefault()
151
+ })
152
+ })
153
+
154
+ }( window.jQuery )
@@ -0,0 +1,136 @@
1
+ /* =============================================================
2
+ * bootstrap-collapse.js v2.0.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#collapse
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 Collapse = function ( element, options ) {
25
+ this.$element = $(element)
26
+ this.options = $.extend({}, $.fn.collapse.defaults, options)
27
+
28
+ if (this.options["parent"]) {
29
+ this.$parent = $(this.options["parent"])
30
+ }
31
+
32
+ this.options.toggle && this.toggle()
33
+ }
34
+
35
+ Collapse.prototype = {
36
+
37
+ constructor: Collapse
38
+
39
+ , dimension: function () {
40
+ var hasWidth = this.$element.hasClass('width')
41
+ return hasWidth ? 'width' : 'height'
42
+ }
43
+
44
+ , show: function () {
45
+ var dimension = this.dimension()
46
+ , scroll = $.camelCase(['scroll', dimension].join('-'))
47
+ , actives = this.$parent && this.$parent.find('.in')
48
+ , hasData
49
+
50
+ if (actives && actives.length) {
51
+ hasData = actives.data('collapse')
52
+ actives.collapse('hide')
53
+ hasData || actives.data('collapse', null)
54
+ }
55
+
56
+ this.$element[dimension](0)
57
+ this.transition('addClass', 'show', 'shown')
58
+ this.$element[dimension](this.$element[0][scroll])
59
+
60
+ }
61
+
62
+ , hide: function () {
63
+ var dimension = this.dimension()
64
+ this.reset(this.$element[dimension]())
65
+ this.transition('removeClass', 'hide', 'hidden')
66
+ this.$element[dimension](0)
67
+ }
68
+
69
+ , reset: function ( size ) {
70
+ var dimension = this.dimension()
71
+
72
+ this.$element
73
+ .removeClass('collapse')
74
+ [dimension](size || 'auto')
75
+ [0].offsetWidth
76
+
77
+ this.$element.addClass('collapse')
78
+ }
79
+
80
+ , transition: function ( method, startEvent, completeEvent ) {
81
+ var that = this
82
+ , complete = function () {
83
+ if (startEvent == 'show') that.reset()
84
+ that.$element.trigger(completeEvent)
85
+ }
86
+
87
+ this.$element
88
+ .trigger(startEvent)
89
+ [method]('in')
90
+
91
+ $.support.transition && this.$element.hasClass('collapse') ?
92
+ this.$element.one($.support.transition.end, complete) :
93
+ complete()
94
+ }
95
+
96
+ , toggle: function () {
97
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
98
+ }
99
+
100
+ }
101
+
102
+ /* COLLAPSIBLE PLUGIN DEFINITION
103
+ * ============================== */
104
+
105
+ $.fn.collapse = function ( option ) {
106
+ return this.each(function () {
107
+ var $this = $(this)
108
+ , data = $this.data('collapse')
109
+ , options = typeof option == 'object' && option
110
+ if (!data) $this.data('collapse', (data = new Collapse(this, options)))
111
+ if (typeof option == 'string') data[option]()
112
+ })
113
+ }
114
+
115
+ $.fn.collapse.defaults = {
116
+ toggle: true
117
+ }
118
+
119
+ $.fn.collapse.Constructor = Collapse
120
+
121
+
122
+ /* COLLAPSIBLE DATA-API
123
+ * ==================== */
124
+
125
+ $(function () {
126
+ $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
127
+ var $this = $(this), href
128
+ , target = $this.attr('data-target')
129
+ || e.preventDefault()
130
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
131
+ , option = $(target).data('collapse') ? 'toggle' : $this.data()
132
+ $(target).collapse(option)
133
+ })
134
+ })
135
+
136
+ }( window.jQuery )