spiderfw 0.6.39 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG +2 -0
  3. data/Rakefile +4 -3
  4. data/VERSION +1 -1
  5. data/apps/core/admin/public/css/sass/admin.css +61 -12
  6. data/apps/core/admin/public/sass/admin.scss +51 -0
  7. data/apps/core/admin/views/login.layout.shtml +1 -1
  8. data/apps/core/components/assets.rb +34 -2
  9. data/apps/core/components/po/it/spider_components.po +2 -2
  10. data/apps/core/components/public/bootstrap/scss/_aggiunte_bootstrap_3.scss +54 -0
  11. data/apps/core/components/public/bootstrap/scss/_pagination.scss +1 -1
  12. data/apps/core/components/public/bootstrap/scss/_variables.scss +2 -0
  13. data/apps/core/components/public/bootstrap/scss/bootstrap.css +48 -2
  14. data/apps/core/components/public/bootstrap/scss/bootstrap.scss +4 -1
  15. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.eot +0 -0
  16. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.svg +272 -213
  17. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.ttf +0 -0
  18. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.woff +0 -0
  19. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.woff2 +0 -0
  20. data/apps/core/components/public/bootstrap_3/js/affix.js +48 -26
  21. data/apps/core/components/public/bootstrap_3/js/alert.js +8 -6
  22. data/apps/core/components/public/bootstrap_3/js/button.js +27 -17
  23. data/apps/core/components/public/bootstrap_3/js/carousel.js +66 -39
  24. data/apps/core/components/public/bootstrap_3/js/collapse.js +73 -42
  25. data/apps/core/components/public/bootstrap_3/js/dropdown.js +54 -40
  26. data/apps/core/components/public/bootstrap_3/js/modal.js +102 -42
  27. data/apps/core/components/public/bootstrap_3/js/popover.js +6 -11
  28. data/apps/core/components/public/bootstrap_3/js/scrollspy.js +47 -33
  29. data/apps/core/components/public/bootstrap_3/js/tab.js +48 -21
  30. data/apps/core/components/public/bootstrap_3/js/tooltip.js +118 -60
  31. data/apps/core/components/public/bootstrap_3/js/transition.js +15 -4
  32. data/apps/core/components/public/bootstrap_3/scss/_alerts.scss +8 -2
  33. data/apps/core/components/public/bootstrap_3/scss/_badges.scss +14 -3
  34. data/apps/core/components/public/bootstrap_3/scss/_button-groups.scss +23 -19
  35. data/apps/core/components/public/bootstrap_3/scss/_buttons.scss +22 -13
  36. data/apps/core/components/public/bootstrap_3/scss/_carousel.scss +28 -2
  37. data/apps/core/components/public/bootstrap_3/scss/_close.scss +1 -0
  38. data/apps/core/components/public/bootstrap_3/scss/_code.scss +7 -0
  39. data/apps/core/components/public/bootstrap_3/scss/_component-animations.scss +3 -1
  40. data/apps/core/components/public/bootstrap_3/scss/_dropdowns.scss +11 -9
  41. data/apps/core/components/public/bootstrap_3/scss/_forms.scss +190 -68
  42. data/apps/core/components/public/bootstrap_3/scss/_glyphicons.scss +83 -13
  43. data/apps/core/components/public/bootstrap_3/scss/_grid.scss +4 -4
  44. data/apps/core/components/public/bootstrap_3/scss/_input-groups.scss +1 -0
  45. data/apps/core/components/public/bootstrap_3/scss/_jumbotron.scss +8 -4
  46. data/apps/core/components/public/bootstrap_3/scss/_list-group.scss +13 -12
  47. data/apps/core/components/public/bootstrap_3/scss/_media.scss +40 -30
  48. data/apps/core/components/public/bootstrap_3/scss/_mixins.scss +1 -0
  49. data/apps/core/components/public/bootstrap_3/scss/_modals.scss +7 -4
  50. data/apps/core/components/public/bootstrap_3/scss/_navbar.scss +36 -32
  51. data/apps/core/components/public/bootstrap_3/scss/_navs.scss +3 -3
  52. data/apps/core/components/public/bootstrap_3/scss/_normalize.scss +12 -13
  53. data/apps/core/components/public/bootstrap_3/scss/_pager.scss +2 -3
  54. data/apps/core/components/public/bootstrap_3/scss/_pagination.scss +4 -3
  55. data/apps/core/components/public/bootstrap_3/scss/_panels.scss +38 -7
  56. data/apps/core/components/public/bootstrap_3/scss/_popovers.scss +5 -7
  57. data/apps/core/components/public/bootstrap_3/scss/_print.scss +96 -96
  58. data/apps/core/components/public/bootstrap_3/scss/_progress-bars.scss +20 -22
  59. data/apps/core/components/public/bootstrap_3/scss/_responsive-embed.scss +10 -9
  60. data/apps/core/components/public/bootstrap_3/scss/_responsive-utilities.scss +8 -3
  61. data/apps/core/components/public/bootstrap_3/scss/_scaffolding.scss +15 -4
  62. data/apps/core/components/public/bootstrap_3/scss/_tables.scss +15 -14
  63. data/apps/core/components/public/bootstrap_3/scss/_theme.scss +57 -13
  64. data/apps/core/components/public/bootstrap_3/scss/_thumbnails.scss +2 -2
  65. data/apps/core/components/public/bootstrap_3/scss/_tooltip.scss +13 -7
  66. data/apps/core/components/public/bootstrap_3/scss/_type.scss +21 -21
  67. data/apps/core/components/public/bootstrap_3/scss/_utilities.scss +3 -4
  68. data/apps/core/components/public/bootstrap_3/scss/_variables.scss +54 -32
  69. data/apps/core/components/public/bootstrap_3/scss/bootstrap.css +8772 -0
  70. data/apps/core/components/public/bootstrap_3/scss/bootstrap.scss +6 -0
  71. data/apps/core/components/public/bootstrap_3/scss/mixins/_background-variant.scss +2 -1
  72. data/apps/core/components/public/bootstrap_3/scss/mixins/_buttons.scss +19 -1
  73. data/apps/core/components/public/bootstrap_3/scss/mixins/_forms.scss +5 -1
  74. data/apps/core/components/public/bootstrap_3/scss/mixins/_gradients.scss +1 -1
  75. data/apps/core/components/public/bootstrap_3/scss/mixins/_grid-framework.scss +4 -10
  76. data/apps/core/components/public/bootstrap_3/scss/mixins/_grid.scss +7 -7
  77. data/apps/core/components/public/bootstrap_3/scss/mixins/_hide-text.scss +3 -3
  78. data/apps/core/components/public/bootstrap_3/scss/mixins/_labels.scss +1 -1
  79. data/apps/core/components/public/bootstrap_3/scss/mixins/_list-group.scss +3 -2
  80. data/apps/core/components/public/bootstrap_3/scss/mixins/_opacity.scss +1 -1
  81. data/apps/core/components/public/bootstrap_3/scss/mixins/_pagination.scss +2 -1
  82. data/apps/core/components/public/bootstrap_3/scss/mixins/_panels.scss +4 -0
  83. data/apps/core/components/public/bootstrap_3/scss/mixins/_progress-bar.scss +3 -1
  84. data/apps/core/components/public/bootstrap_3/scss/mixins/_reset-text.scss +18 -0
  85. data/apps/core/components/public/bootstrap_3/scss/mixins/_responsive-visibility.scss +1 -1
  86. data/apps/core/components/public/bootstrap_3/scss/mixins/_text-emphasis.scss +2 -1
  87. data/apps/core/components/public/bootstrap_3/scss/mixins/_vendor-prefixes.scss +11 -13
  88. data/apps/core/components/public/css/table_base.css +46 -1
  89. data/apps/core/components/public/fontawesome_4/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  90. data/apps/core/components/public/fontawesome_4/fonts/font-awesome/fontawesome-webfont.svg +565 -0
  91. data/apps/core/components/public/fontawesome_4/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  92. data/apps/core/components/public/fontawesome_4/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  93. data/apps/core/components/public/fontawesome_4/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  94. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome.css +2893 -0
  95. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_animated.scss +34 -0
  96. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_bordered-pulled.scss +16 -0
  97. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_core.scss +12 -0
  98. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_extras.scss +44 -0
  99. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_fixed-width.scss +6 -0
  100. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_icons.scss +596 -0
  101. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_larger.scss +13 -0
  102. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_list.scss +19 -0
  103. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_mixins.scss +26 -0
  104. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_path.scss +14 -0
  105. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_rotated-flipped.scss +20 -0
  106. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_stacked.scss +20 -0
  107. data/apps/core/components/public/fontawesome_4/stylesheets/font-awesome/_variables.scss +608 -0
  108. data/apps/core/components/public/fontawesome_4/stylesheets/font_awesome.css +2893 -0
  109. data/apps/core/components/public/fontawesome_4/stylesheets/font_awesome.scss +17 -0
  110. data/apps/core/components/public/js/paginatore.js +307 -0
  111. data/apps/core/components/public/js/spin.js +399 -0
  112. data/apps/core/components/public/mmenu/js/jquery.mmenu.js +133 -0
  113. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.borderstyle.scss +33 -0
  114. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.effects.scss +199 -0
  115. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.fullscreen.scss +24 -0
  116. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.iconbar.scss +26 -0
  117. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.multiline.scss +15 -0
  118. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.pagedim.scss +36 -0
  119. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.pageshadow.scss +36 -0
  120. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.positioning.scss +87 -0
  121. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.themes.scss +76 -0
  122. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.tileview.scss +98 -0
  123. data/apps/core/components/public/mmenu/scss/extensions/_jquery.mmenu.widescreen.scss +61 -0
  124. data/apps/core/components/public/mmenu/scss/inc/_colors.scss +175 -0
  125. data/apps/core/components/public/mmenu/scss/inc/_mixins.scss +135 -0
  126. data/apps/core/components/public/mmenu/scss/inc/_sizing.scss +86 -0
  127. data/apps/core/components/public/mmenu/scss/inc/_variables.scss +61 -0
  128. data/apps/core/components/public/mmenu/scss/jquery.mmenu.scss +478 -0
  129. data/apps/core/components/widgets/table/table.rb +7 -0
  130. data/apps/core/components/widgets/table/table.shtml +50 -17
  131. data/apps/core/forms/tags/row.erb +1 -1
  132. data/lib/spiderfw/cmd/cmd.rb +2 -0
  133. data/lib/spiderfw/cmd/commands/assets.rb +12 -0
  134. data/lib/spiderfw/controller/mixins/visual.rb +1 -0
  135. data/lib/spiderfw/create.rb +0 -1
  136. data/lib/spiderfw/i18n/gettext.rb +33 -0
  137. data/lib/spiderfw/i18n/javascript_parser.rb +2 -2
  138. data/lib/spiderfw/i18n/shtml_parser.rb +2 -2
  139. data/lib/spiderfw/model/model.rb +2 -1
  140. data/lib/spiderfw/setup/app_manager.rb +8 -0
  141. data/lib/spiderfw/spider.rb +9 -1
  142. data/lib/spiderfw/templates/layout.rb +47 -39
  143. data/lib/spiderfw/templates/template.rb +12 -4
  144. metadata +46 -1
