@event-calendar/build 5.5.0 → 5.6.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 +119 -19
- package/dist/event-calendar.min.css +1 -1
- package/dist/event-calendar.min.js +3 -3
- package/dist/event-calendar.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,8 +48,10 @@ Inspired by [FullCalendar](https://fullcalendar.io/), it implements similar opti
|
|
|
48
48
|
- [customScrollbars](#customscrollbars)
|
|
49
49
|
- [date](#date)
|
|
50
50
|
- [dateClick](#dateclick)
|
|
51
|
+
- [dateIncrement](#dateincrement)
|
|
51
52
|
- [datesAboveResources](#datesaboveresources)
|
|
52
53
|
- [datesSet](#datesset)
|
|
54
|
+
- [dayCellContent](#daycellcontent)
|
|
53
55
|
- [dayCellFormat](#daycellformat)
|
|
54
56
|
- [dayHeaderAriaLabelFormat](#dayheaderarialabelformat)
|
|
55
57
|
- [dayHeaderFormat](#dayheaderformat)
|
|
@@ -72,9 +74,9 @@ Inspired by [FullCalendar](https://fullcalendar.io/), it implements similar opti
|
|
|
72
74
|
- [eventDragStart](#eventdragstart)
|
|
73
75
|
- [eventDragStop](#eventdragstop)
|
|
74
76
|
- [eventDrop](#eventdrop)
|
|
75
|
-
- [eventDurationEditable](#eventdurationeditable)
|
|
76
77
|
</td><td>
|
|
77
78
|
|
|
79
|
+
- [eventDurationEditable](#eventdurationeditable)
|
|
78
80
|
- [eventFilter](#eventfilter)
|
|
79
81
|
- [eventLongPressDelay](#eventlongpressdelay)
|
|
80
82
|
- [eventMouseEnter](#eventmouseenter)
|
|
@@ -103,13 +105,14 @@ Inspired by [FullCalendar](https://fullcalendar.io/), it implements similar opti
|
|
|
103
105
|
- [loading](#loading)
|
|
104
106
|
- [locale](#locale)
|
|
105
107
|
- [longPressDelay](#longpressdelay)
|
|
108
|
+
- [monthHeaderFormat](#monthheaderformat)
|
|
106
109
|
- [moreLinkContent](#morelinkcontent)
|
|
107
110
|
- [noEventsClick](#noeventsclick)
|
|
108
111
|
- [noEventsContent](#noeventscontent)
|
|
109
112
|
- [nowIndicator](#nowindicator)
|
|
110
|
-
- [pointer](#pointer)
|
|
111
113
|
</td><td>
|
|
112
114
|
|
|
115
|
+
- [pointer](#pointer)
|
|
113
116
|
- [refetchResourcesOnNavigate](#refetchresourcesonnavigate)
|
|
114
117
|
- [resizeConstraint](#resizeconstraint)
|
|
115
118
|
- [resourceExpand](#resourceexpand)
|
|
@@ -257,8 +260,8 @@ This bundle contains a version of the calendar that includes all plugins and is
|
|
|
257
260
|
|
|
258
261
|
The first step is to include the following lines of code in the `<head>` section of your page:
|
|
259
262
|
```html
|
|
260
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@5.
|
|
261
|
-
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@5.
|
|
263
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@5.6.0/dist/event-calendar.min.css">
|
|
264
|
+
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@5.6.0/dist/event-calendar.min.js"></script>
|
|
262
265
|
```
|
|
263
266
|
|
|
264
267
|
<details>
|
|
@@ -353,7 +356,7 @@ When hidden with `false`, all-day events will not be displayed in `timeGrid`/`re
|
|
|
353
356
|
<details>
|
|
354
357
|
<summary>Default</summary>
|
|
355
358
|
|
|
356
|
-
`{collapse: 'Collapse', close: 'Close', dayGridDay: 'day', dayGridMonth: 'month', dayGridWeek: 'week', expand: 'Expand', listDay: '
|
|
359
|
+
`{collapse: 'Collapse', close: 'Close', dayGridDay: 'day', dayGridMonth: 'month', dayGridWeek: 'week', expand: 'Expand', listDay: 'day', listMonth: 'month', listWeek: 'week', listYear: 'year', resourceTimeGridDay: 'day', resourceTimeGridWeek: 'week', resourceTimelineDay: 'day', resourceTimelineMonth: 'month', resourceTimelineWeek: 'week', resourceTimelineYear: 'year', timeGridDay: 'day', timeGridWeek: 'week', today: 'today'}`
|
|
357
360
|
> Views override the default value as follows:
|
|
358
361
|
> - dayGridDay `text => ({...text, next: 'Next day', prev: 'Previous day'})`
|
|
359
362
|
> - dayGridMonth `text => ({...text, next: 'Next month', prev: 'Previous month'})`
|
|
@@ -367,6 +370,7 @@ When hidden with `false`, all-day events will not be displayed in `timeGrid`/`re
|
|
|
367
370
|
> - resourceTimelineDay `text => ({...text, next: 'Next day', prev: 'Previous day'})`
|
|
368
371
|
> - resourceTimelineMonth `text => ({...text, next: 'Next month', prev: 'Previous month'})`
|
|
369
372
|
> - resourceTimelineWeek `text => ({...text, next: 'Next week', prev: 'Previous week'})`
|
|
373
|
+
> - resourceTimelineYear `text => ({...text, next: 'Next year', prev: 'Previous year'})`
|
|
370
374
|
> - timeGridDay `text => ({...text, next: 'Next day', prev: 'Previous day'})`
|
|
371
375
|
> - timeGridWeek `text => ({...text, next: 'Next week', prev: 'Previous week'})`
|
|
372
376
|
|
|
@@ -568,6 +572,16 @@ If the current view is a resource view, the [Resource](#resource-object) object
|
|
|
568
572
|
</tr>
|
|
569
573
|
</table>
|
|
570
574
|
|
|
575
|
+
### dateIncrement
|
|
576
|
+
- Type `string`, `integer` or `object`
|
|
577
|
+
- Default `undefined`
|
|
578
|
+
|
|
579
|
+
Defines the interval by which the displayed view is shifted when pressing the prev/next buttons or when the [prev()](#prev)/[next()](#next) methods are called.
|
|
580
|
+
|
|
581
|
+
This should be a value that can be parsed into a [Duration](#duration-object) object.
|
|
582
|
+
|
|
583
|
+
If not specified, then equal to [duration](#duration).
|
|
584
|
+
|
|
571
585
|
### datesAboveResources
|
|
572
586
|
- Type `boolean`
|
|
573
587
|
- Default `false`
|
|
@@ -625,6 +639,60 @@ The current [View](#view-object) object
|
|
|
625
639
|
</tr>
|
|
626
640
|
</table>
|
|
627
641
|
|
|
642
|
+
### dayCellContent
|
|
643
|
+
- Type `Content` or `function`
|
|
644
|
+
- Default `undefined`
|
|
645
|
+
|
|
646
|
+
Defines the content that is rendered inside the day cell.
|
|
647
|
+
|
|
648
|
+
This value can be either a [Content](#content) or a function that returns content:
|
|
649
|
+
|
|
650
|
+
```js
|
|
651
|
+
function (arg) {
|
|
652
|
+
// return Content
|
|
653
|
+
}
|
|
654
|
+
```
|
|
655
|
+
`arg` is an object with the following properties:
|
|
656
|
+
<table>
|
|
657
|
+
<tr>
|
|
658
|
+
<td>
|
|
659
|
+
|
|
660
|
+
`allDay`
|
|
661
|
+
</td>
|
|
662
|
+
<td>
|
|
663
|
+
|
|
664
|
+
`true` or `false`. Determines if the cell is within `all-day` slot. Month and list views are also considered as all-day slots
|
|
665
|
+
</td>
|
|
666
|
+
</tr>
|
|
667
|
+
<tr>
|
|
668
|
+
<td>
|
|
669
|
+
|
|
670
|
+
`date`
|
|
671
|
+
</td>
|
|
672
|
+
<td>JavaScript Date object corresponding to the day</td>
|
|
673
|
+
</tr>
|
|
674
|
+
<tr>
|
|
675
|
+
<td>
|
|
676
|
+
|
|
677
|
+
`isToday`
|
|
678
|
+
</td>
|
|
679
|
+
<td>
|
|
680
|
+
|
|
681
|
+
`true` or `false`. Determines if the cell is for today
|
|
682
|
+
</td>
|
|
683
|
+
</tr>
|
|
684
|
+
<tr>
|
|
685
|
+
<td>
|
|
686
|
+
|
|
687
|
+
`resource`
|
|
688
|
+
</td>
|
|
689
|
+
<td>
|
|
690
|
+
|
|
691
|
+
If the current view is a resource view, the [Resource](#resource-object) object that owns this cell
|
|
692
|
+
</td>
|
|
693
|
+
</tr>
|
|
694
|
+
</table>
|
|
695
|
+
|
|
628
696
|
### dayCellFormat
|
|
629
697
|
- Type `object` or `function`
|
|
630
698
|
- Default `{day: 'numeric'}`
|
|
@@ -680,6 +748,7 @@ function (date) {
|
|
|
680
748
|
> - dayGridDay `{weekday: 'long'}`
|
|
681
749
|
> - dayGridMonth `{weekday: 'short'}`
|
|
682
750
|
> - resourceTimelineMonth `{weekday: 'short', day: 'numeric'}`
|
|
751
|
+
> - resourceTimelineYear `{weekday: 'short', day: 'numeric'}`
|
|
683
752
|
> - timeGridDay `{weekday: 'long'}`
|
|
684
753
|
|
|
685
754
|
Defines the text that is displayed on the calendar’s column headings.
|
|
@@ -734,6 +803,7 @@ function (date) {
|
|
|
734
803
|
> - resourceTimelineDay `false`
|
|
735
804
|
> - resourceTimelineMonth `false`
|
|
736
805
|
> - resourceTimelineWeek `false`
|
|
806
|
+
> - resourceTimelineYear `false`
|
|
737
807
|
|
|
738
808
|
Determines whether to display an event’s end time.
|
|
739
809
|
|
|
@@ -765,6 +835,7 @@ Determines whether the calendar should automatically scroll during the event dra
|
|
|
765
835
|
> - resourceTimeGridDay `{days: 1}`
|
|
766
836
|
> - resourceTimelineDay `{days: 1}`
|
|
767
837
|
> - resourceTimelineMonth `{months: 1}`
|
|
838
|
+
> - resourceTimelineYear `{years: 1}`
|
|
768
839
|
> - timeGridDay `{days: 1}`
|
|
769
840
|
|
|
770
841
|
Sets the duration of a view.
|
|
@@ -1954,6 +2025,29 @@ For touch devices, the amount of time (in milliseconds) the user must hold down
|
|
|
1954
2025
|
|
|
1955
2026
|
For a more granular configuration, see [eventLongPressDelay](#eventlongpressdelay) and [selectLongPressDelay](#selectlongpressdelay).
|
|
1956
2027
|
|
|
2028
|
+
### monthHeaderFormat
|
|
2029
|
+
- Type `object` or `function`
|
|
2030
|
+
- Default `{month: 'long'}`
|
|
2031
|
+
|
|
2032
|
+
Defines the text that is displayed in month headings in `resourceTimelineYear` view.
|
|
2033
|
+
|
|
2034
|
+
This value can be either an object with options for the native JavaScript [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) object, or a callback function that returns a [Content](#content) with the formatted string:
|
|
2035
|
+
|
|
2036
|
+
```js
|
|
2037
|
+
function (date) {
|
|
2038
|
+
// return Content with the formatted date string
|
|
2039
|
+
}
|
|
2040
|
+
```
|
|
2041
|
+
<table>
|
|
2042
|
+
<tr>
|
|
2043
|
+
<td>
|
|
2044
|
+
|
|
2045
|
+
`date`
|
|
2046
|
+
</td>
|
|
2047
|
+
<td>JavaScript Date object that needs to be formatted</td>
|
|
2048
|
+
</tr>
|
|
2049
|
+
</table>
|
|
2050
|
+
|
|
1957
2051
|
### moreLinkContent
|
|
1958
2052
|
- Type `Content` or `function`
|
|
1959
2053
|
- Default `undefined`
|
|
@@ -2412,6 +2506,7 @@ Defines how many pixels the user’s mouse must move before the selection begins
|
|
|
2412
2506
|
- Default `'00:30:00'`
|
|
2413
2507
|
> Views override the default value as follows:
|
|
2414
2508
|
> - resourceTimelineMonth `{days: 1}`
|
|
2509
|
+
> - resourceTimelineYear `{days: 1}`
|
|
2415
2510
|
|
|
2416
2511
|
Defines the frequency for displaying time slots.
|
|
2417
2512
|
|
|
@@ -2519,6 +2614,7 @@ If not specified, then equal to [slotDuration](#slotduration).
|
|
|
2519
2614
|
> - resourceTimelineDay `theme => ({...theme, view: 'ec-resource ec-timeline ec-day-view'})`
|
|
2520
2615
|
> - resourceTimelineMonth `theme => ({...theme, view: 'ec-resource ec-timeline ec-month-view'})`
|
|
2521
2616
|
> - resourceTimelineWeek `theme => ({...theme, view: 'ec-resource ec-timeline ec-week-view'})`
|
|
2617
|
+
> - resourceTimelineYear `theme => ({...theme, view: 'ec-resource ec-timeline ec-year-view'})`
|
|
2522
2618
|
> - timeGridDay `theme => ({...theme, view: 'ec-time-grid ec-day-view'})`
|
|
2523
2619
|
> - timeGridWeek `theme => ({...theme, view: 'ec-time-grid ec-week-view'})`
|
|
2524
2620
|
</details>
|
|
@@ -2549,6 +2645,9 @@ function (theme) {
|
|
|
2549
2645
|
- Default `{year: 'numeric', month: 'short', day: 'numeric'}`
|
|
2550
2646
|
> Views override the default value as follows:
|
|
2551
2647
|
> - dayGridMonth `{year: 'numeric', month: 'long'}`
|
|
2648
|
+
> - listDay `{year: 'numeric', month: 'long', day: 'numeric'}`
|
|
2649
|
+
> - listMonth `{year: 'numeric', month: 'long'}`
|
|
2650
|
+
> - listYear `{year: 'numeric'}`
|
|
2552
2651
|
> - timeGridDay `{year: 'numeric', month: 'long', day: 'numeric'}`
|
|
2553
2652
|
|
|
2554
2653
|
Defines the text that is displayed in the header toolbar’s title.
|
|
@@ -2686,6 +2785,7 @@ The following values are available:
|
|
|
2686
2785
|
- `'resourceTimelineDay'`
|
|
2687
2786
|
- `'resourceTimelineWeek'`
|
|
2688
2787
|
- `'resourceTimelineMonth'`
|
|
2788
|
+
- `'resourceTimelineYear'`
|
|
2689
2789
|
- `'timeGridDay'`
|
|
2690
2790
|
- `'timeGridWeek'`
|
|
2691
2791
|
|
|
@@ -2765,7 +2865,7 @@ function (arg) {
|
|
|
2765
2865
|
- Type `boolean`
|
|
2766
2866
|
- Default `false`
|
|
2767
2867
|
|
|
2768
|
-
Determines whether week numbers should be displayed in
|
|
2868
|
+
Determines whether week numbers should be displayed in `dayGrid`/`resourceTimeline` views.
|
|
2769
2869
|
|
|
2770
2870
|
The numbering of weeks depends on the value of [firstDay](#firstday). When `firstDay` is `0`, the [Western](https://en.wikipedia.org/wiki/Week#Other_week_numbering_systems) system is used. Any other value uses the [ISO](https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system) system.
|
|
2771
2871
|
|
|
@@ -2775,20 +2875,20 @@ Methods allow you to manipulate EventCalendar after initialization. They are acc
|
|
|
2775
2875
|
In Svelte, methods are available from a component instance:
|
|
2776
2876
|
```html
|
|
2777
2877
|
<script>
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
let ec = $state();
|
|
2781
|
-
let options = $state({
|
|
2782
|
-
view: 'timeGridWeek',
|
|
2783
|
-
eventSources: [{events: function() {
|
|
2784
|
-
console.log('fetching...');
|
|
2785
|
-
return [];
|
|
2786
|
-
}}]
|
|
2787
|
-
});
|
|
2878
|
+
import {Calendar, TimeGrid} from '@event-calendar/core';
|
|
2788
2879
|
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2880
|
+
let ec = $state();
|
|
2881
|
+
let options = $state({
|
|
2882
|
+
view: 'timeGridWeek',
|
|
2883
|
+
eventSources: [{events: function() {
|
|
2884
|
+
console.log('fetching...');
|
|
2885
|
+
return [];
|
|
2886
|
+
}}]
|
|
2887
|
+
});
|
|
2888
|
+
|
|
2889
|
+
function invokeMethod() {
|
|
2890
|
+
ec.refetchEvents();
|
|
2891
|
+
}
|
|
2792
2892
|
</script>
|
|
2793
2893
|
|
|
2794
2894
|
<button onclick={invokeMethod}>Refetch events</button>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* EventCalendar v5.
|
|
2
|
+
* EventCalendar v5.6.0
|
|
3
3
|
* https://github.com/vkurko/calendar
|
|
4
4
|
*/
|
|
5
5
|
.ec{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ec-color-400:oklch(70.8% 0 0);--ec-color-300:oklch(87% 0 0);--ec-color-200:oklch(92.2% 0 0);--ec-color-100:oklch(97% 0 0);--ec-color-50:oklch(98.5% 0 0);--ec-bg-color:#fff;--ec-text-color:currentcolor;--ec-border-color:var(--ec-color-300);--ec-button-bg-color:var(--ec-bg-color);--ec-button-border-color:var(--ec-border-color);--ec-button-text-color:var(--ec-text-color);--ec-button-active-bg-color:var(--ec-color-200);--ec-button-active-border-color:var(--ec-color-400);--ec-button-active-text-color:var(--ec-button-text-color);--ec-today-bg-color:oklch(98.7% .026 102.212);--ec-highlight-color:oklch(98.4% .019 200.873);--ec-event-bg-color:oklch(70.7% .165 254.624);--ec-event-text-color:#fff;--ec-bg-event-color:var(--ec-color-300);--ec-bg-event-opacity:.3;--ec-event-col-gap:.375rem;--ec-now-indicator-color:oklch(63.7% .237 25.331);--ec-popup-bg-color:var(--ec-bg-color)}.ec-dark .ec{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ec-color-400:oklch(43.9% 0 0);--ec-color-300:oklch(37.1% 0 0);--ec-color-200:oklch(26.9% 0 0);--ec-color-100:oklch(20.5% 0 0);--ec-color-50:oklch(14.5% 0 0);--ec-bg-color:var(--ec-color-100);--ec-today-bg-color:oklch(28.6% .066 53.813);--ec-highlight-color:oklch(30.2% .056 229.695);--ec-bg-event-opacity:.5}@media (prefers-color-scheme:dark){.ec-auto-dark .ec{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ec-color-400:oklch(43.9% 0 0);--ec-color-300:oklch(37.1% 0 0);--ec-color-200:oklch(26.9% 0 0);--ec-color-100:oklch(20.5% 0 0);--ec-color-50:oklch(14.5% 0 0);--ec-bg-color:var(--ec-color-100);--ec-today-bg-color:oklch(28.6% .066 53.813);--ec-highlight-color:oklch(30.2% .056 229.695);--ec-bg-event-opacity:.5}}.ec-day{--ec-day-bg-color:var(--ec-bg-color);background-color:var(--ec-day-bg-color);border:1px solid var(--ec-border-color);border-block-start:none;border-inline-start:none}.ec-day.ec-today{--ec-day-bg-color:var(--ec-today-bg-color)}.ec-day.ec-highlight{--ec-day-bg-color:var(--ec-highlight-color)}.ec-time-grid .ec-body .ec-day{background-image:linear-gradient(to top, var(--ec-day-bg-color) 1px, transparent 1px), linear-gradient(to top, var(--ec-border-color) 1px, transparent 1px), linear-gradient(to right, var(--ec-day-bg-color) 1px, transparent 1px), linear-gradient(to top, var(--ec-border-color) 1px, transparent 1px);background-size:100% 100%, 100% calc(var(--ec-slot-height) * var(--ec-slot-label-periodicity)), 2px 100%, 100% var(--ec-slot-height)}.ec-timeline:not(.ec-month-view,.ec-year-view) .ec-body .ec-day{--ec-last-line-color:transparent;--ec-direction:to left}[dir=rtl] :is(.ec-timeline:not(.ec-month-view,.ec-year-view) .ec-body .ec-day){--ec-direction:to right}.ec-timeline:not(.ec-month-view,.ec-year-view) .ec-body .ec-day{background-image:linear-gradient(var(--ec-direction), var(--ec-last-line-color) 1px, transparent 1px), linear-gradient(var(--ec-direction), var(--ec-border-color) 1px, transparent 1px), linear-gradient(var(--ec-day-bg-color) 1px, transparent 1px), linear-gradient(var(--ec-direction), var(--ec-border-color) 1px, transparent 1px);background-size:100% 100%, calc(var(--ec-slot-width) * var(--ec-slot-label-periodicity)) 100%, 100% 2px, var(--ec-slot-width) 100%;border-inline:none}.ec-timeline:not(.ec-month-view,.ec-year-view) .ec-body .ec-day.ec-no-ieb{--ec-last-line-color:var(--ec-day-bg-color)}.ec-day-grid .ec-day{flex-direction:column;justify-content:space-between;min-block-size:5em;display:flex}.ec-day-grid .ec-uniform .ec-day{min-block-size:auto}.ec-list .ec-day{border-inline:none}.ec-list .ec-day:last-child{border:none}.ec-day.ec-no-ieb{border-inline-end:none}.ec-day.ec-no-beb{border-block-end:none}.ec-day-head{flex-direction:row-reverse;justify-content:space-between;display:flex}.ec-day-grid.ec-month-view .ec-day-head{padding:.375rem}.ec-day.ec-other-month .ec-day-head time{opacity:.3}.ec-list .ec-day-head{background-color:var(--ec-day-bg-color);border-block-end:1px solid var(--ec-border-color);flex-direction:unset;z-index:2;margin:0 0 -1px;padding:.5em 1.5em;position:sticky;inset-block-start:0}.ec-day-foot{padding:.18rem;font-size:.85em}.ec-day-foot a{cursor:pointer}.ec-disabled{position:relative}.ec-disabled:after{content:"";background-color:var(--ec-bg-event-color);opacity:var(--ec-bg-event-opacity);position:absolute;inset:0}.ec-toolbar{justify-content:space-between;align-items:center;margin-block-end:1em;display:flex}.ec-toolbar>*{flex-wrap:wrap;gap:.5rem .75rem;display:inline-flex}.ec-title{margin:0}.ec-button{background-color:var(--ec-button-bg-color);border:1px solid var(--ec-button-border-color);border-radius:.25rem;padding:.375rem .75rem;font-size:1rem;line-height:1.5}.ec-button:not(:disabled){color:var(--ec-button-text-color);cursor:pointer}.ec-button:not(:disabled):hover,.ec-button.ec-active{background-color:var(--ec-button-active-bg-color);border-color:var(--ec-button-active-border-color);color:var(--ec-button-active-text-color);z-index:1}.ec-button-group{vertical-align:top;display:inline-flex}.ec-button-group .ec-button:not(:first-child){border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:-1px}.ec-button-group .ec-button:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.ec-icon{inline-size:1em;display:inline-block}.ec-icon.ec-prev:after,.ec-icon.ec-next:after{content:"";border-block-start:2px solid;border-inline-end:2px solid;block-size:.5em;inline-size:.5em;display:inline-block;position:relative}.ec-icon.ec-prev:after{inset-inline-start:3px;rotate:-135deg}[dir=rtl] .ec-icon.ec-prev:after{rotate:135deg}.ec-icon.ec-next:after{inset-inline-start:-3px;rotate:45deg}[dir=rtl] .ec-icon.ec-next:after{rotate:-45deg}.ec-sidebar{z-index:1;background-color:var(--ec-bg-color);border-inline-end:1px solid var(--ec-border-color);text-align:end;position:sticky;inset-inline-start:0;overflow:clip}.ec-header .ec-sidebar{border-block-end:1px solid var(--ec-border-color);padding-block:.375rem}.ec-time-grid .ec-sidebar{padding-inline:.75rem}.ec-time-grid .ec-body .ec-sidebar{--ec-direction:to left}[dir=rtl] :is(.ec-time-grid .ec-body .ec-sidebar){--ec-direction:to right}.ec-time-grid .ec-body .ec-sidebar{background-image:linear-gradient(var(--ec-direction), transparent .375rem, var(--ec-bg-color) .375rem), linear-gradient(to top, var(--ec-bg-color) 1px, transparent 1px), linear-gradient(to top, var(--ec-border-color) 1px, transparent 1px), linear-gradient(to right, var(--ec-bg-color) 1px, transparent 1px), linear-gradient(to top, var(--ec-border-color) 1px, transparent 1px);background-size:100% 100%, 100% 100%, 100% calc(var(--ec-slot-height) * var(--ec-slot-label-periodicity)), 2px 100%, 100% var(--ec-slot-height)}.ec-timeline .ec-body .ec-sidebar{grid-area:1/1/-1/2;grid-template-rows:subgrid;display:grid}.ec-row-head{border-block-end:1px solid var(--ec-border-color);min-block-size:1.5em;padding:.375em .75rem;display:flex}.ec-row-head:last-child{border:none}.ec-expander{inline-size:1.25em;margin-block-start:-1px;margin-inline-end:.25em}.ec-expander .ec-button{aspect-ratio:1;block-size:1.25em;padding:0;line-height:normal}.ec-slot{white-space:nowrap}.ec-time-grid .ec-slot{block-size:calc(var(--ec-slot-height) * var(--ec-slot-label-periodicity));position:relative;inset-block-start:-.5lh}.ec-timeline .ec-slot{grid-column:span var(--ec-slot-label-periodicity);text-overflow:ellipsis;padding:.18rem 0;font-size:.95em;overflow:clip}.ec-slots{grid-auto-flow:column;grid-auto-columns:var(--ec-slot-width);text-align:center;--ec-day-bg-color:var(--ec-bg-color);background-color:var(--ec-day-bg-color);border-block-end:1px solid var(--ec-border-color);display:grid}.ec-slots.ec-today{--ec-day-bg-color:var(--ec-today-bg-color)}.ec-slots.ec-highlight{--ec-day-bg-color:var(--ec-highlight-color)}.ec-slots{--ec-last-line-color:transparent;--ec-direction:to left}[dir=rtl] .ec-slots{--ec-direction:to right}.ec-slots{background-image:linear-gradient(var(--ec-direction), var(--ec-last-line-color) 1px, transparent 1px), linear-gradient(var(--ec-direction), var(--ec-border-color) 1px, transparent 1px);background-size:100% 100%, calc(var(--ec-slot-width) * var(--ec-slot-label-periodicity)) 100%}.ec-slots:last-child{--ec-last-line-color:var(--ec-day-bg-color)}.ec-events{grid-area:1/2/-1/-1;grid-template:subgrid / subgrid;isolation:isolate;pointer-events:none;display:grid}.ec-day-grid .ec-events{grid-column-start:1}.ec-event{color:var(--ec-event-text-color);box-sizing:border-box;box-shadow:0 0 1px 0 var(--ec-border-color);background-color:var(--ec-event-bg-color);z-index:1;pointer-events:all;inline-size:calc(100% - var(--ec-event-col-gap));border-radius:3px;padding:2px;font-size:.85em;line-height:1.5;display:flex;position:relative}.ec-time-grid .ec-event{grid-row:1}.ec-day-grid .ec-event,.ec-all-day .ec-event,.ec-timeline .ec-event{block-size:max-content;margin-block-end:var(--ec-event-col-gap)}.ec-list .ec-event{color:inherit;background-color:var(--ec-day-bg-color);border-radius:0;flex-direction:row;padding:.5em 1.5em}.ec-event.ec-preview{z-index:1000;-webkit-user-select:none;user-select:none;opacity:.8}.ec-event.ec-pointer{color:inherit;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;box-shadow:none}.ec-bg-event{background-color:var(--ec-bg-event-color);opacity:var(--ec-bg-event-opacity);grid-row:1;position:relative}.ec-draggable{cursor:pointer;-webkit-user-select:none;user-select:none}.ec-ghost{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none}.ec-event-body{flex-direction:column;inline-size:100%;display:flex}.ec-day-grid .ec-event-body,.ec-all-day .ec-event-body,.ec-timeline .ec-event-body{flex-direction:row}.ec-event-tag{border-radius:2px;inline-size:4px;margin-inline-end:8px}.ec-event-time{white-space:nowrap;flex-shrink:0;max-block-size:100%;margin:0 0 1px;overflow:hidden}.ec-day-grid .ec-event-time,.ec-timeline .ec-event-time{text-overflow:ellipsis;max-inline-size:100%;margin:0 3px 0 0}.ec-event-title{font-weight:inherit;margin:0;overflow:hidden}.ec-time-grid .ec-event-title{position:sticky;inset-block-start:var(--ec-header-height)}.ec-day-grid .ec-event-title,.ec-all-day .ec-event-title,.ec-timeline .ec-event-title{white-space:nowrap;text-overflow:ellipsis;min-block-size:1.5em;position:sticky;inset-inline-start:calc(var(--ec-sidebar-width) + .18em)}.ec-list .ec-event-title{font-size:1rem}.ec-resizer{-webkit-user-select:none;user-select:none;position:absolute}.ec-time-grid .ec-body .ec-resizer{cursor:ns-resize;block-size:50%;max-block-size:8px;inset:auto 0 0}.ec-time-grid .ec-body .ec-resizer.ec-start{inset:0 0 auto}.ec-day-grid .ec-resizer,.ec-all-day .ec-resizer,.ec-timeline .ec-resizer{cursor:ew-resize;inline-size:50%;max-inline-size:8px;inset:0 0 0 auto}:is(.ec-day-grid .ec-resizer,.ec-all-day .ec-resizer,.ec-timeline .ec-resizer).ec-start{inset:0 auto 0 0}.ec-dragging,.ec-dragging *{cursor:pointer!important}.ec-resizing-y,.ec-resizing-y *{cursor:ns-resize!important}.ec-resizing-x,.ec-resizing-x *{cursor:ew-resize!important}.ec-no-events{text-align:center;background-color:var(--ec-bg-color);padding:5em 0}.ec-now-indicator{pointer-events:none;will-change:inset;grid-row:2;position:relative}.ec-time-grid .ec-now-indicator{border-block-start:var(--ec-now-indicator-color) solid 2px;block-size:0;inline-size:100%}.ec-timeline .ec-now-indicator{border-inline-start:var(--ec-now-indicator-color) solid 2px;inline-size:0}.ec-timeline .ec-now-indicator:before{z-index:2;inset-block-start:calc(var(--ec-header-height) - 6.5px)}.ec-now-indicator:before{background:var(--ec-now-indicator-color);content:"";block-size:12px;inline-size:12px;z-index:1;border-radius:50%;margin-block-start:-7px;margin-inline-start:-7px;display:block;position:sticky;inset-inline-start:calc(var(--ec-sidebar-width) - 6.5px)}.ec-popup{box-sizing:border-box;background-color:var(--ec-popup-bg-color);border:1px solid var(--ec-border-color);block-size:max-content;min-block-size:8em;inline-size:125%;min-inline-size:12em;box-shadow:var(--ec-color-300) 0 10px 15px -3px, var(--ec-color-300) 0 4px 6px -4px;border-radius:.25rem;flex-direction:column;padding:.375rem .75rem .75rem;display:flex;position:relative}.ec-popup .ec-day-head{flex-direction:row;padding-inline:0}.ec-popup .ec-day-head a{cursor:pointer;font-size:1.5em;line-height:.8}.ec-popup .ec-events{--ec-event-col-gap:0;pointer-events:auto;display:block;overflow-y:auto}.ec-custom-scrollbars .ec-main::-webkit-scrollbar{background-color:#0000}.ec-custom-scrollbars .ec-main::-webkit-scrollbar-thumb{box-shadow:none;background-color:var(--ec-border-color);background-clip:padding-box;border:4px solid #0000;border-radius:8px}.ec-custom-scrollbars .ec-main::-webkit-scrollbar-thumb:hover{background-color:var(--ec-color-400)}.ec{flex-direction:column;display:flex}.ec-main{border:1px solid var(--ec-border-color);display:grid;overflow:auto}.ec-time-grid .ec-main{grid-template-columns:max-content repeat(var(--ec-grid-cols), var(--ec-col-width));grid-template-rows:repeat(2,max-content)}.ec-day-grid .ec-main{--ec-row-height:auto;grid-template-columns:repeat(var(--ec-grid-cols), minmax(0, 1fr));grid-template-rows:max-content repeat(var(--ec-grid-rows), var(--ec-row-height))}.ec-day-grid .ec-main.ec-uniform{--ec-row-height:minmax(0, 1fr);flex-grow:1;overflow:hidden}.ec-timeline .ec-main{grid-template-columns:max-content repeat(var(--ec-grid-cols), min-content);grid-template-rows:max-content var(--ec-grid-rows);flex-grow:1}.ec-timeline:is(.ec-month-view,.ec-year-view) .ec-main{grid-template-columns:max-content repeat(var(--ec-grid-cols), var(--ec-col-width))}.ec-header{grid-area:1/1/2/-1;grid-template-columns:subgrid;z-index:2;display:grid;position:sticky;inset-block-start:0}.ec-grid{grid-area:1/1/-1/-1;grid-template-columns:subgrid;display:grid}.ec-body .ec-grid{grid-template-rows:subgrid}.ec-time-grid .ec-grid,.ec-timeline .ec-grid{grid-column-start:2}.ec-all-day{grid-area:2/1/auto/-1;grid-template-columns:subgrid;min-block-size:var(--ec-slot-height);display:grid}.ec-col-group{grid-column:span var(--ec-col-group-span)}.ec-col-group,.ec-col-head{text-align:center;background-color:var(--ec-bg-color);border:1px solid var(--ec-border-color);text-overflow:ellipsis;border-block-start:none;border-inline-start:none;padding:.375rem .18em;overflow:clip}:is(.ec-col-group,.ec-col-head).ec-today{background-color:var(--ec-today-bg-color)}:is(.ec-col-group,.ec-col-head).ec-highlight{background-color:var(--ec-highlight-color)}.ec-col-group:nth-last-child(1 of .ec-col-group),.ec-col-head:nth-last-child(1 of .ec-col-head){border-inline-end:none}.ec-col-group>*,.ec-timeline .ec-col-head>*{position:sticky;inset-inline-start:calc(var(--ec-sidebar-width) + .18em)}.ec-body{grid-area:2/1/-1/-1;grid-template:subgrid / subgrid;display:grid}.ec-hidden{visibility:hidden}
|