bootstrap-generators 3.2.0 → 3.3.1

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -3
  3. data/Rakefile +9 -18
  4. data/lib/bootstrap/generators/version.rb +1 -1
  5. data/lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.less +31 -21
  6. data/lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.scss +38 -24
  7. data/lib/generators/bootstrap/install/templates/assets/stylesheets/starter.scss +2 -1
  8. data/lib/generators/bootstrap/install/templates/form_builders/form_builder/_form.html.erb +3 -3
  9. data/lib/generators/bootstrap/install/templates/form_builders/form_builder/_form.html.haml +5 -3
  10. data/lib/generators/bootstrap/install/templates/form_builders/form_builder/_form.html.slim +7 -4
  11. data/lib/generators/bootstrap/install/templates/layouts/starter.html.erb +10 -9
  12. data/lib/generators/bootstrap/install/templates/layouts/starter.html.haml +12 -9
  13. data/lib/generators/bootstrap/install/templates/layouts/starter.html.slim +15 -11
  14. data/readme-template.md.erb +3 -1
  15. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +1 -1
  16. data/vendor/assets/javascripts/bootstrap/affix.js +43 -23
  17. data/vendor/assets/javascripts/bootstrap/alert.js +6 -4
  18. data/vendor/assets/javascripts/bootstrap/button.js +16 -10
  19. data/vendor/assets/javascripts/bootstrap/carousel.js +27 -10
  20. data/vendor/assets/javascripts/bootstrap/collapse.js +69 -28
  21. data/vendor/assets/javascripts/bootstrap/dropdown.js +20 -10
  22. data/vendor/assets/javascripts/bootstrap/modal.js +67 -23
  23. data/vendor/assets/javascripts/bootstrap/popover.js +13 -7
  24. data/vendor/assets/javascripts/bootstrap/scrollspy.js +12 -7
  25. data/vendor/assets/javascripts/bootstrap/tab.js +41 -16
  26. data/vendor/assets/javascripts/bootstrap/tooltip.js +60 -39
  27. data/vendor/assets/javascripts/bootstrap/transition.js +1 -1
  28. data/vendor/assets/stylesheets/bootstrap.css.erb +332 -203
  29. data/vendor/assets/stylesheets/bootstrap.css.map +1 -0
  30. data/vendor/twitter/bootstrap/less/badges.less +7 -1
  31. data/vendor/twitter/bootstrap/less/button-groups.less +16 -13
  32. data/vendor/twitter/bootstrap/less/buttons.less +7 -4
  33. data/vendor/twitter/bootstrap/less/carousel.less +24 -0
  34. data/vendor/twitter/bootstrap/less/code.less +1 -0
  35. data/vendor/twitter/bootstrap/less/component-animations.less +5 -2
  36. data/vendor/twitter/bootstrap/less/dropdowns.less +3 -5
  37. data/vendor/twitter/bootstrap/less/forms.less +46 -40
  38. data/vendor/twitter/bootstrap/less/glyphicons.less +2 -1
  39. data/vendor/twitter/bootstrap/less/jumbotron.less +6 -5
  40. data/vendor/twitter/bootstrap/less/list-group.less +1 -8
  41. data/vendor/twitter/bootstrap/less/media.less +27 -36
  42. data/vendor/twitter/bootstrap/less/mixins/buttons.less +2 -0
  43. data/vendor/twitter/bootstrap/less/mixins/forms.less +5 -1
  44. data/vendor/twitter/bootstrap/less/mixins/grid-framework.less +2 -2
  45. data/vendor/twitter/bootstrap/less/mixins/image.less +0 -1
  46. data/vendor/twitter/bootstrap/less/mixins/labels.less +1 -1
  47. data/vendor/twitter/bootstrap/less/mixins/vendor-prefixes.less +6 -3
  48. data/vendor/twitter/bootstrap/less/modals.less +3 -5
  49. data/vendor/twitter/bootstrap/less/navbar.less +30 -25
  50. data/vendor/twitter/bootstrap/less/navs.less +3 -1
  51. data/vendor/twitter/bootstrap/less/normalize.less +5 -3
  52. data/vendor/twitter/bootstrap/less/pager.less +1 -2
  53. data/vendor/twitter/bootstrap/less/pagination.less +1 -1
  54. data/vendor/twitter/bootstrap/less/panels.less +21 -3
  55. data/vendor/twitter/bootstrap/less/popovers.less +6 -4
  56. data/vendor/twitter/bootstrap/less/print.less +102 -96
  57. data/vendor/twitter/bootstrap/less/progress-bars.less +1 -19
  58. data/vendor/twitter/bootstrap/less/responsive-embed.less +2 -1
  59. data/vendor/twitter/bootstrap/less/scaffolding.less +1 -1
  60. data/vendor/twitter/bootstrap/less/tables.less +11 -10
  61. data/vendor/twitter/bootstrap/less/theme.less +23 -9
  62. data/vendor/twitter/bootstrap/less/thumbnails.less +1 -1
  63. data/vendor/twitter/bootstrap/less/tooltip.less +12 -4
  64. data/vendor/twitter/bootstrap/less/type.less +0 -11
  65. data/vendor/twitter/bootstrap/less/utilities.less +0 -1
  66. data/vendor/twitter/bootstrap/less/variables.less +31 -21
  67. data/vendor/twitter/bootstrap/sass/_bootstrap-compass.scss +7 -0
  68. data/vendor/twitter/bootstrap/sass/_bootstrap-mincer.scss +17 -0
  69. data/vendor/twitter/bootstrap/sass/_bootstrap-sprockets.scss +7 -0
  70. data/vendor/twitter/bootstrap/sass/_bootstrap.scss +50 -0
  71. data/vendor/twitter/bootstrap/sass/{_alerts.scss → bootstrap/_alerts.scss} +0 -0
  72. data/vendor/twitter/bootstrap/sass/{_badges.scss → bootstrap/_badges.scss} +7 -1
  73. data/vendor/twitter/bootstrap/sass/{_breadcrumbs.scss → bootstrap/_breadcrumbs.scss} +0 -0
  74. data/vendor/twitter/bootstrap/sass/{_button-groups.scss → bootstrap/_button-groups.scss} +18 -15
  75. data/vendor/twitter/bootstrap/sass/{_buttons.scss → bootstrap/_buttons.scss} +8 -5
  76. data/vendor/twitter/bootstrap/sass/{_carousel.scss → bootstrap/_carousel.scss} +25 -1
  77. data/vendor/twitter/bootstrap/sass/{_close.scss → bootstrap/_close.scss} +0 -0
  78. data/vendor/twitter/bootstrap/sass/{_code.scss → bootstrap/_code.scss} +1 -0
  79. data/vendor/twitter/bootstrap/sass/{_component-animations.scss → bootstrap/_component-animations.scss} +5 -2
  80. data/vendor/twitter/bootstrap/sass/{_dropdowns.scss → bootstrap/_dropdowns.scss} +4 -6
  81. data/vendor/twitter/bootstrap/sass/{_forms.scss → bootstrap/_forms.scss} +53 -43
  82. data/vendor/twitter/bootstrap/sass/{_glyphicons.scss → bootstrap/_glyphicons.scss} +7 -10
  83. data/vendor/twitter/bootstrap/sass/{_grid.scss → bootstrap/_grid.scss} +4 -4
  84. data/vendor/twitter/bootstrap/sass/{_input-groups.scss → bootstrap/_input-groups.scss} +0 -0
  85. data/vendor/twitter/bootstrap/sass/{_jumbotron.scss → bootstrap/_jumbotron.scss} +6 -5
  86. data/vendor/twitter/bootstrap/sass/{_labels.scss → bootstrap/_labels.scss} +0 -0
  87. data/vendor/twitter/bootstrap/sass/{_list-group.scss → bootstrap/_list-group.scss} +1 -8
  88. data/vendor/twitter/bootstrap/sass/bootstrap/_media.scss +47 -0
  89. data/vendor/twitter/bootstrap/sass/{_mixins.scss → bootstrap/_mixins.scss} +0 -0
  90. data/vendor/twitter/bootstrap/sass/{_modals.scss → bootstrap/_modals.scss} +4 -6
  91. data/vendor/twitter/bootstrap/sass/{_navbar.scss → bootstrap/_navbar.scss} +36 -33
  92. data/vendor/twitter/bootstrap/sass/{_navs.scss → bootstrap/_navs.scss} +5 -3
  93. data/vendor/twitter/bootstrap/sass/{_normalize.scss → bootstrap/_normalize.scss} +5 -3
  94. data/vendor/twitter/bootstrap/sass/{_pager.scss → bootstrap/_pager.scss} +2 -3
  95. data/vendor/twitter/bootstrap/sass/{_pagination.scss → bootstrap/_pagination.scss} +1 -1
  96. data/vendor/twitter/bootstrap/sass/{_panels.scss → bootstrap/_panels.scss} +22 -4
  97. data/vendor/twitter/bootstrap/sass/{_popovers.scss → bootstrap/_popovers.scss} +6 -4
  98. data/vendor/twitter/bootstrap/sass/bootstrap/_print.scss +107 -0
  99. data/vendor/twitter/bootstrap/sass/{_progress-bars.scss → bootstrap/_progress-bars.scss} +2 -20
  100. data/vendor/twitter/bootstrap/sass/{_responsive-embed.scss → bootstrap/_responsive-embed.scss} +2 -1
  101. data/vendor/twitter/bootstrap/sass/{_responsive-utilities.scss → bootstrap/_responsive-utilities.scss} +0 -0
  102. data/vendor/twitter/bootstrap/sass/{_scaffolding.scss → bootstrap/_scaffolding.scss} +3 -3
  103. data/vendor/twitter/bootstrap/sass/{_tables.scss → bootstrap/_tables.scss} +11 -10
  104. data/vendor/twitter/bootstrap/sass/{_theme.scss → bootstrap/_theme.scss} +27 -13
  105. data/vendor/twitter/bootstrap/sass/{_thumbnails.scss → bootstrap/_thumbnails.scss} +2 -2
  106. data/vendor/twitter/bootstrap/sass/{_tooltip.scss → bootstrap/_tooltip.scss} +12 -4
  107. data/vendor/twitter/bootstrap/sass/{_type.scss → bootstrap/_type.scss} +10 -16
  108. data/vendor/twitter/bootstrap/sass/{_utilities.scss → bootstrap/_utilities.scss} +3 -4
  109. data/vendor/twitter/bootstrap/sass/{_variables.scss → bootstrap/_variables.scss} +38 -24
  110. data/vendor/twitter/bootstrap/sass/{_wells.scss → bootstrap/_wells.scss} +0 -0
  111. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_alerts.scss +0 -0
  112. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_background-variant.scss +0 -0
  113. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_border-radius.scss +0 -0
  114. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_buttons.scss +2 -0
  115. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_center-block.scss +0 -0
  116. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_clearfix.scss +0 -0
  117. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_forms.scss +5 -1
  118. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_gradients.scss +0 -0
  119. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_grid-framework.scss +0 -0
  120. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_grid.scss +2 -2
  121. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_hide-text.scss +1 -1
  122. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_image.scss +0 -1
  123. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_labels.scss +1 -1
  124. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_list-group.scss +0 -0
  125. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_nav-divider.scss +0 -0
  126. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_nav-vertical-align.scss +0 -0
  127. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_opacity.scss +0 -0
  128. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_pagination.scss +0 -0
  129. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_panels.scss +0 -0
  130. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_progress-bar.scss +1 -1
  131. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_reset-filter.scss +0 -0
  132. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_resize.scss +0 -0
  133. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_responsive-visibility.scss +0 -0
  134. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_size.scss +0 -0
  135. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_tab-focus.scss +0 -0
  136. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_table-row.scss +0 -0
  137. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_text-emphasis.scss +0 -0
  138. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_text-overflow.scss +0 -0
  139. data/vendor/twitter/bootstrap/sass/{mixins → bootstrap/mixins}/_vendor-prefixes.scss +6 -3
  140. metadata +76 -72
  141. data/vendor/twitter/bootstrap/sass/_media.scss +0 -56
  142. data/vendor/twitter/bootstrap/sass/_print.scss +0 -101
  143. data/vendor/twitter/bootstrap/sass/bootstrap.scss +0 -50
