@finqu/cool 1.1.9 → 1.2.3

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 (82) hide show
  1. package/dist/css/cool-grid.css +2 -2
  2. package/dist/css/cool-grid.css.map +3 -3
  3. package/dist/css/cool-grid.min.css +1 -1
  4. package/dist/css/cool-grid.min.css.map +1 -1
  5. package/dist/css/cool-reboot.css +6 -2
  6. package/dist/css/cool-reboot.css.map +11 -9
  7. package/dist/css/cool-reboot.min.css +2 -2
  8. package/dist/css/cool-reboot.min.css.map +1 -1
  9. package/dist/css/cool.css +2848 -771
  10. package/dist/css/cool.css.map +33 -29
  11. package/dist/css/cool.min.css +2 -2
  12. package/dist/css/cool.min.css.map +1 -1
  13. package/dist/js/cool.bundle.js +659 -185
  14. package/dist/js/cool.bundle.js.map +1 -1
  15. package/dist/js/cool.bundle.min.js +2 -2
  16. package/dist/js/cool.bundle.min.js.map +1 -1
  17. package/dist/js/cool.esm.js +659 -185
  18. package/dist/js/cool.esm.js.map +1 -1
  19. package/dist/js/cool.esm.min.js +2 -2
  20. package/dist/js/cool.esm.min.js.map +1 -1
  21. package/dist/js/cool.js +659 -185
  22. package/dist/js/cool.js.map +1 -1
  23. package/dist/js/cool.min.js +2 -2
  24. package/dist/js/cool.min.js.map +1 -1
  25. package/html/dropdown-test.html +200 -0
  26. package/html/index.html +1418 -101
  27. package/js/dist/collapse.js +1043 -629
  28. package/js/dist/collapse.js.map +1 -1
  29. package/js/dist/common.js +876 -506
  30. package/js/dist/common.js.map +1 -1
  31. package/js/dist/dropdown.js +3451 -1867
  32. package/js/dist/dropdown.js.map +1 -1
  33. package/js/dist/popover.js +273 -58
  34. package/js/dist/popover.js.map +1 -1
  35. package/js/dist/sectiontabs.js +273 -58
  36. package/js/dist/sectiontabs.js.map +1 -1
  37. package/js/dist/select.js +10031 -3660
  38. package/js/dist/select.js.map +1 -1
  39. package/js/dist/tooltip.js +1703 -1434
  40. package/js/dist/tooltip.js.map +1 -1
  41. package/js/src/abstract-ui-component.js +16 -5
  42. package/js/src/collapse.js +24 -10
  43. package/js/src/common.js +26 -0
  44. package/js/src/dialog.js +12 -18
  45. package/js/src/dropdown.js +79 -7
  46. package/js/src/popover.js +2 -2
  47. package/js/src/section-tabs.js +2 -2
  48. package/js/src/select.js +582 -181
  49. package/js/src/toast.js +2 -2
  50. package/js/src/tooltip.js +7 -2
  51. package/js/src/util/index.js +10 -0
  52. package/package.json +21 -21
  53. package/scss/_alert.scss +79 -82
  54. package/scss/_badge.scss +16 -22
  55. package/scss/_button-group.scss +4 -0
  56. package/scss/_buttons.scss +3 -3
  57. package/scss/_custom-forms.scss +14 -12
  58. package/scss/_dialog.scss +17 -5
  59. package/scss/_dropdown.scss +1 -4
  60. package/scss/_frame.scss +24 -3
  61. package/scss/_functions.scss +10 -0
  62. package/scss/_images.scss +52 -2
  63. package/scss/_input-group.scss +12 -6
  64. package/scss/_mixins.scss +1 -0
  65. package/scss/_navbar.scss +40 -0
  66. package/scss/_notification.scss +13 -0
  67. package/scss/_reboot.scss +4 -0
  68. package/scss/_section.scss +28 -2
  69. package/scss/_select.scss +10 -1
  70. package/scss/_tables.scss +2 -1
  71. package/scss/_type.scss +37 -6
  72. package/scss/_variables.scss +6 -5
  73. package/scss/cool-grid.scss +1 -1
  74. package/scss/cool-reboot.scss +1 -1
  75. package/scss/cool.scss +3 -2
  76. package/scss/mixins/_alert-variant.scss +13 -28
  77. package/scss/mixins/_badge-variant.scss +27 -5
  78. package/scss/mixins/_notification-variant.scss +7 -0
  79. package/scss/mixins/_text-truncate.scss +77 -4
  80. package/scss/utilities/_collapse.scss +2 -2
  81. package/scss/utilities/_cursor.scss +14 -2
  82. package/scss/utilities/_text.scss +4 -2
