@manzanohq/calendar-lite 0.1.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.
Files changed (63) hide show
  1. package/LICENSE +191 -0
  2. package/cdn/calendar.component.d.ts +146 -0
  3. package/cdn/calendar.component.js +2 -0
  4. package/cdn/calendar.component.js.map +7 -0
  5. package/cdn/calendar.d.ts +9 -0
  6. package/cdn/calendar.js +2 -0
  7. package/cdn/calendar.js.map +7 -0
  8. package/cdn/calendar.styles.d.ts +3 -0
  9. package/cdn/calendar.styles.js +2 -0
  10. package/cdn/calendar.styles.js.map +7 -0
  11. package/cdn/calendar.types.d.ts +99 -0
  12. package/cdn/calendar.types.js +2 -0
  13. package/cdn/calendar.types.js.map +7 -0
  14. package/cdn/chunks/chunk.B6XGWUEF.js +1 -0
  15. package/cdn/chunks/chunk.B6XGWUEF.js.map +7 -0
  16. package/cdn/chunks/chunk.BYWXPW2P.js +2 -0
  17. package/cdn/chunks/chunk.BYWXPW2P.js.map +7 -0
  18. package/cdn/chunks/chunk.EOXXNYIW.js +2 -0
  19. package/cdn/chunks/chunk.EOXXNYIW.js.map +7 -0
  20. package/cdn/chunks/chunk.MGICPQBB.js +2 -0
  21. package/cdn/chunks/chunk.MGICPQBB.js.map +7 -0
  22. package/cdn/chunks/chunk.OEC274YS.js +915 -0
  23. package/cdn/chunks/chunk.OEC274YS.js.map +7 -0
  24. package/cdn/chunks/chunk.PJFNXC5P.js +307 -0
  25. package/cdn/chunks/chunk.PJFNXC5P.js.map +7 -0
  26. package/cdn/index.d.ts +3 -0
  27. package/cdn/index.js +2 -0
  28. package/cdn/index.js.map +7 -0
  29. package/cdn/internal/date-utils.d.ts +74 -0
  30. package/cdn/internal/date-utils.js +2 -0
  31. package/cdn/internal/date-utils.js.map +7 -0
  32. package/cdn/internal/event-layout.d.ts +67 -0
  33. package/cdn/internal/event-layout.js +2 -0
  34. package/cdn/internal/event-layout.js.map +7 -0
  35. package/dist/calendar.component.d.ts +146 -0
  36. package/dist/calendar.component.d.ts.map +1 -0
  37. package/dist/calendar.component.js +1218 -0
  38. package/dist/calendar.component.js.map +7 -0
  39. package/dist/calendar.d.ts +9 -0
  40. package/dist/calendar.d.ts.map +1 -0
  41. package/dist/calendar.js +5 -0
  42. package/dist/calendar.js.map +7 -0
  43. package/dist/calendar.styles.d.ts +3 -0
  44. package/dist/calendar.styles.d.ts.map +1 -0
  45. package/dist/calendar.styles.js +923 -0
  46. package/dist/calendar.styles.js.map +7 -0
  47. package/dist/calendar.types.d.ts +99 -0
  48. package/dist/calendar.types.d.ts.map +1 -0
  49. package/dist/calendar.types.js +1 -0
  50. package/dist/calendar.types.js.map +7 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +6 -0
  54. package/dist/index.js.map +7 -0
  55. package/dist/internal/date-utils.d.ts +74 -0
  56. package/dist/internal/date-utils.d.ts.map +1 -0
  57. package/dist/internal/date-utils.js +133 -0
  58. package/dist/internal/date-utils.js.map +7 -0
  59. package/dist/internal/event-layout.d.ts +67 -0
  60. package/dist/internal/event-layout.d.ts.map +1 -0
  61. package/dist/internal/event-layout.js +224 -0
  62. package/dist/internal/event-layout.js.map +7 -0
  63. package/package.json +37 -0