@@ -2,14 +2,15 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <title>Starter Template for Bootstrap</title>
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  <meta name="description" content="">
8
8
  <meta name="author" content="">
9
+ <title>Starter Template for Bootstrap</title>
9
10
 
10
11
  <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
11
12
  <!--[if lt IE 9]>
12
- <%%= javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js" %>
13
+ <%%= javascript_include_tag "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js", "https://oss.maxcdn.com/respond/1.4.2/respond.min.js" %>
13
14
  <![endif]-->
14
15
 
15
16
  <%- if options[:skip_turbolinks] -%>
@@ -22,10 +23,10 @@
22
23
  <%%= csrf_meta_tags %>
23
24
  </head>
24
25
  <body>
25
- <div class="navbar navbar-inverse navbar-fixed-top">
26
+ <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
26
27
  <div class="container">
27
28
  <div class="navbar-header">
28
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
29
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
29
30
  <span class="sr-only">Toggle navigation</span>
30
31
  <span class="icon-bar"></span>
31
32
  <span class="icon-bar"></span>
@@ -33,7 +34,7 @@
33
34
  </button>
34
35
  <%%= link_to "Project name", "#", :class => "navbar-brand" %>
35
36
  </div>
36
- <div class="collapse navbar-collapse">
37
+ <div id="navbar" class="collapse navbar-collapse">
37
38
  <ul class="nav navbar-nav">