package/js/src/toast.js CHANGED
@@ -546,9 +546,9 @@ if (typeof $ !== 'undefined') {
546
546
 
547
547
  $.fn[NAME].noConflict = () => {
548
548
 
549
- $.fn[NAME] = JQUERY_NO_CONFLICT
549
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
550
550
 
551
- return Toast._jQueryInterface
551
+ return Toast._jQueryInterface;
552
552
  }
553
553
 
554
554
  $.fn[NAME].defaults = {
package/js/src/tooltip.js CHANGED
@@ -78,6 +78,11 @@ class Tooltip extends AbstractUIComponent {
78
78
  this.close();
79
79
  });
80
80
 
81
+ this.$el.on('destroyed'+'.'+NAME, () => {
82
+
83
+ this.close();
84
+ });
85
+
81
86
  $(window).on('resize', debounce(() => {
82
87
 
83
88
  if (this.$tooltip) {
@@ -550,9 +555,9 @@ if (typeof $ !== 'undefined') {
550
555
 
551
556
  $.fn[NAME].noConflict = () => {
552
557
 
553
- $.fn[NAME] = JQUERY_NO_CONFLICT
558
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
554
559
 
555
- return Tooltip._jQueryInterface
560
+ return Tooltip._jQueryInterface;
556
561
  }
557
562
 
558
563
  $.fn[NAME].defaults = {
@@ -105,6 +105,16 @@ const touchEvents = function () {
105
105
  return result;
106
106
  };
107
107
 
108
+ $.event.special.destroyed = {
109
+
110
+ remove: function(obj) {
111
+
112
+ if (obj.handler) {
113
+ obj.handler();
114
+ }
115
+ }
116
+ }
117
+
108
118
  export {
109
119
  debounce,
110
120
  touchEvents,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finqu/cool",
3
- "version": "1.1.9",
3
+ "version": "1.2.3",
4
4
  "description": "Finqu UI package",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -40,32 +40,32 @@
40
40
  "homepage": "https://finqu.fi",
41
41
  "license": "ISC",
42
42
  "devDependencies": {
43
- "@babel/cli": "^7.2.3",
44
- "@babel/core": "^7.2.2",
45
- "@babel/plugin-proposal-object-rest-spread": "^7.3.2",
46
- "@babel/preset-env": "^7.3.1",
47
- "autoprefixer": "^9.4.7",
48
- "babel-eslint": "^10.0.1",
49
- "babel-plugin-istanbul": "^5.1.0",
43
+ "@babel/cli": "^7.7.0",
44
+ "@babel/core": "^7.7.2",
45
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
46
+ "@babel/preset-env": "^7.7.1",
47
+ "autoprefixer": "^9.7.1",
48
+ "babel-eslint": "^10.0.3",
49
+ "babel-plugin-istanbul": "^5.2.0",
50
50
  "broken-link-checker": "^0.7.8",
51
- "bundlesize": "^0.17.1",
52
- "clean-css-cli": "^4.2.1",
53
- "cross-env": "^5.2.0",
51
+ "bundlesize": "^0.17.2",
52
+ "clean-css-cli": "^4.3.0",
53
+ "cross-env": "^5.2.1",
54
54
  "eslint": "^5.13.0",
55
55
  "find-unused-sass-variables": "^0.3.2",
56
- "glob": "^7.1.3",
57
- "jquery": "^3.3.1",
58
- "node-sass": "^4.11.0",
59
- "nodemon": "^1.18.9",
56
+ "glob": "^7.1.6",
57
+ "jquery": "^3.4.1",
58
+ "node-sass": "^4.13.0",
59
+ "nodemon": "^1.19.4",
60
60
  "npm-run-all": "^4.1.5",
61
- "postcss-cli": "^6.1.1",
62
- "rollup": "^1.1.2",
63
- "rollup-plugin-babel": "^4.3.2",
64
- "rollup-plugin-commonjs": "^9.2.0",
65
- "rollup-plugin-node-resolve": "^4.0.0",
61
+ "postcss-cli": "^6.1.3",
62
+ "rollup": "^1.26.3",
63
+ "rollup-plugin-babel": "^4.3.3",
64
+ "rollup-plugin-commonjs": "^9.3.4",
65
+ "rollup-plugin-node-resolve": "^4.2.4",
66
66
  "shelljs": "^0.8.3",
67
67
  "shx": "^0.3.2",
68
68
  "terser": "^3.17.0",
69
- "uglify-js": "^3.4.9"
69
+ "uglify-js": "^3.6.8"
70
70
  }
71
71
  }
package/scss/_alert.scss CHANGED
@@ -1,118 +1,115 @@
1
1
  // Alert
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
3
 
4
+ .alert-icon {
5
+ border-radius: 50% 50%;
6
+ width: 0.9em;
7
+ height: 0.9em;
8
+ border: 1px solid theme-color('primary');
9
+ box-sizing: border-box;
10
+ display: inline-flex;
11
+ justify-content: center;
12
+ align-items: center;
13
+ vertical-align: middle;
14
+ position: relative;
15
+ z-index: 2;
16
+ background: white;
17
+ box-shadow: 0 0 0 0.2em fade-out(theme-color('primary'), 0.7);
18
+
19
+ .icon {
20
+ font-size: 0.5em;
21
+ color: theme-color('primary');
22
+ }
23
+ }
24
+
25
+ // Alert variants
26
+ @each $color, $value in $theme-colors {
27
+ .alert-icon-#{$color} {
28
+ @include alert-icon-variant($value);
29
+ }
30
+ }
31
+
4
32
  .alert {
5
33
  display: flex;
6
34
  flex-direction: row;
7
35
  position: relative;
8
- border-left: 6px solid #fafafa;
9
- border-radius: 3px;
10
- margin-bottom: 20px;
11
- box-shadow: 0 1px 2px #cccccc, 0 0 0 1px #eeeeee;
36
+ border-radius: $border-radius;
37
+ margin-bottom: $section-spacer;
38
+ box-shadow: $section-box-shadow;
12
39
  width: 100%;
13
40
  overflow: hidden;
14
- align-items: center;
15
41
  box-sizing: border-box;
16
42
  position: relative;
43
+ padding: 0;
44
+ border-top: 2px solid theme-color('primary');
45
+ background-color: fade-out(theme-color('primary'), 0.9);
46
+
17
47
  @include media-breakpoint-down(sm) {
18
- margin-bottom: 10px;
48
+ margin-bottom: $section-spacer-mobile;
19
49
  }
20
50
 
21
- &:hover {
22
- .alert-selector {
23
- color: $link-hover-color;
51
+ // Icon
52
+ .alert-icon {
53
+ width: 28px;
54
+ height: 28px;
55
+ margin-top: $section-padding;
56
+ margin-left: $section-padding;
57
+ margin-right: $section-padding / 2;
58
+ margin-bottom: $section-padding;
59
+ flex-shrink: 0;
60
+ flex-grow: 0;
61
+
62
+ .icon {
63
+ font-size: 14px;
24
64
  }
25
65
  }
26
66
 
27
67
 
28
- // Sizes
29
- &.alert-sm {
30
- & > .alert-content-container {
31
- padding: 10px;
32
- font-size: 80%;
33
- }
34
- }
68
+ // Content
69
+ .alert-content-container {
70
+ padding: $section-padding;
71
+ box-sizing: border-box;
35
72
 
36
- &.alert-lg {
37
- & > .alert-icon {
38
- padding-left: 25px;
39
- font-size: 22px;
40
- &:after {
41
- width: 47px;
42
- }
73
+ .alert-content {
43
74
  }
44
75
 
45
- & > .alert-content-container {
46
- padding: 25px;
76
+ .alert-action {
77
+ margin-top: $section-padding;
47
78
  }
48
79
  }
49
80
 
50
-
51
- // Icon
52
81
  .alert-icon {
53
- color: $icon-color;
54
- padding-left: 15px;
55
- margin-left: -6px;
56
- z-index: 1;
57
- box-sizing: border-box;
58
- font-size: 20px;
59
- &:after {
60
- content: '';
61
- position: absolute;
62
- top: 0;
63
- bottom: 0;
64
- left: 0;
65
- z-index: -1;
66
- width: 34px;
67
- background: #fafafa;
82
+ & + .alert-content-container {
83
+ .alert-content {
84
+ margin-top: 7px;
85
+ }
68
86
  }
69
87
  }
70
88
 
71
-
72
- // Content
73
- .alert-content-container {
74
- display: flex;
75
- align-items: center;
76
- background: #fafafa;
77
- flex: 1;
78
- padding: 15px;
79
- box-sizing: border-box;
80
- @include media-breakpoint-down(sm) {
81
- flex-wrap: wrap;
89
+ &.alert-sm {
90
+ .alert-icon {
91
+ width: 18px;
92
+ height: 18px;
93
+ margin-top: $section-padding / 2;
94
+ margin-left: $section-padding / 2;
95
+ margin-right: $section-padding / 4;
96
+ margin-bottom: $section-padding / 2;
82
97
  }
83
98
 
84
- .alert-content {
85
- flex: 1;
86
- @include media-breakpoint-down(sm) {
87
- flex: 0 1 auto
88
- }
89
- & + .alert-action {
90
- margin-left: 15px;
91
- @include media-breakpoint-down(sm) {
92
- margin-top: 15px;
93
- margin-left: 0;
94
- }
99
+ .alert-content-container {
100
+ padding: $section-padding / 2;
101
+
102
+ .alert-action {
103
+ margin-top: $section-padding / 2;
95
104
  }
96
105
  }
97
- }
98
106
 
99
- // Alert selector
100
- .alert-selector {
101
- text-align: right;
102
- margin-right: 15px;
103
- width: 30px;
104
- font-size: 22px;
105
-
106
- &:after {
107
- content: '';
108
- position: absolute;
109
- top: 0;
110
- bottom: 0;
111
- right: 0;
112
- z-index: -1;
113
- width: 30px;
114
- background: #fafafa;
115
- padding-left: 15px;
107
+ .alert-icon {
108
+ & + .alert-content-container {
109
+ .alert-content {
110
+ margin-top: 0;
111
+ }
112
+ }
116
113
  }
117
114
  }
118
115
  }
package/scss/_badge.scss CHANGED
@@ -1,35 +1,29 @@
1
1
  // Badge
2
2
  // ---------------------------------------------------------------------------------------------------------------
3
-
4
3
  .badge {
5
4
  display: inline-block;
6
- font-size: $badge-font-size;
7
- font-weight: $badge-font-weight;
8
- padding: $badge-padding-y $badge-padding-x;
9
- line-height: $badge-line-height;
10
- border-radius: $badge-border-radius;
11
- border: none;
5
+ vertical-align: middle;
6
+ flex-direction: row;
7
+ position: relative;
8
+ border-radius: $border-radius;
9
+ padding: 0.2em 0.5em;
10
+ overflow: hidden;
12
11
  box-sizing: border-box;
13
- margin: 2px;
14
- text-align: center;
15
- text-decoration: none;
12
+ position: relative;
13
+ border: 1px solid theme-color('primary');
14
+ background-color: fade-out(theme-color('primary'), 0.9);
16
15
  touch-action: manipulation;
16
+ text-decoration: none;
17
17
  user-select: none;
18
- vertical-align: middle;
19
18
  white-space: nowrap;
19
+ color: theme-color('primary');
20
20
 
21
- &.badge-xs {
22
- font-size: $badge-xs-font-size;
23
- font-weight: $badge-xs-font-weight;
24
- padding: $badge-xs-padding-y $badge-xs-padding-x;
25
- line-height: $badge-xs-line-height;
26
- }
21
+ .alert-icon {
22
+ margin: -0.1em 0.4em 0 0;
27
23
 
28
- &.badge-sm {
29
- font-size: $badge-sm-font-size;
30
- font-weight: $badge-sm-font-weight;
31
- padding: $badge-sm-padding-y $badge-sm-padding-x;
32
- line-height: $badge-sm-line-height;
24
+ .icon {
25
+ color: theme-color('primary');
26
+ }
33
27
  }
34
28
  }
35
29
 
@@ -115,6 +115,10 @@
115
115
  > .btn-group > .btn {
116
116
  margin-bottom: 0;
117
117
 
118
+ &.active {
119
+ z-index: 3;
120
+ }
121
+
118
122
  input[type="radio"],
119
123
  input[type="checkbox"] {
120
124
  position: absolute;
@@ -47,7 +47,7 @@ html.dom-ready .btn {
47
47
  }
48
48
 
49
49
  .btn-secondary {
50
- @include button-variant(color('grey-lightest'), lighten(color('blue-grey'), 60%), color('blue-grey'), color('grey-lighter'), lighten(color('blue-grey'), 55%), $body-color);
50
+ @include button-variant(color('grey-lightest'), lighten(color('blue-grey'), 60%), color('blue-grey'), color('grey-lighter'), lighten(color('blue-grey'), 55%), $body-color, color('grey-lighter'), lighten(color('blue-grey'), 50%));
51
51
  }
52
52
 
53
53
  .btn-outline-primary {
@@ -55,7 +55,7 @@ html.dom-ready .btn {
55
55
  }
56
56
 
57
57
  .btn-outline-secondary {
58
- @include button-outline-variant(lighten(color('blue-grey'), 60%), $body-color, color('grey-lightest'), $body-color);
58
+ @include button-outline-variant(lighten(color('blue-grey'), 60%), $body-color, color('grey-lightest'), $body-color, $body-color, color('grey-lightest'), theme-color('primary'));
59
59
  }
60
60
 
61
61
 
@@ -101,7 +101,7 @@ html.dom-ready .btn {
101
101
 
102
102
  &:not(.disabled):not([disabled]):not(.disable-hover) {
103
103
  background-color: transparent;
104
- transition: all 0.5s ease;
104
+ transition: opacity 0.5s ease, scale 0.5s ease;
105
105
 
106
106
  &:before {
107
107
  position: absolute;
@@ -18,7 +18,7 @@
18
18
  user-select: none;
19
19
  cursor: pointer;
20
20
 
21
- span {
21
+ > span {
22
22
  display: inline-block;
23
23
  vertical-align: middle;
24
24
 
@@ -62,6 +62,7 @@
62
62
  }
63
63
 
64
64
  &.checkbox-label {
65
+ width: 100%;
65
66
  padding-left: 8px;
66
67
  overflow: hidden;
67
68
  text-overflow: ellipsis;
@@ -69,7 +70,7 @@
69
70
  }
70
71
  }
71
72
 
72
- &:hover span:first-child {
73
+ &:hover > span:first-child {
73
74
  border-color: color('blue');
74
75
  }
75
76
  }
@@ -79,7 +80,7 @@
79
80
  }
80
81
 
81
82
  input[type="checkbox"]:checked + label {
82
- span {
83
+ > span {
83
84
  &:first-child {
84
85
  background: color('blue');
85
86
  border-color: color('blue');
@@ -100,7 +101,7 @@
100
101
 
101
102
  input[type="checkbox"]:disabled + label,
102
103
  input[type="checkbox"].disabled + label {
103
- span {
104
+ > span {
104
105
  &:first-child {
105
106
  cursor: not-allowed;
106
107
  background-color: color('grey-lightest');
@@ -110,7 +111,7 @@
110
111
  }
111
112
 
112
113
  &:hover {
113
- span {
114
+ > span {
114
115
  &:first-child {
115
116
  border: 1px solid #9098A9;
116
117
  }
@@ -131,7 +132,7 @@
131
132
  user-select: none;
132
133
  cursor: pointer;
133
134
 
134
- span {
135
+ > span {
135
136
  display: inline-block;
136
137
  vertical-align: middle;
137
138
 
@@ -175,6 +176,7 @@
175
176
  }
176
177
 
177
178
  &.radio-label {
179
+ width: 100%;
178
180
  padding-left: 8px;
179
181
  overflow: hidden;
180
182
  text-overflow: ellipsis;
@@ -182,7 +184,7 @@
182
184
  }
183
185
  }
184
186
 
185
- &:hover span:first-child {
187
+ &:hover > span:first-child {
186
188
  border-color: color('blue');
187
189
  }
188
190
  }
@@ -192,7 +194,7 @@
192
194
  }
193
195
 
194
196
  input[type="radio"]:checked + label {
195
- span {
197
+ > span {
196
198
  &:first-child {
197
199
  background: color('blue');
198
200
  border-color: color('blue');
@@ -213,7 +215,7 @@
213
215
 
214
216
  input[type="radio"]:disabled + label,
215
217
  input[type="radio"].disabled + label {
216
- span {
218
+ > span {
217
219
  &:first-child {
218
220
  cursor: not-allowed;
219
221
  background-color: color('grey-lightest');
@@ -223,7 +225,7 @@
223
225
  }
224
226
 
225
227
  &:hover {
226
- span {
228
+ > span {
227
229
  &:first-child {
228
230
  border: 1px solid #9098A9;
229
231
  }
@@ -276,8 +278,8 @@
276
278
  border-radius: 15px;
277
279
  background-color: #79868C;
278
280
  margin-bottom: 0;
279
- transition: all 0.3s ease-in;
280
281
  box-sizing: content-box;
282
+ transition: background-color 0.3s ease-in, border-color 0.3s ease-in;
281
283
 
282
284
  &:before {
283
285
  content: '';
@@ -291,7 +293,7 @@
291
293
  bottom: 0;
292
294
  border: 2px solid #79868C;
293
295
  border-radius: 15px;
294
- transition: all 0.3s ease-in 0s;
296
+ transition: background-color 0.3s ease-in, border-color 0.3s ease-in, right 0.3s ease-in;
295
297
  box-sizing: content-box;
296
298
  }
297
299
  }
package/scss/_dialog.scss CHANGED
@@ -49,6 +49,7 @@
49
49
 
50
50
  .dialog-title {
51
51
  font-size: 20px;
52
+ width: 100%;
52
53
  @include text-truncate;
53
54
  }
54
55
 
@@ -57,6 +58,7 @@
57
58
  background-color: transparent;
58
59
  border: 0;
59
60
  opacity: 0.75;
61
+ color: color('blue-grey');
60
62
 
61
63
  &:hover,
62
64
  &:focus {
@@ -71,6 +73,11 @@
71
73
  flex: 1 1 auto;
72
74
  padding: 16px;
73
75
  overflow-y: auto;
76
+
77
+ .content-full-width {
78
+ margin-left: -16px;
79
+ margin-right: -16px;
80
+ }
74
81
  }
75
82
 
76
83
  .dialog-footer {
@@ -139,11 +146,16 @@
139
146
  }
140
147
 
141
148
  .dialog-overflow-visible {
142
- overflow-x: visible;
143
- overflow-y: visible;
149
+ overflow: visible;
144
150
 
145
- .dialog-body {
146
- overflow-x: visible;
147
- overflow-y: visible;
151
+ .dialog-container {
152
+
153
+ .dialog-content {
154
+ overflow: visible;
155
+
156
+ .dialog-body {
157
+ overflow-y: visible;
158
+ }
159
+ }
148
160
  }
149
161
  }
@@ -140,10 +140,7 @@
140
140
  &:active {
141
141
  color: $dropdown-link-active-color;
142
142
  text-decoration: none;
143
-
144
- .icon {
145
- color: $dropdown-link-active-bg
146
- }
143
+ @include gradient-bg($dropdown-link-active-bg);
147
144
  }
148
145
 
149
146
  &.disabled,
package/scss/_frame.scss CHANGED
@@ -94,7 +94,8 @@
94
94
 
95
95
  .content-inner {
96
96
  position: relative;
97
- margin: 10px 0;
97
+ margin: 20px 0;
98
+ overflow: visible;
98
99
 
99
100
  @include media-breakpoint-up(md) {
100
101
  margin: 20px 0;
@@ -104,7 +105,7 @@
104
105
  .content-header {
105
106
  position: relative;
106
107
  width: 100%;
107
- margin: 10px 0;
108
+ margin: 20px 0;
108
109
 
109
110
  & + .content-inner {
110
111
  margin-top: 0;
@@ -131,6 +132,16 @@
131
132
 
132
133
  .content-header-secondary-actions {
133
134
  font-size: 0;
135
+
136
+ &.has-content {
137
+ margin-top: 20px;
138
+ margin-bottom: 20px;
139
+
140
+ @include media-breakpoint-up(md) {
141
+ margin-top: 10px;
142
+ margin-bottom: 0;
143
+ }
144
+ }
134
145
  }
135
146
  }
136
147
  }
@@ -491,7 +502,7 @@
491
502
  .content-header {
492
503
  position: relative;
493
504
  width: 100%;
494
- margin: 10px 0;
505
+ margin: 20px 0;
495
506
 
496
507
  @include media-breakpoint-up(md) {
497
508
  margin: 20px 0;
@@ -518,6 +529,16 @@
518
529
 
519
530
  .content-header-secondary-actions {
520
531
  font-size: 0;
532
+
533
+ &.has-content {
534
+ margin-top: 20px;
535
+ margin-bottom: 20px;
536
+
537
+ @include media-breakpoint-up(md) {
538
+ margin-top: 10px;
539
+ margin-bottom: 0;
540
+ }
541
+ }
521
542
  }
522
543
  }
523
544
  }
@@ -111,4 +111,14 @@
111
111
 
112
112
  @warn "Unknown `#{$key}` in $theme-colors.";
113
113
  @return null;
114
+ }
115
+
116
+ // Strip unit
117
+ @function strip-unit($number) {
118
+
119
+ @if type-of($number) == 'number' and not unitless($number) {
120
+ @return $number / ($number * 0 + 1);
121
+ }
122
+
123
+ @return $number;
114
124
  }