@@ -1,8 +1,8 @@
1
1
  /* ========================================================================
2
- * Bootstrap: transition.js v3.1.1
2
+ * Bootstrap: transition.js v3.3.5
3
3
  * http://getbootstrap.com/javascript/#transitions
4
4
  * ========================================================================
5
- * Copyright 2011-2014 Twitter, Inc.
5
+ * Copyright 2011-2015 Twitter, Inc.
6
6
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
7
  * ======================================================================== */
8
8
 
@@ -34,8 +34,9 @@
34
34
 
35
35
  // http://blog.alexmaccaw.com/css-transitions
36
36
  $.fn.emulateTransitionEnd = function (duration) {
37
- var called = false, $el = this
38
- $(this).one($.support.transition.end, function () { called = true })
37
+ var called = false
38
+ var $el = this
39
+ $(this).one('bsTransitionEnd', function () { called = true })
39
40
  var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
40
41
  setTimeout(callback, duration)
41
42
  return this
@@ -43,6 +44,16 @@
43
44
 
44
45
  $(function () {
45
46
  $.support.transition = transitionEnd()
47
+
48
+ if (!$.support.transition) return
49
+
50
+ $.event.special.bsTransitionEnd = {
51
+ bindType: $.support.transition.end,
52
+ delegateType: $.support.transition.end,
53
+ handle: function (e) {
54
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
55
+ }
56
+ }
46
57
  })
47
58
 
48
59
  }(jQuery);
