@vaadin/tooltip 25.0.0-alpha2 → 25.0.0-alpha20
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.
- package/package.json +11 -12
- package/src/styles/vaadin-tooltip-overlay-base-styles.js +60 -0
- package/src/vaadin-tooltip-mixin.d.ts +5 -9
- package/src/vaadin-tooltip-mixin.js +44 -84
- package/src/vaadin-tooltip-overlay.js +6 -19
- package/src/vaadin-tooltip.d.ts +30 -7
- package/src/vaadin-tooltip.js +11 -12
- package/vaadin-tooltip.js +1 -1
- package/web-types.json +10 -27
- package/web-types.lit.json +10 -10
- package/src/vaadin-tooltip-overlay-styles.js +0 -42
- package/theme/lumo/vaadin-tooltip-styles.d.ts +0 -3
- package/theme/lumo/vaadin-tooltip-styles.js +0 -27
- package/theme/lumo/vaadin-tooltip.d.ts +0 -2
- package/theme/lumo/vaadin-tooltip.js +0 -2
- /package/src/{vaadin-tooltip-overlay-styles.d.ts → styles/vaadin-tooltip-overlay-base-styles.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/tooltip",
|
|
3
|
-
"version": "25.0.0-
|
|
3
|
+
"version": "25.0.0-alpha20",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
"type": "module",
|
|
22
22
|
"files": [
|
|
23
23
|
"src",
|
|
24
|
-
"theme",
|
|
25
24
|
"vaadin-*.d.ts",
|
|
26
25
|
"vaadin-*.js",
|
|
27
26
|
"web-types.json",
|
|
@@ -35,23 +34,23 @@
|
|
|
35
34
|
],
|
|
36
35
|
"dependencies": {
|
|
37
36
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
38
|
-
"@vaadin/a11y-base": "25.0.0-
|
|
39
|
-
"@vaadin/component-base": "25.0.0-
|
|
40
|
-
"@vaadin/overlay": "25.0.0-
|
|
41
|
-
"@vaadin/popover": "25.0.0-
|
|
42
|
-
"@vaadin/vaadin-
|
|
43
|
-
"@vaadin/vaadin-themable-mixin": "25.0.0-alpha2",
|
|
37
|
+
"@vaadin/a11y-base": "25.0.0-alpha20",
|
|
38
|
+
"@vaadin/component-base": "25.0.0-alpha20",
|
|
39
|
+
"@vaadin/overlay": "25.0.0-alpha20",
|
|
40
|
+
"@vaadin/popover": "25.0.0-alpha20",
|
|
41
|
+
"@vaadin/vaadin-themable-mixin": "25.0.0-alpha20",
|
|
44
42
|
"lit": "^3.0.0"
|
|
45
43
|
},
|
|
46
44
|
"devDependencies": {
|
|
47
|
-
"@vaadin/chai-plugins": "25.0.0-
|
|
48
|
-
"@vaadin/test-runner-commands": "25.0.0-
|
|
45
|
+
"@vaadin/chai-plugins": "25.0.0-alpha20",
|
|
46
|
+
"@vaadin/test-runner-commands": "25.0.0-alpha20",
|
|
49
47
|
"@vaadin/testing-helpers": "^2.0.0",
|
|
50
|
-
"
|
|
48
|
+
"@vaadin/vaadin-lumo-styles": "25.0.0-alpha20",
|
|
49
|
+
"sinon": "^21.0.0"
|
|
51
50
|
},
|
|
52
51
|
"web-types": [
|
|
53
52
|
"web-types.json",
|
|
54
53
|
"web-types.lit.json"
|
|
55
54
|
],
|
|
56
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "c948aae591a30b432f3784000d4677674cae56e0"
|
|
57
56
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (c) 2022 - 2025 Vaadin Ltd.
|
|
4
|
+
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
|
+
*/
|
|
6
|
+
import '@vaadin/component-base/src/styles/style-props.js';
|
|
7
|
+
import { css } from 'lit';
|
|
8
|
+
|
|
9
|
+
export const tooltipOverlayStyles = css`
|
|
10
|
+
:host {
|
|
11
|
+
--_vaadin-tooltip-default-offset: 4px;
|
|
12
|
+
line-height: normal;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[part='overlay'] {
|
|
16
|
+
max-width: var(--vaadin-tooltip-max-width, 40ch);
|
|
17
|
+
padding: var(--vaadin-tooltip-padding, var(--vaadin-padding-container));
|
|
18
|
+
border-radius: var(--vaadin-tooltip-border-radius, var(--vaadin-radius-m));
|
|
19
|
+
background: var(--vaadin-tooltip-background, var(--vaadin-background-color));
|
|
20
|
+
color: var(--vaadin-tooltip-color, inherit);
|
|
21
|
+
font-size: var(--vaadin-tooltip-font-size, 0.9em);
|
|
22
|
+
font-weight: var(--vaadin-tooltip-font-weight, inherit);
|
|
23
|
+
line-height: var(--vaadin-tooltip-line-height, inherit);
|
|
24
|
+
border: 0;
|
|
25
|
+
box-shadow:
|
|
26
|
+
0 0 0 var(--vaadin-tooltip-border-width, 1px)
|
|
27
|
+
var(--vaadin-tooltip-border-color, var(--vaadin-border-color-secondary)),
|
|
28
|
+
var(--vaadin-tooltip-box-shadow, 0 3px 8px -1px rgba(0, 0, 0, 0.2));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[part='content'] {
|
|
32
|
+
white-space: pre-wrap;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:host([position^='top'][top-aligned]) [part='overlay'],
|
|
36
|
+
:host([position^='bottom'][top-aligned]) [part='overlay'] {
|
|
37
|
+
margin-top: var(--vaadin-tooltip-offset-top, var(--_vaadin-tooltip-default-offset));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:host([position^='top'][bottom-aligned]) [part='overlay'],
|
|
41
|
+
:host([position^='bottom'][bottom-aligned]) [part='overlay'] {
|
|
42
|
+
margin-bottom: var(--vaadin-tooltip-offset-bottom, var(--_vaadin-tooltip-default-offset));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:host([position^='start'][start-aligned]) [part='overlay'],
|
|
46
|
+
:host([position^='end'][start-aligned]) [part='overlay'] {
|
|
47
|
+
margin-inline-start: var(--vaadin-tooltip-offset-start, var(--_vaadin-tooltip-default-offset));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:host([position^='start'][end-aligned]) [part='overlay'],
|
|
51
|
+
:host([position^='end'][end-aligned]) [part='overlay'] {
|
|
52
|
+
margin-inline-end: var(--vaadin-tooltip-offset-end, var(--_vaadin-tooltip-default-offset));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media (forced-colors: active) {
|
|
56
|
+
[part='overlay'] {
|
|
57
|
+
border: 1px dashed !important;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import type { OverlayClassMixinClass } from '@vaadin/component-base/src/overlay-class-mixin.js';
|
|
8
7
|
import type { PopoverPositionMixinClass } from '@vaadin/popover/src/vaadin-popover-position-mixin.js';
|
|
9
8
|
import type { PopoverTargetMixinClass } from '@vaadin/popover/src/vaadin-popover-target-mixin.js';
|
|
10
9
|
|
|
@@ -15,11 +14,7 @@ export type { PopoverPosition as TooltipPosition } from '@vaadin/popover/src/vaa
|
|
|
15
14
|
*/
|
|
16
15
|
export declare function TooltipMixin<T extends Constructor<HTMLElement>>(
|
|
17
16
|
base: T,
|
|
18
|
-
): Constructor<
|
|
19
|
-
Constructor<PopoverPositionMixinClass> &
|
|
20
|
-
Constructor<PopoverTargetMixinClass> &
|
|
21
|
-
Constructor<TooltipMixinClass> &
|
|
22
|
-
T;
|
|
17
|
+
): Constructor<PopoverPositionMixinClass> & Constructor<PopoverTargetMixinClass> & Constructor<TooltipMixinClass> & T;
|
|
23
18
|
|
|
24
19
|
export declare class TooltipMixinClass {
|
|
25
20
|
/**
|
|
@@ -27,7 +22,7 @@ export declare class TooltipMixinClass {
|
|
|
27
22
|
* attribute. Supports array of multiple elements.
|
|
28
23
|
* When not set, defaults to `target`.
|
|
29
24
|
*/
|
|
30
|
-
ariaTarget: HTMLElement | HTMLElement[] | undefined;
|
|
25
|
+
ariaTarget: HTMLElement | HTMLElement[] | null | undefined;
|
|
31
26
|
|
|
32
27
|
/**
|
|
33
28
|
* Object with properties passed to `generator` and
|
|
@@ -73,8 +68,9 @@ export declare class TooltipMixinClass {
|
|
|
73
68
|
manual: boolean;
|
|
74
69
|
|
|
75
70
|
/**
|
|
76
|
-
* When true, the tooltip is opened
|
|
77
|
-
*
|
|
71
|
+
* When true, the tooltip is opened.
|
|
72
|
+
* In manual mode, this can be set programmatically.
|
|
73
|
+
* In automatic mode, this is set automatically by internal logic.
|
|
78
74
|
*/
|
|
79
75
|
opened: boolean;
|
|
80
76
|
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { isKeyboardActive } from '@vaadin/a11y-base/src/focus-utils.js';
|
|
7
7
|
import { addValueToAttribute, removeValueFromAttribute } from '@vaadin/component-base/src/dom-utils.js';
|
|
8
|
-
import { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';
|
|
9
8
|
import { SlotController } from '@vaadin/component-base/src/slot-controller.js';
|
|
10
9
|
import { generateUniqueId } from '@vaadin/component-base/src/unique-id-utils.js';
|
|
11
10
|
import { PopoverPositionMixin } from '@vaadin/popover/src/vaadin-popover-position-mixin.js';
|
|
@@ -45,11 +44,6 @@ class TooltipStateController {
|
|
|
45
44
|
this.host = host;
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
/** @private */
|
|
49
|
-
get openedProp() {
|
|
50
|
-
return this.host.manual ? 'opened' : '_autoOpened';
|
|
51
|
-
}
|
|
52
|
-
|
|
53
47
|
/** @private */
|
|
54
48
|
get focusDelay() {
|
|
55
49
|
const tooltip = this.host;
|
|
@@ -115,12 +109,12 @@ class TooltipStateController {
|
|
|
115
109
|
|
|
116
110
|
/** @private */
|
|
117
111
|
_isOpened() {
|
|
118
|
-
return this.host
|
|
112
|
+
return this.host.opened;
|
|
119
113
|
}
|
|
120
114
|
|
|
121
115
|
/** @private */
|
|
122
116
|
_setOpened(opened) {
|
|
123
|
-
this.host
|
|
117
|
+
this.host.opened = opened;
|
|
124
118
|
}
|
|
125
119
|
|
|
126
120
|
/** @private */
|
|
@@ -224,12 +218,11 @@ class TooltipStateController {
|
|
|
224
218
|
* A mixin providing common tooltip functionality.
|
|
225
219
|
*
|
|
226
220
|
* @polymerMixin
|
|
227
|
-
* @mixes OverlayClassMixin
|
|
228
221
|
* @mixes PopoverPositionMixin
|
|
229
222
|
* @mixes PopoverTargetMixin
|
|
230
223
|
*/
|
|
231
224
|
export const TooltipMixin = (superClass) =>
|
|
232
|
-
class TooltipMixinClass extends PopoverPositionMixin(PopoverTargetMixin(
|
|
225
|
+
class TooltipMixinClass extends PopoverPositionMixin(PopoverTargetMixin(superClass)) {
|
|
233
226
|
static get properties() {
|
|
234
227
|
return {
|
|
235
228
|
/**
|
|
@@ -302,12 +295,15 @@ export const TooltipMixin = (superClass) =>
|
|
|
302
295
|
},
|
|
303
296
|
|
|
304
297
|
/**
|
|
305
|
-
* When true, the tooltip is opened
|
|
306
|
-
*
|
|
298
|
+
* When true, the tooltip is opened.
|
|
299
|
+
* In manual mode, this can be set programmatically.
|
|
300
|
+
* In automatic mode, this is set automatically by internal logic.
|
|
307
301
|
*/
|
|
308
302
|
opened: {
|
|
309
303
|
type: Boolean,
|
|
310
304
|
value: false,
|
|
305
|
+
reflectToAttribute: true,
|
|
306
|
+
observer: '__openedChanged',
|
|
311
307
|
sync: true,
|
|
312
308
|
},
|
|
313
309
|
|
|
@@ -330,18 +326,6 @@ export const TooltipMixin = (superClass) =>
|
|
|
330
326
|
*/
|
|
331
327
|
text: {
|
|
332
328
|
type: String,
|
|
333
|
-
observer: '__textChanged',
|
|
334
|
-
},
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Set to true when the overlay is opened using auto-added
|
|
338
|
-
* event listeners: mouseenter and focusin (keyboard only).
|
|
339
|
-
* @protected
|
|
340
|
-
*/
|
|
341
|
-
_autoOpened: {
|
|
342
|
-
type: Boolean,
|
|
343
|
-
observer: '__autoOpenedChanged',
|
|
344
|
-
sync: true,
|
|
345
329
|
},
|
|
346
330
|
|
|
347
331
|
/**
|
|
@@ -366,26 +350,9 @@ export const TooltipMixin = (superClass) =>
|
|
|
366
350
|
type: Boolean,
|
|
367
351
|
sync: true,
|
|
368
352
|
},
|
|
369
|
-
|
|
370
|
-
/** @private */
|
|
371
|
-
_srLabel: {
|
|
372
|
-
type: Object,
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
/** @private */
|
|
376
|
-
_overlayContent: {
|
|
377
|
-
type: String,
|
|
378
|
-
},
|
|
379
353
|
};
|
|
380
354
|
}
|
|
381
355
|
|
|
382
|
-
static get observers() {
|
|
383
|
-
return [
|
|
384
|
-
'__generatorChanged(_overlayElement, generator, context)',
|
|
385
|
-
'__updateSrLabelText(_srLabel, _overlayContent)',
|
|
386
|
-
];
|
|
387
|
-
}
|
|
388
|
-
|
|
389
356
|
/**
|
|
390
357
|
* Sets the default focus delay to be used by all tooltip instances,
|
|
391
358
|
* except for those that have focus delay configured using property.
|
|
@@ -420,7 +387,6 @@ export const TooltipMixin = (superClass) =>
|
|
|
420
387
|
super();
|
|
421
388
|
|
|
422
389
|
this._uniqueId = `vaadin-tooltip-${generateUniqueId()}`;
|
|
423
|
-
this._renderer = this.__tooltipRenderer.bind(this);
|
|
424
390
|
|
|
425
391
|
this.__onFocusin = this.__onFocusin.bind(this);
|
|
426
392
|
this.__onFocusout = this.__onFocusout.bind(this);
|
|
@@ -453,7 +419,7 @@ export const TooltipMixin = (superClass) =>
|
|
|
453
419
|
disconnectedCallback() {
|
|
454
420
|
super.disconnectedCallback();
|
|
455
421
|
|
|
456
|
-
if (this.
|
|
422
|
+
if (this.opened && !this.manual) {
|
|
457
423
|
this._stateController.close(true);
|
|
458
424
|
}
|
|
459
425
|
this._isConnected = false;
|
|
@@ -467,23 +433,28 @@ export const TooltipMixin = (superClass) =>
|
|
|
467
433
|
|
|
468
434
|
this._overlayElement = this.$.overlay;
|
|
469
435
|
|
|
470
|
-
this.
|
|
436
|
+
this.__contentController = new SlotController(this, 'overlay', 'div', {
|
|
471
437
|
initializer: (element) => {
|
|
472
438
|
element.id = this._uniqueId;
|
|
473
439
|
element.setAttribute('role', 'tooltip');
|
|
474
|
-
this.
|
|
440
|
+
this.__contentNode = element;
|
|
475
441
|
},
|
|
476
442
|
});
|
|
477
|
-
this.addController(this.
|
|
443
|
+
this.addController(this.__contentController);
|
|
478
444
|
}
|
|
479
445
|
|
|
480
|
-
/** @
|
|
481
|
-
|
|
482
|
-
|
|
446
|
+
/** @protected */
|
|
447
|
+
updated(props) {
|
|
448
|
+
super.updated(props);
|
|
449
|
+
|
|
450
|
+
if (props.has('text') || props.has('generator') || props.has('context')) {
|
|
451
|
+
this.__updateContent();
|
|
452
|
+
this.$.overlay.toggleAttribute('hidden', this.__contentNode.textContent.trim() === '');
|
|
453
|
+
}
|
|
483
454
|
}
|
|
484
455
|
|
|
485
456
|
/** @private */
|
|
486
|
-
|
|
457
|
+
__openedChanged(opened, oldOpened) {
|
|
487
458
|
if (opened) {
|
|
488
459
|
document.addEventListener('keydown', this.__onKeyDown, true);
|
|
489
460
|
} else if (oldOpened) {
|
|
@@ -546,7 +517,7 @@ export const TooltipMixin = (superClass) =>
|
|
|
546
517
|
|
|
547
518
|
this.__focusInside = true;
|
|
548
519
|
|
|
549
|
-
if (!this.__isTargetHidden && (!this.__hoverInside || !this.
|
|
520
|
+
if (!this.__isTargetHidden && (!this.__hoverInside || !this.opened)) {
|
|
550
521
|
this._stateController.open({ focus: true });
|
|
551
522
|
}
|
|
552
523
|
}
|
|
@@ -571,6 +542,10 @@ export const TooltipMixin = (superClass) =>
|
|
|
571
542
|
|
|
572
543
|
/** @private */
|
|
573
544
|
__onKeyDown(event) {
|
|
545
|
+
if (this.manual) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
|
|
574
549
|
if (event.key === 'Escape') {
|
|
575
550
|
event.stopPropagation();
|
|
576
551
|
this._stateController.close(true);
|
|
@@ -603,7 +578,7 @@ export const TooltipMixin = (superClass) =>
|
|
|
603
578
|
|
|
604
579
|
this.__hoverInside = true;
|
|
605
580
|
|
|
606
|
-
if (!this.__isTargetHidden && (!this.__focusInside || !this.
|
|
581
|
+
if (!this.__isTargetHidden && (!this.__focusInside || !this.opened)) {
|
|
607
582
|
this._stateController.open({ hover: true });
|
|
608
583
|
}
|
|
609
584
|
}
|
|
@@ -617,6 +592,9 @@ export const TooltipMixin = (superClass) =>
|
|
|
617
592
|
|
|
618
593
|
/** @protected */
|
|
619
594
|
__onOverlayMouseEnter() {
|
|
595
|
+
if (this.manual) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
620
598
|
// Retain opened state when moving pointer over the overlay.
|
|
621
599
|
// Closing can start due to an offset between the target and
|
|
622
600
|
// the overlay itself. If that's the case, re-open overlay.
|
|
@@ -660,6 +638,10 @@ export const TooltipMixin = (superClass) =>
|
|
|
660
638
|
|
|
661
639
|
/** @private */
|
|
662
640
|
__onTargetVisibilityChange(isVisible) {
|
|
641
|
+
if (this.manual) {
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
|
|
663
645
|
const oldHidden = this.__isTargetHidden;
|
|
664
646
|
this.__isTargetHidden = !isVisible;
|
|
665
647
|
|
|
@@ -670,7 +652,7 @@ export const TooltipMixin = (superClass) =>
|
|
|
670
652
|
}
|
|
671
653
|
|
|
672
654
|
// Close the overlay when the target is no longer fully visible.
|
|
673
|
-
if (!isVisible && this.
|
|
655
|
+
if (!isVisible && this.opened) {
|
|
674
656
|
this._stateController.close(true);
|
|
675
657
|
}
|
|
676
658
|
}
|
|
@@ -685,25 +667,16 @@ export const TooltipMixin = (superClass) =>
|
|
|
685
667
|
}
|
|
686
668
|
|
|
687
669
|
/** @private */
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
/** @private */
|
|
695
|
-
__tooltipRenderer(root) {
|
|
696
|
-
root.textContent = typeof this.generator === 'function' ? this.generator(this.context) : this.text;
|
|
697
|
-
|
|
698
|
-
// Update the sr-only label text content
|
|
699
|
-
this._overlayContent = root.textContent;
|
|
670
|
+
__updateContent() {
|
|
671
|
+
this.__contentNode.textContent = typeof this.generator === 'function' ? this.generator(this.context) : this.text;
|
|
672
|
+
this.dispatchEvent(new CustomEvent('content-changed', { detail: { content: this.__contentNode.textContent } }));
|
|
700
673
|
}
|
|
701
674
|
|
|
702
675
|
/** @private */
|
|
703
676
|
__computeAriaTarget(ariaTarget, target) {
|
|
704
677
|
const isElementNode = (el) => el && el.nodeType === Node.ELEMENT_NODE;
|
|
705
678
|
const isAriaTargetSet = Array.isArray(ariaTarget) ? ariaTarget.some(isElementNode) : ariaTarget;
|
|
706
|
-
return isAriaTargetSet ? ariaTarget : target;
|
|
679
|
+
return ariaTarget === null || isAriaTargetSet ? ariaTarget : target;
|
|
707
680
|
}
|
|
708
681
|
|
|
709
682
|
/** @private */
|
|
@@ -721,22 +694,9 @@ export const TooltipMixin = (superClass) =>
|
|
|
721
694
|
}
|
|
722
695
|
}
|
|
723
696
|
|
|
724
|
-
/**
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
this.__oldTextGenerator = generator;
|
|
732
|
-
this.__oldContext = context;
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
/** @private */
|
|
737
|
-
__updateSrLabelText(srLabel, textContent) {
|
|
738
|
-
if (srLabel) {
|
|
739
|
-
srLabel.textContent = textContent;
|
|
740
|
-
}
|
|
741
|
-
}
|
|
697
|
+
/**
|
|
698
|
+
* Fired when the tooltip text content is changed.
|
|
699
|
+
*
|
|
700
|
+
* @event content-changed
|
|
701
|
+
*/
|
|
742
702
|
};
|
|
@@ -7,10 +7,11 @@ import { html, LitElement } from 'lit';
|
|
|
7
7
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
8
8
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
9
9
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
10
|
-
import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
|
|
10
|
+
import { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-base-styles.js';
|
|
11
11
|
import { PopoverOverlayMixin } from '@vaadin/popover/src/vaadin-popover-overlay-mixin.js';
|
|
12
|
+
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
12
13
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
13
|
-
import { tooltipOverlayStyles } from './vaadin-tooltip-overlay-styles.js';
|
|
14
|
+
import { tooltipOverlayStyles } from './styles/vaadin-tooltip-overlay-base-styles.js';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* An element used internally by `<vaadin-tooltip>`. Not intended to be used separately.
|
|
@@ -22,7 +23,9 @@ import { tooltipOverlayStyles } from './vaadin-tooltip-overlay-styles.js';
|
|
|
22
23
|
* @mixes PopoverOverlayMixin
|
|
23
24
|
* @private
|
|
24
25
|
*/
|
|
25
|
-
class TooltipOverlay extends PopoverOverlayMixin(
|
|
26
|
+
class TooltipOverlay extends PopoverOverlayMixin(
|
|
27
|
+
DirMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement)))),
|
|
28
|
+
) {
|
|
26
29
|
static get is() {
|
|
27
30
|
return 'vaadin-tooltip-overlay';
|
|
28
31
|
}
|
|
@@ -31,30 +34,14 @@ class TooltipOverlay extends PopoverOverlayMixin(DirMixin(ThemableMixin(PolylitM
|
|
|
31
34
|
return [overlayStyles, tooltipOverlayStyles];
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
/**
|
|
35
|
-
* Tag name prefix used by custom properties.
|
|
36
|
-
* @protected
|
|
37
|
-
* @return {string}
|
|
38
|
-
*/
|
|
39
|
-
get _tagNamePrefix() {
|
|
40
|
-
return 'vaadin-tooltip';
|
|
41
|
-
}
|
|
42
|
-
|
|
43
37
|
/** @protected */
|
|
44
38
|
render() {
|
|
45
39
|
return html`
|
|
46
|
-
<div id="backdrop" part="backdrop" hidden></div>
|
|
47
40
|
<div part="overlay" id="overlay">
|
|
48
41
|
<div part="content" id="content"><slot></slot></div>
|
|
49
42
|
</div>
|
|
50
43
|
`;
|
|
51
44
|
}
|
|
52
|
-
|
|
53
|
-
requestContentUpdate() {
|
|
54
|
-
super.requestContentUpdate();
|
|
55
|
-
|
|
56
|
-
this.toggleAttribute('hidden', this.textContent.trim() === '');
|
|
57
|
-
}
|
|
58
45
|
}
|
|
59
46
|
|
|
60
47
|
defineCustomElement(TooltipOverlay);
|
package/src/vaadin-tooltip.d.ts
CHANGED
|
@@ -9,6 +9,17 @@ import { TooltipMixin } from './vaadin-tooltip-mixin.js';
|
|
|
9
9
|
|
|
10
10
|
export { TooltipPosition } from './vaadin-tooltip-mixin.js';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Fired when the tooltip text content is changed.
|
|
14
|
+
*/
|
|
15
|
+
export type TooltipContentChangedEvent = CustomEvent<{ content: string }>;
|
|
16
|
+
|
|
17
|
+
export interface TooltipCustomEventMap {
|
|
18
|
+
'content-changed': TooltipContentChangedEvent;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface TooltipEventMap extends HTMLElementEventMap, TooltipCustomEventMap {}
|
|
22
|
+
|
|
12
23
|
/**
|
|
13
24
|
* `<vaadin-tooltip>` is a Web Component for creating tooltips.
|
|
14
25
|
*
|
|
@@ -19,11 +30,12 @@ export { TooltipPosition } from './vaadin-tooltip-mixin.js';
|
|
|
19
30
|
*
|
|
20
31
|
* ### Styling
|
|
21
32
|
*
|
|
22
|
-
*
|
|
23
|
-
* themable component as the actual visible overlay.
|
|
33
|
+
* The following shadow DOM parts are available for styling:
|
|
24
34
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
35
|
+
* Part name | Description
|
|
36
|
+
* ----------- | ---------------
|
|
37
|
+
* `overlay` | The overlay element
|
|
38
|
+
* `content` | The overlay content element
|
|
27
39
|
*
|
|
28
40
|
* The following state attributes are available for styling:
|
|
29
41
|
*
|
|
@@ -31,9 +43,6 @@ export { TooltipPosition } from './vaadin-tooltip-mixin.js';
|
|
|
31
43
|
* -----------------|----------------------------------------
|
|
32
44
|
* `position` | Reflects the `position` property value.
|
|
33
45
|
*
|
|
34
|
-
* Note: the `theme` attribute value set on `<vaadin-tooltip>` is
|
|
35
|
-
* propagated to the internal `<vaadin-tooltip-overlay>` component.
|
|
36
|
-
*
|
|
37
46
|
* ### Custom CSS Properties
|
|
38
47
|
*
|
|
39
48
|
* The following custom CSS properties are available on the `<vaadin-tooltip>` element:
|
|
@@ -46,6 +55,8 @@ export { TooltipPosition } from './vaadin-tooltip-mixin.js';
|
|
|
46
55
|
* `--vaadin-tooltip-offset-end` | Used as an offset when the tooltip is aligned horizontally before the target
|
|
47
56
|
*
|
|
48
57
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
58
|
+
*
|
|
59
|
+
* @fires {CustomEvent} content-changed - Fired when the tooltip text content is changed.
|
|
49
60
|
*/
|
|
50
61
|
declare class Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(HTMLElement))) {
|
|
51
62
|
/**
|
|
@@ -65,6 +76,18 @@ declare class Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(HTMLE
|
|
|
65
76
|
* except for those that have hover delay configured using property.
|
|
66
77
|
*/
|
|
67
78
|
static setDefaultHoverDelay(hoverDelay: number): void;
|
|
79
|
+
|
|
80
|
+
addEventListener<K extends keyof TooltipEventMap>(
|
|
81
|
+
type: K,
|
|
82
|
+
listener: (this: Tooltip, ev: TooltipEventMap[K]) => void,
|
|
83
|
+
options?: AddEventListenerOptions | boolean,
|
|
84
|
+
): void;
|
|
85
|
+
|
|
86
|
+
removeEventListener<K extends keyof TooltipEventMap>(
|
|
87
|
+
type: K,
|
|
88
|
+
listener: (this: Tooltip, ev: TooltipEventMap[K]) => void,
|
|
89
|
+
options?: EventListenerOptions | boolean,
|
|
90
|
+
): void;
|
|
68
91
|
}
|
|
69
92
|
|
|
70
93
|
declare global {
|
package/src/vaadin-tooltip.js
CHANGED
|
@@ -22,11 +22,12 @@ import { TooltipMixin } from './vaadin-tooltip-mixin.js';
|
|
|
22
22
|
*
|
|
23
23
|
* ### Styling
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
* themable component as the actual visible overlay.
|
|
25
|
+
* The following shadow DOM parts are available for styling:
|
|
27
26
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* Part name | Description
|
|
28
|
+
* ----------- | ---------------
|
|
29
|
+
* `overlay` | The overlay element
|
|
30
|
+
* `content` | The overlay content element
|
|
30
31
|
*
|
|
31
32
|
* The following state attributes are available for styling:
|
|
32
33
|
*
|
|
@@ -34,9 +35,6 @@ import { TooltipMixin } from './vaadin-tooltip-mixin.js';
|
|
|
34
35
|
* -----------------|----------------------------------------
|
|
35
36
|
* `position` | Reflects the `position` property value.
|
|
36
37
|
*
|
|
37
|
-
* Note: the `theme` attribute value set on `<vaadin-tooltip>` is
|
|
38
|
-
* propagated to the internal `<vaadin-tooltip-overlay>` component.
|
|
39
|
-
*
|
|
40
38
|
* ### Custom CSS Properties
|
|
41
39
|
*
|
|
42
40
|
* The following custom CSS properties are available on the `<vaadin-tooltip>` element:
|
|
@@ -50,6 +48,8 @@ import { TooltipMixin } from './vaadin-tooltip-mixin.js';
|
|
|
50
48
|
*
|
|
51
49
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
52
50
|
*
|
|
51
|
+
* @fires {CustomEvent} content-changed - Fired when the tooltip text content is changed.
|
|
52
|
+
*
|
|
53
53
|
* @customElement
|
|
54
54
|
* @extends HTMLElement
|
|
55
55
|
* @mixes ElementMixin
|
|
@@ -64,7 +64,7 @@ class Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(PolylitMixin(
|
|
|
64
64
|
static get styles() {
|
|
65
65
|
return css`
|
|
66
66
|
:host {
|
|
67
|
-
display:
|
|
67
|
+
display: contents;
|
|
68
68
|
}
|
|
69
69
|
`;
|
|
70
70
|
}
|
|
@@ -76,10 +76,9 @@ class Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(PolylitMixin(
|
|
|
76
76
|
return html`
|
|
77
77
|
<vaadin-tooltip-overlay
|
|
78
78
|
id="overlay"
|
|
79
|
-
.renderer="${this._renderer}"
|
|
80
79
|
.owner="${this}"
|
|
81
80
|
theme="${ifDefined(this._theme)}"
|
|
82
|
-
.opened="${this._isConnected &&
|
|
81
|
+
.opened="${this._isConnected && this.opened}"
|
|
83
82
|
.positionTarget="${this.target}"
|
|
84
83
|
.position="${effectivePosition}"
|
|
85
84
|
?no-horizontal-overlap="${this.__computeNoHorizontalOverlap(effectivePosition)}"
|
|
@@ -89,9 +88,9 @@ class Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(PolylitMixin(
|
|
|
89
88
|
@mouseenter="${this.__onOverlayMouseEnter}"
|
|
90
89
|
@mouseleave="${this.__onOverlayMouseLeave}"
|
|
91
90
|
modeless
|
|
91
|
+
exportparts="overlay, content"
|
|
92
|
+
><slot name="overlay"></slot
|
|
92
93
|
></vaadin-tooltip-overlay>
|
|
93
|
-
|
|
94
|
-
<slot name="sr-label"></slot>
|
|
95
94
|
`;
|
|
96
95
|
}
|
|
97
96
|
}
|
package/vaadin-tooltip.js
CHANGED
package/web-types.json
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/tooltip",
|
|
4
|
-
"version": "25.0.0-
|
|
4
|
+
"version": "25.0.0-alpha20",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "vaadin-tooltip",
|
|
11
|
-
"description": "`<vaadin-tooltip>` is a Web Component for creating tooltips.\n\n```html\n<button id=\"confirm\">Confirm</button>\n<vaadin-tooltip text=\"Click to save changes\" for=\"confirm\"></vaadin-tooltip>\n```\n\n### Styling\n\
|
|
11
|
+
"description": "`<vaadin-tooltip>` is a Web Component for creating tooltips.\n\n```html\n<button id=\"confirm\">Confirm</button>\n<vaadin-tooltip text=\"Click to save changes\" for=\"confirm\"></vaadin-tooltip>\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------- | ---------------\n`overlay` | The overlay element\n`content` | The overlay content element\n\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------|----------------------------------------\n`position` | Reflects the `position` property value.\n\n### Custom CSS Properties\n\nThe following custom CSS properties are available on the `<vaadin-tooltip>` element:\n\nCustom CSS property | Description\n---------------------------------|-------------\n`--vaadin-tooltip-offset-top` | Used as an offset when the tooltip is aligned vertically below the target\n`--vaadin-tooltip-offset-bottom` | Used as an offset when the tooltip is aligned vertically above the target\n`--vaadin-tooltip-offset-start` | Used as an offset when the tooltip is aligned horizontally after the target\n`--vaadin-tooltip-offset-end` | Used as an offset when the tooltip is aligned horizontally before the target\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
12
12
|
"attributes": [
|
|
13
|
-
{
|
|
14
|
-
"name": "overlay-class",
|
|
15
|
-
"description": "A space-delimited list of CSS class names to set on the overlay element.\nThis property does not affect other CSS class names set manually via JS.\n\nNote, if the CSS class name was set with this property, clearing it will\nremove it from the overlay, even if the same class name was also added\nmanually, e.g. by using `classList.add()` in the `renderer` function.",
|
|
16
|
-
"value": {
|
|
17
|
-
"type": [
|
|
18
|
-
"string",
|
|
19
|
-
"null",
|
|
20
|
-
"undefined"
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
13
|
{
|
|
25
14
|
"name": "position",
|
|
26
15
|
"description": "Position of the overlay with respect to the target.\nSupported values: `top-start`, `top`, `top-end`,\n`bottom-start`, `bottom`, `bottom-end`, `start-top`,\n`start`, `start-bottom`, `end-top`, `end`, `end-bottom`.",
|
|
@@ -89,7 +78,7 @@
|
|
|
89
78
|
},
|
|
90
79
|
{
|
|
91
80
|
"name": "opened",
|
|
92
|
-
"description": "When true, the tooltip is opened programmatically.\
|
|
81
|
+
"description": "When true, the tooltip is opened.\nIn manual mode, this can be set programmatically.\nIn automatic mode, this is set automatically by internal logic.",
|
|
93
82
|
"value": {
|
|
94
83
|
"type": [
|
|
95
84
|
"boolean",
|
|
@@ -123,17 +112,6 @@
|
|
|
123
112
|
],
|
|
124
113
|
"js": {
|
|
125
114
|
"properties": [
|
|
126
|
-
{
|
|
127
|
-
"name": "overlayClass",
|
|
128
|
-
"description": "A space-delimited list of CSS class names to set on the overlay element.\nThis property does not affect other CSS class names set manually via JS.\n\nNote, if the CSS class name was set with this property, clearing it will\nremove it from the overlay, even if the same class name was also added\nmanually, e.g. by using `classList.add()` in the `renderer` function.",
|
|
129
|
-
"value": {
|
|
130
|
-
"type": [
|
|
131
|
-
"string",
|
|
132
|
-
"null",
|
|
133
|
-
"undefined"
|
|
134
|
-
]
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
115
|
{
|
|
138
116
|
"name": "position",
|
|
139
117
|
"description": "Position of the overlay with respect to the target.\nSupported values: `top-start`, `top`, `top-end`,\n`bottom-start`, `bottom`, `bottom-end`, `start-top`,\n`start`, `start-bottom`, `end-top`, `end`, `end-bottom`.",
|
|
@@ -246,7 +224,7 @@
|
|
|
246
224
|
},
|
|
247
225
|
{
|
|
248
226
|
"name": "opened",
|
|
249
|
-
"description": "When true, the tooltip is opened programmatically.\
|
|
227
|
+
"description": "When true, the tooltip is opened.\nIn manual mode, this can be set programmatically.\nIn automatic mode, this is set automatically by internal logic.",
|
|
250
228
|
"value": {
|
|
251
229
|
"type": [
|
|
252
230
|
"boolean",
|
|
@@ -278,7 +256,12 @@
|
|
|
278
256
|
}
|
|
279
257
|
}
|
|
280
258
|
],
|
|
281
|
-
"events": [
|
|
259
|
+
"events": [
|
|
260
|
+
{
|
|
261
|
+
"name": "content-changed",
|
|
262
|
+
"description": "Fired when the tooltip text content is changed."
|
|
263
|
+
}
|
|
264
|
+
]
|
|
282
265
|
}
|
|
283
266
|
}
|
|
284
267
|
]
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/tooltip",
|
|
4
|
-
"version": "25.0.0-
|
|
4
|
+
"version": "25.0.0-alpha20",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"elements": [
|
|
17
17
|
{
|
|
18
18
|
"name": "vaadin-tooltip",
|
|
19
|
-
"description": "`<vaadin-tooltip>` is a Web Component for creating tooltips.\n\n```html\n<button id=\"confirm\">Confirm</button>\n<vaadin-tooltip text=\"Click to save changes\" for=\"confirm\"></vaadin-tooltip>\n```\n\n### Styling\n\
|
|
19
|
+
"description": "`<vaadin-tooltip>` is a Web Component for creating tooltips.\n\n```html\n<button id=\"confirm\">Confirm</button>\n<vaadin-tooltip text=\"Click to save changes\" for=\"confirm\"></vaadin-tooltip>\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------- | ---------------\n`overlay` | The overlay element\n`content` | The overlay content element\n\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------|----------------------------------------\n`position` | Reflects the `position` property value.\n\n### Custom CSS Properties\n\nThe following custom CSS properties are available on the `<vaadin-tooltip>` element:\n\nCustom CSS property | Description\n---------------------------------|-------------\n`--vaadin-tooltip-offset-top` | Used as an offset when the tooltip is aligned vertically below the target\n`--vaadin-tooltip-offset-bottom` | Used as an offset when the tooltip is aligned vertically above the target\n`--vaadin-tooltip-offset-start` | Used as an offset when the tooltip is aligned horizontally after the target\n`--vaadin-tooltip-offset-end` | Used as an offset when the tooltip is aligned horizontally before the target\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
20
20
|
"extension": true,
|
|
21
21
|
"attributes": [
|
|
22
22
|
{
|
|
@@ -28,14 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"name": "?opened",
|
|
31
|
-
"description": "When true, the tooltip is opened programmatically.\
|
|
32
|
-
"value": {
|
|
33
|
-
"kind": "expression"
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"name": ".overlayClass",
|
|
38
|
-
"description": "A space-delimited list of CSS class names to set on the overlay element.\nThis property does not affect other CSS class names set manually via JS.\n\nNote, if the CSS class name was set with this property, clearing it will\nremove it from the overlay, even if the same class name was also added\nmanually, e.g. by using `classList.add()` in the `renderer` function.",
|
|
31
|
+
"description": "When true, the tooltip is opened.\nIn manual mode, this can be set programmatically.\nIn automatic mode, this is set automatically by internal logic.",
|
|
39
32
|
"value": {
|
|
40
33
|
"kind": "expression"
|
|
41
34
|
}
|
|
@@ -116,6 +109,13 @@
|
|
|
116
109
|
"value": {
|
|
117
110
|
"kind": "expression"
|
|
118
111
|
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "@content-changed",
|
|
115
|
+
"description": "Fired when the tooltip text content is changed.",
|
|
116
|
+
"value": {
|
|
117
|
+
"kind": "expression"
|
|
118
|
+
}
|
|
119
119
|
}
|
|
120
120
|
]
|
|
121
121
|
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright (c) 2022 - 2025 Vaadin Ltd.
|
|
4
|
-
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
|
-
*/
|
|
6
|
-
import { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
7
|
-
|
|
8
|
-
export const tooltipOverlayStyles = css`
|
|
9
|
-
[part='overlay'] {
|
|
10
|
-
max-width: 40ch;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
[part='content'] {
|
|
14
|
-
white-space: pre-wrap;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
:host([position^='top'][top-aligned]) [part='overlay'],
|
|
18
|
-
:host([position^='bottom'][top-aligned]) [part='overlay'] {
|
|
19
|
-
margin-top: var(--vaadin-tooltip-offset-top, 0);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
:host([position^='top'][bottom-aligned]) [part='overlay'],
|
|
23
|
-
:host([position^='bottom'][bottom-aligned]) [part='overlay'] {
|
|
24
|
-
margin-bottom: var(--vaadin-tooltip-offset-bottom, 0);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
:host([position^='start'][start-aligned]) [part='overlay'],
|
|
28
|
-
:host([position^='end'][start-aligned]) [part='overlay'] {
|
|
29
|
-
margin-inline-start: var(--vaadin-tooltip-offset-start, 0);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
:host([position^='start'][end-aligned]) [part='overlay'],
|
|
33
|
-
:host([position^='end'][end-aligned]) [part='overlay'] {
|
|
34
|
-
margin-inline-end: var(--vaadin-tooltip-offset-end, 0);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@media (forced-colors: active) {
|
|
38
|
-
[part='overlay'] {
|
|
39
|
-
outline: 1px dashed;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
`;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/color.js';
|
|
2
|
-
import '@vaadin/vaadin-lumo-styles/style.js';
|
|
3
|
-
import '@vaadin/vaadin-lumo-styles/typography.js';
|
|
4
|
-
import { overlay } from '@vaadin/vaadin-lumo-styles/mixins/overlay.js';
|
|
5
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
6
|
-
|
|
7
|
-
const tooltipOverlay = css`
|
|
8
|
-
:host {
|
|
9
|
-
--vaadin-tooltip-offset-top: var(--lumo-space-xs);
|
|
10
|
-
--vaadin-tooltip-offset-bottom: var(--lumo-space-xs);
|
|
11
|
-
--vaadin-tooltip-offset-start: var(--lumo-space-xs);
|
|
12
|
-
--vaadin-tooltip-offset-end: var(--lumo-space-xs);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
[part='overlay'] {
|
|
16
|
-
background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
|
|
17
|
-
color: var(--lumo-body-text-color);
|
|
18
|
-
font-size: var(--lumo-font-size-xs);
|
|
19
|
-
line-height: var(--lumo-line-height-s);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
[part='content'] {
|
|
23
|
-
padding: var(--lumo-space-xs) var(--lumo-space-s);
|
|
24
|
-
}
|
|
25
|
-
`;
|
|
26
|
-
|
|
27
|
-
registerStyles('vaadin-tooltip-overlay', [overlay, tooltipOverlay], { moduleId: 'lumo-tooltip-overlay' });
|
/package/src/{vaadin-tooltip-overlay-styles.d.ts → styles/vaadin-tooltip-overlay-base-styles.d.ts}
RENAMED
|
File without changes
|