@vaadin/date-picker 25.0.0-alpha3 → 25.0.0-alpha4

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.
Files changed (29) hide show
  1. package/package.json +14 -12
  2. package/src/styles/vaadin-date-picker-base-styles.d.ts +8 -0
  3. package/src/styles/vaadin-date-picker-base-styles.js +28 -0
  4. package/src/styles/vaadin-date-picker-core-styles.d.ts +8 -0
  5. package/src/styles/vaadin-date-picker-overlay-base-styles.js +54 -0
  6. package/src/styles/vaadin-date-picker-overlay-content-base-styles.js +109 -0
  7. package/src/styles/vaadin-date-picker-overlay-content-core-styles.js +54 -0
  8. package/src/styles/vaadin-date-picker-year-base-styles.js +28 -0
  9. package/src/styles/vaadin-date-picker-year-core-styles.js +13 -0
  10. package/src/styles/vaadin-month-calendar-base-styles.js +145 -0
  11. package/src/vaadin-date-picker-helper.d.ts +5 -0
  12. package/src/vaadin-date-picker-month-scroller.js +2 -6
  13. package/src/vaadin-date-picker-overlay-content-mixin.js +5 -132
  14. package/src/vaadin-date-picker-overlay-content.js +13 -17
  15. package/src/vaadin-date-picker-overlay.js +6 -3
  16. package/src/vaadin-date-picker-year-scroller.js +3 -4
  17. package/src/vaadin-date-picker-year.js +32 -9
  18. package/src/vaadin-date-picker.d.ts +1 -5
  19. package/src/vaadin-date-picker.js +7 -7
  20. package/src/vaadin-infinite-scroller.js +1 -2
  21. package/src/vaadin-month-calendar.js +3 -2
  22. package/theme/lumo/vaadin-date-picker-overlay-content-styles.js +19 -44
  23. package/web-types.json +2 -2
  24. package/web-types.lit.json +2 -2
  25. package/src/vaadin-date-picker-overlay-content-styles.js +0 -68
  26. package/src/vaadin-date-picker-year-mixin.js +0 -35
  27. /package/src/{vaadin-date-picker-styles.js → styles/vaadin-date-picker-core-styles.js} +0 -0
  28. /package/src/{vaadin-date-picker-overlay-styles.js → styles/vaadin-date-picker-overlay-core-styles.js} +0 -0
  29. /package/src/{vaadin-month-calendar-styles.js → styles/vaadin-month-calendar-core-styles.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/date-picker",
3
- "version": "25.0.0-alpha3",
3
+ "version": "25.0.0-alpha4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -21,6 +21,8 @@
21
21
  "type": "module",
22
22
  "files": [
23
23
  "src",
24
+ "!src/styles/*-base-styles.d.ts",
25
+ "!src/styles/*-base-styles.js",
24
26
  "theme",
25
27
  "vaadin-*.d.ts",
26
28
  "vaadin-*.js",
@@ -35,19 +37,19 @@
35
37
  ],
36
38
  "dependencies": {
37
39
  "@open-wc/dedupe-mixin": "^1.3.0",
38
- "@vaadin/a11y-base": "25.0.0-alpha3",
39
- "@vaadin/button": "25.0.0-alpha3",
40
- "@vaadin/component-base": "25.0.0-alpha3",
41
- "@vaadin/field-base": "25.0.0-alpha3",
42
- "@vaadin/input-container": "25.0.0-alpha3",
43
- "@vaadin/overlay": "25.0.0-alpha3",
44
- "@vaadin/vaadin-lumo-styles": "25.0.0-alpha3",
45
- "@vaadin/vaadin-themable-mixin": "25.0.0-alpha3",
40
+ "@vaadin/a11y-base": "25.0.0-alpha4",
41
+ "@vaadin/button": "25.0.0-alpha4",
42
+ "@vaadin/component-base": "25.0.0-alpha4",
43
+ "@vaadin/field-base": "25.0.0-alpha4",
44
+ "@vaadin/input-container": "25.0.0-alpha4",
45
+ "@vaadin/overlay": "25.0.0-alpha4",
46
+ "@vaadin/vaadin-lumo-styles": "25.0.0-alpha4",
47
+ "@vaadin/vaadin-themable-mixin": "25.0.0-alpha4",
46
48
  "lit": "^3.0.0"
47
49
  },
48
50
  "devDependencies": {
49
- "@vaadin/chai-plugins": "25.0.0-alpha3",
50
- "@vaadin/test-runner-commands": "25.0.0-alpha3",
51
+ "@vaadin/chai-plugins": "25.0.0-alpha4",
52
+ "@vaadin/test-runner-commands": "25.0.0-alpha4",
51
53
  "@vaadin/testing-helpers": "^2.0.0",
52
54
  "sinon": "^18.0.0"
53
55
  },
@@ -55,5 +57,5 @@
55
57
  "web-types.json",
56
58
  "web-types.lit.json"
57
59
  ],