@@ -18,6 +18,7 @@
18
18
  // Specified for the h4 to prevent conflicts of changing $headings-color
19
19
  color: inherit;
20
20
  }
21
+
21
22
  // Provide class for links that match alerts
22
23
  .alert-link {
23
24
  font-weight: $alert-link-font-weight;
@@ -28,16 +29,18 @@
28
29
  > ul {
29
30
  margin-bottom: 0;
30
31
  }
32
+
31
33
  > p + p {
32
34
  margin-top: 5px;
33
35
  }
34
36
  }
35
37
 
36
- // Dismissable alerts
38
+ // Dismissible alerts
37
39
  //
38
40
  // Expand the right padding and account for the close button's positioning.
39
41
 
40
- .alert-dismissable {
42
+ .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43
+ .alert-dismissible {
41
44
  padding-right: ($alert-padding + 20);
42
45
 
43
46
  // Adjust close link position
@@ -56,12 +59,15 @@
56
59
  .alert-success {
57
60
  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
58
61
  }
62
+
59
63
  .alert-info {
60
64
  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
61
65
  }
66
+
62
67
  .alert-warning {
63
68
  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
64
69
  }
70
+
65
71
  .alert-danger {
66
72
  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
67
73
  }
@@ -12,7 +12,7 @@
12
12
  font-weight: $badge-font-weight;
13
13
  color: $badge-color;
14
14
  line-height: $badge-line-height;
15
- vertical-align: baseline;
15
+ vertical-align: middle;
16
16
  white-space: nowrap;
17
17
  text-align: center;
18
18
  background-color: $badge-bg;
@@ -28,7 +28,9 @@
28
28
  position: relative;
29
29
  top: -1px;
30
30
  }
31
- .btn-xs & {
31
+
32
+ .btn-xs &,
33
+ .btn-group-xs > .btn & {
32
34
  top: 0;
33
35
  padding: 1px 5px;
34
36
  }
@@ -36,11 +38,20 @@
36
38
  // [converter] extracted a& to a.badge
37
39
 
38
40
  // Account for badges in navs
39
- a.list-group-item.active > &,
41
+ .list-group-item.active > &,
40
42
  .nav-pills > .active > a > & {
41
43
  color: $badge-active-color;
42
44
  background-color: $badge-active-bg;
43
45
  }
46
+
47
+ .list-group-item > & {
48
+ float: right;
49
+ }
50
+
51
+ .list-group-item > & + & {
52
+ margin-right: 5px;
53
+ }
54
+
44
55
  .nav-pills > li > a > & {
45
56
  margin-left: 3px;
46
57
  }
@@ -18,10 +18,6 @@
18
18
  &.active {
19
19
  z-index: 2;
20
20
  }
21
- &:focus {
22
- // Remove focus outline when dropdown JS adds it after closing the menu
23
- outline: 0;
24
- }
25
21
  }
26
22
  }