38
39
  <li class="active"><a href="#">Home</a></li>
39
40
  <li><a href="#about">About</a></li>
@@ -41,11 +42,11 @@
41
42
  </ul>
42
43
  </div>
43
44
  </div>
44
- </div>
45
+ </nav>
45
46
  <div class="container">
46
47
  <%% flash.each do |name, msg| %>
47
- <%%= content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable" do %>
48
- <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
48
+ <%%= content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable", :role => "alert" do %>
49
+ <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
49
50
  <%%= msg %>
50
51
  <%% end %>
51
52
  <%% end %>
@@ -2,14 +2,15 @@
2
2
  %html
3
3
  %head
4
4
  %meta{:charset => "utf-8"}
5
- %title Starter Template for Bootstrap
6
- %meta{:content => "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no", :name => "viewport"}
5
+ %meta{:content => "IE=edge", "http-equiv" => "X-UA-Compatible"}
6
+ %meta{:content => "width=device-width, initial-scale=1", :name => "viewport"}
7
7
  %meta{:content => "", :name => "description"}
8
8
  %meta{:content => "", :name => "author"}
9
+ %title Starter Template for Bootstrap
9
10
 
10
- / Le HTML5 shim, for IE6-8 support of HTML5 elements
11
+ / HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
11
12
  /[if lt IE 9]
