twitter-bootstrap-rails 3.2.2 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +105 -130
  3. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  4. data/app/assets/fonts/glyphicons-halflings-regular.svg +273 -214
  5. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  6. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  7. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  8. data/app/assets/javascripts/twitter/bootstrap/affix.js +46 -26
  9. data/app/assets/javascripts/twitter/bootstrap/alert.js +7 -5
  10. data/app/assets/javascripts/twitter/bootstrap/button.js +27 -17
  11. data/app/assets/javascripts/twitter/bootstrap/carousel.js +35 -21
  12. data/app/assets/javascripts/twitter/bootstrap/collapse.js +68 -27
  13. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +55 -41
  14. data/app/assets/javascripts/twitter/bootstrap/modal.js +88 -31
  15. data/app/assets/javascripts/twitter/bootstrap/popover.js +5 -10
  16. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +28 -26
  17. data/app/assets/javascripts/twitter/bootstrap/tab.js +45 -18
  18. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +111 -54
  19. data/app/assets/javascripts/twitter/bootstrap/transition.js +2 -2
  20. data/app/helpers/glyph_helper.rb +6 -3
  21. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.css +3 -4
  22. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +7 -18
  23. data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -0
  24. data/lib/generators/bootstrap/themed/templates/index.html.haml +1 -0
  25. data/lib/generators/bootstrap/themed/templates/index.html.slim +2 -0
  26. data/lib/twitter/bootstrap/rails/version.rb +1 -1
  27. data/vendor/toolkit/twitter/bootstrap/alerts.less +5 -0
  28. data/vendor/toolkit/twitter/bootstrap/badges.less +14 -3
  29. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +6 -0
  30. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +0 -0
  31. data/vendor/toolkit/twitter/bootstrap/button-groups.less +13 -14
  32. data/vendor/toolkit/twitter/bootstrap/buttons.less +14 -7
  33. data/vendor/toolkit/twitter/bootstrap/carousel.less +34 -7
  34. data/vendor/toolkit/twitter/bootstrap/close.less +1 -0
  35. data/vendor/toolkit/twitter/bootstrap/code.less +0 -0
  36. data/vendor/toolkit/twitter/bootstrap/component-animations.less +3 -1
  37. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +9 -8
  38. data/vendor/toolkit/twitter/bootstrap/forms.less +110 -41
  39. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +80 -9
  40. data/vendor/toolkit/twitter/bootstrap/grid.less +0 -0
  41. data/vendor/toolkit/twitter/bootstrap/input-groups.less +8 -3
  42. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +10 -4
  43. data/vendor/toolkit/twitter/bootstrap/labels.less +0 -0
  44. data/vendor/toolkit/twitter/bootstrap/list-group.less +11 -13
  45. data/vendor/toolkit/twitter/bootstrap/media.less +40 -30
  46. data/vendor/toolkit/twitter/bootstrap/mixins.less +1 -0
  47. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +0 -0
  48. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +2 -1
  49. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +0 -0
  50. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +19 -6
  51. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +0 -0
  52. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +0 -0
  53. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +0 -0
  54. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +0 -0
  55. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +4 -4
  56. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +4 -4
  57. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +2 -2
  58. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +0 -0
  59. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +1 -1
  60. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +2 -1
  61. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +0 -0
  62. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +0 -0
  63. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +0 -0
  64. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +2 -1
  65. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +0 -0
  66. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +0 -0
  67. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +0 -0
  68. data/vendor/toolkit/twitter/bootstrap/mixins/reset-text.less +18 -0
  69. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +0 -0
  70. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +1 -1
  71. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +0 -0
  72. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +0 -0
  73. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +0 -0
  74. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +2 -1
  75. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +0 -0
  76. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +8 -5
  77. data/vendor/toolkit/twitter/bootstrap/modals.less +3 -3
  78. data/vendor/toolkit/twitter/bootstrap/navbar.less +6 -1
  79. data/vendor/toolkit/twitter/bootstrap/navs.less +1 -1
  80. data/vendor/toolkit/twitter/bootstrap/normalize.less +12 -13
  81. data/vendor/toolkit/twitter/bootstrap/pager.less +1 -2
  82. data/vendor/toolkit/twitter/bootstrap/pagination.less +5 -4
  83. data/vendor/toolkit/twitter/bootstrap/panels.less +27 -4
  84. data/vendor/toolkit/twitter/bootstrap/popovers.less +5 -7
  85. data/vendor/toolkit/twitter/bootstrap/print.less +96 -96
  86. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +1 -14
  87. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +10 -9
  88. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +0 -0
  89. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +12 -1
  90. data/vendor/toolkit/twitter/bootstrap/tables.less +6 -5
  91. data/vendor/toolkit/twitter/bootstrap/theme.less +47 -16
  92. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +1 -1
  93. data/vendor/toolkit/twitter/bootstrap/tooltip.less +13 -7
  94. data/vendor/toolkit/twitter/bootstrap/type.less +2 -8
  95. data/vendor/toolkit/twitter/bootstrap/utilities.less +0 -1
  96. data/vendor/toolkit/twitter/bootstrap/variables.less +36 -14
  97. data/vendor/toolkit/twitter/bootstrap/wells.less +0 -0
  98. metadata +45 -56
  99. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  100. data/app/assets/fonts/fontawesome-webfont.svg +0 -640
  101. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  102. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  103. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -2026
  104. data/vendor/static-source/fontawesome.less +0 -8
  105. data/vendor/toolkit/fontawesome/bordered-pulled.less +0 -16
  106. data/vendor/toolkit/fontawesome/core.less +0 -11
  107. data/vendor/toolkit/fontawesome/fixed-width.less +0 -6
  108. data/vendor/toolkit/fontawesome/font-awesome.less +0 -17
  109. data/vendor/toolkit/fontawesome/icons.less +0 -552
  110. data/vendor/toolkit/fontawesome/larger.less +0 -13
  111. data/vendor/toolkit/fontawesome/list.less +0 -19
  112. data/vendor/toolkit/fontawesome/mixins.less +0 -25
  113. data/vendor/toolkit/fontawesome/path.less +0 -14
  114. data/vendor/toolkit/fontawesome/rotated-flipped.less +0 -20
  115. data/vendor/toolkit/fontawesome/spinning.less +0 -29
  116. data/vendor/toolkit/fontawesome/stacked.less +0 -20
  117. data/vendor/toolkit/fontawesome/variables.less +0 -561
