@vaadin/notification 25.0.0-alpha10 → 25.0.0-alpha12

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/notification",
3
- "version": "25.0.0-alpha10",
3
+ "version": "25.0.0-alpha12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,7 +23,6 @@
23
23
  "lit.d.ts",
24
24
  "lit.js",
25
25
  "src",
26
- "theme",
27
26
  "vaadin-*.d.ts",
28
27
  "vaadin-*.js",
29
28
  "web-types.json",
@@ -37,22 +36,22 @@
37
36
  ],
38
37
  "dependencies": {
39
38
  "@open-wc/dedupe-mixin": "^1.3.0",
40
- "@vaadin/component-base": "25.0.0-alpha10",
41
- "@vaadin/lit-renderer": "25.0.0-alpha10",
42
- "@vaadin/vaadin-lumo-styles": "25.0.0-alpha10",
43
- "@vaadin/vaadin-themable-mixin": "25.0.0-alpha10",
39
+ "@vaadin/component-base": "25.0.0-alpha12",
40
+ "@vaadin/lit-renderer": "25.0.0-alpha12",
41
+ "@vaadin/vaadin-themable-mixin": "25.0.0-alpha12",
44
42
  "lit": "^3.0.0"
45
43
  },
46
44
  "devDependencies": {
47
- "@vaadin/button": "25.0.0-alpha10",
48
- "@vaadin/chai-plugins": "25.0.0-alpha10",
49
- "@vaadin/test-runner-commands": "25.0.0-alpha10",
45
+ "@vaadin/button": "25.0.0-alpha12",
46
+ "@vaadin/chai-plugins": "25.0.0-alpha12",
47
+ "@vaadin/test-runner-commands": "25.0.0-alpha12",
50
48
  "@vaadin/testing-helpers": "^2.0.0",
49
+ "@vaadin/vaadin-lumo-styles": "25.0.0-alpha12",
51
50
  "sinon": "^18.0.0"
52
51
  },
53
52
  "web-types": [
54
53
  "web-types.json",
55
54
  "web-types.lit.json"
56
55
  ],