12
- = javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"
13
+ = javascript_include_tag "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js", "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"
13
14
 
14
15
  <%- if options[:skip_turbolinks] -%>
15
16
  = stylesheet_link_tag 'application', media: 'all'
@@ -20,16 +21,16 @@
20
21
  <%- end -%>
21
22
  = csrf_meta_tags
22
23
  %body
23
- .navbar.navbar-inverse.navbar-fixed-top
24
+ %nav.navbar.navbar-inverse.navbar-fixed-top{:role => "navigation"}
24
25
  .container
25
26
  .navbar-header
26
- %button.navbar-toggle{:type => "button", :data => {:toggle => "collapse", :target => ".navbar-collapse"} }
27
+ %button.navbar-toggle.collapsed{:type => "button", :data => {:toggle => "collapse", :target => "#navbar"}, :aria => {:expanded => "false", :controls => "navbar"} }
27
28
  %span.sr-only Toggle navigation
28
29
  %span.icon-bar
29
30
  %span.icon-bar
30
31
  %span.icon-bar
31
32
  = link_to "Project name", "#", :class => "navbar-brand"
32
- .collapse.navbar-collapse
33
+ #navbar.collapse.navbar-collapse
33
34
  %ul.nav.navbar-nav
34
35
  %li.active
35
36
  %a{:href => "#"} Home
