@carbon/ibm-products 1.55.1 → 1.56.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. package/css/index-full-carbon.css +639 -16
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +582 -9
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +2 -2
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +620 -12
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +4 -4
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Carousel/Carousel.js +15 -5
  14. package/es/components/Coachmark/Coachmark.js +243 -0
  15. package/es/components/Coachmark/CoachmarkDragbar.js +137 -0
  16. package/es/components/Coachmark/CoachmarkHeader.js +88 -0
  17. package/es/components/Coachmark/CoachmarkOverlay.js +139 -0
  18. package/es/components/Coachmark/CoachmarkTagline.js +93 -0
  19. package/es/components/Coachmark/index.js +10 -0
  20. package/es/components/Coachmark/utils/constants.js +76 -0
  21. package/es/components/Coachmark/utils/context.js +5 -0
  22. package/es/components/Coachmark/utils/enums.js +40 -0
  23. package/es/components/Coachmark/utils/helpers.js +11 -0
  24. package/es/components/Coachmark/utils/hooks.js +54 -0
  25. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +90 -0
  26. package/es/components/CoachmarkBeacon/index.js +8 -0
  27. package/es/components/CoachmarkButton/CoachmarkButton.js +72 -0
  28. package/es/components/CoachmarkButton/index.js +8 -0
  29. package/es/components/CoachmarkFixed/CoachmarkFixed.js +201 -0
  30. package/es/components/CoachmarkFixed/index.js +8 -0
  31. package/es/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +86 -0
  32. package/es/components/CoachmarkOverlayElement/index.js +8 -0
  33. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +175 -0
  34. package/es/components/CoachmarkOverlayElements/index.js +8 -0
  35. package/es/components/CoachmarkStack/CoachmarkStack.js +260 -0
  36. package/es/components/CoachmarkStack/CoachmarkStackHome.js +157 -0
  37. package/es/components/CoachmarkStack/index.js +8 -0
  38. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  39. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  40. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +33 -17
  41. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  42. package/es/components/Datagrid/useDefaultStringRenderer.js +2 -1
  43. package/es/components/Datagrid/useSortableColumns.js +8 -4
  44. package/es/components/NotificationsPanel/NotificationsPanel.js +3 -2
  45. package/es/components/index.js +7 -0
  46. package/es/global/js/package-settings.js +8 -1
  47. package/es/global/js/utils/test-helper.js +3 -3
  48. package/lib/components/Carousel/Carousel.js +15 -5
  49. package/lib/components/Coachmark/Coachmark.js +247 -0
  50. package/lib/components/Coachmark/CoachmarkDragbar.js +137 -0
  51. package/lib/components/Coachmark/CoachmarkHeader.js +85 -0
  52. package/lib/components/Coachmark/CoachmarkOverlay.js +139 -0
  53. package/lib/components/Coachmark/CoachmarkTagline.js +90 -0
  54. package/lib/components/Coachmark/index.js +38 -0
  55. package/lib/components/Coachmark/utils/constants.js +82 -0
  56. package/lib/components/Coachmark/utils/context.js +13 -0
  57. package/lib/components/Coachmark/utils/enums.js +49 -0
  58. package/lib/components/Coachmark/utils/helpers.js +17 -0
  59. package/lib/components/Coachmark/utils/hooks.js +60 -0
  60. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +87 -0
  61. package/lib/components/CoachmarkBeacon/index.js +12 -0
  62. package/lib/components/CoachmarkButton/CoachmarkButton.js +69 -0
  63. package/lib/components/CoachmarkButton/index.js +12 -0
  64. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +201 -0
  65. package/lib/components/CoachmarkFixed/index.js +12 -0
  66. package/lib/components/CoachmarkOverlayElement/CoachmarkOverlayElement.js +83 -0
  67. package/lib/components/CoachmarkOverlayElement/index.js +12 -0
  68. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +176 -0
  69. package/lib/components/CoachmarkOverlayElements/index.js +12 -0
  70. package/lib/components/CoachmarkStack/CoachmarkStack.js +264 -0
  71. package/lib/components/CoachmarkStack/CoachmarkStackHome.js +160 -0
  72. package/lib/components/CoachmarkStack/index.js +12 -0
  73. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  74. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  75. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +33 -17
  76. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  77. package/lib/components/Datagrid/useDefaultStringRenderer.js +2 -1
  78. package/lib/components/Datagrid/useSortableColumns.js +8 -4
  79. package/lib/components/NotificationsPanel/NotificationsPanel.js +3 -2
  80. package/lib/components/index.js +49 -0
  81. package/lib/global/js/package-settings.js +8 -1
  82. package/lib/global/js/utils/test-helper.js +3 -3
  83. package/package.json +8 -8
  84. package/scss/components/Carousel/_carousel.scss +3 -0
  85. package/scss/components/Coachmark/_index.scss +11 -0
  86. package/scss/components/Coachmark/_storybook-styles.scss +20 -0
  87. package/scss/components/Coachmark/styles/_coachmark-dragbar.scss +74 -0
  88. package/scss/components/Coachmark/styles/_coachmark-header.scss +58 -0
  89. package/scss/components/Coachmark/styles/_coachmark-overlay.scss +327 -0
  90. package/scss/components/Coachmark/styles/_coachmark-tagline.scss +118 -0
  91. package/scss/components/CoachmarkBeacon/_coachmark-beacon.scss +166 -0
  92. package/scss/components/CoachmarkBeacon/_index.scss +8 -0
  93. package/scss/components/CoachmarkBeacon/_storybook-styles.scss +19 -0
  94. package/scss/components/CoachmarkButton/_coachmark-button.scss +34 -0
  95. package/scss/components/CoachmarkButton/_index.scss +8 -0
  96. package/scss/components/CoachmarkButton/_storybook-styles.scss +19 -0
  97. package/scss/components/CoachmarkFixed/_coachmark-fixed.scss +34 -0
  98. package/scss/components/CoachmarkFixed/_index.scss +8 -0
  99. package/scss/components/CoachmarkFixed/_storybook-styles.scss +10 -0
  100. package/scss/components/CoachmarkOverlayElement/_coachmark-overlay-element.scss +50 -0
  101. package/scss/components/CoachmarkOverlayElement/_index.scss +8 -0
  102. package/scss/components/CoachmarkOverlayElement/_storybook-styles.scss +19 -0
  103. package/scss/components/CoachmarkOverlayElements/_coachmark-overlay-elements.scss +40 -0
  104. package/scss/components/CoachmarkOverlayElements/_index.scss +8 -0
  105. package/scss/components/CoachmarkOverlayElements/_storybook-styles.scss +19 -0
  106. package/scss/components/CoachmarkStack/_coachmark-stack.scss +85 -0
  107. package/scss/components/CoachmarkStack/_index.scss +8 -0
  108. package/scss/components/CoachmarkStack/_storybook-styles.scss +10 -0
  109. package/scss/components/Datagrid/styles/_useColumnCenterAlign.scss +9 -9
  110. package/scss/components/_index.scss +7 -1