27
23
 
@@ -38,8 +34,9 @@
38
34
  // Optional: Group multiple button groups together for a toolbar
39
35
  .btn-toolbar {
40
36
  margin-left: -5px; // Offset the first child's margin
41
- @include clearfix();
37
+ @include clearfix;
42
38
 
39
+ .btn,
43
40
  .btn-group,
44
41
  .input-group {
45
42
  float: left;
@@ -75,13 +72,13 @@
75
72
  .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
76
73
  border-radius: 0;
77
74
  }
78
- .btn-group > .btn-group:first-child {
75
+ .btn-group > .btn-group:first-child:not(:last-child) {
79
76
  > .btn:last-child,
80
77
  > .dropdown-toggle {
81
78
  @include border-right-radius(0);
82
79
  }
83
80
  }
84
- .btn-group > .btn-group:last-child > .btn:first-child {
81
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
85
82
  @include border-left-radius(0);
86
83
  }
87
84
 
@@ -156,7 +153,7 @@
156
153
 
157
154
  // Clear floats so dropdown menus can be properly placed
158
155
  > .btn-group {
159
- @include clearfix();
156
+ @include clearfix;
160
157
  > .btn {
161
158
  float: none;
162
159
  }
@@ -176,11 +173,11 @@
176
173
  border-radius: 0;
177
174
  }
178
175
  &:first-child:not(:last-child) {
179
- border-top-right-radius: $border-radius-base;
176
+ border-top-right-radius: $btn-border-radius-base;
180
177
  @include border-bottom-radius(0);
181
178
  }
182
179
  &:last-child:not(:first-child) {
183
- border-bottom-left-radius: $border-radius-base;
180
+ border-bottom-left-radius: $btn-border-radius-base;
184
181
  @include border-top-radius(0);
185
182
  }
186
183
  }
@@ -198,7 +195,6 @@
198
195
  }