@@ -39,7 +40,9 @@
39
40
  %a{:href => "#contact"} Contact
40
41
  .container
41
42
  - flash.each do |name, msg|
42
- = content_tag :div, :class => "alert alert-#{name == :error ? "danger" : "success" } alert-dismissable" do
43
- %button.close{:type => "button", :data => {:dismiss => "alert"}, :aria => {:hidden => "true"} } &times;
43
+ = content_tag :div, :class => "alert alert-#{name == :error ? "danger" : "success" } alert-dismissable", :role => "alert" do
44
+ %button.close{:type => "button", :data => {:dismiss => "alert"} }
45
+ span{:aria => {:hidden => "true"} } &times;
46
+ span.sr-only Close
44
47
  = msg
45
48
  = yield
@@ -2,14 +2,15 @@ doctype html
2
2
  html
3
3
  head
4
4
  meta charset="utf-8"
5
- title
6
- | Starter Template for Bootstrap
7
- meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
5
+ meta http-equiv="X-UA-Compatible" content="IE=edge"
6
+ meta name="viewport" content="width=device-width, initial-scale=1"
8
7
  meta name="description" content=""
9
8
  meta name="author" content=""
9
+ title
10
+ | Starter Template for Bootstrap
10
11
  /! HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
11
12
  /[if lt IE 9]
12
- = javascript_include_tag "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"
13
+ = javascript_include_tag "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js", "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"
13
14
  <%- if options[:skip_turbolinks] -%>
14
15
  = stylesheet_link_tag 'application', media: 'all'
15
16
  = javascript_include_tag 'application'
@@ -19,31 +20,34 @@ html
19
20
  <%- end -%>
20
21
  = csrf_meta_tags
21
22
  body
22
- .navbar.navbar-inverse.navbar-fixed-top
23
+ nav.navbar.navbar-inverse.navbar-fixed-top role="navigation"
23
24
  .container
24
25
  .navbar-header
25
- button.navbar-toggle type="button" data-toggle="collapse" data-target=".navbar-collapse"
26
+ button.navbar-toggle.collapsed type="button" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"
26
27
  span.sr-only
27
28
  | Toggle navigation
28
29
  span.icon-bar
29
30
  span.icon-bar
30
31
  span.icon-bar
31
32
  = link_to "Project name", "#", :class => "navbar-brand"
32
- .collapse.navbar-collapse
33
+ #navbar.collapse.navbar-collapse
33
34
  ul.nav.navbar-nav
34
35
  li.active
35
36
  a href="#"
36
37
  | Home
37
38
  li
38
- a href="#about"
39
+ a href="#about"
39
40
  | About
40
41
  li
41
42
  a href="#contact"
42
43
  | Contact
43
44
  .container
44
45
  - flash.each do |name, msg|
45
- = content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable" do
46
- button.close type="button" data-dismiss="alert" aria-hidden="true"
47
- | &times;
46
+ = content_tag :div, :class => "alert alert-#{ name == :error ? "danger" : "success" } alert-dismissable", :role => "alert" do
47
+ button.close type="button" data-dismiss="alert"
48
+ span aria-hidden="true"
49
+ | &times;
50
+ span.sr-only
51
+ | Close
48
52
  = msg