@@ -4,7 +4,8 @@
4
4
 
5
5
 
6
6
  .jumbotron {
7
- padding: @jumbotron-padding;
7
+ padding-top: @jumbotron-padding;
8
+ padding-bottom: @jumbotron-padding;
8
9
  margin-bottom: @jumbotron-padding;
9
10
  color: @jumbotron-color;
10
11
  background-color: @jumbotron-bg;
@@ -13,6 +14,7 @@
13
14
  .h1 {
14
15
  color: @jumbotron-heading-color;
15
16
  }
17
+
16
18
  p {
17
19
  margin-bottom: (@jumbotron-padding / 2);
18
20
  font-size: @jumbotron-font-size;
@@ -23,8 +25,11 @@
23
25
  border-top-color: darken(@jumbotron-bg, 10%);
24
26
  }
25
27
 
26
- .container & {
28
+ .container &,
29
+ .container-fluid & {
27
30
  border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
31
+ padding-left: (@grid-gutter-width / 2);
32
+ padding-right: (@grid-gutter-width / 2);
28
33
  }
29
34
 
30
35
  .container {
@@ -35,14 +40,15 @@
35
40
  padding-top: (@jumbotron-padding * 1.6);
36
41
  padding-bottom: (@jumbotron-padding * 1.6);
37
42
 
38
- .container & {
43
+ .container &,
44
+ .container-fluid & {
39
45
  padding-left: (@jumbotron-padding * 2);
40
46
  padding-right: (@jumbotron-padding * 2);
41
47
  }
42
48
 
43
49
  h1,
44
50
  .h1 {
45
- font-size: (@font-size-base * 4.5);
51
+ font-size: @jumbotron-heading-font-size;
46
52
  }
47
53
  }
48
54
  }
@@ -35,23 +35,16 @@
35
35
  margin-bottom: 0;
36
36
  .border-bottom-radius(@list-group-border-radius);
37
37
  }
38
-
39
- // Align badges within list items
40
- > .badge {
41
- float: right;
42
- }
43
- > .badge + .badge {
44
- margin-right: 5px;
45
- }
46
38
  }