199
196
 
200
197
 
201
-
202
198
  // Justified button groups
203
199
  // ----------------------
204
200
 
@@ -226,15 +222,23 @@
226
222
  // Checkbox and radio options
227
223
  //
228
224
  // In order to support the browser's form validation feedback, powered by the
229
- // `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
230
- // use `display: none;` or `visibility: hidden;` as that also hides the popover.
225
+ // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
226
+ // `display: none;` or `visibility: hidden;` as that also hides the popover.
227
+ // Simply visually hiding the inputs via `opacity` would leave them clickable in
228
+ // certain cases which is prevented by using `clip` and `pointer-events`.
231
229
  // This way, we ensure a DOM element is visible to position the popover from.
232
230
  //
233
- // See https://github.com/twbs/bootstrap/pull/12794 for more.
231
+ // See https://github.com/twbs/bootstrap/pull/12794 and
232
+ // https://github.com/twbs/bootstrap/pull/14559 for more information.
234
233
 
235
- [data-toggle="buttons"] > .btn > input[type="radio"],
236
- [data-toggle="buttons"] > .btn > input[type="checkbox"] {
237
- position: absolute;
238
- z-index: -1;
239
- @include opacity(0);
234
+ [data-toggle="buttons"] {
235
+ > .btn,
236
+ > .btn-group > .btn {
237
+ input[type="radio"],
238
+ input[type="checkbox"] {
239
+ position: absolute;
240
+ clip: rect(0,0,0,0);
241
+ pointer-events: none;
242
+ }
243
+ }
240
244
  }
@@ -12,23 +12,26 @@
12
12
  font-weight: $btn-font-weight;
13
13
  text-align: center;
14
14
  vertical-align: middle;
15
+ touch-action: manipulation;
15
16
  cursor: pointer;
16
17
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
17
18
  border: 1px solid transparent;
18
19
  white-space: nowrap;
19
- @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
20
+ @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);
20
21
  @include user-select(none);
21
22
 
22
23
  &,