49
53
  = yield
@@ -26,7 +26,9 @@ Run bundle install:
26
26
 
27
27
  Get started:
28
28
 
29
- rails generate bootstrap:install -f
29
+ rails generate bootstrap:install
30
+
31
+ To overwrite files that already exist, pass the `--force` (`-f`) option.
30
32
 
31
33
  Once you've done that, any time you generate a controller or scaffold, you'll get [Bootstrap](http://twitter.github.com/bootstrap/) templates.
32
34
 
@@ -226,4 +226,4 @@
226
226
  <glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
227
227
  <glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
228
228
  </font>
229
- </defs></svg>
229
+ </defs></svg>
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * Bootstrap: affix.js v3.2.0
2
+ * Bootstrap: affix.js v3.3.1
3
3
  * http://getbootstrap.com/javascript/#affix
4
4
  * ========================================================================
5
5
  * Copyright 2011-2014 Twitter, Inc.
@@ -28,7 +28,7 @@
28
28
  this.checkPosition()
29
29
  }
30
30
 
31
- Affix.VERSION = '3.2.0'
31
+ Affix.VERSION = '3.3.1'
32
32
 
33
33
  Affix.RESET = 'affix affix-top affix-bottom'
34
34
 
@@ -37,6 +37,28 @@
37
37
  target: window
38
38
  }
39
39
 
40
+ Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
41
+ var scrollTop = this.$target.scrollTop()
42
+ var position = this.$element.offset()
43
+ var targetHeight = this.$target.height()
44
+
45
+ if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
46
+
47
+ if (this.affixed == 'bottom') {
48
+ if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
49
+ return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
50
+ }
51
+
52
+ var initializing = this.affixed == null
53
+ var colliderTop = initializing ? scrollTop : position.top
54
+ var colliderHeight = initializing ? targetHeight : height
55
+
56
+ if (offsetTop != null && colliderTop <= offsetTop) return 'top'
57
+ if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
58
+
59
+ return false
60
+ }
61
+
40
62
  Affix.prototype.getPinnedOffset = function () {
41
63
  if (this.pinnedOffset) return this.pinnedOffset
42
64
  this.$element.removeClass(Affix.RESET).addClass('affix')
@@ -52,42 +74,40 @@
52
74
  Affix.prototype.checkPosition = function () {
53
75
  if (!this.$element.is(':visible')) return
54
76
 
55
- var scrollHeight = $(document).height()
56
- var scrollTop = this.$target.scrollTop()
57
- var position = this.$element.offset()
77
+ var height = this.$element.height()
58
78
  var offset = this.options.offset
59
79
  var offsetTop = offset.top
60
80
  var offsetBottom = offset.bottom
81
+ var scrollHeight = $('body').height()
61
82
 
62
83
  if (typeof offset != 'object') offsetBottom = offsetTop = offset
63
84
  if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
64
85
  if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
65
86
 
66
- var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
67
- offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
68
- offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
87
+ var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
69
88
 
70
- if (this.affixed === affix) return
71
- if (this.unpin != null) this.$element.css('top', '')
89
+ if (this.affixed != affix) {
90
+ if (this.unpin != null) this.$element.css('top', '')
72
91
 
73
- var affixType = 'affix' + (affix ? '-' + affix : '')
74
- var e = $.Event(affixType + '.bs.affix')
92
+ var affixType = 'affix' + (affix ? '-' + affix : '')
93
+ var e = $.Event(affixType + '.bs.affix')
75
94
 
76
- this.$element.trigger(e)
95
+ this.$element.trigger(e)
77
96
 
78
- if (e.isDefaultPrevented()) return
97
+ if (e.isDefaultPrevented()) return
79
98
 
80
- this.affixed = affix
81
- this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
99
+ this.affixed = affix
100
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
82
101
 
83
- this.$element
84
- .removeClass(Affix.RESET)
85
- .addClass(affixType)
86
- .trigger($.Event(affixType.replace('affix', 'affixed')))
102
+ this.$element
103
+ .removeClass(Affix.RESET)
104
+ .addClass(affixType)
105
+ .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
106
+ }
87
107
 
88
108
  if (affix == 'bottom') {
89
109
  this.$element.offset({
90
- top: scrollHeight - this.$element.height() - offsetBottom
110
+ top: scrollHeight - height - offsetBottom
91
111
  })
92
112
  }
93
113
  }
@@ -132,8 +152,8 @@
132
152
 
133
153
  data.offset = data.offset || {}
134
154
 
135
- if (data.offsetBottom) data.offset.bottom = data.offsetBottom
136
- if (data.offsetTop) data.offset.top = data.offsetTop
155
+ if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
156
+ if (data.offsetTop != null) data.offset.top = data.offsetTop
137
157
 
138
158
  Plugin.call($spy, data)
139
159
  })
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * Bootstrap: alert.js v3.2.0
2
+ * Bootstrap: alert.js v3.3.1
3
3
  * http://getbootstrap.com/javascript/#alerts