47
39
 
48
40
 
49
- // Linked list items
41
+ // Interactive list items
50
42
  //
51
- // Use anchor elements instead of `li`s or `div`s to create linked list items.
43
+ // Use anchor or button elements instead of `li`s or `div`s to create interactive items.
52
44
  // Includes an extra `.active` modifier class for showing selected items.
53
45
 
54
- a.list-group-item {
46
+ a.list-group-item,
47
+ button.list-group-item {
55
48
  color: @list-group-link-color;
56
49
 
57
50
  .list-group-item-heading {
@@ -67,6 +60,11 @@ a.list-group-item {
67
60
  }
68
61
  }
69
62
 
63
+ button.list-group-item {
64
+ width: 100%;
65
+ text-align: left;
66
+ }
67
+
70
68
  .list-group-item {
71
69
  // Disabled state
72
70
  &.disabled,
@@ -74,8 +72,8 @@ a.list-group-item {
74
72
  &.disabled:focus {
75
73
  background-color: @list-group-disabled-bg;
76
74
  color: @list-group-disabled-color;
77
- cursor: not-allowed;
78
-
75
+ cursor: @cursor-disabled;
76
+
79
77
  // Force color to inherit for custom content
80
78
  .list-group-item-heading {
81
79
  color: inherit;
@@ -1,54 +1,64 @@
1
- // Media objects
2
- // Source: http://stubbornella.org/content/?p=497
3
- // --------------------------------------------------
4
-
1
+ .media {
2
+ // Proper spacing between instances of .media
3
+ margin-top: 15px;
5
4
 
6
- // Common styles
7
- // -------------------------
5
+ &:first-child {
6
+ margin-top: 0;
7
+ }
8
+ }
8
9
 
9
- // Clear the floats
10
10
  .media,
11
11
  .media-body {
12
- overflow: hidden;
13
12
  zoom: 1;
13
+ overflow: hidden;
14
14
  }
15
15
 
16
- // Proper spacing between instances of .media
17
- .media,
18
- .media .media {
19
- margin-top: 15px;
20
- }
21
- .media:first-child {
22
- margin-top: 0;
16
+ .media-body {
17
+ width: 10000px;
23
18
  }
24
19
 
25
- // For images and videos, set to block
26
20
  .media-object {
27
21
  display: block;
22
+
23
+ // Fix collapse in webkit from max-width: 100% and display: table-cell.
24
+ &.img-thumbnail {
25
+ max-width: none;
26
+ }
28
27
  }
29
28
 
30
- // Reset margins on headings for tighter default spacing
31
- .media-heading {
32
- margin: 0 0 5px;
29
+ .media-right,
30
+ .media > .pull-right {
31
+ padding-left: 10px;
33
32
  }
34
33
 
34
+ .media-left,
35
+ .media > .pull-left {
36
+ padding-right: 10px;
37
+ }
35
38
 
36
- // Media image alignment
37
- // -------------------------
39
+ .media-left,
40
+ .media-right,
41
+ .media-body {
42
+ display: table-cell;
43
+ vertical-align: top;
44
+ }
38
45
 
39
- .media {
40
- > .pull-left {
41
- margin-right: 10px;
42
- }
43
- > .pull-right {
44
- margin-left: 10px;
45
- }
46
+ .media-middle {
47
+ vertical-align: middle;
46
48
  }
47
49
 
50
+ .media-bottom {
51
+ vertical-align: bottom;
52
+ }
48
53
 
49
- // Media list variation
50
- // -------------------------
54
+ // Reset margins on headings for tighter default spacing
55
+ .media-heading {
56
+ margin-top: 0;
57
+ margin-bottom: 5px;
58
+ }
51
59
 
60
+ // Media list variation
61
+ //
52
62
  // Undo default ul/ol styles
53
63
  .media-list {
54
64
  padding-left: 0;
@@ -11,6 +11,7 @@
11
11
  @import "mixins/responsive-visibility.less";
12
12
  @import "mixins/size.less";
13
13
  @import "mixins/tab-focus.less";
14
+ @import "mixins/reset-text.less";
14
15
  @import "mixins/text-emphasis.less";
15
16
  @import "mixins/text-overflow.less";
16
17
  @import "mixins/vendor-prefixes.less";
@@ -2,7 +2,8 @@
2
2
 
3
3
  .bg-variant(@color) {
4
4
  background-color: @color;
5
- a&:hover {
5
+ a&:hover,
6
+ a&:focus {
6
7
  background-color: darken(@color, 10%);
7
8
  }
8
9
  }
@@ -8,15 +8,31 @@
8
8
  background-color: @background;
9
9
  border-color: @border;
10
10
 
11
- &:hover,
12
11
  &:focus,
13
- &.focus,
12
+ &.focus {
13
+ color: @color;
14
+ background-color: darken(@background, 10%);
15
+ border-color: darken(@border, 25%);
16
+ }
17
+ &:hover {
18
+ color: @color;
19
+ background-color: darken(@background, 10%);
20
+ border-color: darken(@border, 12%);
21
+ }
14
22
  &:active,
15
23
  &.active,
16
24
  .open > .dropdown-toggle& {
17
25
  color: @color;
18
26
  background-color: darken(@background, 10%);
19
27
  border-color: darken(@border, 12%);
28
+
29
+ &:hover,
30
+ &:focus,
31
+ &.focus {
32
+ color: @color;
33
+ background-color: darken(@background, 17%);
34
+ border-color: darken(@border, 25%);
35
+ }
20
36
  }
21
37
  &:active,
22
38
  &.active,
@@ -26,12 +42,9 @@
26
42
  &.disabled,
27
43
  &[disabled],
28
44
  fieldset[disabled] & {
29
- &,
30
45
  &:hover,
31
46
  &:focus,
32
- &.focus,
33
- &:active,
34
- &.active {
47
+ &.focus {
35
48
  background-color: @background;
36
49
  border-color: @border;
37
50
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  .make-grid-columns() {
7
7
  // Common styles for all sizes of grid columns, widths 1-12
8
- .col(@index) when (@index = 1) { // initial
8
+ .col(@index) { // initial
9
9
  @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
10
10
  .col((@index + 1), @item);
11
11
  }
@@ -19,15 +19,15 @@
19
19
  // Prevent columns from collapsing when empty
20
20
  min-height: 1px;
21
21
  // Inner gutter via padding
22
- padding-left: (@grid-gutter-width / 2);
23
- padding-right: (@grid-gutter-width / 2);
22
+ padding-left: ceil((@grid-gutter-width / 2));
23
+ padding-right: floor((@grid-gutter-width / 2));
24
24
  }
25
25
  }
26
26
  .col(1); // kickstart it
27
27
  }
28
28
 
29
29
  .float-grid-columns(@class) {
30
- .col(@index) when (@index = 1) { // initial
30
+ .col(@index) { // initial
31
31
  @item: ~".col-@{class}-@{index}";
32
32
  .col((@index + 1), @item);
33
33
  }
@@ -6,15 +6,15 @@
6
6
  .container-fixed(@gutter: @grid-gutter-width) {
7
7
  margin-right: auto;
8
8
  margin-left: auto;
9
- padding-left: (@gutter / 2);
10
- padding-right: (@gutter / 2);
9
+ padding-left: floor((@gutter / 2));
10
+ padding-right: ceil((@gutter / 2));
11
11
  &:extend(.clearfix all);
12
12
  }
13
13
 
14
14
  // Creates a wrapper for a series of columns
15
15
  .make-row(@gutter: @grid-gutter-width) {
16
- margin-left: (@gutter / -2);
17
- margin-right: (@gutter / -2);
16
+ margin-left: ceil((@gutter / -2));
17
+ margin-right: floor((@gutter / -2));
18
18
  &:extend(.clearfix all);
19
19
  }
20
20
 
@@ -1,12 +1,12 @@
1
1
  // CSS image replacement
2
2
  //
3
- // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
3
+ // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4
4
  // mixins being reused as classes with the same name, this doesn't hold up. As
5
5
  // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6
6
  //
7
7
  // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8
8
 
9
- // Deprecated as of v3.0.1 (will be removed in v4)
9
+ // Deprecated as of v3.0.1 (has been removed in v4)
10
10
  .hide-text() {
11
11
  font: ~"0/0" a;
12
12
  color: transparent;
@@ -2,7 +2,7 @@
2
2
 
3
3
  .label-variant(@color) {
4
4
  background-color: @color;
5
-
5
+
6
6
  &[href] {
7
7
  &:hover,
8
8
  &:focus {
@@ -5,7 +5,8 @@
5
5
  color: @color;
6
6
  background-color: @background;
7
7
 
8
- a& {
8
+ a&,
9
+ button& {
9
10
  color: @color;
10
11
 
11
12
  .list-group-item-heading {
@@ -1,11 +1,12 @@
1
1
  // Pagination
2
2
 
3
- .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
3
+ .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4
4
  > li {
5
5
  > a,
6
6
  > span {
7
7
  padding: @padding-vertical @padding-horizontal;
8
8
  font-size: @font-size;
9
+ line-height: @line-height;
9
10
  }
10
11
  &:first-child {
11
12
  > a,
@@ -0,0 +1,18 @@
1
+ .reset-text() {
2
+ font-family: @font-family-base;
3
+ // We deliberately do NOT reset font-size.
4
+ font-style: normal;
5
+ font-weight: normal;
6
+ letter-spacing: normal;
7
+ line-break: auto;
8
+ line-height: @line-height-base;
9
+ text-align: left; // Fallback for where `start` is not supported
10
+ text-align: start;
11
+ text-decoration: none;
12
+ text-shadow: none;
13
+ text-transform: none;
14
+ white-space: normal;
15
+ word-break: normal;
16
+ word-spacing: normal;
17
+ word-wrap: normal;
18
+ }
@@ -4,7 +4,7 @@
4
4
  // More easily include all the states for responsive-utilities.less.
5
5
  .responsive-visibility() {
6
6
  display: block !important;
7
- table& { display: table; }
7
+ table& { display: table !important; }
8
8
  tr& { display: table-row !important; }
9
9
  th&,
10
10
  td& { display: table-cell !important; }
@@ -2,7 +2,8 @@
2
2
 
3
3
  .text-emphasis-variant(@color) {
4
4
  color: @color;
5
- a&:hover {
5
+ a&:hover,
6
+ a&:focus {
6
7
  color: darken(@color, 10%);
7
8
  }
8
9
  }
@@ -1,7 +1,7 @@
1
1
  // Vendor Prefixes
2
2
  //
3
3
  // All vendor mixins are deprecated as of v3.2.0 due to the introduction of
4
- // Autoprefixer in our Gruntfile. They will be removed in v4.
4
+ // Autoprefixer in our Gruntfile. They have been removed in v4.
5
5
 
6
6
  // - Animations
7
7
  // - Backface visibility
@@ -54,7 +54,7 @@
54
54
  // Prevent browsers from flickering when using CSS 3D transforms.
55
55
  // Default value is `visible`, but can be changed to `hidden`
56
56
 
57
- .backface-visibility(@visibility){
57
+ .backface-visibility(@visibility) {
58
58
  -webkit-backface-visibility: @visibility;
59
59
  -moz-backface-visibility: @visibility;
60
60
  backface-visibility: @visibility;
@@ -99,9 +99,12 @@
99
99
 
100
100
  // Placeholder text
101
101
  .placeholder(@color: @input-color-placeholder) {
102
- &::-moz-placeholder { color: @color; // Firefox
103
- opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
104
- &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
102
+ // Firefox
103
+ &::-moz-placeholder {
104
+ color: @color;
105
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
106
+ }
107
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
105
108
  &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
106
109
  }
107
110