23
24
  &:active,
24
25
  &.active {
25
- &:focus {
26
- @include tab-focus();
26
+ &:focus,
27
+ &.focus {
28
+ @include tab-focus;
27
29
  }
28
30
  }
29
31
 
30
32
  &:hover,
31
- &:focus {
33
+ &:focus,
34
+ &.focus {
32
35
  color: $btn-default-color;
33
36
  text-decoration: none;
34
37
  }
@@ -43,11 +46,19 @@
43
46
  &.disabled,
44
47
  &[disabled],
45
48
  fieldset[disabled] & {
46
- cursor: not-allowed;
47
- pointer-events: none; // Future-proof disabling of clicks
49
+ cursor: $cursor-disabled;
48
50
  @include opacity(.65);
49
51
  @include box-shadow(none);
50
52
  }
53
+
54
+ // [converter] extracted a& to a.btn
55
+ }
56
+
57
+ a.btn {
58
+ &.disabled,
59
+ fieldset[disabled] & {
60
+ pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
61
+ }
51
62
  }
52
63
 
53
64
 
@@ -85,11 +96,11 @@
85
96
  .btn-link {
86
97
  color: $link-color;
87
98
  font-weight: normal;
88
- cursor: pointer;
89
99
  border-radius: 0;
90
100
 
91
101
  &,
92
102
  &:active,
103
+ &.active,
93
104
  &[disabled],
94
105
  fieldset[disabled] & {
95
106
  background-color: transparent;
@@ -104,7 +115,7 @@
104
115
  &:hover,
105
116
  &:focus {
106
117
  color: $link-hover-color;
107
- text-decoration: underline;
118
+ text-decoration: $link-hover-decoration;
108
119
  background-color: transparent;
109
120
  }
110
121
  &[disabled],
@@ -123,14 +134,14 @@
123
134
 
124
135
  .btn-lg {
125
136
  // line-height: ensure even-numbered height of button next to large input
126
- @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
137
+ @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
127
138
  }
128
139
  .btn-sm {
129
140
  // line-height: ensure proper height of button next to small input
130
- @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
141
+ @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
131
142
  }
132
143
  .btn-xs {
133
- @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
144
+ @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
134
145
  }
135
146
 
136
147
 
@@ -140,8 +151,6 @@
140
151
  .btn-block {
141
152
  display: block;
142
153
  width: 100%;
143
- padding-left: 0;
144
- padding-right: 0;
145
154
  }
146
155
 
147
156
  // Vertically space out multiple block buttons
@@ -21,9 +21,33 @@
21
21
  // Account for jankitude on images
22
22
  > img,
23
23
  > a > img {
24
- @include img-responsive();
24
+ @include img-responsive;
25
25
  line-height: 1;
26
26
  }
27
+
28
+ // WebKit CSS3 transforms for supported devices
29
+ @media all and (transform-3d), (-webkit-transform-3d) {
30
+ @include transition-transform(0.6s ease-in-out);
31
+ @include backface-visibility(hidden);
32
+ @include perspective(1000px);
33
+
34
+ &.next,
35
+ &.active.right {
36
+ @include translate3d(100%, 0, 0);
37
+ left: 0;
38
+ }
39
+ &.prev,
40
+ &.active.left {
41
+ @include translate3d(-100%, 0, 0);
42
+ left: 0;
43
+ }
44
+ &.next.left,
45
+ &.prev.right,
46
+ &.active {
47
+ @include translate3d(0, 0, 0);
48
+ left: 0;
49
+ }
50
+ }
27
51
  }
28
52
 
29
53
  > .active,
@@ -106,6 +130,7 @@
106
130
  .glyphicon-chevron-right {
107
131
  position: absolute;
108
132
  top: 50%;
133
+ margin-top: -10px;
109
134
  z-index: 5;
110
135
  display: inline-block;
111
136
  }
@@ -123,7 +148,7 @@
123
148
  .icon-next {
124
149
  width: 20px;
125
150
  height: 20px;
126
- margin-top: -10px;
151
+ line-height: 1;
127
152
  font-family: serif;
128
153
  }
129
154
 
@@ -171,6 +196,7 @@
171
196
  // Internet Explorer 8-9 does not support clicks on elements without a set
172
197
  // `background-color`. We cannot use `filter` since that's not viewed as a
173
198
  // background color by the browser. Thus, a hack is needed.
199
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
174
200
  //
175
201
  // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
176
202
  // set alpha transparency for the best results possible.
@@ -26,6 +26,7 @@
26
26
  // Additional properties for button version
27
27
  // iOS requires the button element instead of an anchor tag.
28
28
  // If you want the anchor version, it requires `href="#"`.
29
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
29
30
  button.close {
30
31
  padding: 0;
31
32
  cursor: pointer;
@@ -28,6 +28,13 @@ kbd {
28
28
  background-color: $kbd-bg;
29
29
  border-radius: $border-radius-small;
30
30
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31
+
32
+ kbd {
33
+ padding: 0;
34
+ font-size: 100%;
35
+ font-weight: bold;
36
+ box-shadow: none;
37
+ }
31
38
  }
32
39
 
33
40
  // Blocks of code
@@ -31,5 +31,7 @@ tbody.collapse.in { display: table-row-group; }
31
31
  position: relative;
32
32
  height: 0;
33
33
  overflow: hidden;
34
- @include transition(height .35s ease);
34
+ @include transition-property(height, visibility);
35
+ @include transition-duration(.35s);
36
+ @include transition-timing-function(ease);
35
37
  }
@@ -10,12 +10,14 @@
10
10
  height: 0;
11
11
  margin-left: 2px;
12
12
  vertical-align: middle;
13
- border-top: $caret-width-base solid;
13
+ border-top: $caret-width-base dashed;
14
+ border-top: $caret-width-base solid \9; // IE8
14
15
  border-right: $caret-width-base solid transparent;
15
16
  border-left: $caret-width-base solid transparent;
16
17
  }
17
18
 
18
19
  // The dropdown wrapper (div)
20
+ .dropup,
19
21
  .dropdown {
20
22
  position: relative;
21
23
  }
@@ -103,16 +105,15 @@
103
105
  &:focus {
104
106
  color: $dropdown-link-disabled-color;
105
107
  }
106
- }
107
- // Nuke hover/focus effects
108
- .dropdown-menu > .disabled > a {
108
+
109
+ // Nuke hover/focus effects
109
110
  &:hover,
110
111
  &:focus {
111
112
  text-decoration: none;
112
113
  background-color: transparent;
113
114
  background-image: none; // Remove CSS gradient
114
- @include reset-filter();
115
- cursor: not-allowed;
115
+ @include reset-filter;
116
+ cursor: $cursor-disabled;
116
117
  }
117
118
  }
118
119
 
@@ -155,6 +156,7 @@
155
156
  font-size: $font-size-small;
156
157
  line-height: $line-height-base;
157
158
  color: $dropdown-header-color;
159
+ white-space: nowrap; // as with > li > a
158
160
  }
159
161
 
160
162
  // Backdrop to catch body clicks on mobile, etc.
@@ -183,14 +185,15 @@
183
185
  // Reverse the caret
184
186
  .caret {
185
187
  border-top: 0;
186
- border-bottom: $caret-width-base solid;
188
+ border-bottom: $caret-width-base dashed;
189
+ border-bottom: $caret-width-base solid \9; // IE8
187
190
  content: "";
188
191
  }
189
192
  // Different positioning for bottom up menu
190
193
  .dropdown-menu {
191
194
  top: auto;
192
195
  bottom: 100%;
193
- margin-bottom: 1px;
196
+ margin-bottom: 2px;
194
197
  }
195
198
  }
196
199
 
@@ -211,4 +214,3 @@
211
214
  }
212
215
  }
213
216
  }
214
-