57
- "gitHead": "6cc6c94079e805fa5b2f0af4dbf3b2a7485e57d0"
56
+ "gitHead": "e75527348f9ba7c363d068c868b9f030c15b84a1"
58
57
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright (c) 2000 - 2025 Vaadin Ltd.
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
6
  import type { CSSResult } from 'lit';
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2017 - 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 notificationCardStyles = css`
10
+ :host {
11
+ display: block;
12
+ }
13
+
14
+ [part='overlay'] {
15
+ pointer-events: auto;
16
+ box-sizing: border-box;
17
+ width: var(--vaadin-notification-width, 40ch);
18
+ max-width: 100%;
19
+ padding: var(--vaadin-notification-padding, var(--vaadin-padding));
20
+ background: var(--vaadin-notification-background, var(--vaadin-background-container));
21
+ border: var(--vaadin-notification-border-width, 1px) solid
22
+ var(--vaadin-notification-border-color, var(--vaadin-border-color));
23
+ box-shadow: var(--vaadin-notification-shadow, 0 8px 24px -4px rgba(0, 0, 0, 0.3));
24
+ border-radius: var(--vaadin-notification-border-radius, var(--vaadin-radius-l));
25
+ cursor: default;
26
+ }
27
+
28
+ @media (forced-colors: active) {
29
+ [part='overlay'] {
30
+ border: 3px solid;
31
+ }
32
+ }
33
+ `;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright (c) 2000 - 2025 Vaadin Ltd.
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
6
  import type { CSSResult } from 'lit';
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2017 - 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 notificationContainerStyles = css`
10
+ :host {
11
+ /* How much space to reserve for overlay box shadow, to prevent clipping it with overflow:auto */
12
+ --_paint-area: 2em;
13
+ /* Space between notifications and the viewport */
14
+ --_padding: var(--vaadin-notification-viewport-inset, var(--vaadin-padding));
15
+ /* Space between notifications */
16
+ --_gap: var(--vaadin-notification-gap, var(--vaadin-gap-container-block));
17
+ display: grid;
18
+ /* top-stretch, top and bottom regions, bottom-stretch */
19
+ grid-template-rows: auto 1fr auto;
20
+ box-sizing: border-box;
21
+ width: 100%;
22
+ height: 100%;
23
+ overflow: hidden;
24
+ padding: var(--_padding);
25
+ border: 0;
26
+ background: transparent;
27
+ pointer-events: none;
28
+ interpolate-size: allow-keywords;
29
+ }
30
+
31
+ :host > * {
32
+ grid-column: 1;
33
+ }
34
+
35
+ [region-group] {
36
+ position: relative;
37
+ grid-row: 2 / 3;
38
+ }
39
+
40
+ [region] {
41
+ max-width: 100%;
42
+ max-height: 100%;
43
+ pointer-events: auto;
44
+ scrollbar-width: none;
45
+ }
46
+
47
+ /* scrollbar-width is supported since Safari 18.2, use the following for earlier */
48
+ [region]::-webkit-scrollbar {
49
+ display: none;
50
+ }
51
+
52
+ [region='top-stretch'] {
53
+ grid-row: 1;
54
+ z-index: 2;
55
+ --vaadin-notification-width: 100%;
56
+ }
57
+
58
+ [region='bottom-stretch'] {
59
+ grid-row: 3;
60
+ z-index: 2;
61
+ --vaadin-notification-width: 100%;
62
+ }
63
+
64
+ [region='middle'],
65
+ [region-group] > [region] {
66
+ position: absolute;
67
+ }
68
+
69
+ [region='middle'] {
70
+ position: fixed;
71
+ top: 50%;
72
+ left: 50%;
73
+ translate: -50% -50%;
74
+ max-width: calc(100% - var(--_padding) * 2);
75
+ }
76
+
77
+ [region]:where(:hover, :focus-within) {
78
+ z-index: 1;
79
+ overflow: auto;
80
+ overscroll-behavior: contain;
81
+ padding: var(--_paint-area);
82
+ }
83
+
84
+ [region]:not([region='middle'], [region$='center']):where(:hover, :focus-within) {
85
+ margin-inline: calc(var(--_paint-area) * -1);
86
+ }
87
+
88
+ [region]:not([region='middle']):where(:hover, :focus-within) {
89
+ margin-block: calc(var(--_paint-area) * -1);
90
+ }
91
+
92
+ [region-group='top'] > [region] {
93
+ top: 0;
94
+ }
95
+
96
+ [region-group='bottom'] > [region] {
97
+ bottom: 0;
98
+ }
99
+
100
+ [region-group] > [region$='start'] {
101
+ inset-inline-start: 0;
102
+ }
103
+
104
+ [region-group] > [region$='center'] {
105
+ left: 50%;
106
+ translate: -50%;
107
+ }
108
+
109
+ [region-group] > [region$='end'] {
110
+ inset-inline-end: 0;
111
+ }
112
+
113
+ ::slotted(*) {
114
+ margin-bottom: var(--_gap);
115
+ }
116
+
117
+ :is([region^='bottom'], [region='middle']) ::slotted(*) {
118
+ margin-top: var(--_gap);
119
+ margin-bottom: 0;
120
+ }
121
+ `;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright (c) 2000 - 2025 Vaadin Ltd.
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
6
  import type { Constructor } from '@open-wc/dedupe-mixin';
@@ -10,8 +10,8 @@ import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
10
10
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
11
11
  import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
12
12
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
13
- import { notificationCardStyles } from './styles/vaadin-notification-card-core-styles.js';
14
- import { notificationContainerStyles } from './styles/vaadin-notification-container-core-styles.js';
13
+ import { notificationCardStyles } from './styles/vaadin-notification-card-base-styles.js';
14
+ import { notificationContainerStyles } from './styles/vaadin-notification-container-base-styles.js';
15
15
  import { NotificationContainerMixin, NotificationMixin } from './vaadin-notification-mixin.js';
16
16
 