@@ -21,6 +21,48 @@ Object.defineProperty(exports, "Cascade", {
21
21
  return _Cascade.Cascade;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "Coachmark", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _Coachmark.Coachmark;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "CoachmarkBeacon", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _CoachmarkBeacon.CoachmarkBeacon;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "CoachmarkButton", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _CoachmarkButton.CoachmarkButton;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "CoachmarkFixed", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _CoachmarkFixed.CoachmarkFixed;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "CoachmarkOverlayElement", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _CoachmarkOverlayElement.CoachmarkOverlayElement;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "CoachmarkOverlayElements", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _CoachmarkOverlayElements.CoachmarkOverlayElements;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "CoachmarkStack", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _CoachmarkStack.CoachmarkStack;
64
+ }
65
+ });
24
66
  Object.defineProperty(exports, "ComboButton", {
25
67
  enumerable: true,
26
68
  get: function get() {
@@ -530,4 +572,11 @@ var _InlineEdit = require("./InlineEdit");
530
572
  var _EditInPlace = require("./EditInPlace");
531
573
  var _Guidebanner = require("./Guidebanner");
532
574
  var _NonLinearReading = require("./NonLinearReading");
575
+ var _Coachmark = require("./Coachmark");
576
+ var _CoachmarkFixed = require("./CoachmarkFixed");
577
+ var _CoachmarkBeacon = require("./CoachmarkBeacon");
578
+ var _CoachmarkButton = require("./CoachmarkButton");
579
+ var _CoachmarkOverlayElements = require("./CoachmarkOverlayElements");
580
+ var _CoachmarkOverlayElement = require("./CoachmarkOverlayElement");
581
+ var _CoachmarkStack = require("./CoachmarkStack");
533
582
  var _InlineTip = require("./InlineTip");
@@ -74,7 +74,14 @@ var defaults = {
74
74
  // Novice to pro components not yet reviewed and released:
75
75
  InlineTip: false,
76
76
  Guidebanner: false,
77
- NonLinearReading: false
77
+ NonLinearReading: false,
78
+ Coachmark: false,
79
+ CoachmarkBeacon: false,
80
+ CoachmarkButton: false,
81
+ CoachmarkFixed: false,
82
+ CoachmarkOverlayElement: false,
83
+ CoachmarkOverlayElements: false,
84
+ CoachmarkStack: false
78
85
  /* new component flags here - comment used by generate CLI */
79
86
  },
80
87
 
@@ -119,7 +119,7 @@ var makeMatcherArray = function makeMatcherArray(args) {
119
119
  * A helper function to enable a test to expect a single call to
120
120
  * console.warn, for example when intentionally using a deprecated prop
121
121
  * or supplying invalid parameters for the purposes of the test.
122
- * @param {string|regex|function|[]} message the expected parameters for the call to
122
+ * @param {string|regex|Function|[]} message the expected parameters for the call to
123
123
  * console.warn, which must be called exactly once. A single string or regex or an
124
124
  * expect matcher can be used to match a single-argument call to console.warn (most common),
125
125
  * while an array of strings and/or regex and/or expect matchers can be used to match a
@@ -207,7 +207,7 @@ var checkLogging = function checkLogging(mock, message) {
207
207
  * A helper function to enable a test to expect a single call to
208
208
  * console.error, for example when intentionally omitting a required prop
209
209
  * or supplying an invalid prop type or value for the purposes of the test.
210
- * @param {errors: {string|regex|function|[]}, warnings: {string|regex|function|[]}} messages the expected parameters for the call to
210
+ * @param {errors: {string|regex|Function|[]}, warnings: {string|regex|Function|[]}} messages the expected parameters for the call to
211
211
  * console.error or console.warn, which must be called exactly once. A single string or regex or an
212
212
  * expect matcher can be used to match a single-argument call to console.error (most common),
213
213
  * while an array of strings and/or regex and/or expect matchers can be used to match a
@@ -233,7 +233,7 @@ var expectLogging = function expectLogging(_ref2, test) {
233
233
  * A helper function to enable a test to expect a single call to
234
234
  * console.error, for example when intentionally omitting a required prop
235
235
  * or supplying an invalid prop type or value for the purposes of the test.
236
- * @param {string|regex|function|[]} message the expected parameters for the call to
236
+ * @param {string|regex|Function|[]} message the expected parameters for the call to
237
237
  * console.error, which must be called exactly once. A single string or regex or an
238
238
  * expect matcher can be used to match a single-argument call to console.error (most common),
239
239
  * while an array of strings and/or regex and/or expect matchers can be used to match a
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.55.1",
4
+ "version": "1.56.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -84,17 +84,17 @@
84
84
  },
85
85
  "peerDependencies": {
86
86
  "@carbon/colors": "^10.37.1",
87
- "@carbon/icons-react": "^10.49.0",
87
+ "@carbon/icons-react": "^10.49.1",
88
88
  "@carbon/import-once": "^10.7.0",
89
89
  "@carbon/layout": "^10.37.1",
90
- "@carbon/motion": "^10.29.0",
91
- "@carbon/themes": "^10.55.1",
92
- "@carbon/type": "^10.45.1",
93
- "carbon-components": "^10.58.7",
94
- "carbon-components-react": "^7.59.8",
90
+ "@carbon/motion": "^10.29.1",
91
+ "@carbon/themes": "^10.55.2",
92
+ "@carbon/type": "^10.45.2",
93
+ "carbon-components": "^10.58.8",
94
+ "carbon-components-react": "^7.59.9",
95
95
  "carbon-icons": "^7.0.7",
96
96
  "react": "^16.8.6 || ^17.0.1",
97
97
  "react-dom": "^16.8.6 || ^17.0.1"
98
98
  },
99
- "gitHead": "6602273614409cba1bd6f9072be2a007bb7caaf8"
99
+ "gitHead": "9f4bc491efe9aa02b6e038c0d13ba4a0757395f1"
100
100
  }
@@ -71,6 +71,9 @@
71
71
  -moz-user-select: none;
72
72
  -ms-user-select: none;
73
73
  user-select: none;
74
+ @media (prefers-reduced-motion) {
75
+ scroll-behavior: auto;
76
+ }
74
77
  }
75
78
  }
76
79
  }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2023, 2023
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @import './styles/coachmark-dragbar';
9
+ @import './styles/coachmark-header';
10
+ @import './styles/coachmark-overlay';
11
+ @import './styles/coachmark-tagline';
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright IBM Corp. 2023, 2023
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @import '../../global/styles/project-settings';
9
+
10
+ .CoachmarkBaseExampleUsage {
11
+ position: relative;
12
+ display: inline-block;
13
+ max-height: 100%;
14
+ box-sizing: border-box;
15
+
16
+ /* stylelint-disable-next-line carbon/layout-token-use */
17
+ padding: 1rem;
18
+ margin-left: 50%;
19
+ transform: translateX(-50%);
20
+ }
@@ -0,0 +1,74 @@
1
+ //
2
+ // Copyright IBM Corp. 2023, 2023
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ /* stylelint-disable declaration-no-important */
9
+
10
+ // Standard imports.
11
+ @import '../../../global/styles/project-settings';
12
+ @import '../../../global/styles/mixins';
13
+
14
+ // Define all component styles in a mixin which is then exported using
15
+ // the Carbon import-once mechanism.
16
+ @mixin coachmark-dragbar {
17
+ // The block part of our conventional BEM class names (blockClass__E--M).
18
+ $block-class: #{$pkg-prefix}--coachmark-dragbar;
19
+
20
+ .#{$block-class} {
21
+ display: flex;
22
+
23
+ &__handle {
24
+ flex-grow: 1;
25
+ padding: $spacing-03 0 0 $spacing-03;
26
+ border: 0;
27
+ background-color: transparent;
28
+ text-align: left;
29
+
30
+ &:hover {
31
+ cursor: move;
32
+ }
33
+ }
34
+
35
+ &--close-btn {
36
+ width: $spacing-07;
37
+ height: $spacing-07;
38
+ margin-left: auto !important;
39
+
40
+ svg > path {
41
+ margin: 0;
42
+ fill: $inverse-01 !important;
43
+ }
44
+
45
+ &:hover {
46
+ background-color: $inverse-hover-ui !important;
47
+ }
48
+ }
49
+
50
+ &__light {
51
+ #{$block-class}--close-btn {
52
+ &:active {
53
+ background-color: $active-secondary;
54
+ }
55
+ }
56
+ }
57
+
58
+ &__dark {
59
+ #{$block-class}--close-btn {
60
+ &:active {
61
+ background-color: $button-tertiary-active;
62
+ }
63
+ }
64
+ }
65
+
66
+ svg {
67
+ color: $inverse-01;
68
+ }
69
+ }
70
+ }
71
+
72
+ @include exports('coachmark-dragbar') {
73
+ @include coachmark-dragbar;
74
+ }
@@ -0,0 +1,58 @@
1
+ //
2
+ // Copyright IBM Corp. 2023, 2023
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ /* stylelint-disable declaration-no-important */
9
+
10
+ // Standard imports.
11
+ @import '../../../global/styles/project-settings';
12
+ @import '../../../global/styles/mixins';
13
+
14
+ // Define all component styles in a mixin which is then exported using
15
+ // the Carbon import-once mechanism.
16
+ @mixin coachmark-header {
17
+ // The block part of our conventional BEM class names (blockClass__E--M).
18
+ $block-class: #{$pkg-prefix}--coachmark-header;
19
+
20
+ .#{$block-class} {
21
+ display: flex;
22
+
23
+ &--close-btn {
24
+ width: $spacing-07;
25
+ height: $spacing-07;
26
+ margin-left: auto !important;
27
+
28
+ svg > path {
29
+ margin: 0;
30
+ fill: $inverse-01 !important;
31
+ }
32
+
33
+ &:hover {
34
+ background-color: $inverse-hover-ui !important;
35
+ }
36
+ }
37
+
38
+ &__light {
39
+ #{$block-class}--close-btn {
40
+ &:active {
41
+ background-color: $active-secondary;
42
+ }
43
+ }
44
+ }
45
+
46
+ &__dark {
47
+ #{$block-class}--close-btn {
48
+ &:active {
49
+ background-color: $button-tertiary-active;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ @include exports('coachmark-header') {
57
+ @include coachmark-header;
58
+ }
@@ -0,0 +1,327 @@
1
+ //
2
+ // Copyright IBM Corp. 2023, 2023
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ /* stylelint-disable carbon/layout-token-use */
9
+ /* stylelint-disable carbon/theme-token-use */
10
+ /* stylelint-disable declaration-no-important */
11
+
12
+ // Standard imports.
13
+ @import '../../../global/styles/project-settings';
14
+ @import '../../../global/styles/mixins';
15
+
16
+ // Define all component styles in a mixin which is then exported using
17
+ // the Carbon import-once mechanism.
18
+ @mixin coachmark-overlay {
19
+ // The block part of our conventional BEM class names (blockClass__E--M).
20
+ $block-class: #{$pkg-prefix}--coachmark-overlay;
21
+ $carousel-class: #{$pkg-prefix}--carousel;
22
+
23
+ .#{$block-class} {
24
+ position: absolute;
25
+ z-index: 5901;
26
+ width: carbon--mini-units(36);
27
+ border-radius: $spacing-01;
28
+ background-color: $inverse-02;
29
+ color: $inverse-01;
30
+ $caret-height: calc(
31
+ $spacing-03 - $spacing-01
32
+ ); // from the "peak" of the pyramid to its "base"
33
+ $caret-center: $caret-height; // use "center" for left-right calculations, and "height" for top-bottom calculations
34
+ $distance-offset: $spacing-06; // see also ./utils/constants.js > distanceOffset
35
+
36
+ &--fixed {
37
+ position: fixed;
38
+ right: $spacing-05;
39
+ bottom: 0;
40
+ transform: translateY(100%);
41
+ /* stylelint-disable-next-line carbon/motion-easing-use, carbon/motion-duration-use */
42
+ transition: 240ms carbon--motion(exit, productive);
43
+ @media (prefers-reduced-motion) {
44
+ transition: none;
45
+ }
46
+ }
47
+
48
+ &--is-visible {
49
+ transform: translateY(0);
50
+ }
51
+
52
+ // CARET STYLING
53
+ &__caret {
54
+ // background-color: this property is set in _coachmark-overlay-theme.scss
55
+ position: absolute;
56
+ z-index: 5902;
57
+ width: 0;
58
+ height: 0;
59
+ // border-bottom-color: this property is set in _coachmark-overlay-theme.scss
60
+ border-right: $caret-center solid transparent;
61
+ border-bottom: solid $caret-center $inverse-02;
62
+ border-left: $caret-center solid transparent;
63
+ }
64
+
65
+ // OVERLAY AND CARET POSITIONING
66
+ &--top {
67
+ $horizontal-push: calc($distance-offset - $caret-center);
68
+ $translate-y: calc(-1 * (100% + $distance-offset + $caret-height));
69
+
70
+ transform: translate(-50%, $translate-y);
71
+
72
+ .#{$block-class}__caret {
73
+ left: calc(50% - $caret-center);
74
+ transform: rotate(180deg);
75
+ }
76
+
77
+ &-left {
78
+ transform: translate(calc(-1 * $distance-offset), $translate-y);
79
+ .#{$block-class}__caret {
80
+ left: $horizontal-push;
81
+ transform: rotate(180deg);
82
+ }
83
+ }
84
+
85
+ &-right {
86
+ transform: translate(
87
+ calc(-1 * (100% - $distance-offset)),
88
+ $translate-y
89
+ );
90
+ .#{$block-class}__caret {
91
+ right: $horizontal-push;
92
+ transform: rotate(180deg);
93
+ }
94
+ }
95
+ }
96
+
97
+ &--bottom {
98
+ $horizontal-push: calc($distance-offset - $caret-center);
99
+ $top: calc(-1 * $caret-height);
100
+ $translate-y: calc($distance-offset + $caret-height);
101
+
102
+ transform: translate(-50%, $translate-y);
103
+ .#{$block-class}__caret {
104
+ top: $top;
105
+ left: calc(50% - $caret-center);
106
+ }
107
+
108
+ &-left {
109
+ transform: translate(calc(-1 * $distance-offset), $translate-y);
110
+ .#{$block-class}__caret {
111
+ top: $top;
112
+ left: $horizontal-push;
113
+ }
114
+ }
115
+
116
+ &-right {
117
+ transform: translate(
118
+ calc(-1 * (100% - $distance-offset)),
119
+ $translate-y
120
+ );
121
+
122
+ .#{$block-class}__caret {
123
+ top: $top;
124
+ right: $horizontal-push;
125
+ }
126
+ }
127
+ }
128
+
129
+ &--left {
130
+ $right: calc(-1 * $caret-center * 1.5);
131
+ $translate-x: calc(-1 * (100% + $distance-offset + $caret-center));
132
+ $vertical-push: calc($distance-offset - ($caret-height * 0.5));
133
+
134
+ transform: translate($translate-x, -50%);
135
+ .#{$block-class}__caret {
136
+ top: calc(50% - ($caret-height * 0.5));
137
+ right: $right;
138
+ transform: rotate(90deg);
139
+ }
140
+
141
+ &-top {
142
+ transform: translate($translate-x, calc(-1 * $distance-offset));
143
+ .#{$block-class}__caret {
144
+ top: $vertical-push;
145
+ right: $right;
146
+ transform: rotate(90deg);
147
+ }
148
+ }
149
+
150
+ &-bottom {
151
+ transform: translate(
152
+ $translate-x,
153
+ calc(-1 * (100% - $distance-offset))
154
+ );
155
+ .#{$block-class}__caret {
156
+ right: $right;
157
+ bottom: $vertical-push;
158
+ transform: rotate(90deg);
159
+ }
160
+ }
161
+ }
162
+
163
+ &--right {
164
+ $left: calc(-1 * $caret-center * 1.5);
165
+ $translate-x: calc($distance-offset + $caret-center);
166
+ $vertical-push: calc($distance-offset - ($caret-height * 0.5));
167
+
168
+ transform: translate($translate-x, -50%);
169
+ .#{$block-class}__caret {
170
+ top: calc(50% - ($caret-height * 0.5));
171
+ left: $left;
172
+ transform: rotate(-90deg);
173
+ }
174
+
175
+ &-top {
176
+ transform: translate($translate-x, calc(-1 * $distance-offset));
177
+ .#{$block-class}__caret {
178
+ top: $vertical-push;
179
+ left: $left;
180
+ transform: rotate(-90deg);
181
+ }
182
+ }
183
+
184
+ &-bottom {
185
+ transform: translate(
186
+ $translate-x,
187
+ calc(-1 * (100% - $distance-offset))
188
+ );
189
+ .#{$block-class}__caret {
190
+ bottom: $vertical-push;
191
+ left: $left;
192
+ transform: rotate(-90deg);
193
+ }
194
+ }
195
+ }
196
+
197
+ // ANIMATED MEDIA
198
+ &__element-stepped-media {
199
+ height: calc($spacing-07 + $spacing-12); // 32 + 96 = 128
200
+ margin-bottom: $spacing-05;
201
+ }
202
+
203
+ // BODY
204
+ &__body {
205
+ padding: $spacing-01 $spacing-05 $spacing-05;
206
+
207
+ .#{$carbon-prefix}--btn--ghost {
208
+ color: $inverse-link;
209
+
210
+ &:hover {
211
+ color: $inverse-link;
212
+ }
213
+ }
214
+
215
+ // CAROUSEL ELEMENTS
216
+ #{$block-class}-element {
217
+ display: block;
218
+ max-width: 100%;
219
+ flex: 0 0 100%;
220
+
221
+ #{$block-class}-element__content {
222
+ padding-bottom: $spacing-05;
223
+ }
224
+
225
+ #{$block-class}-element__title > div {
226
+ margin: 0 0 $spacing-03;
227
+
228
+ > h2 {
229
+ @include carbon--type-style('productive-heading-02');
230
+
231
+ order: 1;
232
+ }
233
+ }
234
+ }
235
+ }
236
+
237
+ // FOOTER
238
+ &__footer {
239
+ display: flex;
240
+ align-items: center;
241
+ justify-content: flex-end;
242
+ }
243
+ /* ------------------ */
244
+
245
+ // THEME
246
+ &__light {
247
+ .#{$block-class}__body {
248
+ .#{$carbon-prefix}--link {
249
+ color: $inverse-link;
250
+
251
+ &:hover {
252
+ color: #a6c8ff;
253
+ }
254
+
255
+ &:active {
256
+ color: $text-04;
257
+ }
258
+
259
+ &:focus {
260
+ outline-color: $text-04;
261
+ }
262
+ }
263
+
264
+ .#{$carbon-prefix}--btn--ghost {
265
+ &:hover {
266
+ background-color: $inverse-hover-ui;
267
+ }
268
+
269
+ &:active {
270
+ background-color: $active-secondary;
271
+ }
272
+ }
273
+ }
274
+ }
275
+
276
+ &__dark {
277
+ .#{$block-class}__body {
278
+ .#{$carbon-prefix}--link {
279
+ color: #0062fe;
280
+
281
+ &:hover {
282
+ color: #0043ce;
283
+ }
284
+
285
+ &:active {
286
+ color: $link-02;
287
+ }
288
+
289
+ &:focus {
290
+ color: $inverse-01;
291
+ outline-color: $inverse-01;
292
+ }
293
+ }
294
+
295
+ .#{$carbon-prefix}--btn--primary {
296
+ &:focus {
297
+ background-color: $button-primary-active;
298
+ box-shadow: inset 0 0 0 $spacing-01 $interactive-01,
299
+ inset 0 0 0 rem(3px) $interactive-03;
300
+ }
301
+ }
302
+
303
+ .#{$carbon-prefix}--btn--ghost {
304
+ &:hover {
305
+ background-color: $inverse-hover-ui;
306
+ }
307
+
308
+ &:active {
309
+ background-color: $button-tertiary-active;
310
+ }
311
+
312
+ &:focus {
313
+ box-shadow: inset 0 0 0 $spacing-01 $interactive-01,
314
+ inset 0 0 0 rem(3px) $interactive-03;
315
+ }
316
+ }
317
+ }
318
+ }
319
+ .#{$carousel-class}__item {
320
+ flex: 0 0 100% !important;
321
+ }
322
+ }
323
+ }
324
+
325
+ @include exports('coachmark-overlay') {
326
+ @include coachmark-overlay;
327
+ }