4
4
  * ========================================================================
5
5
  * Copyright 2011-2014 Twitter, Inc.
@@ -18,7 +18,9 @@
18
18
  $(el).on('click', dismiss, this.close)
19
19
  }
20
20
 
21
- Alert.VERSION = '3.2.0'
21
+ Alert.VERSION = '3.3.1'
22
+
23
+ Alert.TRANSITION_DURATION = 150
22
24
 
23
25
  Alert.prototype.close = function (e) {
24
26
  var $this = $(this)
@@ -34,7 +36,7 @@
34
36
  if (e) e.preventDefault()
35
37
 
36
38
  if (!$parent.length) {
37
- $parent = $this.hasClass('alert') ? $this : $this.parent()
39
+ $parent = $this.closest('.alert')
38
40
  }
39
41
 
40
42
  $parent.trigger(e = $.Event('close.bs.alert'))
@@ -51,7 +53,7 @@
51
53
  $.support.transition && $parent.hasClass('fade') ?
52
54
  $parent
53
55
  .one('bsTransitionEnd', removeElement)
54
- .emulateTransitionEnd(150) :
56
+ .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
55
57
  removeElement()
56
58
  }
57
59
 
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * Bootstrap: button.js v3.2.0
2
+ * Bootstrap: button.js v3.3.1
3
3
  * http://getbootstrap.com/javascript/#buttons
4
4
  * ========================================================================
5
5
  * Copyright 2011-2014 Twitter, Inc.
@@ -19,7 +19,7 @@
19
19
  this.isLoading = false
20
20
  }
21
21
 
22
- Button.VERSION = '3.2.0'
22
+ Button.VERSION = '3.3.1'
23
23
 
24
24
  Button.DEFAULTS = {
25
25
  loadingText: 'loading...'
@@ -35,10 +35,10 @@
35
35
 
36
36
  if (data.resetText == null) $el.data('resetText', $el[val]())
37
37
 
38
- $el[val](data[state] == null ? this.options[state] : data[state])
39
-
40
38
  // push to event loop to allow forms to submit
41
39
  setTimeout($.proxy(function () {
40
+ $el[val](data[state] == null ? this.options[state] : data[state])
41
+
42
42
  if (state == 'loadingText') {
43
43
  this.isLoading = true
44
44
  $el.addClass(d).attr(d, d)
@@ -60,6 +60,8 @@
60
60
  else $parent.find('.active').removeClass('active')
61
61
  }
62
62
  if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
63
+ } else {
64
+ this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
63
65
  }
64
66
 
65
67
  if (changed) this.$element.toggleClass('active')
@@ -100,11 +102,15 @@
100
102
  // BUTTON DATA-API
101
103
  // ===============
102
104
 
103
- $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
104
- var $btn = $(e.target)
105
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
106
- Plugin.call($btn, 'toggle')
107
- e.preventDefault()
108
- })
105
+ $(document)
106
+ .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
107
+ var $btn = $(e.target)
108
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
109
+ Plugin.call($btn, 'toggle')
110
+ e.preventDefault()
111
+ })
112
+ .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
113
+ $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
114
+ })
109
115
 