17
17
  /**
@@ -1,2 +1,2 @@
1
- import './theme/lumo/vaadin-notification.js';
1
+ import './src/vaadin-notification.js';
2
2
  export * from './src/vaadin-notification.js';
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/notification",
4
- "version": "25.0.0-alpha10",
4
+ "version": "25.0.0-alpha12",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/notification",
4
- "version": "25.0.0-alpha10",
4
+ "version": "25.0.0-alpha12",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {
@@ -1,22 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 - 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 'lit';
7
-
8
- export const notificationCardStyles = css`
9
- :host {
10
- display: block;
11
- }
12
-
13
- [part='overlay'] {
14
- pointer-events: auto;
15
- }
16
-
17
- @media (forced-colors: active) {
18
- [part='overlay'] {
19
- outline: 3px solid;
20
- }
21
- }
22
- `;
@@ -1,62 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 - 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 'lit';
7
-
8
- export const notificationContainerStyles = css`
9
- :host {
10
- position: fixed;
11
- inset: 0;
12
- box-sizing: border-box;
13
- display: flex;
14
- flex-direction: column;
15
- align-items: stretch;
16
- pointer-events: none;
17
-
18
- /* Override native [popover] user agent styles */
19
- width: auto;
20
- height: auto;
21
- border: none;
22
- padding: 0;
23
- background-color: transparent;
24
- overflow: visible;
25
- }
26
-
27
- [region-group] {
28
- flex: 1 1 0%;
29
- display: flex;
30
- }
31
-
32
- [region-group='top'] {
33
- align-items: flex-start;
34
- }
35
-
36
- [region-group='bottom'] {
37
- align-items: flex-end;
38
- }
39
-
40
- [region-group] > [region] {
41
- flex: 1 1 0%;
42
- }
43
-
44
- @media (max-width: 420px) {
45
- [region-group] {
46
- flex-direction: column;
47
- align-items: stretch;
48
- }
49
-
50
- [region-group='top'] {
51
- justify-content: flex-start;
52
- }
53
-
54
- [region-group='bottom'] {
55
- justify-content: flex-end;
56
- }
57
-
58
- [region-group] > [region] {
59
- flex: initial;
60
- }
61
- }
62
- `;
@@ -1,4 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/spacing.js';
3
- import '@vaadin/vaadin-lumo-styles/style.js';
4
- import '@vaadin/vaadin-lumo-styles/typography.js';
@@ -1,225 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/spacing.js';
3
- import '@vaadin/vaadin-lumo-styles/style.js';
4
- import '@vaadin/vaadin-lumo-styles/typography.js';
5
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
6
-
7
- registerStyles(
8
- 'vaadin-notification-card',
9
- css`
10
- :host {
11
- position: relative;
12
- margin: var(--lumo-space-s);
13
- }
14
-
15
- [part='overlay'] {
16
- background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
17
- border-radius: var(--lumo-border-radius-l);
18
- box-shadow:
19
- 0 0 0 1px var(--lumo-contrast-10pct),
20
- var(--lumo-box-shadow-l);
21
- font-family: var(--lumo-font-family);
22
- font-size: var(--lumo-font-size-m);
23
- font-weight: 400;
24
- line-height: var(--lumo-line-height-s);
25
- letter-spacing: 0;
26
- text-transform: none;
27
- -webkit-text-size-adjust: 100%;
28
- -webkit-font-smoothing: antialiased;
29
- -moz-osx-font-smoothing: grayscale;
30
- }
31
-
32
- [part='content'] {
33
- padding: var(--lumo-space-wide-l);
34
- display: flex;
35
- align-items: center;
36
- justify-content: space-between;
37
- }
38
-
39
- [part='content'] ::slotted(vaadin-button) {
40
- flex: none;
41
- margin: 0 calc(var(--lumo-space-s) * -1) 0 var(--lumo-space-m);
42
- }
43
-
44
- :host([slot^='middle']) {
45
- max-width: 80vw;
46
- margin: var(--lumo-space-s) auto;
47
- }
48
-
49
- :host([slot$='stretch']) {
50
- margin: 0;
51
- }
52
-
53
- :host([slot$='stretch']) [part='overlay'] {
54
- border-radius: 0;
55
- }
56
-
57
- @media (min-width: 421px) {
58
- :host(:not([slot$='stretch'])) {
59
- display: flex;
60
- }
61
-
62
- :host([slot$='end']) {
63
- justify-content: flex-end;
64
- }
65
-
66
- :host([slot^='middle']),
67
- :host([slot$='center']) {
68
- display: flex;
69
- justify-content: center;
70
- }
71
- }
72
-
73
- @keyframes lumo-notification-exit-fade-out {
74
- 100% {
75
- opacity: 0;
76
- }
77
- }
78
-
79
- @keyframes lumo-notification-enter-fade-in {
80
- 0% {
81
- opacity: 0;
82
- }
83
- }
84
-
85
- @keyframes lumo-notification-enter-slide-down {
86
- 0% {
87
- transform: translateY(-200%);
88
- opacity: 0;
89
- }
90
- }
91
-
92
- @keyframes lumo-notification-exit-slide-up {
93
- 100% {
94
- transform: translateY(-200%);
95
- opacity: 0;
96
- }
97
- }
98
-
99
- @keyframes lumo-notification-enter-slide-up {
100
- 0% {
101
- transform: translateY(200%);
102
- opacity: 0;
103
- }
104
- }
105
-
106
- @keyframes lumo-notification-exit-slide-down {
107
- 100% {
108
- transform: translateY(200%);
109
- opacity: 0;
110
- }
111
- }
112
-
113
- :host([slot='middle'][opening]) {
114
- animation: lumo-notification-enter-fade-in 300ms;
115
- }
116
-
117
- :host([slot='middle'][closing]) {
118
- animation: lumo-notification-exit-fade-out 300ms;
119
- }
120
-
121
- :host([slot^='top'][opening]) {
122
- animation: lumo-notification-enter-slide-down 300ms;
123
- }
124
-
125
- :host([slot^='top'][closing]) {
126
- animation: lumo-notification-exit-slide-up 300ms;
127
- }
128
-
129
- :host([slot^='bottom'][opening]) {
130
- animation: lumo-notification-enter-slide-up 300ms;
131
- }
132
-
133
- :host([slot^='bottom'][closing]) {
134
- animation: lumo-notification-exit-slide-down 300ms;
135
- }
136
-
137
- :host([theme='success']) {
138
- --_focus-ring-gap-color: var(--lumo-success-color);
139
- --vaadin-focus-ring-color: var(--lumo-success-contrast-color);
140
- }
141
-
142
- :host([theme='warning']) {
143
- --_focus-ring-gap-color: var(--lumo-warning-color);
144
- --vaadin-focus-ring-color: var(--lumo-warning-contrast-color);
145
- }
146
-
147
- :host([theme='error']) {
148
- --_focus-ring-gap-color: var(--lumo-error-color);
149
- --vaadin-focus-ring-color: var(--lumo-error-contrast-color);
150
- }
151
-
152
- :host([theme='primary']) {
153
- --_focus-ring-gap-color: var(--lumo-primary-color);
154
- --vaadin-focus-ring-color: var(--lumo-primary-contrast-color);
155
- }
156
-
157
- :host([theme~='primary']) [part='overlay'] {
158
- background: var(--lumo-primary-color);
159
- color: var(--lumo-primary-contrast-color);
160
- box-shadow: var(--lumo-box-shadow-l);
161
- }
162
-
163
- :host([theme~='primary']) {
164
- --vaadin-button-background: var(--lumo-shade-20pct);
165
- --vaadin-button-text-color: var(--lumo-primary-contrast-color);
166
- --vaadin-button-primary-background: var(--lumo-primary-contrast-color);
167
- --vaadin-button-primary-text-color: var(--lumo-primary-text-color);
168
- }
169
-
170
- :host([theme~='contrast']) [part='overlay'] {
171
- background: var(--lumo-contrast);
172
- color: var(--lumo-base-color);
173
- box-shadow: var(--lumo-box-shadow-l);
174
- }
175
-
176
- :host([theme~='contrast']) {
177
- --vaadin-button-background: var(--lumo-contrast-20pct);
178
- --vaadin-button-text-color: var(--lumo-base-color);
179
- --vaadin-button-primary-background: var(--lumo-base-color);
180
- --vaadin-button-primary-text-color: var(--lumo-contrast);
181
- }
182
-
183
- :host([theme~='success']) [part='overlay'] {
184
- background: var(--lumo-success-color);
185
- color: var(--lumo-success-contrast-color);
186
- box-shadow: var(--lumo-box-shadow-l);
187
- }
188
-
189
- :host([theme~='success']) {
190
- --vaadin-button-background: var(--lumo-shade-20pct);
191
- --vaadin-button-text-color: var(--lumo-success-contrast-color);
192
- --vaadin-button-primary-background: var(--lumo-success-contrast-color);
193
- --vaadin-button-primary-text-color: var(--lumo-success-text-color);
194
- }
195
-
196
- :host([theme~='error']) [part='overlay'] {
197
- background: var(--lumo-error-color);
198
- color: var(--lumo-error-contrast-color);
199
- box-shadow: var(--lumo-box-shadow-l);
200
- }
201
-
202
- :host([theme~='error']) {
203
- --vaadin-button-background: var(--lumo-shade-20pct);
204
- --vaadin-button-text-color: var(--lumo-error-contrast-color);
205
- --vaadin-button-primary-background: var(--lumo-error-contrast-color);
206
- --vaadin-button-primary-text-color: var(--lumo-error-text-color);
207
- }
208
-
209
- :host([theme~='warning']) [part='overlay'] {
210
- background: var(--lumo-warning-color);
211
- color: var(--lumo-warning-contrast-color);
212
- box-shadow:
213
- inset 0 0 0 1px var(--lumo-contrast-20pct),
214
- var(--lumo-box-shadow-l);
215
- }
216
-
217
- :host([theme~='warning']) {
218
- --vaadin-button-background: var(--lumo-shade-20pct);
219
- --vaadin-button-text-color: var(--lumo-warning-contrast-color);
220
- --vaadin-button-primary-background: var(--lumo-shade-50pct);
221
- --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);
222
- }
223
- `,
224
- { moduleId: 'lumo-notification-card' },
225
- );
@@ -1,2 +0,0 @@
1
- import './vaadin-notification-styles.js';
2
- import '../../src/vaadin-notification.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-notification-styles.js';
2
- import '../../src/vaadin-notification.js';