@vaadin/dialog 25.0.0-alpha8 → 25.0.0-beta1
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 -14
- package/src/styles/vaadin-dialog-overlay-base-styles.js +13 -10
- package/src/vaadin-dialog-base-mixin.d.ts +9 -10
- package/src/vaadin-dialog-base-mixin.js +33 -11
- package/src/vaadin-dialog-draggable-mixin.js +2 -1
- package/src/vaadin-dialog-overlay-mixin.js +32 -19
- package/src/vaadin-dialog-overlay.js +11 -2
- package/src/vaadin-dialog-renderer-mixin.d.ts +3 -3
- package/src/vaadin-dialog-renderer-mixin.js +3 -3
- package/src/vaadin-dialog-size-mixin.d.ts +2 -2
- package/src/vaadin-dialog-size-mixin.js +2 -2
- package/src/vaadin-dialog.d.ts +5 -21
- package/src/vaadin-dialog.js +35 -33
- package/vaadin-dialog.js +1 -1
- package/web-types.json +18 -62
- package/web-types.lit.json +11 -25
- package/src/styles/vaadin-dialog-overlay-core-styles.d.ts +0 -10
- package/src/styles/vaadin-dialog-overlay-core-styles.js +0 -184
- package/theme/lumo/vaadin-dialog-styles.d.ts +0 -3
- package/theme/lumo/vaadin-dialog-styles.js +0 -109
- package/theme/lumo/vaadin-dialog.d.ts +0 -2
- package/theme/lumo/vaadin-dialog.js +0 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/dialog",
|
|
3
|
-
"version": "25.0.0-
|
|
3
|
+
"version": "25.0.0-beta1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -23,9 +23,6 @@
|
|
|
23
23
|
"lit.d.ts",
|
|
24
24
|
"lit.js",
|
|
25
25
|
"src",
|
|
26
|
-
"!src/styles/*-base-styles.d.ts",
|
|
27
|
-
"!src/styles/*-base-styles.js",
|
|
28
|
-
"theme",
|
|
29
26
|
"vaadin-*.d.ts",
|
|
30
27
|
"vaadin-*.js",
|
|
31
28
|
"web-types.json",
|
|
@@ -39,23 +36,23 @@
|
|
|
39
36
|
],
|
|
40
37
|
"dependencies": {
|
|
41
38
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
42
|
-
"@vaadin/component-base": "25.0.0-
|
|
43
|
-
"@vaadin/lit-renderer": "25.0.0-
|
|
44
|
-
"@vaadin/overlay": "25.0.0-
|
|
45
|
-
"@vaadin/vaadin-
|
|
46
|
-
"@vaadin/vaadin-themable-mixin": "25.0.0-alpha8",
|
|
39
|
+
"@vaadin/component-base": "25.0.0-beta1",
|
|
40
|
+
"@vaadin/lit-renderer": "25.0.0-beta1",
|
|
41
|
+
"@vaadin/overlay": "25.0.0-beta1",
|
|
42
|
+
"@vaadin/vaadin-themable-mixin": "25.0.0-beta1",
|
|
47
43
|
"lit": "^3.0.0"
|
|
48
44
|
},
|
|
49
45
|
"devDependencies": {
|
|
50
|
-
"@vaadin/a11y-base": "25.0.0-
|
|
51
|
-
"@vaadin/chai-plugins": "25.0.0-
|
|
52
|
-
"@vaadin/test-runner-commands": "25.0.0-
|
|
46
|
+
"@vaadin/a11y-base": "25.0.0-beta1",
|
|
47
|
+
"@vaadin/chai-plugins": "25.0.0-beta1",
|
|
48
|
+
"@vaadin/test-runner-commands": "25.0.0-beta1",
|
|
53
49
|
"@vaadin/testing-helpers": "^2.0.0",
|
|
54
|
-
"
|
|
50
|
+
"@vaadin/vaadin-lumo-styles": "25.0.0-beta1",
|
|
51
|
+
"sinon": "^21.0.0"
|
|
55
52
|
},
|
|
56
53
|
"web-types": [
|
|
57
54
|
"web-types.json",
|
|
58
55
|
"web-types.lit.json"
|
|
59
56
|
],
|
|
60
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "1d20cf54e582d1f2e209126d4586f8b4c01c50e0"
|
|
61
58
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2017 - 2025 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import '@vaadin/component-base/src/style-props.js';
|
|
6
|
+
import '@vaadin/component-base/src/styles/style-props.js';
|
|
7
7
|
import { css } from 'lit';
|
|
8
8
|
import { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-base-styles.js';
|
|
9
9
|
|
|
@@ -29,16 +29,15 @@ export const dialogOverlayBase = css`
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[part='overlay'] {
|
|
32
|
-
background: var(--vaadin-dialog-background, var(--vaadin-background-color));
|
|
32
|
+
background: var(--vaadin-dialog-background, var(--vaadin-overlay-background, var(--vaadin-background-color)));
|
|
33
33
|
background-origin: border-box;
|
|
34
|
-
border:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var(--vaadin-dialog-box-shadow, 0 8px 24px -4px rgba(0, 0, 0, 0.3));
|
|
34
|
+
border: var(--vaadin-dialog-border-width, var(--vaadin-overlay-border-width, 1px)) solid
|
|
35
|
+
var(--vaadin-dialog-border-color, var(--vaadin-overlay-border-color, var(--vaadin-border-color-secondary)));
|
|
36
|
+
box-shadow: var(--vaadin-dialog-shadow, var(--vaadin-overlay-shadow, 0 8px 24px -4px rgba(0, 0, 0, 0.3)));
|
|
38
37
|
border-radius: var(--vaadin-dialog-border-radius, var(--vaadin-radius-l));
|
|
39
38
|
width: max-content;
|
|
40
39
|
min-width: min(var(--vaadin-dialog-min-width, 4em), 100%);
|
|
41
|
-
max-width: var(--vaadin-dialog-max-width, 100%);
|
|
40
|
+
max-width: min(var(--vaadin-dialog-max-width, 100%), 100%);
|
|
42
41
|
max-height: 100%;
|
|
43
42
|
}
|
|
44
43
|
|
|
@@ -51,7 +50,7 @@ export const dialogOverlayBase = css`
|
|
|
51
50
|
flex: none;
|
|
52
51
|
pointer-events: none;
|
|
53
52
|
z-index: 1;
|
|
54
|
-
gap: var(--vaadin-dialog-toolbar-gap, var(--vaadin-gap-
|
|
53
|
+
gap: var(--vaadin-dialog-toolbar-gap, var(--vaadin-gap-s));
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
::slotted(*) {
|
|
@@ -61,7 +60,11 @@ export const dialogOverlayBase = css`
|
|
|
61
60
|
[part='header'],
|
|
62
61
|
[part='content'],
|
|
63
62
|
[part='footer'] {
|
|
64
|
-
padding: var(--vaadin-dialog-padding, var(--vaadin-padding));
|
|
63
|
+
padding: var(--vaadin-dialog-padding, var(--vaadin-padding-l));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:host([theme~='no-padding']) [part='content'] {
|
|
67
|
+
padding: 0 !important;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
:host(:is([has-header], [has-title])) [part='content'] {
|
|
@@ -89,7 +92,7 @@ export const dialogOverlayBase = css`
|
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
[part='title'] {
|
|
92
|
-
color: var(--vaadin-dialog-title-color, var(--vaadin-color));
|
|
95
|
+
color: var(--vaadin-dialog-title-color, var(--vaadin-text-color));
|
|
93
96
|
font-weight: var(--vaadin-dialog-title-font-weight, 600);
|
|
94
97
|
font-size: var(--vaadin-dialog-title-font-size, 1em);
|
|
95
98
|
line-height: var(--vaadin-dialog-title-line-height, inherit);
|
|
@@ -11,7 +11,7 @@ export declare function DialogBaseMixin<T extends Constructor<HTMLElement>>(
|
|
|
11
11
|
|
|
12
12
|
export declare class DialogBaseMixinClass {
|
|
13
13
|
/**
|
|
14
|
-
* True if the
|
|
14
|
+
* True if the dialog is visible and available for interaction.
|
|
15
15
|
*/
|
|
16
16
|
opened: boolean;
|
|
17
17
|
|
|
@@ -33,29 +33,28 @@ export declare class DialogBaseMixinClass {
|
|
|
33
33
|
modeless: boolean;
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
* The `role` attribute value to be set on the
|
|
36
|
+
* The `role` attribute value to be set on the dialog. Defaults to "dialog".
|
|
37
37
|
*
|
|
38
38
|
* @attr {string} overlay-role
|
|
39
|
+
* @deprecated Use standard `role` attribute on the dialog instead
|
|
39
40
|
*/
|
|
40
41
|
overlayRole: string;
|
|
41
42
|
|
|
42
43
|
/**
|
|
43
|
-
* Set the distance of the
|
|
44
|
+
* Set the distance of the dialog from the top of the viewport.
|
|
44
45
|
* If a unitless number is provided, pixels are assumed.
|
|
45
46
|
*
|
|
46
|
-
* Note that the
|
|
47
|
-
*
|
|
48
|
-
* overlay from stretching all the way to the top of the viewport).
|
|
47
|
+
* Note that the dialog uses an internal container that has some
|
|
48
|
+
* additional spacing, which can be overridden by the theme.
|
|
49
49
|
*/
|
|
50
50
|
top: string;
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
* Set the distance of the
|
|
53
|
+
* Set the distance of the dialog from the left of the viewport.
|
|
54
54
|
* If a unitless number is provided, pixels are assumed.
|
|
55
55
|
*
|
|
56
|
-
* Note that the
|
|
57
|
-
*
|
|
58
|
-
* overlay from stretching all the way to the left of the viewport).
|
|
56
|
+
* Note that the dialog uses an internal container that has some
|
|
57
|
+
* additional spacing, which can be overridden by the theme.
|
|
59
58
|
*/
|
|
60
59
|
left: string;
|
|
61
60
|
}
|
|
@@ -12,11 +12,12 @@ export const DialogBaseMixin = (superClass) =>
|
|
|
12
12
|
static get properties() {
|
|
13
13
|
return {
|
|
14
14
|
/**
|
|
15
|
-
* True if the
|
|
15
|
+
* True if the dialog is visible and available for interaction.
|
|
16
16
|
* @type {boolean}
|
|
17
17
|
*/
|
|
18
18
|
opened: {
|
|
19
19
|
type: Boolean,
|
|
20
|
+
reflectToAttribute: true,
|
|
20
21
|
value: false,
|
|
21
22
|
notify: true,
|
|
22
23
|
sync: true,
|
|
@@ -52,37 +53,35 @@ export const DialogBaseMixin = (superClass) =>
|
|
|
52
53
|
},
|
|
53
54
|
|
|
54
55
|
/**
|
|
55
|
-
* Set the distance of the
|
|
56
|
+
* Set the distance of the dialog from the top of the viewport.
|
|
56
57
|
* If a unitless number is provided, pixels are assumed.
|
|
57
58
|
*
|
|
58
|
-
* Note that the
|
|
59
|
-
*
|
|
60
|
-
* overlay from stretching all the way to the top of the viewport).
|
|
59
|
+
* Note that the dialog uses an internal container that has some
|
|
60
|
+
* additional spacing, which can be overridden by the theme.
|
|
61
61
|
*/
|
|
62
62
|
top: {
|
|
63
63
|
type: String,
|
|
64
64
|
},
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
* Set the distance of the
|
|
67
|
+
* Set the distance of the dialog from the left of the viewport.
|
|
68
68
|
* If a unitless number is provided, pixels are assumed.
|
|
69
69
|
*
|
|
70
|
-
* Note that the
|
|
71
|
-
*
|
|
72
|
-
* overlay from stretching all the way to the left of the viewport).
|
|
70
|
+
* Note that the dialog uses an internal container that has some
|
|
71
|
+
* additional spacing, which can be overridden by the theme.
|
|
73
72
|
*/
|
|
74
73
|
left: {
|
|
75
74
|
type: String,
|
|
76
75
|
},
|
|
77
76
|
|
|
78
77
|
/**
|
|
79
|
-
* The `role` attribute value to be set on the
|
|
78
|
+
* The `role` attribute value to be set on the dialog. Defaults to "dialog".
|
|
80
79
|
*
|
|
81
80
|
* @attr {string} overlay-role
|
|
81
|
+
* @deprecated Use standard `role` attribute on the dialog instead
|
|
82
82
|
*/
|
|
83
83
|
overlayRole: {
|
|
84
84
|
type: String,
|
|
85
|
-
value: 'dialog',
|
|
86
85
|
},
|
|
87
86
|
};
|
|
88
87
|
}
|
|
@@ -102,6 +101,29 @@ export const DialogBaseMixin = (superClass) =>
|
|
|
102
101
|
overlay.addEventListener('vaadin-overlay-closed', this.__handleOverlayClosed.bind(this));
|
|
103
102
|
|
|
104
103
|
this._overlayElement = overlay;
|
|
104
|
+
|
|
105
|
+
if (!this.hasAttribute('role')) {
|
|
106
|
+
this.role = 'dialog';
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this.setAttribute('tabindex', '0');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** @protected */
|
|
113
|
+
updated(props) {
|
|
114
|
+
super.updated(props);
|
|
115
|
+
|
|
116
|
+
if (props.has('overlayRole')) {
|
|
117
|
+
this.role = this.overlayRole || 'dialog';
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (props.has('modeless')) {
|
|
121
|
+
if (!this.modeless) {
|
|
122
|
+
this.setAttribute('aria-modal', 'true');
|
|
123
|
+
} else {
|
|
124
|
+
this.removeAttribute('aria-modal');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
105
127
|
}
|
|
106
128
|
|
|
107
129
|
/** @private */
|
|
@@ -95,7 +95,8 @@ export const DialogDraggableMixin = (superClass) =>
|
|
|
95
95
|
window.addEventListener('touchmove', this._drag);
|
|
96
96
|
if (this.$.overlay.$.overlay.style.position !== 'absolute') {
|
|
97
97
|
const { top, left } = this._originalBounds;
|
|
98
|
-
this
|
|
98
|
+
this.top = top;
|
|
99
|
+
this.left = left;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
7
|
+
import { setOverlayStateAttribute } from '@vaadin/overlay/src/vaadin-overlay-utils.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* @polymerMixin
|
|
@@ -43,13 +44,24 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
43
44
|
];
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Override method from OverlayFocusMixin to use owner as content root
|
|
49
|
+
* @protected
|
|
50
|
+
* @override
|
|
51
|
+
*/
|
|
52
|
+
get _contentRoot() {
|
|
53
|
+
return this.owner;
|
|
54
|
+
}
|
|
55
|
+
|
|
46
56
|
/** @protected */
|
|
47
57
|
ready() {
|
|
48
58
|
super.ready();
|
|
49
59
|
|
|
50
60
|
// Update overflow attribute on resize
|
|
51
61
|
this.__resizeObserver = new ResizeObserver(() => {
|
|
52
|
-
|
|
62
|
+
requestAnimationFrame(() => {
|
|
63
|
+
this.__updateOverflow();
|
|
64
|
+
});
|
|
53
65
|
});
|
|
54
66
|
this.__resizeObserver.observe(this.$.resizerContainer);
|
|
55
67
|
|
|
@@ -57,6 +69,11 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
57
69
|
this.$.content.addEventListener('scroll', () => {
|
|
58
70
|
this.__updateOverflow();
|
|
59
71
|
});
|
|
72
|
+
|
|
73
|
+
// Update overflow attribute on content change
|
|
74
|
+
this.shadowRoot.addEventListener('slotchange', () => {
|
|
75
|
+
this.__updateOverflow();
|
|
76
|
+
});
|
|
60
77
|
}
|
|
61
78
|
|
|
62
79
|
/** @private */
|
|
@@ -99,8 +116,8 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
99
116
|
this._oldOpenedFooterHeader = opened;
|
|
100
117
|
|
|
101
118
|
// Set attributes here to update styles before detecting content overflow
|
|
102
|
-
this
|
|
103
|
-
this
|
|
119
|
+
setOverlayStateAttribute(this, 'has-header', !!headerRenderer);
|
|
120
|
+
setOverlayStateAttribute(this, 'has-footer', !!footerRenderer);
|
|
104
121
|
|
|
105
122
|
if (headerRendererChanged) {
|
|
106
123
|
if (headerRenderer) {
|
|
@@ -134,7 +151,7 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
134
151
|
|
|
135
152
|
/** @private */
|
|
136
153
|
_headerTitleChanged(headerTitle, opened) {
|
|
137
|
-
this
|
|
154
|
+
setOverlayStateAttribute(this, 'has-title', !!headerTitle);
|
|
138
155
|
|
|
139
156
|
if (opened && (headerTitle || this._oldHeaderTitle)) {
|
|
140
157
|
this.requestContentUpdate();
|
|
@@ -150,7 +167,7 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
150
167
|
this.headerTitleElement.setAttribute('slot', 'title');
|
|
151
168
|
this.headerTitleElement.classList.add('draggable');
|
|
152
169
|
}
|
|
153
|
-
this.appendChild(this.headerTitleElement);
|
|
170
|
+
this.owner.appendChild(this.headerTitleElement);
|
|
154
171
|
this.headerTitleElement.textContent = this.headerTitle;
|
|
155
172
|
} else if (this.headerTitleElement) {
|
|
156
173
|
this.headerTitleElement.remove();
|
|
@@ -167,7 +184,7 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
167
184
|
if (this.headerContainer) {
|
|
168
185
|
// If a new renderer has been set, make sure to reattach the container
|
|
169
186
|
if (!this.headerContainer.parentElement) {
|
|
170
|
-
this.appendChild(this.headerContainer);
|
|
187
|
+
this.owner.appendChild(this.headerContainer);
|
|
171
188
|
}
|
|
172
189
|
|
|
173
190
|
if (this.headerRenderer) {
|
|
@@ -179,7 +196,7 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
179
196
|
if (this.footerContainer) {
|
|
180
197
|
// If a new renderer has been set, make sure to reattach the container
|
|
181
198
|
if (!this.footerContainer.parentElement) {
|
|
182
|
-
this.appendChild(this.footerContainer);
|
|
199
|
+
this.owner.appendChild(this.footerContainer);
|
|
183
200
|
}
|
|
184
201
|
|
|
185
202
|
if (this.footerRenderer) {
|
|
@@ -211,25 +228,21 @@ export const DialogOverlayMixin = (superClass) =>
|
|
|
211
228
|
__updateOverflow() {
|
|
212
229
|
let overflow = '';
|
|
213
230
|
|
|
214
|
-
|
|
215
|
-
// Check for state attributes as extending components might not use renderers.
|
|
216
|
-
if (this.hasAttribute('has-header') || this.hasAttribute('has-footer') || this.headerTitle) {
|
|
217
|
-
const content = this.$.content;
|
|
231
|
+
const content = this.$.content;
|
|
218
232
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
233
|
+
if (content.scrollTop > 0) {
|
|
234
|
+
overflow += ' top';
|
|
235
|
+
}
|
|
222
236
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
237
|
+
if (content.scrollTop < content.scrollHeight - content.clientHeight) {
|
|
238
|
+
overflow += ' bottom';
|
|
226
239
|
}
|
|
227
240
|
|
|
228
241
|
const value = overflow.trim();
|
|
229
242
|
if (value.length > 0 && this.getAttribute('overflow') !== value) {
|
|
230
|
-
this
|
|
243
|
+
setOverlayStateAttribute(this, 'overflow', value);
|
|
231
244
|
} else if (value.length === 0 && this.hasAttribute('overflow')) {
|
|
232
|
-
this
|
|
245
|
+
setOverlayStateAttribute(this, 'overflow', null);
|
|
233
246
|
}
|
|
234
247
|
}
|
|
235
248
|
};
|
|
@@ -9,7 +9,7 @@ import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
|
9
9
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
10
10
|
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
11
11
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
12
|
-
import { dialogOverlayStyles } from './styles/vaadin-dialog-overlay-
|
|
12
|
+
import { dialogOverlayStyles } from './styles/vaadin-dialog-overlay-base-styles.js';
|
|
13
13
|
import { DialogOverlayMixin } from './vaadin-dialog-overlay-mixin.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -33,11 +33,20 @@ export class DialogOverlay extends DialogOverlayMixin(
|
|
|
33
33
|
return dialogOverlayStyles;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Override method from OverlayFocusMixin to use owner as focus trap root
|
|
38
|
+
* @protected
|
|
39
|
+
* @override
|
|
40
|
+
*/
|
|
41
|
+
get _focusTrapRoot() {
|
|
42
|
+
return this.owner;
|
|
43
|
+
}
|
|
44
|
+
|
|
36
45
|
/** @protected */
|
|
37
46
|
render() {
|
|
38
47
|
return html`
|
|
39
48
|
<div id="backdrop" part="backdrop" ?hidden="${!this.withBackdrop}"></div>
|
|
40
|
-
<div part="overlay" id="overlay"
|
|
49
|
+
<div part="overlay" id="overlay">
|
|
41
50
|
<section id="resizerContainer" class="resizer-container">
|
|
42
51
|
<header part="header">
|
|
43
52
|
<div part="title"><slot name="title"></slot></div>
|
|
@@ -27,7 +27,7 @@ export declare class DialogRendererMixinClass {
|
|
|
27
27
|
* and the elements created by the renderer will be placed next to
|
|
28
28
|
* each other, with the title coming first.
|
|
29
29
|
*
|
|
30
|
-
* When `headerTitle` is set, the attribute `has-title` is
|
|
30
|
+
* When `headerTitle` is set, the attribute `has-title` is set on the dialog.
|
|
31
31
|
* @attr {string} header-title
|
|
32
32
|
*/
|
|
33
33
|
headerTitle: string | null | undefined;
|
|
@@ -43,7 +43,7 @@ export declare class DialogRendererMixinClass {
|
|
|
43
43
|
* and the elements created by the renderer will be placed next to
|
|
44
44
|
* each other, with the title coming first.
|
|
45
45
|
*
|
|
46
|
-
* When `headerRenderer` is set, the attribute `has-header` is
|
|
46
|
+
* When `headerRenderer` is set, the attribute `has-header` is set on the dialog.
|
|
47
47
|
*/
|
|
48
48
|
headerRenderer: DialogRenderer | null | undefined;
|
|
49
49
|
|
|
@@ -54,7 +54,7 @@ export declare class DialogRendererMixinClass {
|
|
|
54
54
|
* - `root` The root container DOM element. Append your content to it.
|
|
55
55
|
* - `dialog` The reference to the `<vaadin-dialog>` element.
|
|
56
56
|
*
|
|
57
|
-
* When `footerRenderer` is set, the attribute `has-footer` is
|
|
57
|
+
* When `footerRenderer` is set, the attribute `has-footer` is set on the dialog.
|
|
58
58
|
*/
|
|
59
59
|
footerRenderer: DialogRenderer | null | undefined;
|
|
60
60
|
|
|
@@ -30,7 +30,7 @@ export const DialogRendererMixin = (superClass) =>
|
|
|
30
30
|
* and the elements created by the renderer will be placed next to
|
|
31
31
|
* each other, with the title coming first.
|
|
32
32
|
*
|
|
33
|
-
* When `headerTitle` is set, the attribute `has-title` is
|
|
33
|
+
* When `headerTitle` is set, the attribute `has-title` is set on the dialog.
|
|
34
34
|
* @attr {string} header-title
|
|
35
35
|
*/
|
|
36
36
|
headerTitle: String,
|
|
@@ -46,7 +46,7 @@ export const DialogRendererMixin = (superClass) =>
|
|
|
46
46
|
* and the elements created by the renderer will be placed next to
|
|
47
47
|
* each other, with the title coming first.
|
|
48
48
|
*
|
|
49
|
-
* When `headerRenderer` is set, the attribute `has-header` is
|
|
49
|
+
* When `headerRenderer` is set, the attribute `has-header` is set on the dialog.
|
|
50
50
|
* @type {DialogRenderer | undefined}
|
|
51
51
|
*/
|
|
52
52
|
headerRenderer: {
|
|
@@ -60,7 +60,7 @@ export const DialogRendererMixin = (superClass) =>
|
|
|
60
60
|
* - `root` The root container DOM element. Append your content to it.
|
|
61
61
|
* - `dialog` The reference to the `<vaadin-dialog>` element.
|
|
62
62
|
*
|
|
63
|
-
* When `footerRenderer` is set, the attribute `has-footer` is
|
|
63
|
+
* When `footerRenderer` is set, the attribute `has-footer` is set on the dialog.
|
|
64
64
|
* @type {DialogRenderer | undefined}
|
|
65
65
|
*/
|
|
66
66
|
footerRenderer: {
|
|
@@ -11,13 +11,13 @@ export declare function DialogSizeMixin<T extends Constructor<HTMLElement>>(
|
|
|
11
11
|
|
|
12
12
|
export declare class DialogSizeMixinClass {
|
|
13
13
|
/**
|
|
14
|
-
* Set the width of the
|
|
14
|
+
* Set the width of the dialog.
|
|
15
15
|
* If a unitless number is provided, pixels are assumed.
|
|
16
16
|
*/
|
|
17
17
|
width: string | null;
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Set the height of the
|
|
20
|
+
* Set the height of the dialog.
|
|
21
21
|
* If a unitless number is provided, pixels are assumed.
|
|
22
22
|
*/
|
|
23
23
|
height: string | null;
|
|
@@ -12,7 +12,7 @@ export const DialogSizeMixin = (superClass) =>
|
|
|
12
12
|
static get properties() {
|
|
13
13
|
return {
|
|
14
14
|
/**
|
|
15
|
-
* Set the width of the
|
|
15
|
+
* Set the width of the dialog.
|
|
16
16
|
* If a unitless number is provided, pixels are assumed.
|
|
17
17
|
*/
|
|
18
18
|
width: {
|
|
@@ -20,7 +20,7 @@ export const DialogSizeMixin = (superClass) =>
|
|
|
20
20
|
},
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Set the height of the
|
|
23
|
+
* Set the height of the dialog.
|
|
24
24
|
* If a unitless number is provided, pixels are assumed.
|
|
25
25
|
*/
|
|
26
26
|
height: {
|
package/src/vaadin-dialog.d.ts
CHANGED
|
@@ -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 { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
7
|
-
import { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';
|
|
8
7
|
import { ThemePropertyMixin } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';
|
|
9
8
|
import { DialogBaseMixin } from './vaadin-dialog-base-mixin.js';
|
|
10
9
|
import { DialogDraggableMixin } from './vaadin-dialog-draggable-mixin.js';
|
|
@@ -91,16 +90,13 @@ export type DialogEventMap = DialogCustomEventMap & HTMLElementEventMap;
|
|
|
91
90
|
*
|
|
92
91
|
* ### Styling
|
|
93
92
|
*
|
|
94
|
-
*
|
|
95
|
-
* themable component as the actual visible dialog overlay.
|
|
96
|
-
*
|
|
97
|
-
* See [`<vaadin-overlay>`](#/elements/vaadin-overlay) documentation.
|
|
98
|
-
* for `<vaadin-dialog-overlay>` parts.
|
|
99
|
-
*
|
|
100
|
-
* In addition to `<vaadin-overlay>` parts, the following parts are available for styling:
|
|
93
|
+
* The following shadow DOM parts are available for styling:
|
|
101
94
|
*
|
|
102
95
|
* Part name | Description
|
|
103
96
|
* -----------------|-------------------------------------------
|
|
97
|
+
* `backdrop` | Backdrop of the overlay
|
|
98
|
+
* `overlay` | The overlay container
|
|
99
|
+
* `content` | The overlay content
|
|
104
100
|
* `header` | Element wrapping title and header content
|
|
105
101
|
* `header-content` | Element wrapping the header content slot
|
|
106
102
|
* `title` | Element wrapping the title slot
|
|
@@ -115,9 +111,6 @@ export type DialogEventMap = DialogCustomEventMap & HTMLElementEventMap;
|
|
|
115
111
|
* `has-footer` | Set when the element has footer renderer
|
|
116
112
|
* `overflow` | Set to `top`, `bottom`, none or both
|
|
117
113
|
*
|
|
118
|
-
* Note: the `theme` attribute value set on `<vaadin-dialog>` is
|
|
119
|
-
* propagated to the internal `<vaadin-dialog-overlay>` component.
|
|
120
|
-
*
|
|
121
114
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
122
115
|
*
|
|
123
116
|
* @fires {CustomEvent} resize - Fired when the dialog resize is finished.
|
|
@@ -127,18 +120,9 @@ export type DialogEventMap = DialogCustomEventMap & HTMLElementEventMap;
|
|
|
127
120
|
*/
|
|
128
121
|
declare class Dialog extends DialogSizeMixin(
|
|
129
122
|
DialogDraggableMixin(
|
|
130
|
-
DialogResizableMixin(
|
|
131
|
-
DialogRendererMixin(DialogBaseMixin(OverlayClassMixin(ThemePropertyMixin(ElementMixin(HTMLElement))))),
|
|
132
|
-
),
|
|
123
|
+
DialogResizableMixin(DialogRendererMixin(DialogBaseMixin(ThemePropertyMixin(ElementMixin(HTMLElement))))),
|
|
133
124
|
),
|
|
134
125
|
) {
|
|
135
|
-
/**
|
|
136
|
-
* Set the `aria-label` attribute for assistive technologies like
|
|
137
|
-
* screen readers. An empty string value for this property (the
|
|
138
|
-
* default) means that the `aria-label` attribute is not present.
|
|
139
|
-
*/
|
|
140
|
-
ariaLabel: string;
|
|
141
|
-
|
|
142
126
|
addEventListener<K extends keyof DialogEventMap>(
|
|
143
127
|
type: K,
|
|
144
128
|
listener: (this: Dialog, ev: DialogEventMap[K]) => void,
|