@carbon/web-components 2.0.0-rc.5 → 2.0.0-rc.7

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.
@@ -10,11 +10,27 @@ $css--plex: true !default;
10
10
 
11
11
  @use '@carbon/styles/scss/config' as *;
12
12
  @use '@carbon/styles/scss/utilities' as *;
13
+ @use '@carbon/styles/scss/utilities/convert' as *;
13
14
  @use '@carbon/styles/scss/utilities/custom-property';
14
15
  @use '@carbon/styles/scss/theme';
15
16
  @use '@carbon/styles/scss/breakpoint' as *;
16
17
  @use '@carbon/styles/scss/components/popover';
17
18
 
19
+ // The distance between the popover container and the triggering element
20
+ // Specify the distance between the popover and the trigger. This value must
21
+ // have a unit otherwise the `calc()` expression will not work
22
+ // stylelint-disable-next-line length-zero-no-unit
23
+ $popover-offset: custom-property.get-var('popover-offset', 0rem);
24
+
25
+ // Customize the dimensions of the caret by specifying its width or height.
26
+ // These values will be flipped in left or right directions to have the
27
+ // correct dimensions
28
+ $popover-caret-width: custom-property.get-var('popover-caret-width', rem(12px));
29
+ $popover-caret-height: custom-property.get-var(
30
+ 'popover-caret-height',
31
+ rem(6px)
32
+ );
33
+
18
34
  :host(#{$prefix}-tooltip),
19
35
  :host(#{$prefix}-popover) {
20
36
  ::slotted(.#{$prefix}--popover--tab-tip__button) {
@@ -71,62 +87,181 @@ $css--plex: true !default;
71
87
  );
72
88
  }
73
89
 
90
+ :host(#{$prefix}-tooltip-content[align^='bottom']),
91
+ :host(#{$prefix}-popover-content[align^='bottom']) {
92
+ .#{$prefix}--popover-caret {
93
+ bottom: 0;
94
+ left: 50%;
95
+ width: $popover-caret-width;
96
+ height: $popover-caret-height;
97
+ clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
98
+ transform: translate(-50%, $popover-offset);
99
+ }
100
+ }
101
+
74
102
  :host(#{$prefix}-tooltip-content[align='bottom']),
75
103
  :host(#{$prefix}-popover-content[align='bottom']) {
76
- @extend .#{$prefix}--popover--bottom;
104
+ .#{$prefix}--popover-content {
105
+ bottom: 0;
106
+ left: 50%;
107
+ transform: translate(-50%, calc(100% + $popover-offset));
108
+ }
77
109
  }
78
110
 
79
111
  :host(#{$prefix}-tooltip-content[align='bottom-left']),
80
112
  :host(#{$prefix}-popover-content[align='bottom-left']) {
81
- @extend .#{$prefix}--popover--bottom-left;
113
+ .#{$prefix}--popover-content {
114
+ bottom: 0;
115
+ left: 0;
116
+ transform: translate(
117
+ calc(-1 * $popover-offset),
118
+ calc(100% + $popover-offset)
119
+ );
120
+ }
82
121
  }
83
122
 
84
123
  :host(#{$prefix}-tooltip-content[align='bottom-right']),
85
124
  :host(#{$prefix}-popover-content[align='bottom-right']) {
86
- @extend .#{$prefix}--popover--bottom-right;
125
+ .#{$prefix}--popover-content {
126
+ right: 0;
127
+ bottom: 0;
128
+ transform: translate($popover-offset, calc(100% + $popover-offset));
129
+ }
130
+ }
131
+
132
+ :host(#{$prefix}-tooltip-content[align^='left']),
133
+ :host(#{$prefix}-popover-content[align^='left']) {
134
+ .#{$prefix}--popover-caret {
135
+ top: 50%;
136
+ right: 100%;
137
+ width: $popover-caret-height;
138
+ height: $popover-caret-width;
139
+ clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
140
+ transform: translate(calc(-1 * $popover-offset + 100%), -50%);
141
+ }
87
142
  }
88
143
 
89
144
  :host(#{$prefix}-tooltip-content[align='left']),
90
145
  :host(#{$prefix}-popover-content[align='left']) {
91
- @extend .#{$prefix}--popover--left;
146
+ .#{$prefix}--popover-content {
147
+ top: 50%;
148
+ right: 100%;
149
+ // Add in 0.1px to prevent rounding errors where the content is
150
+ // moved farther than the caret
151
+ transform: translate(calc(-1 * $popover-offset + 0.1px), -50%);
152
+ }
92
153
  }
93
154
 
94
155
  :host(#{$prefix}-tooltip-content[align='left-bottom']),
95
156
  :host(#{$prefix}-popover-content[align='left-bottom']) {
96
- @extend .#{$prefix}--popover--left-bottom;
157
+ .#{$prefix}--popover-content {
158
+ right: 100%;
159
+ bottom: -50%;
160
+ // Add in 0.1px to prevent rounding errors where the content is
161
+ // moved farther than the caret
162
+ transform: translate(
163
+ calc(-1 * $popover-offset),
164
+ calc(0.5 * $popover-offset - 16px)
165
+ );
166
+ }
97
167
  }
98
168
 
99
169
  :host(#{$prefix}-tooltip-content[align='left-top']),
100
170
  :host(#{$prefix}-popover-content[align='left-top']) {
101
- @extend .#{$prefix}--popover--left-top;
171
+ .#{$prefix}--popover-content {
172
+ top: -50%;
173
+ right: 100%;
174
+ // Add in 0.1px to prevent rounding errors where the content is
175
+ // moved farther than the caret
176
+ transform: translate(
177
+ calc(-1 * $popover-offset),
178
+ calc(-1 * 0.5 * $popover-offset + 16px)
179
+ );
180
+ }
181
+ }
182
+
183
+ :host(#{$prefix}-tooltip-content[align^='right']),
184
+ :host(#{$prefix}-popover-content[align^='right']) {
185
+ .#{$prefix}--popover-caret {
186
+ top: 50%;
187
+ left: 100%;
188
+ width: $popover-caret-height;
189
+ height: $popover-caret-width;
190
+ clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
191
+ transform: translate(calc($popover-offset - 100%), -50%);
192
+ }
102
193
  }
103
194
 
104
195
  :host(#{$prefix}-tooltip-content[align='right']),
105
196
  :host(#{$prefix}-popover-content[align='right']) {
106
- @extend .#{$prefix}--popover--right;
197
+ .#{$prefix}--popover-content {
198
+ top: 50%;
199
+ left: 100%;
200
+ // Add in 0.1px to prevent rounding errors where the content is
201
+ // moved farther than the caret
202
+ transform: translate($popover-offset, -50%);
203
+ }
107
204
  }
108
205
 
109
206
  :host(#{$prefix}-tooltip-content[align='right-bottom']),
110
207
  :host(#{$prefix}-popover-content[align='right-bottom']) {
111
- @extend .#{$prefix}--popover--right-bottom;
208
+ .#{$prefix}--popover-content {
209
+ bottom: 50%;
210
+ left: 100%;
211
+ transform: translate($popover-offset, calc(0.5 * $popover-offset + 16px));
212
+ }
112
213
  }
113
214
 
114
215
  :host(#{$prefix}-tooltip-content[align='right-top']),
115
216
  :host(#{$prefix}-popover-content[align='right-top']) {
116
- @extend .#{$prefix}--popover--right-top;
217
+ .#{$prefix}--popover-content {
218
+ top: 50%;
219
+ left: 100%;
220
+ transform: translate(
221
+ $popover-offset,
222
+ calc(0.5 * $popover-offset * -1 - 16px)
223
+ );
224
+ }
225
+ }
226
+
227
+ :host(#{$prefix}-tooltip-content[align^='top']),
228
+ :host(#{$prefix}-popover-content[align^='top']) {
229
+ .#{$prefix}--popover-caret {
230
+ top: 0;
231
+ left: 50%;
232
+ width: $popover-caret-width;
233
+ height: $popover-caret-height;
234
+ clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
235
+ transform: translate(-50%, calc(-1 * $popover-offset));
236
+ }
117
237
  }
118
238
 
119
239
  :host(#{$prefix}-tooltip-content[align='top']),
120
240
  :host(#{$prefix}-popover-content[align='top']) {
121
- @extend .#{$prefix}--popover--top;
241
+ .#{$prefix}--popover-content {
242
+ top: 0;
243
+ left: 50%;
244
+ transform: translate(-50%, calc(-100% - $popover-offset));
245
+ }
122
246
  }
123
247
 
124
248
  :host(#{$prefix}-tooltip-content[align='top-left']),
125
249
  :host(#{$prefix}-popover-content[align='top-left']) {
126
- @extend .#{$prefix}--popover--top-left;
250
+ .#{$prefix}--popover-content {
251
+ top: 0;
252
+ left: 0;
253
+ transform: translate(
254
+ calc(-1 * $popover-offset),
255
+ calc(-100% - $popover-offset)
256
+ );
257
+ }
127
258
  }
128
259
 
129
260
  :host(#{$prefix}-tooltip-content[align='top-right']),
130
261
  :host(#{$prefix}-popover-content[align='top-right']) {
131
- @extend .#{$prefix}--popover--top-right;
262
+ .#{$prefix}--popover-content {
263
+ top: 0;
264
+ right: 0;
265
+ transform: translate($popover-offset, calc(-100% - $popover-offset));
266
+ }
132
267
  }