@@ -0,0 +1,923 @@
1
+ import { css } from "lit";
2
+ import componentStyles from "@manzanohq/components/dist/styles/component.styles.js";
3
+ var calendar_styles_default = [
4
+ componentStyles,
5
+ css`
6
+ /* ------------------------------------------------------------------ */
7
+ /* Host & public/private custom property pattern */
8
+ /* ------------------------------------------------------------------ */
9
+ :host {
10
+ --_calendar-bg: var(--mz-calendar-bg, var(--mz-color-surface));
11
+ --_calendar-border: var(--mz-calendar-border-color, var(--mz-color-border));
12
+ --_calendar-event-bg: var(--mz-calendar-event-bg, var(--mz-color-primary));
13
+ --_calendar-event-color: var(--mz-calendar-event-color, var(--mz-color-on-primary));
14
+ --_calendar-slot-height: var(--mz-calendar-slot-height, 3.5rem);
15
+ --_calendar-today-bg: var(--mz-calendar-today-bg, color-mix(in srgb, var(--mz-color-primary) 5%, transparent));
16
+ --_calendar-now-color: var(--mz-calendar-now-indicator-color, var(--mz-color-danger));
17
+ --_calendar-gutter-width: var(--mz-calendar-gutter-width, 4.5rem);
18
+ --_calendar-header-bg: var(--mz-calendar-header-bg, var(--mz-color-surface));
19
+
20
+ display: block;
21
+ min-height: var(--mz-calendar-min-height, 400px);
22
+ font-family: var(--mz-font-sans);
23
+ background: var(--_calendar-bg);
24
+ color: var(--mz-color-text);
25
+ border: var(--mz-border-width-sm) solid var(--_calendar-border);
26
+ border-radius: var(--mz-radius-lg);
27
+ overflow: hidden;
28
+ container-type: inline-size;
29
+ container-name: calendar;
30
+ }
31
+
32
+ /* ------------------------------------------------------------------ */
33
+ /* Toolbar */
34
+ /* ------------------------------------------------------------------ */
35
+ .calendar__toolbar {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: var(--mz-space-sm);
39
+ padding: var(--mz-space-sm) var(--mz-space-lg);
40
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
41
+ background: var(--_calendar-header-bg);
42
+ flex-wrap: wrap;
43
+ }
44
+
45
+ .calendar__toolbar-nav {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: var(--mz-space-2xs);
49
+ }
50
+
51
+ .calendar__toolbar-title {
52
+ flex: 1;
53
+ font-size: var(--mz-font-size-lg);
54
+ font-weight: var(--mz-font-weight-semibold);
55
+ white-space: nowrap;
56
+ min-width: 0;
57
+ overflow: hidden;
58
+ text-overflow: ellipsis;
59
+ padding-left: var(--mz-space-xs);
60
+ }
61
+
62
+ .calendar__toolbar-views {
63
+ display: flex;
64
+ background: var(--_calendar-border);
65
+ border-radius: var(--mz-radius-sm);
66
+ padding: 1px;
67
+ }
68
+
69
+ .calendar__btn {
70
+ appearance: none;
71
+ border: var(--mz-border-width-sm) solid var(--_calendar-border);
72
+ background: var(--_calendar-bg);
73
+ color: var(--mz-color-text);
74
+ font-family: var(--mz-font-sans);
75
+ font-size: var(--mz-font-size-sm);
76
+ font-weight: var(--mz-font-weight-medium);
77
+ padding: var(--mz-space-2xs) var(--mz-space-sm);
78
+ border-radius: var(--mz-radius-sm);
79
+ cursor: pointer;
80
+ user-select: none;
81
+ white-space: nowrap;
82
+ line-height: 1.5;
83
+ transition: background var(--mz-transition-fast) ease,
84
+ border-color var(--mz-transition-fast) ease,
85
+ color var(--mz-transition-fast) ease;
86
+ }
87
+
88
+ .calendar__btn:hover {
89
+ background: color-mix(in srgb, var(--mz-color-text) 6%, var(--_calendar-bg));
90
+ }
91
+
92
+ .calendar__btn:focus-visible {
93
+ outline: var(--mz-focus-ring);
94
+ outline-offset: var(--mz-focus-ring-offset);
95
+ }
96
+
97
+ /* View toggle buttons — segmented control style */
98
+ .calendar__toolbar-views .calendar__btn {
99
+ border: none;
100
+ border-radius: calc(var(--mz-radius-sm) - 1px);
101
+ padding: var(--mz-space-2xs) var(--mz-space-sm);
102
+ font-size: var(--mz-font-size-xs);
103
+ background: var(--_calendar-bg);
104
+ }
105
+
106
+ .calendar__toolbar-views .calendar__btn:not(:first-child) {
107
+ border-top-left-radius: 0;
108
+ border-bottom-left-radius: 0;
109
+ }
110
+
111
+ .calendar__toolbar-views .calendar__btn:not(:last-child) {
112
+ border-top-right-radius: 0;
113
+ border-bottom-right-radius: 0;
114
+ }
115
+
116
+ .calendar__toolbar-views .calendar__btn:hover {
117
+ background: color-mix(in srgb, var(--mz-color-text) 8%, var(--_calendar-bg));
118
+ }
119
+
120
+ .calendar__btn--active {
121
+ background: var(--mz-color-primary);
122
+ color: var(--mz-color-on-primary);
123
+ border-color: var(--mz-color-primary);
124
+ }
125
+
126
+ .calendar__btn--active:hover {
127
+ background: var(--mz-color-primary);
128
+ }
129
+
130
+ .calendar__toolbar-views .calendar__btn--active {
131
+ background: var(--mz-color-primary);
132
+ color: var(--mz-color-on-primary);
133
+ }
134
+
135
+ .calendar__toolbar-views .calendar__btn--active:hover {
136
+ background: var(--mz-color-primary);
137
+ }
138
+
139
+ /* ------------------------------------------------------------------ */
140
+ /* aria-live region (visually hidden) */
141
+ /* ------------------------------------------------------------------ */
142
+ .calendar__live {
143
+ position: absolute;
144
+ width: 1px;
145
+ height: 1px;
146
+ padding: 0;
147
+ margin: -1px;
148
+ overflow: hidden;
149
+ clip: rect(0, 0, 0, 0);
150
+ white-space: nowrap;
151
+ border: 0;
152
+ }
153
+
154
+ /* ------------------------------------------------------------------ */
155
+ /* Time grid: scroll container (header + allday + body) */
156
+ /* ------------------------------------------------------------------ */
157
+ .calendar__scroll-container {
158
+ overflow-y: auto;
159
+ max-height: var(--mz-calendar-body-height, 800px);
160
+ position: relative;
161
+ }
162
+
163
+ /* Styled scrollbar — subtle, warm */
164
+ .calendar__scroll-container::-webkit-scrollbar {
165
+ width: 6px;
166
+ }
167
+
168
+ .calendar__scroll-container::-webkit-scrollbar-track {
169
+ background: transparent;
170
+ }
171
+
172
+ .calendar__scroll-container::-webkit-scrollbar-thumb {
173
+ background: color-mix(in srgb, var(--mz-color-text) 18%, transparent);
174
+ border-radius: 3px;
175
+ }
176
+
177
+ .calendar__scroll-container::-webkit-scrollbar-thumb:hover {
178
+ background: color-mix(in srgb, var(--mz-color-text) 30%, transparent);
179
+ }
180
+
181
+ :host([no-scroll]) .calendar__scroll-container {
182
+ overflow-y: visible;
183
+ max-height: none;
184
+ }
185
+
186
+ .calendar__sticky-header {
187
+ position: sticky;
188
+ top: 0;
189
+ z-index: 3;
190
+ }
191
+
192
+ /* ------------------------------------------------------------------ */
193
+ /* Time grid: header row (day headers) */
194
+ /* ------------------------------------------------------------------ */
195
+ .calendar__header {
196
+ display: grid;
197
+ grid-template-columns: var(--_calendar-gutter-width) repeat(var(--_day-count, 7), minmax(var(--_calendar-min-col-width, 3rem), 1fr));
198
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
199
+ background: var(--_calendar-header-bg);
200
+ }
201
+
202
+ .calendar__gutter-header {
203
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
204
+ }
205
+
206
+ .calendar__day-header {
207
+ display: flex;
208
+ flex-direction: column;
209
+ align-items: center;
210
+ justify-content: center;
211
+ gap: 1px;
212
+ padding: var(--mz-space-xs) var(--mz-space-xs);
213
+ font-size: var(--mz-font-size-2xs);
214
+ font-weight: var(--mz-font-weight-semibold);
215
+ text-transform: uppercase;
216
+ letter-spacing: 0.05em;
217
+ color: color-mix(in srgb, var(--mz-color-text) 55%, transparent);
218
+ border-left: var(--mz-border-width-sm) solid var(--_calendar-border);
219
+ }
220
+
221
+ .calendar__day-header--today {
222
+ color: var(--mz-color-primary);
223
+ }
224
+
225
+ .calendar__day-number {
226
+ display: flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ width: 1.75rem;
230
+ height: 1.75rem;
231
+ border-radius: 50%;
232
+ font-size: var(--mz-font-size-md);
233
+ font-weight: var(--mz-font-weight-semibold);
234
+ line-height: 1;
235
+ color: var(--mz-color-text);
236
+ }
237
+
238
+ .calendar__day-number--today {
239
+ background: var(--mz-color-primary);
240
+ color: var(--mz-color-on-primary);
241
+ }
242
+
243
+ /* ------------------------------------------------------------------ */
244
+ /* Time grid: all-day row */
245
+ /* ------------------------------------------------------------------ */
246
+ .calendar__allday {
247
+ display: grid;
248
+ grid-template-columns: var(--_calendar-gutter-width) repeat(var(--_day-count, 7), minmax(var(--_calendar-min-col-width, 3rem), 1fr));
249
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
250
+ min-height: 2rem;
251
+ position: relative;
252
+ background: var(--_calendar-header-bg);
253
+ }
254
+
255
+ .calendar__allday-label {
256
+ display: flex;
257
+ align-items: center;
258
+ justify-content: flex-end;
259
+ font-size: var(--mz-font-size-2xs);
260
+ color: color-mix(in srgb, var(--mz-color-text) 45%, transparent);
261
+ padding: var(--mz-space-2xs) var(--mz-space-xs);
262
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
263
+ }
264
+
265
+ .calendar__allday-cell {
266
+ position: relative;
267
+ border-left: var(--mz-border-width-sm) solid var(--_calendar-border);
268
+ min-height: 1.75rem;
269
+ padding: var(--mz-space-2xs) var(--mz-space-2xs);
270
+ display: flex;
271
+ flex-direction: column;
272
+ gap: 1px;
273
+ }
274
+
275
+ /* ------------------------------------------------------------------ */
276
+ /* Time grid: body (time slots) */
277
+ /* ------------------------------------------------------------------ */
278
+ .calendar__body {
279
+ display: grid;
280
+ grid-template-columns: var(--_calendar-gutter-width) 1fr;
281
+ position: relative;
282
+ }
283
+
284
+ .calendar__gutter {
285
+ display: flex;
286
+ flex-direction: column;
287
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
288
+ }
289
+
290
+ .calendar__hour-label {
291
+ height: var(--_calendar-slot-height);
292
+ display: flex;
293
+ align-items: flex-start;
294
+ justify-content: flex-end;
295
+ padding-right: var(--mz-space-sm);
296
+ font-size: var(--mz-font-size-2xs);
297
+ font-weight: var(--mz-font-weight-medium);
298
+ color: color-mix(in srgb, var(--mz-color-text) 45%, transparent);
299
+ transform: translateY(-0.5em);
300
+ user-select: none;
301
+ letter-spacing: 0.01em;
302
+ white-space: nowrap;
303
+ }
304
+
305
+ /* Full format shown by default, short hidden */
306
+ .calendar__hour-short {
307
+ display: none;
308
+ }
309
+
310
+ .calendar__grid {
311
+ position: relative;
312
+ display: grid;
313
+ grid-template-rows: repeat(var(--_slot-count, 48), var(--_calendar-slot-height));
314
+ grid-template-columns: repeat(var(--_day-count, 7), minmax(var(--_calendar-min-col-width, 3rem), 1fr));
315
+ }
316
+
317
+ /* Horizontal slot lines */
318
+ .calendar__slot-line {
319
+ grid-column: 1 / -1;
320
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
321
+ pointer-events: none;
322
+ }
323
+
324
+ .calendar__slot-line--hour {
325
+ border-bottom-style: solid;
326
+ }
327
+
328
+ .calendar__slot-line--half {
329
+ border-bottom-color: color-mix(in srgb, var(--_calendar-border) 50%, transparent);
330
+ border-bottom-style: solid;
331
+ }
332
+
333
+ /* Vertical day dividers */
334
+ .calendar__day-divider {
335
+ position: absolute;
336
+ top: 0;
337
+ bottom: 0;
338
+ border-left: var(--mz-border-width-sm) solid var(--_calendar-border);
339
+ pointer-events: none;
340
+ z-index: 1;
341
+ }
342
+
343
+ /* Today column highlight */
344
+ .calendar__today-col {
345
+ position: absolute;
346
+ top: 0;
347
+ bottom: 0;
348
+ background: var(--_calendar-today-bg);
349
+ pointer-events: none;
350
+ z-index: 0;
351
+ }
352
+
353
+ /* ------------------------------------------------------------------ */
354
+ /* Events (time grid) */
355
+ /* ------------------------------------------------------------------ */
356
+ .calendar__event {
357
+ position: absolute;
358
+ border-radius: var(--mz-radius-sm);
359
+ padding: var(--mz-space-2xs) var(--mz-space-xs);
360
+ font-size: var(--mz-font-size-xs);
361
+ line-height: 1.35;
362
+ overflow: hidden;
363
+ cursor: pointer;
364
+ user-select: none;
365
+ z-index: 2;
366
+ background: var(--_event-bg, var(--_calendar-event-bg));
367
+ color: var(--_event-color, var(--_calendar-event-color));
368
+ border-left: 3px solid color-mix(in srgb, var(--_event-bg, var(--_calendar-event-bg)) 70%, #000);
369
+ transition: box-shadow var(--mz-transition-fast) ease;
370
+ }
371
+
372
+ .calendar__event:hover {
373
+ box-shadow: var(--mz-shadow-md);
374
+ z-index: 4;
375
+ }
376
+
377
+ .calendar__event:focus-visible {
378
+ outline: var(--mz-focus-ring);
379
+ outline-offset: var(--mz-focus-ring-offset);
380
+ z-index: 5;
381
+ }
382
+
383
+ .calendar__event-title {
384
+ font-weight: var(--mz-font-weight-semibold);
385
+ white-space: nowrap;
386
+ overflow: hidden;
387
+ text-overflow: ellipsis;
388
+ }
389
+
390
+ .calendar__event-time {
391
+ font-size: var(--mz-font-size-2xs);
392
+ opacity: 0.8;
393
+ white-space: nowrap;
394
+ overflow: hidden;
395
+ text-overflow: ellipsis;
396
+ }
397
+
398
+ /* Resize handle at bottom of event */
399
+ .calendar__event-resize {
400
+ position: absolute;
401
+ bottom: 0;
402
+ left: 0;
403
+ right: 0;
404
+ height: 8px;
405
+ cursor: s-resize;
406
+ z-index: 3;
407
+ }
408
+
409
+ .calendar__event-resize::after {
410
+ content: '';
411
+ position: absolute;
412
+ bottom: 2px;
413
+ left: 50%;
414
+ transform: translateX(-50%);
415
+ width: 1.5rem;
416
+ height: 2px;
417
+ border-radius: 1px;
418
+ background: currentColor;
419
+ opacity: 0;
420
+ transition: opacity var(--mz-transition-fast) ease;
421
+ }
422
+
423
+ .calendar__event:hover .calendar__event-resize::after {
424
+ opacity: 0.5;
425
+ }
426
+
427
+ /* All-day event in the all-day row */
428
+ .calendar__allday-event {
429
+ display: block;
430
+ border-radius: var(--mz-radius-sm);
431
+ padding: 2px var(--mz-space-xs);
432
+ font-size: var(--mz-font-size-xs);
433
+ font-weight: var(--mz-font-weight-semibold);
434
+ line-height: 1.5;
435
+ overflow: hidden;
436
+ white-space: nowrap;
437
+ text-overflow: ellipsis;
438
+ cursor: pointer;
439
+ user-select: none;
440
+ background: var(--_event-bg, var(--_calendar-event-bg));
441
+ color: var(--_event-color, var(--_calendar-event-color));
442
+ }
443
+
444
+ .calendar__allday-event:hover {
445
+ box-shadow: var(--mz-shadow-sm);
446
+ }
447
+
448
+ .calendar__allday-event:focus-visible {
449
+ outline: var(--mz-focus-ring);
450
+ outline-offset: var(--mz-focus-ring-offset);
451
+ }
452
+
453
+ /* ------------------------------------------------------------------ */
454
+ /* Now indicator */
455
+ /* ------------------------------------------------------------------ */
456
+ .calendar__now-indicator {
457
+ position: absolute;
458
+ left: 0;
459
+ right: 0;
460
+ height: 2px;
461
+ background: var(--_calendar-now-color);
462
+ z-index: 6;
463
+ pointer-events: none;
464
+ }
465
+
466
+ .calendar__now-indicator::before {
467
+ content: '';
468
+ position: absolute;
469
+ left: -4px;
470
+ top: -3px;
471
+ width: 8px;
472
+ height: 8px;
473
+ border-radius: 50%;
474
+ background: var(--_calendar-now-color);
475
+ }
476
+
477
+ /* ------------------------------------------------------------------ */
478
+ /* Drag selection highlight */
479
+ /* ------------------------------------------------------------------ */
480
+ .calendar__drag-selection {
481
+ position: absolute;
482
+ background: color-mix(in srgb, var(--mz-color-primary) 15%, transparent);
483
+ border: 2px solid color-mix(in srgb, var(--mz-color-primary) 60%, transparent);
484
+ border-radius: var(--mz-radius-sm);
485
+ z-index: 3;
486
+ pointer-events: none;
487
+ }
488
+
489
+ /* ------------------------------------------------------------------ */
490
+ /* Month grid */
491
+ /* ------------------------------------------------------------------ */
492
+ .calendar__month-grid {
493
+ display: grid;
494
+ grid-template-columns: repeat(7, minmax(0, 1fr));
495
+ flex: 1;
496
+ }
497
+
498
+ .calendar__month-weekday {
499
+ display: flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ padding: var(--mz-space-sm) var(--mz-space-xs);
503
+ font-size: var(--mz-font-size-2xs);
504
+ font-weight: var(--mz-font-weight-semibold);
505
+ text-transform: uppercase;
506
+ letter-spacing: 0.06em;
507
+ color: color-mix(in srgb, var(--mz-color-text) 50%, transparent);
508
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
509
+ min-width: 0;
510
+ }
511
+
512
+ .calendar__month-cell {
513
+ min-height: 5.5rem;
514
+ padding: var(--mz-space-2xs) var(--mz-space-xs);
515
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
516
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
517
+ position: relative;
518
+ overflow: hidden;
519
+ min-width: 0;
520
+ }
521
+
522
+ .calendar__month-cell:nth-child(7n) {
523
+ border-right: none;
524
+ }
525
+
526
+ .calendar__month-cell--outside {
527
+ background: color-mix(in srgb, var(--mz-color-text) 2%, var(--_calendar-bg));
528
+ }
529
+
530
+ .calendar__month-cell--today {
531
+ background: var(--_calendar-today-bg);
532
+ }
533
+
534
+ .calendar__month-date {
535
+ display: flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ width: 1.5rem;
539
+ height: 1.5rem;
540
+ font-size: var(--mz-font-size-xs);
541
+ font-weight: var(--mz-font-weight-medium);
542
+ margin-bottom: var(--mz-space-2xs);
543
+ }
544
+
545
+ .calendar__month-date--today {
546
+ background: var(--mz-color-primary);
547
+ color: var(--mz-color-on-primary);
548
+ border-radius: 50%;
549
+ font-weight: var(--mz-font-weight-semibold);
550
+ }
551
+
552
+ .calendar__month-date--outside {
553
+ opacity: 0.35;
554
+ }
555
+
556
+ .calendar__month-event {
557
+ display: block;
558
+ border-radius: var(--mz-radius-sm);
559
+ padding: 2px var(--mz-space-xs);
560
+ font-size: var(--mz-font-size-xs);
561
+ font-weight: var(--mz-font-weight-medium);
562
+ line-height: 1.4;
563
+ overflow: hidden;
564
+ white-space: nowrap;
565
+ text-overflow: ellipsis;
566
+ cursor: pointer;
567
+ user-select: none;
568
+ background: var(--_event-bg, var(--_calendar-event-bg));
569
+ color: var(--_event-color, var(--_calendar-event-color));
570
+ margin-bottom: 2px;
571
+ }
572
+
573
+ .calendar__month-event:hover {
574
+ box-shadow: var(--mz-shadow-sm);
575
+ }
576
+
577
+ .calendar__month-event:focus-visible {
578
+ outline: var(--mz-focus-ring);
579
+ outline-offset: var(--mz-focus-ring-offset);
580
+ }
581
+
582
+ .calendar__month-overflow {
583
+ font-size: var(--mz-font-size-xs);
584
+ color: color-mix(in srgb, var(--mz-color-text) 50%, transparent);
585
+ padding: 2px var(--mz-space-xs);
586
+ cursor: pointer;
587
+ user-select: none;
588
+ font-weight: var(--mz-font-weight-medium);
589
+ }
590
+
591
+ .calendar__month-overflow:hover {
592
+ color: var(--mz-color-primary);
593
+ }
594
+
595
+ /* ------------------------------------------------------------------ */
596
+ /* List view */
597
+ /* ------------------------------------------------------------------ */
598
+ .calendar__list {
599
+ display: flex;
600
+ flex-direction: column;
601
+ }
602
+
603
+ .calendar__list-day {
604
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
605
+ }
606
+
607
+ .calendar__list-day-header {
608
+ display: flex;
609
+ gap: var(--mz-space-sm);
610
+ padding: var(--mz-space-sm) var(--mz-space-lg);
611
+ font-size: var(--mz-font-size-sm);
612
+ font-weight: var(--mz-font-weight-semibold);
613
+ background: color-mix(in srgb, var(--mz-color-text) 3%, var(--_calendar-bg));
614
+ }
615
+
616
+ .calendar__list-event {
617
+ display: flex;
618
+ align-items: center;
619
+ gap: var(--mz-space-sm);
620
+ padding: var(--mz-space-sm) var(--mz-space-lg);
621
+ cursor: pointer;
622
+ transition: background var(--mz-transition-fast) ease;
623
+ }
624
+
625
+ .calendar__list-event:hover {
626
+ background: color-mix(in srgb, var(--mz-color-text) 4%, var(--_calendar-bg));
627
+ }
628
+
629
+ .calendar__list-event:focus-visible {
630
+ outline: var(--mz-focus-ring);
631
+ outline-offset: var(--mz-focus-ring-offset);
632
+ }
633
+
634
+ .calendar__list-event-dot {
635
+ width: 0.5rem;
636
+ height: 0.5rem;
637
+ border-radius: 50%;
638
+ background: var(--_event-bg, var(--_calendar-event-bg));
639
+ flex-shrink: 0;
640
+ }
641
+
642
+ .calendar__list-event-time {
643
+ font-size: var(--mz-font-size-xs);
644
+ color: color-mix(in srgb, var(--mz-color-text) 50%, transparent);
645
+ min-width: 6rem;
646
+ }
647
+
648
+ .calendar__list-event-title {
649
+ font-size: var(--mz-font-size-sm);
650
+ font-weight: var(--mz-font-weight-medium);
651
+ flex: 1;
652
+ overflow: hidden;
653
+ white-space: nowrap;
654
+ text-overflow: ellipsis;
655
+ }
656
+
657
+ /* ------------------------------------------------------------------ */
658
+ /* Resource headers */
659
+ /* ------------------------------------------------------------------ */
660
+ .calendar__resource-header {
661
+ display: flex;
662
+ align-items: center;
663
+ justify-content: center;
664
+ padding: var(--mz-space-sm) var(--mz-space-sm);
665
+ font-size: var(--mz-font-size-xs);
666
+ font-weight: var(--mz-font-weight-semibold);
667
+ border-left: var(--mz-border-width-sm) solid var(--_calendar-border);
668
+ text-align: center;
669
+ }
670
+
671
+ /* Resource timeline */
672
+ .calendar__timeline {
673
+ display: grid;
674
+ overflow-x: auto;
675
+ }
676
+
677
+ .calendar__timeline-resource-label {
678
+ display: flex;
679
+ align-items: center;
680
+ padding: var(--mz-space-sm) var(--mz-space-md);
681
+ font-size: var(--mz-font-size-sm);
682
+ font-weight: var(--mz-font-weight-medium);
683
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
684
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
685
+ min-width: 8rem;
686
+ background: var(--_calendar-header-bg);
687
+ }
688
+
689
+ .calendar__timeline-row {
690
+ display: grid;
691
+ grid-template-columns: repeat(var(--_slot-count, 48), var(--_calendar-slot-height));
692
+ border-bottom: var(--mz-border-width-sm) solid var(--_calendar-border);
693
+ position: relative;
694
+ min-height: 2.5rem;
695
+ }
696
+
697
+ .calendar__timeline-slot {
698
+ border-right: var(--mz-border-width-sm) solid var(--_calendar-border);
699
+ }
700
+
701
+ .calendar__timeline-slot--hour {
702
+ border-right-style: solid;
703
+ }
704
+
705
+ .calendar__timeline-slot--half {
706
+ border-right-color: color-mix(in srgb, var(--_calendar-border) 50%, transparent);
707
+ border-right-style: solid;
708
+ }
709
+
710
+ /* ------------------------------------------------------------------ */
711
+ /* Empty state */
712
+ /* ------------------------------------------------------------------ */
713
+ .calendar__empty {
714
+ display: flex;
715
+ align-items: center;
716
+ justify-content: center;
717
+ padding: var(--mz-space-lg);
718
+ color: color-mix(in srgb, var(--mz-color-text) 40%, transparent);
719
+ font-size: var(--mz-font-size-sm);
720
+ font-style: italic;
721
+ }
722
+
723
+ /* ------------------------------------------------------------------ */
724
+ /* Responsive: compact (tablet-ish, ≤768px container) */
725
+ /* ------------------------------------------------------------------ */
726
+ @container calendar (max-width: 768px) {
727
+ .calendar__toolbar {
728
+ padding: var(--mz-space-xs) var(--mz-space-sm);
729
+ gap: var(--mz-space-xs);
730
+ }
731
+
732
+ .calendar__toolbar-title {
733
+ font-size: var(--mz-font-size-md);
734
+ padding-left: var(--mz-space-2xs);
735
+ }
736
+
737
+ .calendar {
738
+ --_calendar-gutter-width: 3.5rem;
739
+ }
740
+
741
+ .calendar__month-cell {
742
+ min-height: 4.5rem;
743
+ }
744
+ }
745
+
746
+ /* ------------------------------------------------------------------ */
747
+ /* Responsive: narrow (mobile, ≤540px container) */
748
+ /* ------------------------------------------------------------------ */
749
+ @container calendar (max-width: 540px) {
750
+ .calendar__scroll-container {
751
+ max-height: var(--mz-calendar-body-height, 500px);
752
+ }
753
+
754
+ .calendar__toolbar {
755
+ padding: var(--mz-space-xs) var(--mz-space-sm);
756
+ gap: var(--mz-space-2xs);
757
+ }
758
+
759
+ /* Title on its own row */
760
+ .calendar__toolbar-title {
761
+ font-size: var(--mz-font-size-sm);
762
+ font-weight: var(--mz-font-weight-semibold);
763
+ padding-left: 0;
764
+ order: -1;
765
+ flex-basis: 100%;
766
+ }
767
+
768
+ .calendar__toolbar-nav {
769
+ gap: 2px;
770
+ }
771
+
772
+ .calendar__toolbar-views .calendar__btn {
773
+ padding: 3px var(--mz-space-xs);
774
+ font-size: 0.6875rem;
775
+ }
776
+
777
+ .calendar__btn {
778
+ padding: var(--mz-space-2xs) var(--mz-space-xs);
779
+ font-size: var(--mz-font-size-xs);
780
+ line-height: 1.4;
781
+ }
782
+
783
+ .calendar {
784
+ --_calendar-gutter-width: 2.75rem;
785
+ --_calendar-slot-height: var(--mz-calendar-slot-height, 2.75rem);
786
+ }
787
+
788
+ .calendar__hour-label {
789
+ font-size: 0.625rem;
790
+ padding-right: var(--mz-space-2xs);
791
+ letter-spacing: -0.01em;
792
+ }
793
+
794
+ /* Swap to short hour format (e.g. "9 AM" instead of "9:00 AM") */
795
+ .calendar__hour-full {
796
+ display: none;
797
+ }
798
+
799
+ .calendar__hour-short {
800
+ display: inline;
801
+ }
802
+
803
+ .calendar__allday-label {
804
+ font-size: 0.5625rem;
805
+ padding: var(--mz-space-2xs) 2px;
806
+ }
807
+
808
+ .calendar__day-header {
809
+ padding: var(--mz-space-2xs) 0;
810
+ font-size: 0.5625rem;
811
+ letter-spacing: 0.02em;
812
+ }
813
+
814
+ .calendar__day-number {
815
+ width: 1.375rem;
816
+ height: 1.375rem;
817
+ font-size: var(--mz-font-size-xs);
818
+ }
819
+
820
+ .calendar__event {
821
+ padding: 2px var(--mz-space-2xs);
822
+ font-size: 0.6875rem;
823
+ line-height: 1.3;
824
+ border-left-width: 2px;
825
+ }
826
+
827
+ .calendar__event-time {
828
+ font-size: 0.5625rem;
829
+ }
830
+
831
+ .calendar__allday-event {
832
+ font-size: 0.6875rem;
833
+ padding: 1px var(--mz-space-2xs);
834
+ }
835
+
836
+ .calendar__month-cell {
837
+ min-height: 3.25rem;
838
+ padding: 2px;
839
+ }
840
+
841
+ .calendar__month-date {
842
+ width: 1.25rem;
843
+ height: 1.25rem;
844
+ font-size: 0.625rem;
845
+ }
846
+
847
+ .calendar__month-event {
848
+ font-size: 0.625rem;
849
+ padding: 1px 3px;
850
+ line-height: 1.35;
851
+ border-radius: 2px;
852
+ }
853
+
854
+ .calendar__month-overflow {
855
+ font-size: 0.625rem;
856
+ padding: 1px 3px;
857
+ }
858
+
859
+ .calendar__month-weekday {
860
+ padding: var(--mz-space-2xs) 0;
861
+ font-size: 0.5625rem;
862
+ }
863
+
864
+ /* List view — tighter on mobile */
865
+ .calendar__list-event {
866
+ padding: var(--mz-space-xs) var(--mz-space-sm);
867
+ gap: var(--mz-space-xs);
868
+ }
869
+
870
+ .calendar__list-event-time {
871
+ font-size: 0.6875rem;
872
+ min-width: 4.5rem;
873
+ }
874
+
875
+ .calendar__list-event-title {
876
+ font-size: var(--mz-font-size-xs);
877
+ }
878
+
879
+ .calendar__list-day-header {
880
+ padding: var(--mz-space-xs) var(--mz-space-sm);
881
+ font-size: var(--mz-font-size-xs);
882
+ }
883
+
884
+ /* Resource headers tighter */
885
+ .calendar__resource-header {
886
+ padding: var(--mz-space-xs) var(--mz-space-2xs);
887
+ font-size: 0.625rem;
888
+ }
889
+ }
890
+
891
+ /* ------------------------------------------------------------------ */
892
+ /* Touch: larger hit targets */
893
+ /* ------------------------------------------------------------------ */
894
+ @media (pointer: coarse) {
895
+ .calendar__btn {
896
+ min-height: 2.25rem;
897
+ min-width: 2.25rem;
898
+ }
899
+
900
+ .calendar__event-resize {
901
+ height: 12px;
902
+ }
903
+
904
+ .calendar__month-event {
905
+ min-height: 1.375rem;
906
+ line-height: 1.375rem;
907
+ }
908
+
909
+ .calendar__allday-event {
910
+ min-height: 1.375rem;
911
+ line-height: 1.375rem;
912
+ }
913
+
914
+ .calendar__list-event {
915
+ min-height: 2.5rem;
916
+ }
917
+ }
918
+ `
919
+ ];
920
+ export {
921
+ calendar_styles_default as default
922
+ };
923
+ //# sourceMappingURL=calendar.styles.js.map