@vaadin/login 24.2.0-alpha9 → 24.2.0-beta2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/login",
3
- "version": "24.2.0-alpha9",
3
+ "version": "24.2.0-beta2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -43,14 +43,14 @@
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-alpha9",
47
- "@vaadin/component-base": "24.2.0-alpha9",
48
- "@vaadin/overlay": "24.2.0-alpha9",
49
- "@vaadin/password-field": "24.2.0-alpha9",
50
- "@vaadin/text-field": "24.2.0-alpha9",
51
- "@vaadin/vaadin-lumo-styles": "24.2.0-alpha9",
52
- "@vaadin/vaadin-material-styles": "24.2.0-alpha9",
53
- "@vaadin/vaadin-themable-mixin": "24.2.0-alpha9"
46
+ "@vaadin/button": "24.2.0-beta2",
47
+ "@vaadin/component-base": "24.2.0-beta2",
48
+ "@vaadin/overlay": "24.2.0-beta2",
49
+ "@vaadin/password-field": "24.2.0-beta2",
50
+ "@vaadin/text-field": "24.2.0-beta2",
51
+ "@vaadin/vaadin-lumo-styles": "24.2.0-beta2",
52
+ "@vaadin/vaadin-material-styles": "24.2.0-beta2",
53
+ "@vaadin/vaadin-themable-mixin": "24.2.0-beta2"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@esm-bundle/chai": "^4.3.4",
@@ -61,5 +61,5 @@
61
61
  "web-types.json",
62
62
  "web-types.lit.json"
63
63
  ],
64
- "gitHead": "e9765733fea96542e379e02e6f42b07145893140"
64
+ "gitHead": "4b852f9a12d4dade7f0fb3c73b7212436cebf310"
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
- customElements.define(LoginFormWrapper.is, LoginFormWrapper);
75
+ defineCustomElement(LoginFormWrapper);
70
76
 
71
77
  export { LoginFormWrapper };
@@ -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
- customElements.define(LoginForm.is, LoginForm);
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
- // Wait for initial render on overlay initialization
113
- if (!this.$.vaadinLoginForm.$ && this.updateComplete) {
114
- await this.updateComplete;
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.$.vaadinLoginForm.$.vaadinLoginUsername.value = '';
118
- this.$.vaadinLoginForm.$.vaadinLoginPassword.value = '';
119
- this.disabled = false;
127
+ if (this._undoFieldsTeleport) {
128
+ this._undoFieldsTeleport();
129
+ }
120
130
 
121
- if (this._undoTeleport) {
122
- this._undoTeleport();
131
+ if (this._undoFooterTeleport) {
132
+ this._undoFooterTeleport();
123
133
  }
124
134
  } else {
125
- this._undoTeleport = this._teleport(this._getElementsToTeleport());
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(elements) {
136
- const teleported = Array.from(elements).map((e) => {
137
- return this.$.vaadinLoginOverlayWrapper.appendChild(e);
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
- while (teleported.length > 0) {
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
- customElements.define(LoginOverlayWrapper.is, LoginOverlayWrapper);
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<{ username: string; password: string }>;
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
- customElements.define(LoginOverlay.is, LoginOverlay);
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
- justify-content: space-around;
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-alpha9",
4
+ "version": "24.2.0-beta2",
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-alpha9/#/elements/vaadin-login-form)\ndocumentation for `<vaadin-login-form-wrapper>` stylable parts.",
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-beta2/#/elements/vaadin-login-form)\ndocumentation for `<vaadin-login-form-wrapper>` stylable parts.",
152
152
  "attributes": [
153
153
  {
154
154
  "name": "action",
@@ -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-alpha9",
4
+ "version": "24.2.0-beta2",
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-alpha9/#/elements/vaadin-login-form)\ndocumentation for `<vaadin-login-form-wrapper>` stylable parts.",
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-beta2/#/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
- );