kalendly 0.2.2 → 0.3.1
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/README.md +303 -45
- package/dist/core/index.d.mts +57 -10
- package/dist/core/index.d.ts +57 -10
- package/dist/core/index.js +159 -31
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +147 -30
- package/dist/core/index.mjs.map +1 -1
- package/dist/index.d.mts +86 -10
- package/dist/index.d.ts +86 -10
- package/dist/index.js +525 -178
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +513 -177
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +499 -174
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/calendar.css +457 -392
- package/package.json +1 -1
package/dist/styles/calendar.css
CHANGED
|
@@ -1,31 +1,142 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
|
|
2
|
+
/* Primitives — raw palette. The semantic tokens below are the API. */
|
|
3
|
+
--kal-white: #fff;
|
|
4
|
+
--kal-gray-50: #f8f9fa;
|
|
5
|
+
--kal-gray-100: #f3f4f6;
|
|
6
|
+
--kal-gray-150: #f0f0f0;
|
|
7
|
+
--kal-gray-200: #e8e8e8;
|
|
8
|
+
--kal-gray-300: #dee2e6;
|
|
9
|
+
--kal-gray-500: #6b7280;
|
|
10
|
+
--kal-gray-600: #4b5563;
|
|
11
|
+
--kal-slate-800: #2c3e50;
|
|
12
|
+
--kal-red-100: #fee2e2;
|
|
13
|
+
--kal-red-500: #ef4444;
|
|
14
|
+
--kal-red-600: #dc2626;
|
|
15
|
+
--kal-green-100: #dcfce7;
|
|
16
|
+
--kal-green-200: #bbf7d0;
|
|
17
|
+
--kal-green-300: #86efac;
|
|
18
|
+
--kal-green-600: #16a34a;
|
|
19
|
+
--kal-green-700: #15803d;
|
|
20
|
+
--kal-emerald-100: #d1fae5;
|
|
21
|
+
--kal-emerald-600: #059669;
|
|
22
|
+
--kal-amber-100: #fef3c7;
|
|
23
|
+
--kal-amber-600: #d97706;
|
|
24
|
+
--kal-yellow-400: #f7db04;
|
|
25
|
+
--kal-blue-50: #eff6ff;
|
|
26
|
+
--kal-blue-100: #dbeafe;
|
|
27
|
+
--kal-blue-500: #1890ff;
|
|
28
|
+
--kal-blue-600: #2563eb;
|
|
29
|
+
--kal-indigo-100: #e0e7ff;
|
|
30
|
+
--kal-indigo-600: #4f46e5;
|
|
31
|
+
--kal-orange-300: #fdb873;
|
|
32
|
+
--kal-orange-400: #fca045;
|
|
33
|
+
--kal-orange-500: #fc8917;
|
|
34
|
+
|
|
35
|
+
/* Brand */
|
|
36
|
+
--calendar-primary-color: var(--kal-orange-500);
|
|
3
37
|
--calendar-primary-color-rgb: 252, 137, 23;
|
|
4
|
-
--calendar-secondary-color:
|
|
38
|
+
--calendar-secondary-color: var(--kal-orange-400);
|
|
5
39
|
--calendar-secondary-color-rgb: 252, 160, 69;
|
|
6
|
-
--calendar-tertiary-color:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
--calendar-
|
|
10
|
-
--calendar-
|
|
11
|
-
--calendar-
|
|
40
|
+
--calendar-tertiary-color: var(--kal-orange-300);
|
|
41
|
+
|
|
42
|
+
/* Surfaces and text */
|
|
43
|
+
--calendar-text-color: var(--kal-slate-800);
|
|
44
|
+
--calendar-text-light: var(--kal-gray-500);
|
|
45
|
+
--calendar-on-accent: var(--kal-white);
|
|
46
|
+
--calendar-background: var(--kal-white);
|
|
47
|
+
--calendar-border-color: var(--kal-gray-300);
|
|
48
|
+
--calendar-cell-hover: var(--kal-gray-100);
|
|
49
|
+
--calendar-header-bg: var(--kal-gray-50);
|
|
50
|
+
--calendar-selected-bg: var(--kal-blue-50);
|
|
51
|
+
--calendar-popup-bg: var(--kal-white);
|
|
52
|
+
--calendar-picker-bg: var(--kal-white);
|
|
53
|
+
--calendar-today-outline: var(--kal-yellow-400);
|
|
54
|
+
--calendar-event-indicator: var(--kal-blue-500);
|
|
55
|
+
--calendar-input-invalid: var(--kal-red-500);
|
|
56
|
+
--calendar-link: var(--kal-blue-600);
|
|
57
|
+
--calendar-skeleton-base: var(--kal-gray-150);
|
|
58
|
+
--calendar-skeleton-highlight: var(--kal-gray-200);
|
|
59
|
+
|
|
60
|
+
/* Availability — traffic light */
|
|
61
|
+
--availability-color: transparent;
|
|
62
|
+
--calendar-open-bg: var(--kal-green-100);
|
|
63
|
+
--calendar-open-fg: var(--kal-green-600);
|
|
64
|
+
--calendar-conditional-bg: var(--kal-amber-100);
|
|
65
|
+
--calendar-conditional-fg: var(--kal-amber-600);
|
|
66
|
+
--calendar-blocked-bg: var(--kal-red-100);
|
|
67
|
+
--calendar-blocked-fg: var(--kal-red-600);
|
|
68
|
+
--calendar-range-bg: var(--kal-green-600);
|
|
69
|
+
--calendar-range-outline: var(--kal-green-700);
|
|
70
|
+
--calendar-in-range-bg: var(--kal-green-200);
|
|
71
|
+
--calendar-in-range-outline: var(--kal-green-300);
|
|
72
|
+
|
|
73
|
+
/* Badges */
|
|
74
|
+
--calendar-badge-bg: var(--kal-gray-100);
|
|
75
|
+
--calendar-badge-text: var(--kal-gray-600);
|
|
76
|
+
--calendar-badge-success-bg: var(--kal-emerald-100);
|
|
77
|
+
--calendar-badge-success-text: var(--kal-emerald-600);
|
|
78
|
+
--calendar-badge-info-bg: var(--kal-blue-100);
|
|
79
|
+
--calendar-badge-info-text: var(--kal-blue-600);
|
|
80
|
+
--calendar-badge-warning-bg: var(--kal-amber-100);
|
|
81
|
+
--calendar-badge-warning-text: var(--kal-amber-600);
|
|
82
|
+
--calendar-badge-danger-bg: var(--kal-red-100);
|
|
83
|
+
--calendar-badge-danger-text: var(--kal-red-600);
|
|
84
|
+
--calendar-badge-neutral-bg: var(--kal-gray-100);
|
|
85
|
+
--calendar-badge-neutral-text: var(--kal-gray-500);
|
|
86
|
+
--calendar-badge-positive-bg: var(--kal-green-100);
|
|
87
|
+
--calendar-badge-positive-text: var(--kal-green-600);
|
|
88
|
+
--calendar-badge-tentative-bg: var(--kal-indigo-100);
|
|
89
|
+
--calendar-badge-tentative-text: var(--kal-indigo-600);
|
|
90
|
+
|
|
91
|
+
/* Shadows */
|
|
12
92
|
--calendar-card-shadow:
|
|
13
93
|
0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
|
14
|
-
--calendar-picker-bg: #ffffff;
|
|
15
94
|
--calendar-picker-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
|
95
|
+
|
|
16
96
|
--calendar-btn-disabled-opacity: 0.5;
|
|
17
|
-
--calendar-input-invalid: #ef4444;
|
|
18
|
-
--calendar-text-light: #6b7280;
|
|
19
|
-
--calendar-cell-hover: #f3f4f6;
|
|
20
|
-
--calendar-header-bg: #f8f9fa;
|
|
21
|
-
--calendar-selected-bg: #eff6ff;
|
|
22
|
-
--calendar-popup-bg: #ffffff;
|
|
23
|
-
--calendar-skeleton-base: #f0f0f0;
|
|
24
|
-
--calendar-skeleton-highlight: #e8e8e8;
|
|
25
97
|
|
|
26
|
-
--primary-color:
|
|
27
|
-
--secondary-color:
|
|
28
|
-
--tertiary-color:
|
|
98
|
+
--primary-color: var(--kal-orange-500);
|
|
99
|
+
--secondary-color: var(--kal-orange-400);
|
|
100
|
+
--tertiary-color: var(--kal-orange-300);
|
|
101
|
+
|
|
102
|
+
/* Type scale */
|
|
103
|
+
--calendar-font-3xs: 0.5rem;
|
|
104
|
+
--calendar-font-2xs: 0.625rem;
|
|
105
|
+
--calendar-font-xs: 0.75rem;
|
|
106
|
+
--calendar-font-sm: 0.875rem;
|
|
107
|
+
--calendar-font-base: 1rem;
|
|
108
|
+
--calendar-font-lg: 1.125rem;
|
|
109
|
+
--calendar-font-xl: 1.25rem;
|
|
110
|
+
--calendar-font-2xl: 2rem;
|
|
111
|
+
|
|
112
|
+
/* Radius scale */
|
|
113
|
+
--calendar-radius-sm: 4px;
|
|
114
|
+
--calendar-radius-md: 6px;
|
|
115
|
+
--calendar-radius-lg: 8px;
|
|
116
|
+
--calendar-radius-xl: 12px;
|
|
117
|
+
--calendar-radius-full: 999px;
|
|
118
|
+
--calendar-radius-circle: 50%;
|
|
119
|
+
|
|
120
|
+
/* Elevation */
|
|
121
|
+
--calendar-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
122
|
+
--calendar-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
123
|
+
--calendar-shadow-md: 0 2px 6px rgba(0, 0, 0, 0.12);
|
|
124
|
+
--calendar-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
125
|
+
--calendar-shadow-primary: 0 2px 8px
|
|
126
|
+
rgba(var(--calendar-primary-color-rgb), 0.2);
|
|
127
|
+
/* Spacing scale — rem so padding tracks the type scale */
|
|
128
|
+
--calendar-space-0-5: 0.125rem;
|
|
129
|
+
--calendar-space-1: 0.25rem;
|
|
130
|
+
--calendar-space-1-5: 0.375rem;
|
|
131
|
+
--calendar-space-2: 0.5rem;
|
|
132
|
+
--calendar-space-2-5: 0.625rem;
|
|
133
|
+
--calendar-space-3: 0.75rem;
|
|
134
|
+
--calendar-space-3-5: 0.875rem;
|
|
135
|
+
--calendar-space-4: 1rem;
|
|
136
|
+
--calendar-space-5: 1.25rem;
|
|
137
|
+
--calendar-space-6: 1.5rem;
|
|
138
|
+
--calendar-space-8: 2rem;
|
|
139
|
+
--calendar-space-12: 3rem;
|
|
29
140
|
}
|
|
30
141
|
|
|
31
142
|
.kalendly-calendar {
|
|
@@ -35,27 +146,27 @@
|
|
|
35
146
|
margin: 0;
|
|
36
147
|
}
|
|
37
148
|
|
|
38
|
-
.
|
|
149
|
+
.calendar-title {
|
|
39
150
|
text-align: center;
|
|
40
|
-
margin-bottom:
|
|
151
|
+
margin-bottom: var(--calendar-space-4);
|
|
41
152
|
}
|
|
42
153
|
|
|
43
|
-
.
|
|
44
|
-
font-size:
|
|
154
|
+
.calendar-title h1 {
|
|
155
|
+
font-size: var(--calendar-font-2xl);
|
|
45
156
|
font-weight: 600;
|
|
46
157
|
color: var(--calendar-text-color);
|
|
47
158
|
margin: 0;
|
|
48
159
|
}
|
|
49
160
|
|
|
50
|
-
.calendar
|
|
161
|
+
.calendar-content {
|
|
51
162
|
font-family: Avenir, Helvetica, Arial, sans-serif;
|
|
52
163
|
position: relative;
|
|
53
164
|
width: 100%;
|
|
54
165
|
min-height: 1px;
|
|
55
|
-
margin-top:
|
|
166
|
+
margin-top: var(--calendar-space-12);
|
|
56
167
|
}
|
|
57
168
|
|
|
58
|
-
.calendar
|
|
169
|
+
.calendar-card {
|
|
59
170
|
position: relative;
|
|
60
171
|
display: flex;
|
|
61
172
|
flex-direction: column;
|
|
@@ -71,122 +182,112 @@
|
|
|
71
182
|
overflow: visible;
|
|
72
183
|
}
|
|
73
184
|
|
|
74
|
-
.calendar--card--header {
|
|
75
|
-
padding: 1rem 1.25rem;
|
|
76
|
-
margin-bottom: 0;
|
|
77
|
-
background-color: var(--calendar-header-bg);
|
|
78
|
-
border-bottom: 2px solid var(--calendar-border-color);
|
|
79
|
-
font-size: 1.5rem;
|
|
80
|
-
font-weight: 600;
|
|
81
|
-
text-align: center;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
185
|
/* New Navigation Header */
|
|
85
|
-
.calendar
|
|
186
|
+
.calendar-nav-header {
|
|
86
187
|
display: flex;
|
|
87
188
|
align-items: center;
|
|
88
189
|
justify-content: center;
|
|
89
|
-
gap:
|
|
90
|
-
padding:
|
|
190
|
+
gap: var(--calendar-space-2);
|
|
191
|
+
padding: var(--calendar-space-3) var(--calendar-space-4);
|
|
91
192
|
background-color: var(--calendar-header-bg);
|
|
92
193
|
border-bottom: 2px solid var(--calendar-border-color);
|
|
93
194
|
}
|
|
94
195
|
|
|
95
|
-
.calendar
|
|
196
|
+
.calendar-nav-arrow {
|
|
96
197
|
display: flex;
|
|
97
198
|
align-items: center;
|
|
98
199
|
justify-content: center;
|
|
99
200
|
width: 36px;
|
|
100
201
|
height: 36px;
|
|
101
202
|
border: 1px solid var(--calendar-border-color);
|
|
102
|
-
border-radius:
|
|
203
|
+
border-radius: var(--calendar-radius-md);
|
|
103
204
|
background: var(--calendar-background);
|
|
104
205
|
cursor: pointer;
|
|
105
|
-
font-size:
|
|
206
|
+
font-size: var(--calendar-font-lg);
|
|
106
207
|
color: var(--calendar-text-color);
|
|
107
208
|
transition: all 0.2s ease;
|
|
108
209
|
flex-shrink: 0;
|
|
109
210
|
}
|
|
110
211
|
|
|
111
|
-
.calendar
|
|
212
|
+
.calendar-nav-arrow:hover {
|
|
112
213
|
background-color: var(--calendar-primary-color);
|
|
113
214
|
border-color: var(--calendar-primary-color);
|
|
114
|
-
color:
|
|
215
|
+
color: var(--calendar-on-accent);
|
|
115
216
|
}
|
|
116
217
|
|
|
117
|
-
.calendar
|
|
218
|
+
.calendar-picker-container {
|
|
118
219
|
position: relative;
|
|
119
220
|
}
|
|
120
221
|
|
|
121
|
-
.calendar
|
|
222
|
+
.calendar-picker-btn {
|
|
122
223
|
display: flex;
|
|
123
224
|
align-items: center;
|
|
124
225
|
justify-content: center;
|
|
125
|
-
gap:
|
|
126
|
-
padding:
|
|
226
|
+
gap: var(--calendar-space-2);
|
|
227
|
+
padding: var(--calendar-space-2) var(--calendar-space-4);
|
|
127
228
|
min-width: 160px;
|
|
128
229
|
height: 36px;
|
|
129
230
|
border: 1px solid var(--calendar-border-color);
|
|
130
|
-
border-radius:
|
|
231
|
+
border-radius: var(--calendar-radius-md);
|
|
131
232
|
background: var(--calendar-background);
|
|
132
|
-
box-shadow:
|
|
233
|
+
box-shadow: var(--calendar-shadow-sm);
|
|
133
234
|
cursor: pointer;
|
|
134
|
-
font-size:
|
|
235
|
+
font-size: var(--calendar-font-base);
|
|
135
236
|
font-weight: 600;
|
|
136
237
|
color: var(--calendar-text-color);
|
|
137
238
|
transition: all 0.2s ease;
|
|
138
239
|
}
|
|
139
240
|
|
|
140
|
-
.calendar
|
|
241
|
+
.calendar-picker-btn:hover {
|
|
141
242
|
border-color: var(--calendar-primary-color);
|
|
142
|
-
box-shadow:
|
|
243
|
+
box-shadow: var(--calendar-shadow-md);
|
|
143
244
|
}
|
|
144
245
|
|
|
145
|
-
.calendar
|
|
246
|
+
.calendar-picker-btn[aria-expanded='true'] {
|
|
146
247
|
border-color: var(--calendar-primary-color);
|
|
147
|
-
box-shadow:
|
|
248
|
+
box-shadow: var(--calendar-shadow-primary);
|
|
148
249
|
}
|
|
149
250
|
|
|
150
|
-
.calendar
|
|
251
|
+
.calendar-picker-chevron {
|
|
151
252
|
display: inline-block;
|
|
152
|
-
font-size:
|
|
253
|
+
font-size: var(--calendar-font-2xs);
|
|
153
254
|
transition: transform 0.2s ease;
|
|
154
255
|
}
|
|
155
256
|
|
|
156
|
-
.calendar
|
|
257
|
+
.calendar-picker-btn[aria-expanded='true'] .calendar-picker-chevron {
|
|
157
258
|
transform: rotate(180deg);
|
|
158
259
|
}
|
|
159
260
|
|
|
160
|
-
.calendar
|
|
261
|
+
.calendar-today-btn {
|
|
161
262
|
display: flex;
|
|
162
263
|
align-items: center;
|
|
163
264
|
justify-content: center;
|
|
164
|
-
padding:
|
|
265
|
+
padding: var(--calendar-space-2) var(--calendar-space-4);
|
|
165
266
|
height: 36px;
|
|
166
267
|
border: 1px solid var(--calendar-border-color);
|
|
167
|
-
border-radius:
|
|
268
|
+
border-radius: var(--calendar-radius-md);
|
|
168
269
|
background: var(--calendar-background);
|
|
169
270
|
cursor: pointer;
|
|
170
|
-
font-size:
|
|
271
|
+
font-size: var(--calendar-font-sm);
|
|
171
272
|
font-weight: 500;
|
|
172
273
|
color: var(--calendar-text-color);
|
|
173
274
|
transition: all 0.2s ease;
|
|
174
275
|
flex-shrink: 0;
|
|
175
276
|
}
|
|
176
277
|
|
|
177
|
-
.calendar
|
|
278
|
+
.calendar-today-btn:hover:not(:disabled) {
|
|
178
279
|
background-color: var(--calendar-primary-color);
|
|
179
280
|
border-color: var(--calendar-primary-color);
|
|
180
|
-
color:
|
|
281
|
+
color: var(--calendar-on-accent);
|
|
181
282
|
}
|
|
182
283
|
|
|
183
|
-
.calendar
|
|
284
|
+
.calendar-today-btn:disabled {
|
|
184
285
|
opacity: var(--calendar-btn-disabled-opacity);
|
|
185
286
|
cursor: not-allowed;
|
|
186
287
|
}
|
|
187
288
|
|
|
188
289
|
/* Month/Year Picker Dropdown */
|
|
189
|
-
.calendar
|
|
290
|
+
.calendar-picker-dropdown {
|
|
190
291
|
position: absolute;
|
|
191
292
|
top: calc(100% + 8px);
|
|
192
293
|
left: 50%;
|
|
@@ -194,111 +295,126 @@
|
|
|
194
295
|
z-index: 100;
|
|
195
296
|
background: var(--calendar-picker-bg);
|
|
196
297
|
border: 1px solid var(--calendar-border-color);
|
|
197
|
-
border-radius:
|
|
298
|
+
border-radius: var(--calendar-radius-xl);
|
|
198
299
|
box-shadow: var(--calendar-picker-shadow);
|
|
199
|
-
padding:
|
|
300
|
+
padding: var(--calendar-space-4);
|
|
200
301
|
min-width: 280px;
|
|
201
302
|
}
|
|
202
303
|
|
|
203
|
-
.calendar
|
|
304
|
+
.calendar-picker-year-row {
|
|
204
305
|
display: flex;
|
|
205
306
|
align-items: center;
|
|
206
307
|
justify-content: center;
|
|
207
|
-
gap:
|
|
208
|
-
margin-bottom:
|
|
209
|
-
padding-bottom:
|
|
308
|
+
gap: var(--calendar-space-3);
|
|
309
|
+
margin-bottom: var(--calendar-space-4);
|
|
310
|
+
padding-bottom: var(--calendar-space-3);
|
|
210
311
|
border-bottom: 1px solid var(--calendar-border-color);
|
|
211
312
|
}
|
|
212
313
|
|
|
213
|
-
.calendar
|
|
314
|
+
.calendar-picker-year-arrow {
|
|
214
315
|
display: flex;
|
|
215
316
|
align-items: center;
|
|
216
317
|
justify-content: center;
|
|
217
318
|
width: 32px;
|
|
218
319
|
height: 32px;
|
|
219
320
|
border: none;
|
|
220
|
-
border-radius:
|
|
321
|
+
border-radius: var(--calendar-radius-md);
|
|
221
322
|
background: var(--calendar-cell-hover);
|
|
222
323
|
cursor: pointer;
|
|
223
|
-
font-size:
|
|
324
|
+
font-size: var(--calendar-font-base);
|
|
224
325
|
font-weight: 600;
|
|
225
326
|
color: var(--calendar-text-color);
|
|
226
327
|
transition: all 0.2s ease;
|
|
227
328
|
}
|
|
228
329
|
|
|
229
|
-
.calendar
|
|
330
|
+
.calendar-picker-year-arrow:hover:not(:disabled) {
|
|
230
331
|
background-color: var(--calendar-primary-color);
|
|
231
|
-
color:
|
|
332
|
+
color: var(--calendar-on-accent);
|
|
232
333
|
}
|
|
233
334
|
|
|
234
|
-
.calendar
|
|
335
|
+
.calendar-picker-year-arrow:disabled {
|
|
235
336
|
opacity: 0.3;
|
|
236
337
|
cursor: not-allowed;
|
|
237
338
|
}
|
|
238
339
|
|
|
239
|
-
.calendar
|
|
340
|
+
.calendar-picker-year-input {
|
|
240
341
|
width: 80px;
|
|
241
|
-
padding:
|
|
342
|
+
padding: var(--calendar-space-1-5) var(--calendar-space-2);
|
|
242
343
|
border: 1px solid var(--calendar-border-color);
|
|
243
|
-
border-radius:
|
|
344
|
+
border-radius: var(--calendar-radius-md);
|
|
244
345
|
text-align: center;
|
|
245
|
-
font-size:
|
|
346
|
+
font-size: var(--calendar-font-lg);
|
|
246
347
|
font-weight: 600;
|
|
247
348
|
color: var(--calendar-text-color);
|
|
248
349
|
background: var(--calendar-background);
|
|
249
350
|
transition: border-color 0.2s ease;
|
|
250
351
|
}
|
|
251
352
|
|
|
252
|
-
.calendar
|
|
353
|
+
.calendar-picker-year-input:focus {
|
|
253
354
|
outline: none;
|
|
254
355
|
border-color: var(--calendar-primary-color);
|
|
255
356
|
}
|
|
256
357
|
|
|
257
|
-
.calendar
|
|
358
|
+
.calendar-picker-year-input.invalid {
|
|
258
359
|
border-color: var(--calendar-input-invalid);
|
|
259
360
|
background-color: rgba(239, 68, 68, 0.1);
|
|
260
361
|
}
|
|
261
362
|
|
|
262
|
-
.calendar
|
|
363
|
+
.calendar-picker-months {
|
|
263
364
|
display: grid;
|
|
264
365
|
grid-template-columns: repeat(3, 1fr);
|
|
265
|
-
gap:
|
|
366
|
+
gap: var(--calendar-space-2);
|
|
266
367
|
}
|
|
267
368
|
|
|
268
|
-
.calendar
|
|
269
|
-
padding:
|
|
369
|
+
.calendar-picker-month {
|
|
370
|
+
padding: var(--calendar-space-2-5) var(--calendar-space-2);
|
|
270
371
|
border: 1px solid transparent;
|
|
271
|
-
border-radius:
|
|
372
|
+
border-radius: var(--calendar-radius-md);
|
|
272
373
|
background: var(--calendar-cell-hover);
|
|
273
374
|
cursor: pointer;
|
|
274
|
-
font-size:
|
|
375
|
+
font-size: var(--calendar-font-sm);
|
|
275
376
|
font-weight: 500;
|
|
276
377
|
color: var(--calendar-text-color);
|
|
277
378
|
transition: all 0.15s ease;
|
|
278
379
|
}
|
|
279
380
|
|
|
280
|
-
.calendar
|
|
381
|
+
.calendar-picker-month:hover {
|
|
281
382
|
background-color: var(--calendar-tertiary-color);
|
|
282
383
|
}
|
|
283
384
|
|
|
284
|
-
.calendar
|
|
385
|
+
.calendar-picker-month.selected {
|
|
285
386
|
background-color: var(--calendar-primary-color);
|
|
286
|
-
color:
|
|
387
|
+
color: var(--calendar-on-accent);
|
|
287
388
|
font-weight: 600;
|
|
288
389
|
}
|
|
289
390
|
|
|
290
|
-
.calendar
|
|
391
|
+
.calendar-picker-month.current-month {
|
|
291
392
|
border-color: var(--calendar-primary-color);
|
|
292
393
|
}
|
|
293
394
|
|
|
294
395
|
/* Picker overlay for click-outside */
|
|
295
|
-
.calendar
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
396
|
+
.calendar-panes {
|
|
397
|
+
display: flex;
|
|
398
|
+
flex-wrap: wrap;
|
|
399
|
+
gap: var(--calendar-space-4);
|
|
400
|
+
align-items: flex-start;
|
|
401
|
+
justify-content: center;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.calendar-pane {
|
|
405
|
+
flex: 1 1 280px;
|
|
406
|
+
min-width: 0;
|
|
299
407
|
}
|
|
300
408
|
|
|
301
|
-
.calendar
|
|
409
|
+
.calendar-pane-caption {
|
|
410
|
+
padding: var(--calendar-space-2) 0;
|
|
411
|
+
font-size: var(--calendar-font-sm);
|
|
412
|
+
font-weight: 600;
|
|
413
|
+
text-align: center;
|
|
414
|
+
color: var(--calendar-text-color);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.calendar-table {
|
|
302
418
|
width: 100%;
|
|
303
419
|
max-width: 100%;
|
|
304
420
|
margin-bottom: 0;
|
|
@@ -306,45 +422,52 @@
|
|
|
306
422
|
border-collapse: collapse;
|
|
307
423
|
}
|
|
308
424
|
|
|
309
|
-
.calendar
|
|
425
|
+
.calendar-table-bordered {
|
|
310
426
|
border: none;
|
|
311
427
|
}
|
|
312
428
|
|
|
313
|
-
.calendar
|
|
314
|
-
.calendar
|
|
315
|
-
padding:
|
|
429
|
+
.calendar-table td,
|
|
430
|
+
.calendar-table th {
|
|
431
|
+
padding: var(--calendar-space-4);
|
|
316
432
|
vertical-align: middle;
|
|
317
433
|
border: 1px solid var(--calendar-border-color);
|
|
318
434
|
text-align: center;
|
|
319
|
-
font-size:
|
|
435
|
+
font-size: var(--calendar-font-base);
|
|
320
436
|
}
|
|
321
437
|
|
|
322
|
-
.calendar
|
|
438
|
+
.calendar-table td {
|
|
323
439
|
height: 60px;
|
|
324
440
|
position: relative;
|
|
325
441
|
cursor: pointer;
|
|
326
442
|
transition: background-color 0.2s ease;
|
|
327
443
|
}
|
|
328
444
|
|
|
329
|
-
.calendar
|
|
445
|
+
.calendar-table td[data-clickable]:hover {
|
|
330
446
|
background-color: rgba(var(--calendar-primary-color-rgb), 0.1);
|
|
331
447
|
}
|
|
332
448
|
|
|
333
|
-
.calendar
|
|
449
|
+
.calendar-table td.calendar-cell-selected {
|
|
450
|
+
background-color: var(--calendar-selected-bg);
|
|
451
|
+
outline: 2px solid var(--calendar-primary-color);
|
|
452
|
+
outline-offset: -2px;
|
|
453
|
+
font-weight: 700;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
.calendar-table td.calendar-cell-other-month {
|
|
334
457
|
color: var(--calendar-text-light);
|
|
335
458
|
background-color: var(--calendar-header-bg);
|
|
336
459
|
}
|
|
337
460
|
|
|
338
|
-
.calendar
|
|
461
|
+
.calendar-table td.calendar-cell-other-month:hover {
|
|
339
462
|
background-color: var(--calendar-cell-hover);
|
|
340
463
|
}
|
|
341
464
|
|
|
342
|
-
.calendar
|
|
465
|
+
.calendar-table td.calendar-cell-has-event {
|
|
343
466
|
background-color: rgba(var(--calendar-secondary-color-rgb), 0.3);
|
|
344
467
|
position: relative;
|
|
345
468
|
}
|
|
346
469
|
|
|
347
|
-
.calendar
|
|
470
|
+
.calendar-table td.calendar-cell-has-event::after {
|
|
348
471
|
content: '';
|
|
349
472
|
position: absolute;
|
|
350
473
|
bottom: 2px;
|
|
@@ -353,170 +476,126 @@
|
|
|
353
476
|
width: 4px;
|
|
354
477
|
height: 4px;
|
|
355
478
|
background-color: var(--calendar-event-indicator);
|
|
356
|
-
border-radius:
|
|
479
|
+
border-radius: var(--calendar-radius-circle);
|
|
357
480
|
}
|
|
358
481
|
|
|
359
482
|
/* Time grid (availability-mode="time") */
|
|
360
483
|
.time-grid {
|
|
361
484
|
display: flex;
|
|
362
485
|
flex-direction: column;
|
|
363
|
-
gap:
|
|
486
|
+
gap: var(--calendar-space-1);
|
|
364
487
|
}
|
|
365
488
|
|
|
366
|
-
.time-
|
|
489
|
+
.time-grid-slot {
|
|
367
490
|
display: flex;
|
|
368
491
|
align-items: center;
|
|
369
492
|
justify-content: space-between;
|
|
370
|
-
padding:
|
|
371
|
-
border-radius:
|
|
372
|
-
font-size:
|
|
493
|
+
padding: var(--calendar-space-2) var(--calendar-space-3);
|
|
494
|
+
border-radius: var(--calendar-radius-md);
|
|
495
|
+
font-size: var(--calendar-font-sm);
|
|
373
496
|
}
|
|
374
497
|
|
|
375
|
-
.time-
|
|
498
|
+
.time-grid-label {
|
|
376
499
|
font-weight: 600;
|
|
377
500
|
color: inherit;
|
|
378
501
|
min-width: 48px;
|
|
379
502
|
}
|
|
380
503
|
|
|
381
|
-
.time-
|
|
504
|
+
.time-grid-status {
|
|
382
505
|
font-weight: 500;
|
|
383
506
|
}
|
|
384
507
|
|
|
385
|
-
.time-
|
|
386
|
-
|
|
387
|
-
color: #dc2626;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
.time-grid__slot--free {
|
|
391
|
-
background-color: #dcfce7;
|
|
392
|
-
color: #16a34a;
|
|
508
|
+
.time-grid-selectable .time-grid-slot-open {
|
|
509
|
+
cursor: pointer;
|
|
393
510
|
}
|
|
394
511
|
|
|
395
|
-
|
|
396
|
-
.calendar--table td.availability--booked {
|
|
397
|
-
background-color: #fee2e2;
|
|
512
|
+
.time-grid-selectable .time-grid-slot-blocked {
|
|
398
513
|
cursor: not-allowed;
|
|
399
514
|
}
|
|
400
515
|
|
|
401
|
-
.
|
|
402
|
-
background-color:
|
|
516
|
+
.time-grid-slot-blocked {
|
|
517
|
+
background-color: var(--calendar-blocked-bg);
|
|
518
|
+
color: var(--calendar-blocked-fg);
|
|
403
519
|
}
|
|
404
520
|
|
|
405
|
-
.
|
|
406
|
-
background-color:
|
|
521
|
+
.time-grid-slot-open {
|
|
522
|
+
background-color: var(--calendar-open-bg);
|
|
523
|
+
color: var(--calendar-open-fg);
|
|
407
524
|
}
|
|
408
525
|
|
|
409
|
-
|
|
410
|
-
.calendar
|
|
411
|
-
background-color:
|
|
412
|
-
color: #fff;
|
|
413
|
-
font-weight: 700;
|
|
414
|
-
outline: 2px solid #15803d;
|
|
415
|
-
outline-offset: -2px;
|
|
526
|
+
/* Availability mode */
|
|
527
|
+
.calendar-table td.availability-open {
|
|
528
|
+
background-color: var(--calendar-open-bg);
|
|
416
529
|
}
|
|
417
530
|
|
|
418
|
-
.calendar
|
|
419
|
-
background-color:
|
|
420
|
-
outline: 1px solid #86efac;
|
|
421
|
-
outline-offset: -1px;
|
|
531
|
+
.calendar-table td.availability-open::after {
|
|
532
|
+
background-color: var(--calendar-open-fg);
|
|
422
533
|
}
|
|
423
534
|
|
|
424
|
-
.
|
|
425
|
-
|
|
426
|
-
background-color: #16a34a;
|
|
427
|
-
color: #fff;
|
|
428
|
-
font-weight: 700;
|
|
535
|
+
.calendar-table td.availability-conditional {
|
|
536
|
+
background-color: var(--calendar-conditional-bg);
|
|
429
537
|
}
|
|
430
538
|
|
|
431
|
-
.
|
|
432
|
-
background-color:
|
|
433
|
-
color: #15803d;
|
|
539
|
+
.calendar-table td.availability-conditional::after {
|
|
540
|
+
background-color: var(--calendar-conditional-fg);
|
|
434
541
|
}
|
|
435
542
|
|
|
436
|
-
.calendar
|
|
437
|
-
|
|
438
|
-
border-bottom: 2px solid var(--calendar-border-color);
|
|
439
|
-
font-weight: 600;
|
|
440
|
-
background-color: var(--calendar-header-bg);
|
|
441
|
-
padding: 0.75rem;
|
|
543
|
+
.calendar-table td.availability-blocked {
|
|
544
|
+
background-color: var(--calendar-blocked-bg);
|
|
442
545
|
}
|
|
443
546
|
|
|
444
|
-
.
|
|
445
|
-
|
|
446
|
-
outline-offset: -3px;
|
|
447
|
-
font-weight: bold;
|
|
547
|
+
.calendar-table td.availability-blocked::after {
|
|
548
|
+
background-color: var(--calendar-blocked-fg);
|
|
448
549
|
}
|
|
449
550
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
align-items: center;
|
|
454
|
-
justify-content: space-evenly;
|
|
455
|
-
padding: 1rem 0;
|
|
551
|
+
/* Caller-defined buckets paint from an inline custom property */
|
|
552
|
+
.calendar-table td.availability-status {
|
|
553
|
+
background-color: var(--availability-color);
|
|
456
554
|
}
|
|
457
555
|
|
|
458
|
-
.calendar
|
|
459
|
-
|
|
460
|
-
display: inline-block;
|
|
461
|
-
font-weight: 400;
|
|
462
|
-
text-align: center;
|
|
463
|
-
white-space: nowrap;
|
|
464
|
-
vertical-align: middle;
|
|
465
|
-
-webkit-user-select: none;
|
|
466
|
-
-moz-user-select: none;
|
|
467
|
-
-ms-user-select: none;
|
|
468
|
-
user-select: none;
|
|
469
|
-
border: 1px solid transparent;
|
|
470
|
-
padding: 0.375rem 0.75rem;
|
|
471
|
-
font-size: 1rem;
|
|
472
|
-
line-height: 1.5;
|
|
473
|
-
border-radius: 0.25rem;
|
|
474
|
-
transition:
|
|
475
|
-
color 0.15s ease-in-out,
|
|
476
|
-
background-color 0.15s ease-in-out,
|
|
477
|
-
border-color 0.15s ease-in-out,
|
|
478
|
-
box-shadow 0.15s ease-in-out;
|
|
479
|
-
cursor: pointer;
|
|
556
|
+
.calendar-table td.availability-unselectable {
|
|
557
|
+
cursor: not-allowed;
|
|
480
558
|
}
|
|
481
559
|
|
|
482
|
-
.calendar
|
|
483
|
-
|
|
484
|
-
color:
|
|
560
|
+
.calendar-table td.availability-range-start,
|
|
561
|
+
.calendar-table td.availability-range-end {
|
|
562
|
+
background-color: var(--calendar-range-bg);
|
|
563
|
+
color: var(--calendar-on-accent);
|
|
564
|
+
font-weight: 700;
|
|
565
|
+
outline: 2px solid var(--calendar-range-outline);
|
|
566
|
+
outline-offset: -2px;
|
|
485
567
|
}
|
|
486
568
|
|
|
487
|
-
.
|
|
488
|
-
color: var(--calendar-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
box-shadow: var(--calendar-card-shadow);
|
|
569
|
+
.calendar-table td.availability-in-range {
|
|
570
|
+
background-color: var(--calendar-in-range-bg);
|
|
571
|
+
outline: 1px solid var(--calendar-in-range-outline);
|
|
572
|
+
outline-offset: -1px;
|
|
492
573
|
}
|
|
493
574
|
|
|
494
|
-
.
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
padding-bottom: 1rem;
|
|
500
|
-
gap: 0.5rem;
|
|
575
|
+
.time-grid-slot-range-start,
|
|
576
|
+
.time-grid-slot-range-end {
|
|
577
|
+
background-color: var(--calendar-range-bg);
|
|
578
|
+
color: var(--calendar-on-accent);
|
|
579
|
+
font-weight: 700;
|
|
501
580
|
}
|
|
502
581
|
|
|
503
|
-
.
|
|
504
|
-
|
|
505
|
-
|
|
582
|
+
.time-grid-slot-in-range {
|
|
583
|
+
background-color: var(--calendar-in-range-bg);
|
|
584
|
+
color: var(--calendar-range-outline);
|
|
506
585
|
}
|
|
507
586
|
|
|
508
|
-
.calendar
|
|
509
|
-
|
|
510
|
-
|
|
587
|
+
.calendar-table thead th {
|
|
588
|
+
vertical-align: bottom;
|
|
589
|
+
border-bottom: 2px solid var(--calendar-border-color);
|
|
590
|
+
font-weight: 600;
|
|
591
|
+
background-color: var(--calendar-header-bg);
|
|
592
|
+
padding: var(--calendar-space-3);
|
|
511
593
|
}
|
|
512
594
|
|
|
513
|
-
.calendar
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
background-color: var(--calendar-background);
|
|
518
|
-
color: var(--calendar-text-color);
|
|
519
|
-
font-size: 1rem;
|
|
595
|
+
.calendar-cell-today {
|
|
596
|
+
outline: 3px solid var(--calendar-today-outline);
|
|
597
|
+
outline-offset: -3px;
|
|
598
|
+
font-weight: bold;
|
|
520
599
|
}
|
|
521
600
|
|
|
522
601
|
/* RESPONSIVE POPUP DESIGN */
|
|
@@ -526,8 +605,8 @@
|
|
|
526
605
|
background-color: var(--calendar-popup-bg);
|
|
527
606
|
width: 500px;
|
|
528
607
|
max-width: 90vw;
|
|
529
|
-
border-radius:
|
|
530
|
-
box-shadow:
|
|
608
|
+
border-radius: var(--calendar-radius-lg);
|
|
609
|
+
box-shadow: var(--calendar-shadow-lg);
|
|
531
610
|
overflow: hidden;
|
|
532
611
|
left: 50%;
|
|
533
612
|
top: 50%;
|
|
@@ -543,7 +622,7 @@
|
|
|
543
622
|
var(--calendar-primary-color),
|
|
544
623
|
var(--calendar-secondary-color)
|
|
545
624
|
);
|
|
546
|
-
padding:
|
|
625
|
+
padding: var(--calendar-space-4) var(--calendar-space-5);
|
|
547
626
|
display: flex;
|
|
548
627
|
justify-content: space-between;
|
|
549
628
|
align-items: center;
|
|
@@ -552,7 +631,7 @@
|
|
|
552
631
|
|
|
553
632
|
.popup-header h2 {
|
|
554
633
|
color: white;
|
|
555
|
-
font-size:
|
|
634
|
+
font-size: var(--calendar-font-lg);
|
|
556
635
|
font-weight: 600;
|
|
557
636
|
margin: 0;
|
|
558
637
|
}
|
|
@@ -562,9 +641,9 @@
|
|
|
562
641
|
height: 32px;
|
|
563
642
|
background: rgba(255, 255, 255, 0.2);
|
|
564
643
|
border: none;
|
|
565
|
-
border-radius:
|
|
644
|
+
border-radius: var(--calendar-radius-circle);
|
|
566
645
|
color: white;
|
|
567
|
-
font-size:
|
|
646
|
+
font-size: var(--calendar-font-xl);
|
|
568
647
|
cursor: pointer;
|
|
569
648
|
display: flex;
|
|
570
649
|
align-items: center;
|
|
@@ -579,16 +658,16 @@
|
|
|
579
658
|
|
|
580
659
|
.scroll-hint {
|
|
581
660
|
background: rgba(var(--calendar-primary-color-rgb), 0.1);
|
|
582
|
-
padding:
|
|
661
|
+
padding: var(--calendar-space-2-5) var(--calendar-space-5);
|
|
583
662
|
text-align: center;
|
|
584
663
|
color: var(--calendar-primary-color);
|
|
585
|
-
font-size:
|
|
664
|
+
font-size: var(--calendar-font-sm);
|
|
586
665
|
font-weight: 500;
|
|
587
666
|
flex-shrink: 0;
|
|
588
667
|
}
|
|
589
668
|
|
|
590
669
|
.events-container {
|
|
591
|
-
padding:
|
|
670
|
+
padding: var(--calendar-space-4) var(--calendar-space-5);
|
|
592
671
|
overflow-y: auto;
|
|
593
672
|
flex: 1;
|
|
594
673
|
}
|
|
@@ -603,7 +682,7 @@
|
|
|
603
682
|
|
|
604
683
|
.events-container::-webkit-scrollbar-thumb {
|
|
605
684
|
background: var(--calendar-text-light);
|
|
606
|
-
border-radius:
|
|
685
|
+
border-radius: var(--calendar-radius-sm);
|
|
607
686
|
}
|
|
608
687
|
|
|
609
688
|
.events-container::-webkit-scrollbar-thumb:hover {
|
|
@@ -614,10 +693,10 @@
|
|
|
614
693
|
background: var(--calendar-popup-bg);
|
|
615
694
|
border: 1px solid var(--calendar-border-color);
|
|
616
695
|
border-left: 4px solid var(--calendar-primary-color);
|
|
617
|
-
border-radius:
|
|
618
|
-
padding:
|
|
619
|
-
margin-bottom:
|
|
620
|
-
box-shadow:
|
|
696
|
+
border-radius: var(--calendar-radius-md);
|
|
697
|
+
padding: var(--calendar-space-3-5);
|
|
698
|
+
margin-bottom: var(--calendar-space-3);
|
|
699
|
+
box-shadow: var(--calendar-shadow-xs);
|
|
621
700
|
}
|
|
622
701
|
|
|
623
702
|
.event-card:last-child {
|
|
@@ -628,12 +707,12 @@
|
|
|
628
707
|
display: flex;
|
|
629
708
|
justify-content: space-between;
|
|
630
709
|
align-items: flex-start;
|
|
631
|
-
margin-bottom:
|
|
632
|
-
gap:
|
|
710
|
+
margin-bottom: var(--calendar-space-2-5);
|
|
711
|
+
gap: var(--calendar-space-2-5);
|
|
633
712
|
}
|
|
634
713
|
|
|
635
714
|
.event-title {
|
|
636
|
-
font-size:
|
|
715
|
+
font-size: var(--calendar-font-base);
|
|
637
716
|
font-weight: 600;
|
|
638
717
|
color: var(--calendar-text-color);
|
|
639
718
|
flex: 1;
|
|
@@ -642,86 +721,95 @@
|
|
|
642
721
|
|
|
643
722
|
.event-badges {
|
|
644
723
|
display: flex;
|
|
645
|
-
gap:
|
|
724
|
+
gap: var(--calendar-space-1-5);
|
|
646
725
|
flex-shrink: 0;
|
|
647
726
|
flex-wrap: wrap;
|
|
648
727
|
}
|
|
649
728
|
|
|
650
729
|
.badge {
|
|
651
|
-
padding:
|
|
652
|
-
border-radius:
|
|
653
|
-
font-size:
|
|
730
|
+
padding: var(--calendar-space-1) var(--calendar-space-2);
|
|
731
|
+
border-radius: var(--calendar-radius-full);
|
|
732
|
+
font-size: var(--calendar-font-2xs);
|
|
654
733
|
font-weight: 600;
|
|
655
734
|
text-transform: uppercase;
|
|
656
735
|
letter-spacing: 0.3px;
|
|
657
736
|
white-space: nowrap;
|
|
658
737
|
}
|
|
659
738
|
|
|
739
|
+
/* Fallback for caller-defined values. Same specificity as the rules below,
|
|
740
|
+
so this must stay above them. */
|
|
741
|
+
.badge.category,
|
|
742
|
+
.badge.priority,
|
|
743
|
+
.badge.status {
|
|
744
|
+
background: var(--calendar-badge-bg);
|
|
745
|
+
color: var(--calendar-badge-text);
|
|
746
|
+
}
|
|
747
|
+
|
|
660
748
|
.badge.category-meeting {
|
|
661
|
-
background:
|
|
662
|
-
color:
|
|
749
|
+
background: var(--calendar-badge-success-bg);
|
|
750
|
+
color: var(--calendar-badge-success-text);
|
|
663
751
|
}
|
|
664
752
|
|
|
665
753
|
.badge.category-work {
|
|
666
|
-
background:
|
|
667
|
-
color:
|
|
754
|
+
background: var(--calendar-badge-info-bg);
|
|
755
|
+
color: var(--calendar-badge-info-text);
|
|
668
756
|
}
|
|
669
757
|
|
|
670
758
|
.badge.category-personal {
|
|
671
|
-
background:
|
|
672
|
-
color:
|
|
759
|
+
background: var(--calendar-badge-warning-bg);
|
|
760
|
+
color: var(--calendar-badge-warning-text);
|
|
673
761
|
}
|
|
674
762
|
|
|
675
763
|
.badge.category-deadline {
|
|
676
|
-
background:
|
|
677
|
-
color:
|
|
764
|
+
background: var(--calendar-badge-danger-bg);
|
|
765
|
+
color: var(--calendar-badge-danger-text);
|
|
678
766
|
}
|
|
679
767
|
|
|
680
768
|
.badge.category-appointment {
|
|
681
|
-
background:
|
|
682
|
-
color:
|
|
769
|
+
background: var(--calendar-badge-warning-bg);
|
|
770
|
+
color: var(--calendar-badge-warning-text);
|
|
683
771
|
}
|
|
684
772
|
|
|
685
773
|
.badge.category-other {
|
|
686
|
-
background:
|
|
687
|
-
color:
|
|
774
|
+
background: var(--calendar-badge-neutral-bg);
|
|
775
|
+
color: var(--calendar-badge-neutral-text);
|
|
688
776
|
}
|
|
689
777
|
|
|
690
778
|
.badge.priority-high {
|
|
691
|
-
background:
|
|
692
|
-
color:
|
|
779
|
+
background: var(--calendar-badge-danger-bg);
|
|
780
|
+
color: var(--calendar-badge-danger-text);
|
|
693
781
|
}
|
|
694
782
|
|
|
695
783
|
.badge.priority-medium {
|
|
696
|
-
background:
|
|
697
|
-
color:
|
|
784
|
+
background: var(--calendar-badge-warning-bg);
|
|
785
|
+
color: var(--calendar-badge-warning-text);
|
|
698
786
|
}
|
|
699
787
|
|
|
700
788
|
.badge.priority-low {
|
|
701
|
-
background:
|
|
702
|
-
color:
|
|
789
|
+
background: var(--calendar-badge-positive-bg);
|
|
790
|
+
color: var(--calendar-badge-positive-text);
|
|
703
791
|
}
|
|
704
792
|
|
|
705
793
|
.badge.status-completed {
|
|
706
|
-
background:
|
|
707
|
-
color:
|
|
794
|
+
background: var(--calendar-badge-success-bg);
|
|
795
|
+
color: var(--calendar-badge-success-text);
|
|
708
796
|
}
|
|
709
797
|
|
|
710
798
|
.badge.status-cancelled {
|
|
711
|
-
background:
|
|
712
|
-
color:
|
|
799
|
+
background: var(--calendar-badge-danger-bg);
|
|
800
|
+
color: var(--calendar-badge-danger-text);
|
|
713
801
|
}
|
|
714
802
|
|
|
715
803
|
.badge.status-tentative {
|
|
716
|
-
background:
|
|
717
|
-
color:
|
|
804
|
+
background: var(--calendar-badge-tentative-bg);
|
|
805
|
+
color: var(--calendar-badge-tentative-text);
|
|
718
806
|
}
|
|
719
807
|
|
|
720
808
|
.event-time {
|
|
721
809
|
display: flex;
|
|
722
|
-
gap:
|
|
723
|
-
margin-bottom:
|
|
724
|
-
font-size:
|
|
810
|
+
gap: var(--calendar-space-2);
|
|
811
|
+
margin-bottom: var(--calendar-space-1-5);
|
|
812
|
+
font-size: var(--calendar-font-sm);
|
|
725
813
|
}
|
|
726
814
|
|
|
727
815
|
.event-time-label {
|
|
@@ -741,23 +829,23 @@
|
|
|
741
829
|
.event-description {
|
|
742
830
|
display: block;
|
|
743
831
|
color: var(--calendar-text-light);
|
|
744
|
-
font-size:
|
|
832
|
+
font-size: var(--calendar-font-sm);
|
|
745
833
|
line-height: 1.6;
|
|
746
|
-
margin-top:
|
|
747
|
-
margin-bottom:
|
|
748
|
-
padding:
|
|
834
|
+
margin-top: var(--calendar-space-2-5);
|
|
835
|
+
margin-bottom: var(--calendar-space-2-5);
|
|
836
|
+
padding: var(--calendar-space-2) var(--calendar-space-3);
|
|
749
837
|
background: var(--calendar-header-bg);
|
|
750
838
|
border-left: 2px solid var(--calendar-border-color);
|
|
751
|
-
border-radius:
|
|
839
|
+
border-radius: var(--calendar-radius-sm);
|
|
752
840
|
word-break: break-word;
|
|
753
841
|
text-align: left;
|
|
754
842
|
}
|
|
755
843
|
|
|
756
844
|
.event-link {
|
|
757
|
-
color:
|
|
845
|
+
color: var(--calendar-link);
|
|
758
846
|
text-decoration: none;
|
|
759
847
|
font-weight: 500;
|
|
760
|
-
font-size:
|
|
848
|
+
font-size: var(--calendar-font-sm);
|
|
761
849
|
}
|
|
762
850
|
|
|
763
851
|
.event-link:hover {
|
|
@@ -767,97 +855,79 @@
|
|
|
767
855
|
.event-tags {
|
|
768
856
|
display: flex;
|
|
769
857
|
flex-wrap: wrap;
|
|
770
|
-
gap:
|
|
771
|
-
margin-top:
|
|
858
|
+
gap: var(--calendar-space-1-5);
|
|
859
|
+
margin-top: var(--calendar-space-2);
|
|
772
860
|
}
|
|
773
861
|
|
|
774
862
|
.event-tag {
|
|
775
863
|
display: inline-block;
|
|
776
|
-
padding:
|
|
864
|
+
padding: var(--calendar-space-1) var(--calendar-space-2-5);
|
|
777
865
|
background-color: rgba(var(--calendar-primary-color-rgb), 0.1);
|
|
778
866
|
color: var(--calendar-primary-color);
|
|
779
|
-
border-radius:
|
|
780
|
-
font-size:
|
|
867
|
+
border-radius: var(--calendar-radius-xl);
|
|
868
|
+
font-size: var(--calendar-font-xs);
|
|
781
869
|
font-weight: 500;
|
|
782
870
|
}
|
|
783
871
|
|
|
784
872
|
.no-events-message {
|
|
785
873
|
background: var(--calendar-popup-bg);
|
|
786
|
-
padding:
|
|
874
|
+
padding: var(--calendar-space-8) var(--calendar-space-5);
|
|
787
875
|
text-align: center;
|
|
788
876
|
color: var(--calendar-text-light);
|
|
789
|
-
font-size:
|
|
877
|
+
font-size: var(--calendar-font-sm);
|
|
790
878
|
}
|
|
791
879
|
|
|
792
880
|
/* Responsive design */
|
|
793
881
|
@media (min-width: 576px) {
|
|
794
|
-
.calendar
|
|
795
|
-
padding-right:
|
|
796
|
-
padding-left:
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
.calendar--form--jump label {
|
|
800
|
-
display: flex;
|
|
801
|
-
align-items: center;
|
|
802
|
-
justify-content: center;
|
|
803
|
-
margin-bottom: 0;
|
|
882
|
+
.calendar-content {
|
|
883
|
+
padding-right: var(--calendar-space-4);
|
|
884
|
+
padding-left: var(--calendar-space-4);
|
|
804
885
|
}
|
|
805
886
|
}
|
|
806
887
|
|
|
807
888
|
@media (max-width: 768px) {
|
|
808
|
-
.calendar
|
|
809
|
-
|
|
810
|
-
|
|
889
|
+
.calendar-panes {
|
|
890
|
+
flex-direction: column;
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
.calendar-content {
|
|
894
|
+
margin-top: var(--calendar-space-4);
|
|
895
|
+
padding: 0 var(--calendar-space-2);
|
|
811
896
|
}
|
|
812
897
|
|
|
813
|
-
.calendar
|
|
814
|
-
.calendar
|
|
815
|
-
padding:
|
|
816
|
-
font-size:
|
|
898
|
+
.calendar-table td,
|
|
899
|
+
.calendar-table th {
|
|
900
|
+
padding: var(--calendar-space-2) var(--calendar-space-1);
|
|
901
|
+
font-size: var(--calendar-font-sm);
|
|
817
902
|
}
|
|
818
903
|
|
|
819
|
-
.calendar
|
|
820
|
-
gap:
|
|
821
|
-
padding:
|
|
904
|
+
.calendar-nav-header {
|
|
905
|
+
gap: var(--calendar-space-1-5);
|
|
906
|
+
padding: var(--calendar-space-2-5) var(--calendar-space-3);
|
|
822
907
|
}
|
|
823
908
|
|
|
824
|
-
.calendar
|
|
909
|
+
.calendar-nav-arrow {
|
|
825
910
|
width: 32px;
|
|
826
911
|
height: 32px;
|
|
827
|
-
font-size:
|
|
912
|
+
font-size: var(--calendar-font-base);
|
|
828
913
|
}
|
|
829
914
|
|
|
830
|
-
.calendar
|
|
831
|
-
padding:
|
|
915
|
+
.calendar-picker-btn {
|
|
916
|
+
padding: var(--calendar-space-1-5) var(--calendar-space-3);
|
|
832
917
|
min-width: 140px;
|
|
833
918
|
height: 32px;
|
|
834
|
-
font-size:
|
|
919
|
+
font-size: var(--calendar-font-sm);
|
|
835
920
|
}
|
|
836
921
|
|
|
837
|
-
.calendar
|
|
838
|
-
padding:
|
|
922
|
+
.calendar-today-btn {
|
|
923
|
+
padding: var(--calendar-space-1-5) var(--calendar-space-3);
|
|
839
924
|
height: 32px;
|
|
840
|
-
font-size:
|
|
925
|
+
font-size: var(--calendar-font-xs);
|
|
841
926
|
}
|
|
842
927
|
|
|
843
|
-
.calendar
|
|
928
|
+
.calendar-picker-dropdown {
|
|
844
929
|
min-width: 260px;
|
|
845
|
-
padding:
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
.calendar--navigation--buttons {
|
|
849
|
-
flex-direction: column;
|
|
850
|
-
gap: 0.5rem;
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
.calendar--navigation--btn {
|
|
854
|
-
width: 100%;
|
|
855
|
-
max-width: none;
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
.calendar--form--jump {
|
|
859
|
-
flex-direction: column;
|
|
860
|
-
gap: 0.5rem;
|
|
930
|
+
padding: var(--calendar-space-3);
|
|
861
931
|
}
|
|
862
932
|
|
|
863
933
|
.date-popup {
|
|
@@ -866,39 +936,39 @@
|
|
|
866
936
|
}
|
|
867
937
|
|
|
868
938
|
.popup-header h2 {
|
|
869
|
-
font-size:
|
|
939
|
+
font-size: var(--calendar-font-base);
|
|
870
940
|
}
|
|
871
941
|
|
|
872
942
|
.popup-close {
|
|
873
943
|
width: 28px;
|
|
874
944
|
height: 28px;
|
|
875
|
-
font-size:
|
|
945
|
+
font-size: var(--calendar-font-lg);
|
|
876
946
|
}
|
|
877
947
|
|
|
878
948
|
.scroll-hint {
|
|
879
|
-
font-size:
|
|
880
|
-
padding:
|
|
949
|
+
font-size: var(--calendar-font-xs);
|
|
950
|
+
padding: var(--calendar-space-2) var(--calendar-space-4);
|
|
881
951
|
}
|
|
882
952
|
|
|
883
953
|
.events-container {
|
|
884
|
-
padding:
|
|
954
|
+
padding: var(--calendar-space-3) var(--calendar-space-4);
|
|
885
955
|
}
|
|
886
956
|
|
|
887
957
|
.event-card {
|
|
888
|
-
padding:
|
|
958
|
+
padding: var(--calendar-space-3);
|
|
889
959
|
}
|
|
890
960
|
|
|
891
961
|
.event-title {
|
|
892
|
-
font-size:
|
|
962
|
+
font-size: var(--calendar-font-base);
|
|
893
963
|
}
|
|
894
964
|
|
|
895
965
|
.badge {
|
|
896
|
-
font-size:
|
|
897
|
-
padding:
|
|
966
|
+
font-size: var(--calendar-font-2xs);
|
|
967
|
+
padding: var(--calendar-space-0-5) var(--calendar-space-1-5);
|
|
898
968
|
}
|
|
899
969
|
|
|
900
970
|
.event-time {
|
|
901
|
-
font-size:
|
|
971
|
+
font-size: var(--calendar-font-xs);
|
|
902
972
|
}
|
|
903
973
|
|
|
904
974
|
.event-time-label {
|
|
@@ -906,78 +976,73 @@
|
|
|
906
976
|
}
|
|
907
977
|
|
|
908
978
|
.event-description {
|
|
909
|
-
font-size:
|
|
979
|
+
font-size: var(--calendar-font-xs);
|
|
910
980
|
}
|
|
911
981
|
}
|
|
912
982
|
|
|
913
983
|
@media (max-width: 480px) {
|
|
914
|
-
.calendar
|
|
984
|
+
.calendar-table td {
|
|
915
985
|
height: 40px;
|
|
916
|
-
padding:
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
.calendar--table td,
|
|
920
|
-
.calendar--table th {
|
|
921
|
-
font-size: 0.8rem;
|
|
986
|
+
padding: var(--calendar-space-1);
|
|
922
987
|
}
|
|
923
988
|
|
|
924
|
-
.calendar
|
|
925
|
-
|
|
926
|
-
|
|
989
|
+
.calendar-table td,
|
|
990
|
+
.calendar-table th {
|
|
991
|
+
font-size: var(--calendar-font-xs);
|
|
927
992
|
}
|
|
928
993
|
|
|
929
|
-
.calendar
|
|
930
|
-
gap:
|
|
931
|
-
padding:
|
|
994
|
+
.calendar-nav-header {
|
|
995
|
+
gap: var(--calendar-space-1);
|
|
996
|
+
padding: var(--calendar-space-2);
|
|
932
997
|
}
|
|
933
998
|
|
|
934
|
-
.calendar
|
|
999
|
+
.calendar-nav-arrow {
|
|
935
1000
|
width: 28px;
|
|
936
1001
|
height: 28px;
|
|
937
|
-
font-size:
|
|
1002
|
+
font-size: var(--calendar-font-sm);
|
|
938
1003
|
}
|
|
939
1004
|
|
|
940
|
-
.calendar
|
|
941
|
-
padding:
|
|
1005
|
+
.calendar-picker-btn {
|
|
1006
|
+
padding: var(--calendar-space-1) var(--calendar-space-2);
|
|
942
1007
|
min-width: 110px;
|
|
943
1008
|
height: 28px;
|
|
944
|
-
font-size:
|
|
945
|
-
gap:
|
|
1009
|
+
font-size: var(--calendar-font-xs);
|
|
1010
|
+
gap: var(--calendar-space-1);
|
|
946
1011
|
}
|
|
947
1012
|
|
|
948
|
-
.calendar
|
|
949
|
-
font-size:
|
|
1013
|
+
.calendar-picker-chevron {
|
|
1014
|
+
font-size: var(--calendar-font-3xs);
|
|
950
1015
|
}
|
|
951
1016
|
|
|
952
|
-
.calendar
|
|
953
|
-
padding:
|
|
1017
|
+
.calendar-today-btn {
|
|
1018
|
+
padding: var(--calendar-space-1) var(--calendar-space-2);
|
|
954
1019
|
height: 28px;
|
|
955
|
-
font-size:
|
|
1020
|
+
font-size: var(--calendar-font-xs);
|
|
956
1021
|
}
|
|
957
1022
|
|
|
958
|
-
.calendar
|
|
1023
|
+
.calendar-picker-dropdown {
|
|
959
1024
|
min-width: 240px;
|
|
960
|
-
padding:
|
|
1025
|
+
padding: var(--calendar-space-2-5);
|
|
961
1026
|
}
|
|
962
1027
|
|
|
963
|
-
.calendar
|
|
964
|
-
gap:
|
|
965
|
-
margin-bottom:
|
|
966
|
-
padding-bottom:
|
|
1028
|
+
.calendar-picker-year-row {
|
|
1029
|
+
gap: var(--calendar-space-2);
|
|
1030
|
+
margin-bottom: var(--calendar-space-3);
|
|
1031
|
+
padding-bottom: var(--calendar-space-2-5);
|
|
967
1032
|
}
|
|
968
1033
|
|
|
969
|
-
.calendar
|
|
1034
|
+
.calendar-picker-year-input {
|
|
970
1035
|
width: 70px;
|
|
971
|
-
font-size:
|
|
1036
|
+
font-size: var(--calendar-font-base);
|
|
972
1037
|
}
|
|
973
1038
|
|
|
974
|
-
.calendar
|
|
975
|
-
gap:
|
|
1039
|
+
.calendar-picker-months {
|
|
1040
|
+
gap: var(--calendar-space-1-5);
|
|
976
1041
|
}
|
|
977
1042
|
|
|
978
|
-
.calendar
|
|
979
|
-
padding:
|
|
980
|
-
font-size:
|
|
1043
|
+
.calendar-picker-month {
|
|
1044
|
+
padding: var(--calendar-space-2) var(--calendar-space-1-5);
|
|
1045
|
+
font-size: var(--calendar-font-xs);
|
|
981
1046
|
}
|
|
982
1047
|
|
|
983
1048
|
.date-popup {
|
|
@@ -987,36 +1052,36 @@
|
|
|
987
1052
|
}
|
|
988
1053
|
|
|
989
1054
|
.popup-header {
|
|
990
|
-
padding:
|
|
1055
|
+
padding: var(--calendar-space-3) var(--calendar-space-4);
|
|
991
1056
|
}
|
|
992
1057
|
|
|
993
1058
|
.popup-header h2 {
|
|
994
|
-
font-size:
|
|
1059
|
+
font-size: var(--calendar-font-base);
|
|
995
1060
|
}
|
|
996
1061
|
|
|
997
1062
|
.popup-close {
|
|
998
1063
|
width: 26px;
|
|
999
1064
|
height: 26px;
|
|
1000
|
-
font-size:
|
|
1065
|
+
font-size: var(--calendar-font-base);
|
|
1001
1066
|
}
|
|
1002
1067
|
|
|
1003
1068
|
.scroll-hint {
|
|
1004
|
-
font-size:
|
|
1005
|
-
padding:
|
|
1069
|
+
font-size: var(--calendar-font-xs);
|
|
1070
|
+
padding: var(--calendar-space-2) var(--calendar-space-3);
|
|
1006
1071
|
}
|
|
1007
1072
|
|
|
1008
1073
|
.events-container {
|
|
1009
|
-
padding:
|
|
1074
|
+
padding: var(--calendar-space-2-5) var(--calendar-space-3);
|
|
1010
1075
|
}
|
|
1011
1076
|
|
|
1012
1077
|
.event-card {
|
|
1013
|
-
padding:
|
|
1014
|
-
margin-bottom:
|
|
1078
|
+
padding: var(--calendar-space-2-5);
|
|
1079
|
+
margin-bottom: var(--calendar-space-2-5);
|
|
1015
1080
|
}
|
|
1016
1081
|
|
|
1017
1082
|
.event-header {
|
|
1018
1083
|
flex-direction: column;
|
|
1019
|
-
gap:
|
|
1084
|
+
gap: var(--calendar-space-1-5);
|
|
1020
1085
|
}
|
|
1021
1086
|
|
|
1022
1087
|
.event-badges {
|
|
@@ -1024,17 +1089,17 @@
|
|
|
1024
1089
|
}
|
|
1025
1090
|
|
|
1026
1091
|
.event-title {
|
|
1027
|
-
font-size:
|
|
1092
|
+
font-size: var(--calendar-font-sm);
|
|
1028
1093
|
}
|
|
1029
1094
|
|
|
1030
1095
|
.badge {
|
|
1031
|
-
font-size:
|
|
1096
|
+
font-size: var(--calendar-font-2xs);
|
|
1032
1097
|
}
|
|
1033
1098
|
|
|
1034
1099
|
.event-time {
|
|
1035
1100
|
flex-direction: column;
|
|
1036
|
-
gap:
|
|
1037
|
-
font-size:
|
|
1101
|
+
gap: var(--calendar-space-0-5);
|
|
1102
|
+
font-size: var(--calendar-font-xs);
|
|
1038
1103
|
}
|
|
1039
1104
|
|
|
1040
1105
|
.event-time-label {
|
|
@@ -1042,12 +1107,12 @@
|
|
|
1042
1107
|
}
|
|
1043
1108
|
|
|
1044
1109
|
.event-description {
|
|
1045
|
-
font-size:
|
|
1110
|
+
font-size: var(--calendar-font-xs);
|
|
1046
1111
|
}
|
|
1047
1112
|
|
|
1048
1113
|
.event-tag {
|
|
1049
|
-
font-size:
|
|
1050
|
-
padding:
|
|
1114
|
+
font-size: var(--calendar-font-2xs);
|
|
1115
|
+
padding: var(--calendar-space-0-5) var(--calendar-space-2);
|
|
1051
1116
|
}
|
|
1052
1117
|
}
|
|
1053
1118
|
|
|
@@ -1062,7 +1127,7 @@
|
|
|
1062
1127
|
}
|
|
1063
1128
|
}
|
|
1064
1129
|
|
|
1065
|
-
.calendar
|
|
1130
|
+
.calendar-table td.calendar-skeleton {
|
|
1066
1131
|
background: linear-gradient(
|
|
1067
1132
|
90deg,
|
|
1068
1133
|
var(--calendar-skeleton-base) 25%,
|
|
@@ -1071,6 +1136,6 @@
|
|
|
1071
1136
|
);
|
|
1072
1137
|
background-size: 200% 100%;
|
|
1073
1138
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
1074
|
-
border-radius:
|
|
1139
|
+
border-radius: var(--calendar-radius-sm);
|
|
1075
1140
|
pointer-events: none;
|
|
1076
1141
|
}
|