@vaadin/login 24.2.0-alpha8 → 24.2.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 -11
- package/src/vaadin-login-form-mixin.js +32 -4
- package/src/vaadin-login-form-wrapper.js +7 -1
- package/src/vaadin-login-form.js +9 -7
- package/src/vaadin-login-overlay-mixin.js +36 -20
- package/src/vaadin-login-overlay-wrapper.js +2 -1
- package/src/vaadin-login-overlay.d.ts +5 -1
- package/src/vaadin-login-overlay.js +8 -1
- package/theme/lumo/vaadin-login-form-wrapper-styles.js +5 -0
- package/theme/lumo/vaadin-login-form.js +0 -1
- package/theme/material/vaadin-login-form-wrapper-styles.js +13 -1
- package/theme/material/vaadin-login-form.js +0 -1
- package/theme/material/vaadin-login-overlay-styles.js +1 -4
- package/web-types.json +2 -2
- package/web-types.lit.json +2 -2
- package/theme/lumo/vaadin-login-form-styles.js +0 -13
- package/theme/material/vaadin-login-form-styles.js +0 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/login",
|
|
3
|
-
"version": "24.2.0-
|
|
3
|
+
"version": "24.2.0-beta1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -43,23 +43,23 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
45
45
|
"@polymer/polymer": "^3.0.0",
|
|
46
|
-
"@vaadin/button": "24.2.0-
|
|
47
|
-
"@vaadin/component-base": "24.2.0-
|
|
48
|
-
"@vaadin/overlay": "24.2.0-
|
|
49
|
-
"@vaadin/password-field": "24.2.0-
|
|
50
|
-
"@vaadin/text-field": "24.2.0-
|
|
51
|
-
"@vaadin/vaadin-lumo-styles": "24.2.0-
|
|
52
|
-
"@vaadin/vaadin-material-styles": "24.2.0-
|
|
53
|
-
"@vaadin/vaadin-themable-mixin": "24.2.0-
|
|
46
|
+
"@vaadin/button": "24.2.0-beta1",
|
|
47
|
+
"@vaadin/component-base": "24.2.0-beta1",
|
|
48
|
+
"@vaadin/overlay": "24.2.0-beta1",
|
|
49
|
+
"@vaadin/password-field": "24.2.0-beta1",
|
|
50
|
+
"@vaadin/text-field": "24.2.0-beta1",
|
|
51
|
+
"@vaadin/vaadin-lumo-styles": "24.2.0-beta1",
|
|
52
|
+
"@vaadin/vaadin-material-styles": "24.2.0-beta1",
|
|
53
|
+
"@vaadin/vaadin-themable-mixin": "24.2.0-beta1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@esm-bundle/chai": "^4.3.4",
|
|
57
|
-
"@vaadin/testing-helpers": "^0.
|
|
57
|
+
"@vaadin/testing-helpers": "^0.5.0",
|
|
58
58
|
"sinon": "^13.0.2"
|
|
59
59
|
},
|
|
60
60
|
"web-types": [
|
|
61
61
|
"web-types.json",
|
|
62
62
|
"web-types.lit.json"
|
|
63
63
|
],
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "67c8eef57d1c59e7476e29adaf003cf4548878f2"
|
|
65
65
|
}
|
|
@@ -15,6 +15,12 @@ export const LoginFormMixin = (superClass) =>
|
|
|
15
15
|
return ['_errorChanged(error)'];
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
get _customFields() {
|
|
19
|
+
return [...this.$.vaadinLoginFormWrapper.children].filter((node) => {
|
|
20
|
+
return node.getAttribute('slot') === 'custom-form-area' && node.hasAttribute('name');
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
/** @protected */
|
|
19
25
|
async connectedCallback() {
|
|
20
26
|
super.connectedCallback();
|
|
@@ -47,13 +53,24 @@ export const LoginFormMixin = (superClass) =>
|
|
|
47
53
|
this.error = false;
|
|
48
54
|
this.disabled = true;
|
|
49
55
|
|
|
56
|
+
const detail = {
|
|
57
|
+
username: userName.value,
|
|
58
|
+
password: password.value,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const fields = this._customFields;
|
|
62
|
+
if (fields.length) {
|
|
63
|
+
detail.custom = {};
|
|
64
|
+
|
|
65
|
+
fields.forEach((field) => {
|
|
66
|
+
detail.custom[field.name] = field.value;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
50
70
|
const loginEventDetails = {
|
|
51
71
|
bubbles: true,
|
|
52
72
|
cancelable: true,
|
|
53
|
-
detail
|
|
54
|
-
username: userName.value,
|
|
55
|
-
password: password.value,
|
|
56
|
-
},
|
|
73
|
+
detail,
|
|
57
74
|
};
|
|
58
75
|
|
|
59
76
|
const firedEvent = this.dispatchEvent(new CustomEvent('login', loginEventDetails));
|
|
@@ -68,6 +85,17 @@ export const LoginFormMixin = (superClass) =>
|
|
|
68
85
|
}
|
|
69
86
|
}
|
|
70
87
|
|
|
88
|
+
/** @protected */
|
|
89
|
+
_onFormData(event) {
|
|
90
|
+
const { formData } = event;
|
|
91
|
+
|
|
92
|
+
if (this._customFields.length) {
|
|
93
|
+
this._customFields.forEach((field) => {
|
|
94
|
+
formData.append(field.name, field.value);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
71
99
|
/** @protected */
|
|
72
100
|
_handleInputKeydown(e) {
|
|
73
101
|
if (e.key === 'Enter') {
|
|
@@ -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 { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
7
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
7
8
|
import { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
8
9
|
import { loginFormWrapperStyles } from './vaadin-login-form-wrapper-styles.js';
|
|
9
10
|
|
|
@@ -30,9 +31,14 @@ class LoginFormWrapper extends ThemableMixin(PolymerElement) {
|
|
|
30
31
|
|
|
31
32
|
<slot name="form"></slot>
|
|
32
33
|
|
|
34
|
+
<slot name="custom-form-area"></slot>
|
|
35
|
+
|
|
36
|
+
<slot name="submit"></slot>
|
|
37
|
+
|
|
33
38
|
<slot name="forgot-password"></slot>
|
|
34
39
|
|
|
35
40
|
<div part="footer">
|
|
41
|
+
<slot name="footer"></slot>
|
|
36
42
|
<p>[[i18n.additionalInformation]]</p>
|
|
37
43
|
</div>
|
|
38
44
|
</section>
|
|
@@ -66,6 +72,6 @@ class LoginFormWrapper extends ThemableMixin(PolymerElement) {
|
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
74
|
|
|
69
|
-
|
|
75
|
+
defineCustomElement(LoginFormWrapper);
|
|
70
76
|
|
|
71
77
|
export { LoginFormWrapper };
|
package/src/vaadin-login-form.js
CHANGED
|
@@ -8,6 +8,7 @@ import '@vaadin/text-field/src/vaadin-text-field.js';
|
|
|
8
8
|
import '@vaadin/password-field/src/vaadin-password-field.js';
|
|
9
9
|
import './vaadin-login-form-wrapper.js';
|
|
10
10
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
11
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
11
12
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
12
13
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
13
14
|
import { LoginFormMixin } from './vaadin-login-form-mixin.js';
|
|
@@ -46,6 +47,7 @@ import { LoginFormMixin } from './vaadin-login-form-mixin.js';
|
|
|
46
47
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
47
48
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
48
49
|
*
|
|
50
|
+
* @customElement
|
|
49
51
|
* @extends HTMLElement
|
|
50
52
|
* @mixes ElementMixin
|
|
51
53
|
* @mixes ThemableMixin
|
|
@@ -59,8 +61,8 @@ class LoginForm extends LoginFormMixin(ElementMixin(ThemableMixin(PolymerElement
|
|
|
59
61
|
width: 100%;
|
|
60
62
|
}
|
|
61
63
|
</style>
|
|
62
|
-
<vaadin-login-form-wrapper theme$="[[_theme]]" error="[[error]]" i18n="[[i18n]]">
|
|
63
|
-
<form method="POST" action$="[[action]]" slot="form">
|
|
64
|
+
<vaadin-login-form-wrapper id="vaadinLoginFormWrapper" theme$="[[_theme]]" error="[[error]]" i18n="[[i18n]]">
|
|
65
|
+
<form method="POST" action$="[[action]]" on-formdata="_onFormData" slot="form">
|
|
64
66
|
<input id="csrf" type="hidden" />
|
|
65
67
|
<vaadin-text-field
|
|
66
68
|
name="username"
|
|
@@ -89,12 +91,12 @@ class LoginForm extends LoginFormMixin(ElementMixin(ThemableMixin(PolymerElement
|
|
|
89
91
|
>
|
|
90
92
|
<input type="password" slot="input" on-keyup="_handleInputKeyup" />
|
|
91
93
|
</vaadin-password-field>
|
|
92
|
-
|
|
93
|
-
<vaadin-button theme="primary contained submit" on-click="submit" disabled$="[[disabled]]">
|
|
94
|
-
[[i18n.form.submit]]
|
|
95
|
-
</vaadin-button>
|
|
96
94
|
</form>
|
|
97
95
|
|
|
96
|
+
<vaadin-button slot="submit" theme="primary contained submit" on-click="submit" disabled$="[[disabled]]">
|
|
97
|
+
[[i18n.form.submit]]
|
|
98
|
+
</vaadin-button>
|
|
99
|
+
|
|
98
100
|
<vaadin-button
|
|
99
101
|
slot="forgot-password"
|
|
100
102
|
theme="tertiary small"
|
|
@@ -121,6 +123,6 @@ class LoginForm extends LoginFormMixin(ElementMixin(ThemableMixin(PolymerElement
|
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
|
|
126
|
+
defineCustomElement(LoginForm);
|
|
125
127
|
|
|
126
128
|
export { LoginForm };
|
|
@@ -108,21 +108,39 @@ export const LoginOverlayMixin = (superClass) =>
|
|
|
108
108
|
|
|
109
109
|
/** @private */
|
|
110
110
|
async _onOpenedChange() {
|
|
111
|
+
const form = this.$.vaadinLoginForm;
|
|
112
|
+
|
|
113
|
+
// Wait for initial render on overlay initialization
|
|
114
|
+
if (!form.$ && this.updateComplete) {
|
|
115
|
+
await this.updateComplete;
|
|
116
|
+
}
|
|
117
|
+
|
|
111
118
|
if (!this.opened) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
119
|
+
form.$.vaadinLoginUsername.value = '';
|
|
120
|
+
form.$.vaadinLoginPassword.value = '';
|
|
121
|
+
this.disabled = false;
|
|
122
|
+
|
|
123
|
+
if (this._undoTitleTeleport) {
|
|
124
|
+
this._undoTitleTeleport();
|
|
115
125
|
}
|
|
116
126
|
|
|
117
|
-
this
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
if (this._undoFieldsTeleport) {
|
|
128
|
+
this._undoFieldsTeleport();
|
|
129
|
+
}
|
|
120
130
|
|
|
121
|
-
if (this.
|
|
122
|
-
this.
|
|
131
|
+
if (this._undoFooterTeleport) {
|
|
132
|
+
this._undoFooterTeleport();
|
|
123
133
|
}
|
|
124
134
|
} else {
|
|
125
|
-
this.
|
|
135
|
+
this._undoTitleTeleport = this._teleport('title', this.$.vaadinLoginOverlayWrapper);
|
|
136
|
+
|
|
137
|
+
this._undoFieldsTeleport = this._teleport(
|
|
138
|
+
'custom-form-area',
|
|
139
|
+
form.$.vaadinLoginFormWrapper,
|
|
140
|
+
form.querySelector('vaadin-button'),
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
this._undoFooterTeleport = this._teleport('footer', form.$.vaadinLoginFormWrapper);
|
|
126
144
|
|
|
127
145
|
// Overlay sets pointerEvents on body to `none`, which breaks LastPass popup
|
|
128
146
|
// Reverting it back to the previous state
|
|
@@ -132,20 +150,18 @@ export const LoginOverlayMixin = (superClass) =>
|
|
|
132
150
|
}
|
|
133
151
|
|
|
134
152
|
/** @private */
|
|
135
|
-
_teleport(
|
|
136
|
-
const teleported =
|
|
137
|
-
|
|
153
|
+
_teleport(slot, target, refNode) {
|
|
154
|
+
const teleported = [...this.querySelectorAll(`[slot="${slot}"]`)].map((el) => {
|
|
155
|
+
if (refNode) {
|
|
156
|
+
target.insertBefore(el, refNode);
|
|
157
|
+
} else {
|
|
158
|
+
target.appendChild(el);
|
|
159
|
+
}
|
|
160
|
+
return el;
|
|
138
161
|
});
|
|
139
162
|
// Function to undo the teleport
|
|
140
163
|
return () => {
|
|
141
|
-
|
|
142
|
-
this.appendChild(teleported.shift());
|
|
143
|
-
}
|
|
164
|
+
this.append(...teleported);
|
|
144
165
|
};
|
|
145
166
|
}
|
|
146
|
-
|
|
147
|
-
/** @private */
|
|
148
|
-
_getElementsToTeleport() {
|
|
149
|
-
return this.querySelectorAll('[slot=title]');
|
|
150
|
-
}
|
|
151
167
|
};
|
|
@@ -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 { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
7
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
7
8
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
8
9
|
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
9
10
|
import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
|
|
@@ -65,4 +66,4 @@ class LoginOverlayWrapper extends OverlayMixin(DirMixin(ThemableMixin(PolymerEle
|
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
defineCustomElement(LoginOverlayWrapper);
|
|
@@ -27,7 +27,11 @@ export type LoginOverlayErrorChangedEvent = CustomEvent<{ value: boolean }>;
|
|
|
27
27
|
/**
|
|
28
28
|
* Fired when a user submits the login.
|
|
29
29
|
*/
|
|
30
|
-
export type LoginOverlayLoginEvent = CustomEvent<{
|
|
30
|
+
export type LoginOverlayLoginEvent = CustomEvent<{
|
|
31
|
+
username: string;
|
|
32
|
+
password: string;
|
|
33
|
+
custom?: Record<string, unknown>;
|
|
34
|
+
}>;
|
|
31
35
|
|
|
32
36
|
export interface LoginOverlayCustomEventMap {
|
|
33
37
|
'description-changed': LoginOverlayDescriptionChangedEvent;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import './vaadin-login-form.js';
|
|
7
7
|
import './vaadin-login-overlay-wrapper.js';
|
|
8
8
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
9
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
9
10
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
10
11
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
11
12
|
import { LoginOverlayMixin } from './vaadin-login-overlay-mixin.js';
|
|
@@ -43,6 +44,7 @@ import { LoginOverlayMixin } from './vaadin-login-overlay-mixin.js';
|
|
|
43
44
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
44
45
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
45
46
|
*
|
|
47
|
+
* @customElement
|
|
46
48
|
* @extends HTMLElement
|
|
47
49
|
* @mixes ElementMixin
|
|
48
50
|
* @mixes ThemableMixin
|
|
@@ -75,6 +77,11 @@ class LoginOverlay extends LoginOverlayMixin(ElementMixin(ThemableMixin(PolymerE
|
|
|
75
77
|
on-forgot-password="_retargetEvent"
|
|
76
78
|
></vaadin-login-form>
|
|
77
79
|
</vaadin-login-overlay-wrapper>
|
|
80
|
+
|
|
81
|
+
<div hidden>
|
|
82
|
+
<slot name="custom-form-area"></slot>
|
|
83
|
+
<slot name="footer"></slot>
|
|
84
|
+
</div>
|
|
78
85
|
`;
|
|
79
86
|
}
|
|
80
87
|
|
|
@@ -83,6 +90,6 @@ class LoginOverlay extends LoginOverlayMixin(ElementMixin(ThemableMixin(PolymerE
|
|
|
83
90
|
}
|
|
84
91
|
}
|
|
85
92
|
|
|
86
|
-
|
|
93
|
+
defineCustomElement(LoginOverlay);
|
|
87
94
|
|
|
88
95
|
export { LoginOverlay };
|
|
@@ -17,6 +17,11 @@ const loginFormWrapper = css`
|
|
|
17
17
|
margin-top: calc(var(--lumo-font-size-xxxl) - var(--lumo-font-size-xxl));
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
::slotted([slot='submit']) {
|
|
21
|
+
margin-top: var(--lumo-space-l);
|
|
22
|
+
margin-bottom: var(--lumo-space-s);
|
|
23
|
+
}
|
|
24
|
+
|
|
20
25
|
::slotted([slot='forgot-password']) {
|
|
21
26
|
margin: var(--lumo-space-s) auto;
|
|
22
27
|
}
|
|
@@ -2,5 +2,4 @@ import '@vaadin/button/theme/lumo/vaadin-button.js';
|
|
|
2
2
|
import '@vaadin/text-field/theme/lumo/vaadin-text-field.js';
|
|
3
3
|
import '@vaadin/password-field/theme/lumo/vaadin-password-field.js';
|
|
4
4
|
import './vaadin-login-form-wrapper-styles.js';
|
|
5
|
-
import './vaadin-login-form-styles.js';
|
|
6
5
|
import '../../src/vaadin-login-form.js';
|
|
@@ -5,7 +5,6 @@ import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themab
|
|
|
5
5
|
const loginFormWrapper = css`
|
|
6
6
|
:host {
|
|
7
7
|
background: var(--material-background-color) linear-gradient(hsla(0, 0%, 100%, 0.3), hsla(0, 0%, 100%, 0.3));
|
|
8
|
-
min-height: 250px;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
[part='form'] {
|
|
@@ -22,6 +21,19 @@ const loginFormWrapper = css`
|
|
|
22
21
|
font-size: var(--material-h5-font-size);
|
|
23
22
|
}
|
|
24
23
|
|
|
24
|
+
::slotted([slot='submit']) {
|
|
25
|
+
margin-top: 3em;
|
|
26
|
+
margin-bottom: 2em;
|
|
27
|
+
flex-grow: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@media only screen and (max-width: 1023px) {
|
|
31
|
+
::slotted([slot='submit']) {
|
|
32
|
+
margin-top: 2.5em;
|
|
33
|
+
margin-bottom: 1em;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
25
37
|
::slotted([slot='forgot-password']) {
|
|
26
38
|
margin: 0.5rem auto;
|
|
27
39
|
padding-bottom: 12px;
|
|
@@ -2,5 +2,4 @@ import '@vaadin/button/theme/material/vaadin-button.js';
|
|
|
2
2
|
import '@vaadin/text-field/theme/material/vaadin-text-field.js';
|
|
3
3
|
import '@vaadin/password-field/theme/material/vaadin-password-field.js';
|
|
4
4
|
import './vaadin-login-form-wrapper-styles.js';
|
|
5
|
-
import './vaadin-login-form-styles.js';
|
|
6
5
|
import '../../src/vaadin-login-form.js';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import '@vaadin/vaadin-material-styles/color.js';
|
|
2
|
-
import './vaadin-login-form-styles.js';
|
|
3
2
|
import { overlay } from '@vaadin/vaadin-material-styles/mixins/overlay.js';
|
|
4
3
|
import { typography } from '@vaadin/vaadin-material-styles/typography.js';
|
|
5
4
|
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
@@ -338,9 +337,7 @@ const loginFormWrapper = css`
|
|
|
338
337
|
}
|
|
339
338
|
|
|
340
339
|
:host([theme~='with-overlay']) [part='form'] ::slotted(form) {
|
|
341
|
-
|
|
342
|
-
margin-top: 20px;
|
|
343
|
-
min-height: 250px;
|
|
340
|
+
margin-top: 15px;
|
|
344
341
|
}
|
|
345
342
|
}
|
|
346
343
|
|
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/login",
|
|
4
|
-
"version": "24.2.0-
|
|
4
|
+
"version": "24.2.0-beta1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
"name": "vaadin-login-overlay",
|
|
151
|
-
"description": "`<vaadin-login-overlay>` is a wrapper of the `<vaadin-login-form>` which opens a login form in an overlay and\nhaving an additional `brand` part for application title and description. Using `<vaadin-login-overlay>` allows\npassword managers to work with login form.\n\n```\n<vaadin-login-overlay opened></vaadin-login-overlay>\n```\n\n### Styling\n\nThe component doesn't have a shadowRoot, so the `<form>` and input fields can be styled from a global scope.\nUse `<vaadin-login-overlay-wrapper>` and `<vaadin-login-form-wrapper>` to apply styles.\n\nThe following shadow DOM parts of the `<vaadin-login-overlay-wrapper>` are available for styling:\n\nPart name | Description\n----------------|---------------------------------------------------------|\n`card` | Container for the entire component's content\n`brand` | Container for application title and description\n`form` | Container for the `<vaadin-login-form>` component\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n\nSee [`<vaadin-login-form>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-
|
|
151
|
+
"description": "`<vaadin-login-overlay>` is a wrapper of the `<vaadin-login-form>` which opens a login form in an overlay and\nhaving an additional `brand` part for application title and description. Using `<vaadin-login-overlay>` allows\npassword managers to work with login form.\n\n```\n<vaadin-login-overlay opened></vaadin-login-overlay>\n```\n\n### Styling\n\nThe component doesn't have a shadowRoot, so the `<form>` and input fields can be styled from a global scope.\nUse `<vaadin-login-overlay-wrapper>` and `<vaadin-login-form-wrapper>` to apply styles.\n\nThe following shadow DOM parts of the `<vaadin-login-overlay-wrapper>` are available for styling:\n\nPart name | Description\n----------------|---------------------------------------------------------|\n`card` | Container for the entire component's content\n`brand` | Container for application title and description\n`form` | Container for the `<vaadin-login-form>` component\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n\nSee [`<vaadin-login-form>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-login-form)\ndocumentation for `<vaadin-login-form-wrapper>` stylable parts.",
|
|
152
152
|
"attributes": [
|
|
153
153
|
{
|
|
154
154
|
"name": "action",
|
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/login",
|
|
4
|
-
"version": "24.2.0-
|
|
4
|
+
"version": "24.2.0-beta1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"name": "vaadin-login-overlay",
|
|
96
|
-
"description": "`<vaadin-login-overlay>` is a wrapper of the `<vaadin-login-form>` which opens a login form in an overlay and\nhaving an additional `brand` part for application title and description. Using `<vaadin-login-overlay>` allows\npassword managers to work with login form.\n\n```\n<vaadin-login-overlay opened></vaadin-login-overlay>\n```\n\n### Styling\n\nThe component doesn't have a shadowRoot, so the `<form>` and input fields can be styled from a global scope.\nUse `<vaadin-login-overlay-wrapper>` and `<vaadin-login-form-wrapper>` to apply styles.\n\nThe following shadow DOM parts of the `<vaadin-login-overlay-wrapper>` are available for styling:\n\nPart name | Description\n----------------|---------------------------------------------------------|\n`card` | Container for the entire component's content\n`brand` | Container for application title and description\n`form` | Container for the `<vaadin-login-form>` component\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n\nSee [`<vaadin-login-form>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-
|
|
96
|
+
"description": "`<vaadin-login-overlay>` is a wrapper of the `<vaadin-login-form>` which opens a login form in an overlay and\nhaving an additional `brand` part for application title and description. Using `<vaadin-login-overlay>` allows\npassword managers to work with login form.\n\n```\n<vaadin-login-overlay opened></vaadin-login-overlay>\n```\n\n### Styling\n\nThe component doesn't have a shadowRoot, so the `<form>` and input fields can be styled from a global scope.\nUse `<vaadin-login-overlay-wrapper>` and `<vaadin-login-form-wrapper>` to apply styles.\n\nThe following shadow DOM parts of the `<vaadin-login-overlay-wrapper>` are available for styling:\n\nPart name | Description\n----------------|---------------------------------------------------------|\n`card` | Container for the entire component's content\n`brand` | Container for application title and description\n`form` | Container for the `<vaadin-login-form>` component\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n\nSee [`<vaadin-login-form>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-login-form)\ndocumentation for `<vaadin-login-form-wrapper>` stylable parts.",
|
|
97
97
|
"extension": true,
|
|
98
98
|
"attributes": [
|
|
99
99
|
{
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/spacing.js';
|
|
2
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
3
|
-
|
|
4
|
-
registerStyles(
|
|
5
|
-
'vaadin-login-form',
|
|
6
|
-
css`
|
|
7
|
-
form > vaadin-button[theme~='submit'] {
|
|
8
|
-
margin-top: var(--lumo-space-l);
|
|
9
|
-
margin-bottom: var(--lumo-space-s);
|
|
10
|
-
}
|
|
11
|
-
`,
|
|
12
|
-
{ moduleId: 'lumo-login-form' },
|
|
13
|
-
);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
2
|
-
|
|
3
|
-
registerStyles(
|
|
4
|
-
'vaadin-login-form',
|
|
5
|
-
css`
|
|
6
|
-
form > vaadin-button[theme~='submit'] {
|
|
7
|
-
margin-top: 3em;
|
|
8
|
-
margin-bottom: 2em;
|
|
9
|
-
flex-grow: 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/* Small screen */
|
|
13
|
-
@media only screen and (max-width: 1023px) {
|
|
14
|
-
form > vaadin-button[theme~='submit'] {
|
|
15
|
-
margin-top: 2.5em;
|
|
16
|
-
margin-bottom: 1em;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
`,
|
|
20
|
-
{ moduleId: 'material-login-form' },
|
|
21
|
-
);
|