58
- "gitHead": "8367dd20a47f53ca5589ad349a8e286ec2673055"
60
+ "gitHead": "ce4421f0daf26027b863b91787a474e4cc264344"
59
61
  }
@@ -0,0 +1,8 @@
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 type { CSSResult } from 'lit';
7
+
8
+ export const datePickerStyles: CSSResult;
@@ -0,0 +1,28 @@
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 '@vaadin/component-base/src/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const datePickerStyles = css`
10
+ @layer base {
11
+ :host([opened]) {
12
+ pointer-events: auto;
13
+ }
14
+
15
+ :host([dir='rtl']) [part='input-field'] {
16
+ direction: ltr;
17
+ }
18
+
19
+ :host([dir='rtl']) [part='input-field'] ::slotted(input)::placeholder {
20
+ direction: rtl;
21
+ text-align: left;
22
+ }
23
+
24
+ [part='toggle-button']::before {
25
+ mask-image: var(--_vaadin-icon-calendar);
26
+ }
27
+ }
28
+ `;
@@ -0,0 +1,8 @@
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 type { CSSResult } from 'lit';
7
+
8
+ export const datePickerStyles: CSSResult;
@@ -0,0 +1,54 @@
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 datePickerOverlayStyles = css`
9
+ @layer base {
10
+ [part='overlay'] {
11
+ display: flex;
12
+ flex: auto;
13
+ max-height: var(--vaadin-date-picker-overlay-max-height, 30rem);
14
+ box-sizing: content-box;
15
+ width: var(
16
+ --vaadin-date-picker-overlay-width,
17
+ calc(
18
+ var(--vaadin-date-picker-date-width, 2rem) * 7 + var(--vaadin-date-picker-month-padding, 0.5rem) * 2 +
19
+ var(--vaadin-date-picker-year-scroller-width, 3rem)
20
+ )
21
+ );
22
+ cursor: default;
23
+ }
24
+
25
+ :host([fullscreen]) {
26
+ --vaadin-date-picker-date-width: calc(100% / 7);
27
+ }
28
+
29
+ :host([fullscreen]) [part='backdrop'] {
30
+ display: block;
31
+ }
32
+
33
+ :host([fullscreen]) [part='overlay'] {
34
+ border: none;
35
+ border-radius: 0;
36
+ max-height: 75vh;
37
+ width: 100%;
38
+ }
39
+
40
+ :host([week-numbers]) {
41
+ --_vaadin-date-picker-week-numbers-visible: 1;
42
+ }
43
+
44
+ [part~='content'] {
45
+ flex: auto;
46
+ }
47
+
48
+ @media (max-width: 450px), (max-height: 450px) {
49
+ :host {
50
+ inset: auto 0 0 !important;
51
+ }
52
+ }
53
+ }
54
+ `;
@@ -0,0 +1,109 @@
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 '@vaadin/component-base/src/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const overlayContentStyles = css`
10
+ @layer base {
11
+ :host {
12
+ display: grid;
13
+ grid-template-areas:
14
+ 'header header'
15
+ 'months years'
16
+ 'toolbar years';
17
+ grid-template-columns: minmax(0, 1fr) 0;
18
+ height: 100%;
19
+ outline: none;
20
+ overflow: hidden;
21
+ }
22
+
23
+ :host([desktop]) {
24
+ grid-template-columns: minmax(0, 1fr) auto;
25
+ }
26
+
27
+ :host([fullscreen][years-visible]) {
28
+ grid-template-columns: minmax(0, 1fr) auto;
29
+ }
30
+
31
+ [part='years-toggle-button'] {
32
+ display: inline-flex;
33
+ border: var(--vaadin-button-border, var(--vaadin-button-border-width, 1px) solid transparent);
34
+ border-radius: var(--vaadin-button-border-radius, var(--_vaadin-radius-m));
35
+ color: var(--vaadin-button-text-color, var(--_vaadin-button-text-color));
36
+ font-size: var(--vaadin-button-font-size, inherit);
37
+ font-weight: var(--vaadin-button-font-weight, 500);
38
+ height: var(--vaadin-button-height, auto);
39
+ line-height: var(--vaadin-button-line-height, inherit);
40
+ padding: var(--vaadin-button-padding, var(--_vaadin-padding-container));
41
+ cursor: var(--vaadin-clickable-cursor);
42
+ }
43
+
44
+ :host([years-visible]) [part='years-toggle-button'] {
45
+ background: var(--_vaadin-color-strong);
46
+ color: var(--_vaadin-background);
47
+ }
48
+
49
+ [hidden] {
50
+ display: none !important;
51
+ }
52
+
53
+ ::slotted([slot='months']) {
54
+ --vaadin-infinite-scroller-item-height: calc(
55
+ 16.5rem + var(--_vaadin-date-picker-week-numbers-visible, 0) *
56
+ (var(--vaadin-date-picker-week-number-font-size, 0.7rem) * 1.25 * 6)
57
+ );
58
+ }
59
+
60
+ :host([desktop]) ::slotted([slot='months']) {
61
+ border-bottom: 1px solid var(--_vaadin-border-color);
62
+ }
63
+
64
+ ::slotted([slot='years']) {
65
+ visibility: hidden;
66
+ background: var(--vaadin-date-picker-year-scroller-background, var(--_vaadin-background-container));
67
+ width: var(--vaadin-date-picker-year-scroller-width, 3rem);
68
+ box-sizing: border-box;
69
+ border-inline-start: 1px solid var(--vaadin-date-picker-year-scroller-border-color, var(--_vaadin-border-color));
70
+ overflow: visible;
71
+ min-height: 0;
72
+ clip-path: inset(0);
73
+ }
74
+
75
+ ::slotted([slot='years'])::before {
76
+ background: var(--vaadin-overlay-background, var(--_vaadin-background));
77
+ border: 1px solid var(--vaadin-date-picker-year-scroller-border-color, var(--_vaadin-border-color));
78
+ width: 1em;
79
+ height: 1em;
80
+ position: absolute;
81
+ left: auto;
82
+ z-index: 1;
83
+ rotate: 45deg;
84
+ translate: calc(-50% - 1px) -50%;
85
+ transform: none;
86
+ }
87
+
88
+ :host([dir='rtl']) ::slotted([slot='years'])::before {
89
+ translate: calc(50% + 1px) -50%;
90
+ }
91
+
92
+ :host([desktop]) ::slotted([slot='years']),
93
+ :host([years-visible]) ::slotted([slot='years']) {
94
+ visibility: visible;
95
+ }
96
+
97
+ [part='toolbar'] {
98
+ display: flex;
99
+ grid-area: toolbar;
100
+ justify-content: space-between;
101
+ padding: var(--vaadin-date-picker-toolbar-padding, var(--_vaadin-padding));
102
+ }
103
+
104
+ :host([fullscreen]) [part='toolbar'] {
105
+ grid-area: header;
106
+ border-bottom: 1px solid var(--_vaadin-border-color);
107
+ }
108
+ }
109
+ `;
@@ -0,0 +1,54 @@
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 overlayContentStyles = css`
9
+ :host {
10
+ display: grid;
11
+ grid-template-areas:
12
+ 'header header'
13
+ 'months years'
14
+ 'toolbar years';
15
+ grid-template-columns: minmax(0, 1fr) 0;
16
+ height: 100%;
17
+ outline: none;
18
+ }
19
+
20
+ :host([desktop]) {
21
+ grid-template-columns: minmax(0, 1fr) auto;
22
+ }
23
+
24
+ :host([fullscreen][years-visible]) {
25
+ grid-template-columns: minmax(0, 1fr) auto;
26
+ }
27
+
28
+ [hidden] {
29
+ display: none !important;
30
+ }
31
+
32
+ [part='years-toggle-button'] {
33
+ display: flex;
34
+ }
35
+
36
+ ::slotted([slot='years']) {
37
+ visibility: hidden;
38
+ }
39
+
40
+ :host([desktop]) ::slotted([slot='years']),
41
+ :host([years-visible]) ::slotted([slot='years']) {
42
+ visibility: visible;
43
+ }
44
+
45
+ [part='toolbar'] {
46
+ display: flex;
47
+ grid-area: toolbar;
48
+ justify-content: space-between;
49
+ }
50
+
51
+ :host([fullscreen]) [part='toolbar'] {
52
+ grid-area: header;
53
+ }
54
+ `;
@@ -0,0 +1,28 @@
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 '@vaadin/component-base/src/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const datePickerYearStyles = css`
10
+ @layer base {
11
+ :host {
12
+ display: block;
13
+ height: 100%;
14
+ }
15
+
16
+ [part='year-number'] {
17
+ align-items: center;
18
+ display: flex;
19
+ height: 50%;
20
+ justify-content: center;
21
+ transform: translateY(-50%);
22
+ }
23
+
24
+ :host([current]) [part='year-number'] {
25
+ color: var(--vaadin-date-picker-year-scroller-current-year-color, var(--_vaadin-color-strong));
26
+ }
27
+ }
28
+ `;
@@ -0,0 +1,13 @@
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 datePickerYearStyles = css`
9
+ :host {
10
+ display: block;
11
+ height: 100%;
12
+ }
13
+ `;
@@ -0,0 +1,145 @@
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 '@vaadin/component-base/src/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const monthCalendarStyles = css`
10
+ @layer base {
11
+ :host {
12
+ display: block;
13
+ padding: var(--vaadin-date-picker-month-padding, 0.5rem);
14
+ }
15
+
16
+ [part='month-header'] {
17
+ color: var(--vaadin-date-picker-month-header-color, var(--_vaadin-color-strong));
18
+ font-size: var(--vaadin-date-picker-month-header-font-size, 0.9375rem);
19
+ font-weight: var(--vaadin-date-picker-month-header-font-weight, 500);
20
+ line-height: inherit;
21
+ margin-bottom: 0.75rem;
22
+ text-align: center;
23
+ }
24
+
25
+ table {
26
+ border-collapse: collapse;
27
+ display: flex;
28
+ flex-direction: column;
29
+ }
30
+
31
+ tr {
32
+ display: flex;
33
+ flex-wrap: wrap;
34
+ }
35
+
36
+ [part~='weekday'] {
37
+ color: var(--vaadin-date-picker-weekday-color, inherit);
38
+ font-size: var(--vaadin-date-picker-weekday-font-size, 0.75rem);
39
+ font-weight: var(--vaadin-date-picker-weekday-font-weight, 500);
40
+ margin-bottom: 0.375rem;
41
+ width: var(--vaadin-date-picker-date-width, 2rem);
42
+ }
43
+
44
+ /* Week numbers are on a separate row, don't reserve space on weekday row. */
45
+ [part~='weekday']:empty {
46
+ display: none;
47
+ }
48
+
49
+ [part~='week-number'] {
50
+ color: var(--vaadin-date-picker-week-number-color, inherit);
51
+ font-size: var(--vaadin-date-picker-week-number-font-size, 0.7rem);
52
+ line-height: 1;
53
+ width: 100%;
54
+ margin-top: 0.125em;
55
+ margin-bottom: 0.125em;
56
+ gap: 0.25em;
57
+ }
58
+
59
+ [part~='week-number']::after {
60
+ content: '';
61
+ height: 1px;
62
+ flex: 1;
63
+ background: var(
64
+ --vaadin-date-picker-week-divider-color,
65
+ var(--vaadin-divider-color, var(--_vaadin-border-color))
66
+ );
67
+ }
68
+
69
+ [part~='weekday'],
70
+ [part~='week-number'],
71
+ [part~='date'] {
72
+ align-items: center;
73
+ display: flex;
74
+ justify-content: center;
75
+ padding: 0;
76
+ }
77
+
78
+ [part~='date'] {
79
+ border-radius: var(--vaadin-date-picker-date-border-radius, var(--_vaadin-radius-m));
80
+ position: relative;
81
+ width: var(--vaadin-date-picker-date-width, 2rem);
82
+ height: var(--vaadin-date-picker-date-height, 2rem);
83
+ cursor: var(--vaadin-clickable-cursor);
84
+ outline: none;
85
+ }
86
+
87
+ [part~='date']::after {
88
+ border-radius: inherit;
89
+ content: '';
90
+ position: absolute;
91
+ z-index: -1;
92
+ height: inherit;
93
+ aspect-ratio: 1;
94
+ }
95
+
96
+ :where([part~='date']:focus)::after {
97
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
98
+ outline-offset: calc(var(--vaadin-focus-ring-width) * -1);
99
+ }
100
+
101
+ [part~='today'] {
102
+ color: var(--vaadin-date-picker-date-today-color, var(--_vaadin-color-strong));
103
+ }
104
+
105
+ [part~='selected'] {
106
+ color: var(--vaadin-date-picker-date-selected-color, var(--_vaadin-background));
107
+ }
108
+
109
+ [part~='selected']::after {
110
+ background: var(--vaadin-date-picker-date-selected-background, var(--_vaadin-color-strong));
111
+ outline-offset: 1px;
112
+ }
113
+
114
+ [disabled] {
115
+ cursor: var(--vaadin-disabled-cursor);
116
+ color: var(--vaadin-date-picker-date-disabled-color, var(--_vaadin-color-subtle));
117
+ opacity: 0.7;
118
+ }
119
+
120
+ [hidden] {
121
+ display: none;
122
+ }
123
+
124
+ @media (forced-colors: active) {
125
+ [part~='week-number']::after {
126
+ background: CanvasText;
127
+ }
128
+
129
+ [part~='today'] {
130
+ font-weight: 600;
131
+ }
132
+
133
+ [part~='selected'] {
134
+ forced-color-adjust: none;
135
+ --vaadin-date-picker-date-selected-color: SelectedItemText;
136
+ color: SelectedItemText !important;
137
+ --vaadin-date-picker-date-selected-background: SelectedItem;
138
+ }
139
+
140
+ [disabled] {
141
+ color: GrayText !important;
142
+ }
143
+ }
144
+ }
145
+ `;
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2000 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
1
6
  import type { DatePickerDate } from './vaadin-date-picker-mixin.js';
2
7
 
3
8
  /**
@@ -12,12 +12,8 @@ stylesTemplate.innerHTML = `
12
12
  <style>
13
13
  :host {
14
14
  --vaadin-infinite-scroller-item-height: 270px;
15
- position: absolute;
16
- top: 0;
17
- left: 0;
18
- right: 0;
19
- bottom: 0;
20
- height: 100%;
15
+ grid-area: months;
16
+ height: auto;
21
17
  }
22
18
  </style>
23
19
  `;