110
116
  }(jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * Bootstrap: carousel.js v3.2.0
2
+ * Bootstrap: carousel.js v3.3.1
3
3
  * http://getbootstrap.com/javascript/#carousel
4
4
  * ========================================================================
5
5
  * Copyright 2011-2014 Twitter, Inc.
@@ -14,7 +14,7 @@
14
14
  // =========================
15
15
 
16
16
  var Carousel = function (element, options) {
17
- this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
17
+ this.$element = $(element)
18
18
  this.$indicators = this.$element.find('.carousel-indicators')
19
19
  this.options = options
20
20
  this.paused =
@@ -23,20 +23,26 @@
23
23
  this.$active =
24
24
  this.$items = null
25
25
 
26
- this.options.pause == 'hover' && this.$element
26
+ this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
27
+
28
+ this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
27
29
  .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
28
30
  .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
29
31
  }
30
32
 
31
- Carousel.VERSION = '3.2.0'
33
+ Carousel.VERSION = '3.3.1'
34
+
35
+ Carousel.TRANSITION_DURATION = 600
32
36
 
33
37
  Carousel.DEFAULTS = {
34
38
  interval: 5000,
35
39
  pause: 'hover',
36
- wrap: true
40
+ wrap: true,
41
+ keyboard: true
37
42
  }
38
43
 
39
44
  Carousel.prototype.keydown = function (e) {
45
+ if (/input|textarea/i.test(e.target.tagName)) return
40
46
  switch (e.which) {
41
47
  case 37: this.prev(); break
42
48
  case 39: this.next(); break
@@ -63,6 +69,13 @@
63
69
  return this.$items.index(item || this.$active)
64
70
  }
65
71
 
72
+ Carousel.prototype.getItemForDirection = function (direction, active) {
73
+ var delta = direction == 'prev' ? -1 : 1
74
+ var activeIndex = this.getItemIndex(active)
75
+ var itemIndex = (activeIndex + delta) % this.$items.length
76
+ return this.$items.eq(itemIndex)
77
+ }
78
+
66
79
  Carousel.prototype.to = function (pos) {
67
80
  var that = this
68
81
  var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
@@ -72,7 +85,7 @@
72
85
  if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
73
86
  if (activeIndex == pos) return this.pause().cycle()
74
87
 
75
- return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
88
+ return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
76
89
  }
77
90
 
78
91
  Carousel.prototype.pause = function (e) {
@@ -100,7 +113,7 @@
100
113
 
101
114
  Carousel.prototype.slide = function (type, next) {
102
115
  var $active = this.$element.find('.item.active')
103
- var $next = next || $active[type]()
116
+ var $next = next || this.getItemForDirection(type, $active)
104
117
  var isCycling = this.interval
105
118
  var direction = type == 'next' ? 'left' : 'right'
106
119
  var fallback = type == 'next' ? 'first' : 'last'
@@ -146,7 +159,7 @@
146
159
  that.$element.trigger(slidEvent)
147
160
  }, 0)
148
161
  })
149
- .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
162
+ .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
150
163
  } else {
151
164
  $active.removeClass('active')
152
165
  $next.addClass('active')
@@ -195,7 +208,7 @@
195
208
  // CAROUSEL DATA-API
196
209
  // =================
197
210
 
198
- $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
211
+ var clickHandler = function (e) {
199
212
  var href
200
213
  var $this = $(this)
201
214
  var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
@@ -211,7 +224,11 @@
211
224
  }
212
225
 
213
226
  e.preventDefault()
214
- })
227
+ }
228
+
229
+ $(document)
230
+ .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
231
+ .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
215
232
 
216
233
  $(window).on('load', function () {
217
234
  $('[data-ride="carousel"]').each(function () {