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