@mantine-vue/schedule 3.0.0 → 3.2.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.
Files changed (80) hide show
  1. package/cjs/index.cjs +6101 -3638
  2. package/cjs/index.cjs.map +1 -1
  3. package/esm/index.mjs +6045 -3632
  4. package/esm/index.mjs.map +1 -1
  5. package/lib/component-props.d.ts +181 -214
  6. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts +8 -114
  7. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.types.d.ts +89 -0
  8. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.vue.d.ts +20 -0
  9. package/lib/components/DayView/DayView.d.ts +10 -212
  10. package/lib/components/DayView/DayView.types.d.ts +65 -0
  11. package/lib/components/DayView/DayView.vue.d.ts +51 -0
  12. package/lib/components/DragContext/DragContext.d.ts +43 -5
  13. package/lib/components/MobileMonthView/MobileMonthView.d.ts +10 -171
  14. package/lib/components/MobileMonthView/MobileMonthView.types.d.ts +110 -0
  15. package/lib/components/MobileMonthView/MobileMonthView.vue.d.ts +44 -0
  16. package/lib/components/MonthView/MonthView.d.ts +10 -174
  17. package/lib/components/MonthView/MonthView.types.d.ts +125 -0
  18. package/lib/components/MonthView/MonthView.vue.d.ts +56 -0
  19. package/lib/components/MoreEvents/MoreEvents.d.ts +9 -65
  20. package/lib/components/MoreEvents/MoreEvents.types.d.ts +62 -0
  21. package/lib/components/MoreEvents/MoreEvents.vue.d.ts +23 -0
  22. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +10 -346
  23. package/lib/components/ResourcesDayView/ResourcesDayView.types.d.ts +308 -0
  24. package/lib/components/ResourcesDayView/ResourcesDayView.vue.d.ts +53 -0
  25. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +10 -279
  26. package/lib/components/ResourcesMonthView/ResourcesMonthView.types.d.ts +233 -0
  27. package/lib/components/ResourcesMonthView/ResourcesMonthView.vue.d.ts +52 -0
  28. package/lib/components/ResourcesMonthView/get-resources-month-view-layout/get-resources-month-view-layout.d.ts +54 -0
  29. package/lib/components/ResourcesMonthView/index.d.ts +1 -0
  30. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +9 -201
  31. package/lib/components/ResourcesSchedule/ResourcesSchedule.types.d.ts +159 -0
  32. package/lib/components/ResourcesSchedule/ResourcesSchedule.vue.d.ts +44 -0
  33. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +10 -412
  34. package/lib/components/ResourcesWeekView/ResourcesWeekView.types.d.ts +314 -0
  35. package/lib/components/ResourcesWeekView/ResourcesWeekView.vue.d.ts +58 -0
  36. package/lib/components/Schedule/Schedule.d.ts +9 -134
  37. package/lib/components/Schedule/Schedule.types.d.ts +153 -0
  38. package/lib/components/Schedule/Schedule.vue.d.ts +50 -0
  39. package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +11 -88
  40. package/lib/components/ScheduleEvent/ScheduleEvent.types.d.ts +109 -0
  41. package/lib/components/ScheduleEvent/ScheduleEvent.vue.d.ts +24 -0
  42. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +36 -0
  43. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.types.d.ts +44 -0
  44. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.vue.d.ts +14 -0
  45. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderNext.vue.d.ts +11 -0
  46. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderPrevious.vue.d.ts +11 -0
  47. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderToday.vue.d.ts +11 -0
  48. package/lib/components/ScheduleHeader/HeaderControl/index.d.ts +1 -2
  49. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.d.ts +8 -0
  50. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.types.d.ts +70 -0
  51. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.vue.d.ts +21 -0
  52. package/lib/components/ScheduleHeader/MonthYearSelect/index.d.ts +1 -2
  53. package/lib/components/ScheduleHeader/ScheduleHeader.context.d.ts +12 -0
  54. package/lib/components/ScheduleHeader/ScheduleHeader.d.ts +20 -364
  55. package/lib/components/ScheduleHeader/ScheduleHeader.types.d.ts +28 -0
  56. package/lib/components/ScheduleHeader/ScheduleHeader.vue.d.ts +11 -0
  57. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +37 -75
  58. package/lib/components/ScheduleHeader/ScheduleHeaderBase.types.d.ts +54 -0
  59. package/lib/components/ScheduleHeader/ScheduleHeaderBase.vue.d.ts +21 -0
  60. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.d.ts +8 -0
  61. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.types.d.ts +39 -0
  62. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.vue.d.ts +16 -0
  63. package/lib/components/ScheduleHeader/ViewSelect/index.d.ts +1 -2
  64. package/lib/components/ScheduleHeader/index.d.ts +4 -0
  65. package/lib/components/WeekView/WeekView.d.ts +10 -294
  66. package/lib/components/WeekView/WeekView.types.d.ts +129 -0
  67. package/lib/components/WeekView/WeekView.vue.d.ts +60 -0
  68. package/lib/components/YearView/YearView.d.ts +9 -151
  69. package/lib/components/YearView/YearView.types.d.ts +87 -0
  70. package/lib/components/YearView/YearView.vue.d.ts +35 -0
  71. package/lib/components/shared.d.ts +71 -141
  72. package/lib/components/use-slot-drag-select.d.ts +7 -9
  73. package/lib/components/use-slot-drop-target.d.ts +38 -0
  74. package/lib/hooks/use-event-resize.d.ts +1 -1
  75. package/lib/hooks/use-horizontal-event-resize.d.ts +2 -156
  76. package/lib/index.d.mts +1 -0
  77. package/lib/index.d.ts +1 -0
  78. package/package.json +4 -4
  79. package/styles.css +44 -54
  80. package/styles.layer.css +44 -54
@@ -0,0 +1,110 @@
1
+ import type { VNodeChild } from 'vue';
2
+ import type { BoxProps, Factory } from '@mantine-vue/core';
3
+ import type { StylesApiProps } from '@mantine-vue/core/styles-api';
4
+ import type { BaseViewEmits, BaseViewOwnProps, NativeButtonProps, ScheduleEventRenderProps } from '../../component-props';
5
+ import type { DateLabelFormat, DateStringValue, DayOfWeek, ScheduleEventData, ScheduleMode } from '../../types';
6
+ export type MobileMonthViewStylesNames = 'mobileMonthView' | 'mobileMonthViewHeader' | 'mobileMonthViewHeaderBackButton' | 'mobileMonthViewHeaderLabel' | 'mobileMonthViewCalendar' | 'mobileMonthViewWeekdays' | 'mobileMonthViewWeekday' | 'mobileMonthViewWeekdaysCorner' | 'mobileMonthViewWeek' | 'mobileMonthViewWeekNumber' | 'mobileMonthViewDay' | 'mobileMonthViewDayIndicators' | 'mobileMonthViewDayIndicator' | 'mobileMonthViewEventsList' | 'mobileMonthViewEventsHeader' | 'mobileMonthViewEvent' | 'mobileMonthViewEventBody' | 'mobileMonthViewEventColor' | 'mobileMonthViewEventTitle' | 'mobileMonthViewEventTime' | 'mobileMonthViewNoEvents';
7
+ export type MobileMonthViewCssVariables = {
8
+ mobileMonthView: '--mobile-month-view-radius';
9
+ };
10
+ /** Payload of the `header` slot and of the `renderHeader` prop. */
11
+ export interface MobileMonthViewHeaderPayload {
12
+ /** Interaction mode of the view. */
13
+ mode: ScheduleMode;
14
+ /** Month currently displayed. */
15
+ date: Date | DateStringValue;
16
+ /** The header the view would render, so a custom one can reuse parts of it. */
17
+ defaultHeader: VNodeChild;
18
+ }
19
+ export interface MobileMonthViewSlots {
20
+ /** Replaces every event in the list. Takes precedence over `renderEvent`. */
21
+ event?: (props: ScheduleEventRenderProps & {
22
+ event: ScheduleEventData;
23
+ }) => VNodeChild;
24
+ /** Replaces the header above the calendar. Takes precedence over `renderHeader`. */
25
+ header?: (props: MobileMonthViewHeaderPayload) => VNodeChild;
26
+ }
27
+ /** Props declared by `MobileMonthView` itself. See `MobileMonthViewProps` for the full public type. */
28
+ export interface MobileMonthViewOwnProps extends BaseViewOwnProps, StylesApiProps<MobileMonthViewFactory> {
29
+ /** Selected day, bound with `v-model:selected-date`. */
30
+ selectedDate?: Date | DateStringValue | null;
31
+ /** Day selected on the first render when `selectedDate` is not set. @default today */
32
+ defaultSelectedDate?: Date | DateStringValue | null;
33
+ /**
34
+ * If set, week numbers are displayed in the first column.
35
+ * @default false
36
+ */
37
+ withWeekNumbers?: boolean;
38
+ /**
39
+ * If set, weekday names are displayed above the grid.
40
+ * @default true
41
+ */
42
+ withWeekDays?: boolean;
43
+ /**
44
+ * Day the week starts on, `0` – Sunday.
45
+ * @default 1
46
+ */
47
+ firstDayOfWeek?: DayOfWeek;
48
+ /**
49
+ * Format of the weekday names above the grid.
50
+ * @default 'dd'
51
+ */
52
+ weekdayFormat?: DateLabelFormat;
53
+ /**
54
+ * Days marked as weekend, `0` – Sunday.
55
+ * @default [0, 6]
56
+ */
57
+ weekendDays?: DayOfWeek[];
58
+ /** Returns extra props for the control of the week that starts on the given day. */
59
+ getWeekNumberProps?: (weekStartDate: DateStringValue) => NativeButtonProps;
60
+ /** Returns extra props for the control of the given day. */
61
+ getDayProps?: (date: DateStringValue) => NativeButtonProps;
62
+ /**
63
+ * If set, every month renders six weeks so the grid height never changes.
64
+ * @default true
65
+ */
66
+ consistentWeeks?: boolean;
67
+ /**
68
+ * If set, today is highlighted.
69
+ * @default true
70
+ */
71
+ highlightToday?: boolean;
72
+ /**
73
+ * If set, days of the neighbouring months are rendered.
74
+ * @default false
75
+ */
76
+ withOutsideDays?: boolean;
77
+ /**
78
+ * Format of the heading above the event list.
79
+ * @default 'dddd, MMMM D'
80
+ */
81
+ eventsHeaderFormat?: DateLabelFormat;
82
+ /**
83
+ * Replaces the header above the calendar. Can also be set with the `header` slot,
84
+ * which takes precedence over the prop.
85
+ */
86
+ renderHeader?: (payload: MobileMonthViewHeaderPayload) => VNodeChild;
87
+ }
88
+ export interface MobileMonthViewProps extends Omit<BoxProps, keyof MobileMonthViewOwnProps>, MobileMonthViewOwnProps {
89
+ }
90
+ export interface MobileMonthViewEmits extends BaseViewEmits {
91
+ /** Emitted when another day is selected, bound with `v-model:selected-date`. */
92
+ 'update:selectedDate': [date: DateStringValue | null];
93
+ /** Emitted when another day is selected. */
94
+ selectedDateChange: [date: DateStringValue | null];
95
+ /** Emitted when a day is clicked. */
96
+ dayClick: [date: DateStringValue, nativeEvent: MouseEvent];
97
+ /** Emitted when a week number is clicked. */
98
+ weekNumberClick: [date: DateStringValue, nativeEvent: MouseEvent];
99
+ /** Emitted when the year control in the header is clicked. */
100
+ yearClick: [];
101
+ }
102
+ export type MobileMonthViewFactory = Factory<{
103
+ props: Omit<MobileMonthViewProps, 'rootRef'>;
104
+ slots: MobileMonthViewSlots;
105
+ emits: MobileMonthViewEmits;
106
+ ref: HTMLDivElement;
107
+ element: 'div';
108
+ stylesNames: MobileMonthViewStylesNames;
109
+ vars: MobileMonthViewCssVariables;
110
+ }>;
@@ -0,0 +1,44 @@
1
+ import type { ScheduleEventData } from '../../types';
2
+ import type { MobileMonthViewSlots } from './MobileMonthView.types';
3
+ import type { MobileMonthViewOwnProps } from './MobileMonthView.types';
4
+ declare const defaultProps: {
5
+ mode: "default";
6
+ recurrenceExpansionLimit: number;
7
+ withHeader: true;
8
+ withWeekDays: true;
9
+ firstDayOfWeek: 1;
10
+ weekdayFormat: string;
11
+ weekendDays: (0 | 6)[];
12
+ consistentWeeks: true;
13
+ highlightToday: true;
14
+ eventsHeaderFormat: string;
15
+ };
16
+ declare const MAX_DAY_INDICATORS = 3;
17
+ declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
18
+ export { defaultProps, varsResolver, MAX_DAY_INDICATORS };
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MobileMonthViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ dateChange: (date: string) => any;
23
+ dayClick: (date: string, nativeEvent: MouseEvent) => any;
24
+ eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
25
+ viewChange: (view: import("../..").ScheduleViewLevel) => any;
26
+ "update:selectedDate": (date: string | null) => any;
27
+ selectedDateChange: (date: string | null) => any;
28
+ weekNumberClick: (date: string, nativeEvent: MouseEvent) => any;
29
+ yearClick: () => any;
30
+ }, string, import("vue").PublicProps, Readonly<MobileMonthViewOwnProps> & Readonly<{
31
+ onDateChange?: ((date: string) => any) | undefined;
32
+ onDayClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
33
+ onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
34
+ onViewChange?: ((view: import("../..").ScheduleViewLevel) => any) | undefined;
35
+ "onUpdate:selectedDate"?: ((date: string | null) => any) | undefined;
36
+ onSelectedDateChange?: ((date: string | null) => any) | undefined;
37
+ onWeekNumberClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
38
+ onYearClick?: (() => any) | undefined;
39
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, MobileMonthViewSlots>;
40
+ type __VLS_WithSlots<T, S> = T & {
41
+ new (): {
42
+ $slots: S;
43
+ };
44
+ };
@@ -1,174 +1,10 @@
1
- import { type PropType, type SlotsType } from 'vue';
2
- import type { DateLabelFormat, DayOfWeek } from '../../types';
3
- import type { MonthViewProps } from '../../component-props';
4
- import { type EventSlots } from '../shared';
5
- export declare const MonthView: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
- firstDayOfWeek: {
7
- type: PropType<DayOfWeek>;
8
- default: number;
9
- };
10
- weekdayFormat: {
11
- type: PropType<DateLabelFormat>;
12
- default: string;
13
- };
14
- weekendDays: {
15
- type: PropType<DayOfWeek[]>;
16
- default: () => number[];
17
- };
18
- withWeekNumbers: BooleanConstructor;
19
- withWeekDays: {
20
- type: BooleanConstructor;
21
- default: boolean;
22
- };
23
- consistentWeeks: {
24
- type: BooleanConstructor;
25
- default: boolean;
26
- };
27
- highlightToday: {
28
- type: BooleanConstructor;
29
- default: boolean;
30
- };
31
- withOutsideDays: {
32
- type: BooleanConstructor;
33
- default: boolean;
34
- };
35
- maxEventsPerDay: {
36
- type: NumberConstructor;
37
- default: number;
38
- };
39
- getDayProps: PropType<MonthViewProps["getDayProps"]>;
40
- getWeekNumberProps: PropType<MonthViewProps["getWeekNumberProps"]>;
41
- onDayClick: PropType<MonthViewProps["onDayClick"]>;
42
- onWeekNumberClick: PropType<MonthViewProps["onWeekNumberClick"]>;
43
- withEventsDragAndDrop: BooleanConstructor;
44
- onEventDrop: PropType<MonthViewProps["onEventDrop"]>;
45
- canDragEvent: PropType<MonthViewProps["canDragEvent"]>;
46
- onEventDragStart: PropType<MonthViewProps["onEventDragStart"]>;
47
- onEventDragEnd: PropType<MonthViewProps["onEventDragEnd"]>;
48
- onExternalEventDrop: PropType<MonthViewProps["onExternalEventDrop"]>;
49
- withDragSlotSelect: BooleanConstructor;
50
- onSlotDragEnd: PropType<MonthViewProps["onSlotDragEnd"]>;
51
- date: {
52
- type: PropType<Date | import("../..").DateStringValue>;
53
- required: boolean;
54
- };
55
- onDateChange: PropType<(date: import("../..").DateStringValue) => void>;
56
- events: PropType<import("../..").ScheduleEventData[]>;
57
- locale: StringConstructor;
58
- radius: PropType<string | number>;
59
- labels: ObjectConstructor;
60
- mode: {
61
- type: PropType<import("../..").ScheduleMode>;
62
- default: string;
63
- };
64
- withHeader: {
65
- type: BooleanConstructor;
66
- default: boolean;
67
- };
68
- onViewChange: PropType<(view: import("../..").ScheduleViewLevel) => void>;
69
- previousControlProps: PropType<import("../../component-props").NativeButtonProps>;
70
- nextControlProps: PropType<import("../../component-props").NativeButtonProps>;
71
- todayControlProps: PropType<import("../../component-props").NativeButtonProps>;
72
- viewSelectProps: ObjectConstructor;
73
- renderEventBody: PropType<import("../ScheduleEvent").RenderEventBody>;
74
- renderEvent: PropType<import("../ScheduleEvent").RenderEvent>;
75
- onEventClick: PropType<(event: import("../..").ScheduleEventData, nativeEvent: MouseEvent) => void>;
76
- recurrenceExpansionLimit: {
77
- type: NumberConstructor;
78
- default: number;
79
- };
80
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
81
- [key: string]: any;
82
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
83
- firstDayOfWeek: {
84
- type: PropType<DayOfWeek>;
85
- default: number;
86
- };
87
- weekdayFormat: {
88
- type: PropType<DateLabelFormat>;
89
- default: string;
90
- };
91
- weekendDays: {
92
- type: PropType<DayOfWeek[]>;
93
- default: () => number[];
94
- };
95
- withWeekNumbers: BooleanConstructor;
96
- withWeekDays: {
97
- type: BooleanConstructor;
98
- default: boolean;
99
- };
100
- consistentWeeks: {
101
- type: BooleanConstructor;
102
- default: boolean;
103
- };
104
- highlightToday: {
105
- type: BooleanConstructor;
106
- default: boolean;
107
- };
108
- withOutsideDays: {
109
- type: BooleanConstructor;
110
- default: boolean;
111
- };
112
- maxEventsPerDay: {
113
- type: NumberConstructor;
114
- default: number;
115
- };
116
- getDayProps: PropType<MonthViewProps["getDayProps"]>;
117
- getWeekNumberProps: PropType<MonthViewProps["getWeekNumberProps"]>;
118
- onDayClick: PropType<MonthViewProps["onDayClick"]>;
119
- onWeekNumberClick: PropType<MonthViewProps["onWeekNumberClick"]>;
120
- withEventsDragAndDrop: BooleanConstructor;
121
- onEventDrop: PropType<MonthViewProps["onEventDrop"]>;
122
- canDragEvent: PropType<MonthViewProps["canDragEvent"]>;
123
- onEventDragStart: PropType<MonthViewProps["onEventDragStart"]>;
124
- onEventDragEnd: PropType<MonthViewProps["onEventDragEnd"]>;
125
- onExternalEventDrop: PropType<MonthViewProps["onExternalEventDrop"]>;
126
- withDragSlotSelect: BooleanConstructor;
127
- onSlotDragEnd: PropType<MonthViewProps["onSlotDragEnd"]>;
128
- date: {
129
- type: PropType<Date | import("../..").DateStringValue>;
130
- required: boolean;
131
- };
132
- onDateChange: PropType<(date: import("../..").DateStringValue) => void>;
133
- events: PropType<import("../..").ScheduleEventData[]>;
134
- locale: StringConstructor;
135
- radius: PropType<string | number>;
136
- labels: ObjectConstructor;
137
- mode: {
138
- type: PropType<import("../..").ScheduleMode>;
139
- default: string;
140
- };
141
- withHeader: {
142
- type: BooleanConstructor;
143
- default: boolean;
144
- };
145
- onViewChange: PropType<(view: import("../..").ScheduleViewLevel) => void>;
146
- previousControlProps: PropType<import("../../component-props").NativeButtonProps>;
147
- nextControlProps: PropType<import("../../component-props").NativeButtonProps>;
148
- todayControlProps: PropType<import("../../component-props").NativeButtonProps>;
149
- viewSelectProps: ObjectConstructor;
150
- renderEventBody: PropType<import("../ScheduleEvent").RenderEventBody>;
151
- renderEvent: PropType<import("../ScheduleEvent").RenderEvent>;
152
- onEventClick: PropType<(event: import("../..").ScheduleEventData, nativeEvent: MouseEvent) => void>;
153
- recurrenceExpansionLimit: {
154
- type: NumberConstructor;
155
- default: number;
156
- };
157
- }>> & Readonly<{}>, {
158
- mode: import("../..").ScheduleMode;
159
- firstDayOfWeek: DayOfWeek;
160
- weekendDays: DayOfWeek[];
161
- consistentWeeks: boolean;
162
- highlightToday: boolean;
163
- withWeekNumbers: boolean;
164
- weekdayFormat: DateLabelFormat;
165
- withOutsideDays: boolean;
166
- withHeader: boolean;
167
- recurrenceExpansionLimit: number;
168
- withEventsDragAndDrop: boolean;
169
- withDragSlotSelect: boolean;
170
- withWeekDays: boolean;
171
- maxEventsPerDay: number;
172
- }, SlotsType<EventSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
173
- export type { MonthViewProps };
174
- export type MonthViewStylesNames = 'monthView' | 'monthViewWeekdays' | 'monthViewWeek' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdaysCorner' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewBackgroundEvent' | 'monthViewEvents';
1
+ export declare const MonthView: import("@mantine-vue/core").MantineComponent<{
2
+ props: Omit<import("./MonthView.types").MonthViewProps, "rootRef">;
3
+ slots: import("./MonthView.types").MonthViewSlots;
4
+ emits: import("./MonthView.types").MonthViewEmits;
5
+ ref: HTMLDivElement;
6
+ element: "div";
7
+ stylesNames: import("./MonthView.types").MonthViewStylesNames;
8
+ vars: import("./MonthView.types").MonthViewCssVariables;
9
+ }>;
10
+ export type { MonthViewCssVariables, MonthViewEmits, MonthViewFactory, MonthViewOwnProps, MonthViewOwnStylesNames, MonthViewProps, MonthViewSlots, MonthViewStylesNames, } from './MonthView.types';
@@ -0,0 +1,125 @@
1
+ import type { BoxProps, Factory, ScrollAreaProps } from '@mantine-vue/core';
2
+ import type { StylesApiProps } from '@mantine-vue/core/styles-api';
3
+ import type { BaseViewEmits, BaseViewOwnProps, EventDropData, EventSlots, ForwardedProps, NativeButtonProps } from '../../component-props';
4
+ import type { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData } from '../../types';
5
+ import type { MoreEventsEmits, MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents.types';
6
+ import type { ScheduleEventStylesNames } from '../ScheduleEvent/ScheduleEvent.types';
7
+ import type { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader.types';
8
+ import type { MonthYearSelectEmits, MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect.types';
9
+ export type MonthViewOwnStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | 'monthViewBackgroundEvent';
10
+ /**
11
+ * `MonthView` forwards `classNames` and `styles` to the components it renders, so their
12
+ * selectors are part of its Styles API.
13
+ */
14
+ export type MonthViewStylesNames = MonthViewOwnStylesNames | MoreEventsStylesNames | ScheduleEventStylesNames | CombinedScheduleHeaderStylesNames;
15
+ export type MonthViewCssVariables = {
16
+ monthView: '--month-view-radius' | '--month-view-max-events';
17
+ };
18
+ export type MonthViewSlots = EventSlots;
19
+ /** Props declared by `MonthView` itself. See `MonthViewProps` for the full public type. */
20
+ export interface MonthViewOwnProps extends BaseViewOwnProps, StylesApiProps<MonthViewFactory> {
21
+ /**
22
+ * Day the week starts on, `0` – Sunday.
23
+ * @default 1
24
+ */
25
+ firstDayOfWeek?: DayOfWeek;
26
+ /**
27
+ * Format of the weekday names above the grid.
28
+ * @default 'ddd'
29
+ */
30
+ weekdayFormat?: DateLabelFormat;
31
+ /**
32
+ * Days marked as weekend, `0` – Sunday.
33
+ * @default [0, 6]
34
+ */
35
+ weekendDays?: DayOfWeek[];
36
+ /**
37
+ * If set, week numbers are displayed in the first column.
38
+ * @default false
39
+ */
40
+ withWeekNumbers?: boolean;
41
+ /**
42
+ * If set, weekday names are displayed above the grid.
43
+ * @default true
44
+ */
45
+ withWeekDays?: boolean;
46
+ /**
47
+ * If set, every month renders six weeks so the grid height never changes.
48
+ * @default true
49
+ */
50
+ consistentWeeks?: boolean;
51
+ /**
52
+ * If set, today is highlighted.
53
+ * @default true
54
+ */
55
+ highlightToday?: boolean;
56
+ /**
57
+ * If set, days of the neighbouring months are rendered.
58
+ * @default true
59
+ */
60
+ withOutsideDays?: boolean;
61
+ /**
62
+ * Number of events shown per day before the rest collapse into a "more" control.
63
+ * Clamped to the `1` – `10` range.
64
+ * @default 2
65
+ */
66
+ maxEventsPerDay?: number;
67
+ /** Returns extra props for the control of the given day. */
68
+ getDayProps?: (date: DateStringValue) => NativeButtonProps;
69
+ /** Returns extra props for the control of the week that starts on the given day. */
70
+ getWeekNumberProps?: (weekStartDate: DateStringValue) => NativeButtonProps;
71
+ /**
72
+ * If set, events can be dragged onto another day.
73
+ * @default false
74
+ */
75
+ withEventsDragAndDrop?: boolean;
76
+ /**
77
+ * Returns whether the given event may be dragged.
78
+ * @default () => true
79
+ */
80
+ canDragEvent?: (event: ScheduleEventData) => boolean;
81
+ /**
82
+ * If set, items dragged in from outside the schedule can be dropped on a day, which emits
83
+ * `externalEventDrop`. Enabling event drag and drop turns this on as well.
84
+ * @default false
85
+ */
86
+ withExternalEventDrop?: boolean;
87
+ /**
88
+ * If set, dragging across days selects a range.
89
+ * @default false
90
+ */
91
+ withDragSlotSelect?: boolean;
92
+ /** Props passed to the month/year select in the header. */
93
+ monthYearSelectProps?: ForwardedProps<MonthYearSelectProps, MonthYearSelectEmits>;
94
+ /** Props passed to the `MoreEvents` control of every day. */
95
+ moreEventsProps?: ForwardedProps<MoreEventsProps, MoreEventsEmits>;
96
+ /** Props passed to the `ScrollArea` that wraps the grid. */
97
+ scrollAreaProps?: ForwardedProps<ScrollAreaProps>;
98
+ }
99
+ export interface MonthViewProps extends Omit<BoxProps, keyof MonthViewOwnProps>, MonthViewOwnProps {
100
+ }
101
+ export interface MonthViewEmits extends BaseViewEmits {
102
+ /** Emitted when a day is clicked. */
103
+ dayClick: [date: DateStringValue, nativeEvent: MouseEvent];
104
+ /** Emitted when a week number is clicked. */
105
+ weekNumberClick: [date: DateStringValue, nativeEvent: MouseEvent];
106
+ /** Emitted when an event is dropped on another day. */
107
+ eventDrop: [data: EventDropData];
108
+ /** Emitted when a drag of an event starts. */
109
+ eventDragStart: [event: ScheduleEventData];
110
+ /** Emitted when a drag of an event ends. */
111
+ eventDragEnd: [];
112
+ /** Emitted when an item from outside the schedule is dropped on a day. */
113
+ externalEventDrop: [dataTransfer: DataTransfer, date: DateStringValue];
114
+ /** Emitted when a day range is selected by dragging. */
115
+ slotDragEnd: [rangeStart: DateTimeStringValue, rangeEnd: DateTimeStringValue];
116
+ }
117
+ export type MonthViewFactory = Factory<{
118
+ props: Omit<MonthViewProps, 'rootRef'>;
119
+ slots: MonthViewSlots;
120
+ emits: MonthViewEmits;
121
+ ref: HTMLDivElement;
122
+ element: 'div';
123
+ stylesNames: MonthViewStylesNames;
124
+ vars: MonthViewCssVariables;
125
+ }>;
@@ -0,0 +1,56 @@
1
+ import type { ScheduleEventData } from '../../types';
2
+ import type { MonthViewOwnProps } from './MonthView.types';
3
+ declare const defaultProps: {
4
+ mode: "default";
5
+ withHeader: true;
6
+ recurrenceExpansionLimit: number;
7
+ firstDayOfWeek: 1;
8
+ weekdayFormat: string;
9
+ weekendDays: (0 | 6)[];
10
+ withWeekDays: true;
11
+ consistentWeeks: true;
12
+ highlightToday: true;
13
+ withOutsideDays: true;
14
+ maxEventsPerDay: number;
15
+ };
16
+ /** Vertical offset of the first event row, past the day label, in px. */
17
+ declare const EVENTS_TOP_OFFSET = 28;
18
+ /** Vertical step between stacked event rows, in px. */
19
+ declare const EVENT_ROW_HEIGHT = 22;
20
+ /** Group name of the month grid for slot drag selection – a month has a single grid. */
21
+ declare const MONTH_SLOT_GROUP = "month";
22
+ declare const COLUMNS = 7;
23
+ /** `maxEventsPerDay` is clamped so the CSS grid keeps a workable row height. */
24
+ declare function clampMaxEvents(value: number): number;
25
+ declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
26
+ export { defaultProps, varsResolver, clampMaxEvents, EVENTS_TOP_OFFSET, EVENT_ROW_HEIGHT, MONTH_SLOT_GROUP, COLUMNS, };
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
29
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MonthViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ dateChange: (date: string) => any;
31
+ dayClick: (date: string, nativeEvent: MouseEvent) => any;
32
+ eventDragStart: (event: ScheduleEventData) => any;
33
+ eventDragEnd: () => any;
34
+ eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
35
+ viewChange: (view: import("../..").ScheduleViewLevel) => any;
36
+ eventDrop: (data: import("../..").EventDropData) => any;
37
+ slotDragEnd: (rangeStart: string, rangeEnd: string) => any;
38
+ externalEventDrop: (dataTransfer: DataTransfer, date: string) => any;
39
+ weekNumberClick: (date: string, nativeEvent: MouseEvent) => any;
40
+ }, string, import("vue").PublicProps, Readonly<MonthViewOwnProps> & Readonly<{
41
+ onDateChange?: ((date: string) => any) | undefined;
42
+ onDayClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
43
+ onEventDragStart?: ((event: ScheduleEventData) => any) | undefined;
44
+ onEventDragEnd?: (() => any) | undefined;
45
+ onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
46
+ onViewChange?: ((view: import("../..").ScheduleViewLevel) => any) | undefined;
47
+ onEventDrop?: ((data: import("../..").EventDropData) => any) | undefined;
48
+ onSlotDragEnd?: ((rangeStart: string, rangeEnd: string) => any) | undefined;
49
+ onExternalEventDrop?: ((dataTransfer: DataTransfer, date: string) => any) | undefined;
50
+ onWeekNumberClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
51
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, import("../..").EventSlots>;
52
+ type __VLS_WithSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -1,65 +1,9 @@
1
- import { type PropType, type SlotsType } from 'vue';
2
- import { type ScheduleLabelsOverride } from '../../labels';
3
- import type { MoreEventsDropdownType, MoreEventsProps, RenderEvent, RenderEventBody } from '../../component-props';
4
- import type { ScheduleEventData, ScheduleMode } from '../../types';
5
- import { type EventSlots } from '../shared';
6
- export declare const MoreEvents: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
7
- events: {
8
- type: PropType<ScheduleEventData[]>;
9
- required: true;
10
- };
11
- moreEventsCount: {
12
- type: NumberConstructor;
13
- required: true;
14
- };
15
- radius: PropType<string | number>;
16
- modalTitle: StringConstructor;
17
- dropdownType: {
18
- type: PropType<MoreEventsDropdownType>;
19
- default: string;
20
- };
21
- popoverProps: PropType<Record<string, unknown>>;
22
- modalProps: PropType<Record<string, unknown>>;
23
- onDropdownClose: PropType<() => void>;
24
- renderEventBody: PropType<RenderEventBody>;
25
- renderEvent: PropType<RenderEvent>;
26
- labels: PropType<ScheduleLabelsOverride>;
27
- mode: {
28
- type: PropType<ScheduleMode>;
29
- default: string;
30
- };
31
- onEventClick: PropType<(event: ScheduleEventData, nativeEvent: MouseEvent) => void>;
32
- }>, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
33
- [key: string]: any;
34
- }> | null)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
35
- events: {
36
- type: PropType<ScheduleEventData[]>;
37
- required: true;
38
- };
39
- moreEventsCount: {
40
- type: NumberConstructor;
41
- required: true;
42
- };
43
- radius: PropType<string | number>;
44
- modalTitle: StringConstructor;
45
- dropdownType: {
46
- type: PropType<MoreEventsDropdownType>;
47
- default: string;
48
- };
49
- popoverProps: PropType<Record<string, unknown>>;
50
- modalProps: PropType<Record<string, unknown>>;
51
- onDropdownClose: PropType<() => void>;
52
- renderEventBody: PropType<RenderEventBody>;
53
- renderEvent: PropType<RenderEvent>;
54
- labels: PropType<ScheduleLabelsOverride>;
55
- mode: {
56
- type: PropType<ScheduleMode>;
57
- default: string;
58
- };
59
- onEventClick: PropType<(event: ScheduleEventData, nativeEvent: MouseEvent) => void>;
60
- }>> & Readonly<{}>, {
61
- mode: ScheduleMode;
62
- dropdownType: MoreEventsDropdownType;
63
- }, SlotsType<EventSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
64
- export type { MoreEventsDropdownType, MoreEventsProps };
65
- export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsDropdown' | 'moreEventsList';
1
+ export declare const MoreEvents: import("@mantine-vue/core").MantineComponent<{
2
+ props: Omit<import("./MoreEvents.types").MoreEventsProps, "rootRef">;
3
+ slots: import("./MoreEvents.types").MoreEventsSlots;
4
+ emits: import("./MoreEvents.types").MoreEventsEmits;
5
+ ref: HTMLButtonElement;
6
+ element: "button";
7
+ stylesNames: import("./MoreEvents.types").MoreEventsStylesNames;
8
+ }>;
9
+ export type { MoreEventsDropdownType, MoreEventsEmits, MoreEventsFactory, MoreEventsOwnProps, MoreEventsProps, MoreEventsSlots, MoreEventsStylesNames, } from './MoreEvents.types';
@@ -0,0 +1,62 @@
1
+ import type { BoxProps, Factory, ModalProps, PopoverProps } from '@mantine-vue/core';
2
+ import type { StylesApiProps } from '@mantine-vue/core/styles-api';
3
+ import type { EventSlots, ForwardedProps, RenderEvent, RenderEventBody } from '../../component-props';
4
+ import type { ScheduleLabelsOverride } from '../../labels';
5
+ import type { ScheduleEventData, ScheduleMode } from '../../types';
6
+ export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsDropdown' | 'moreEventsList';
7
+ /** How the hidden events are revealed. */
8
+ export type MoreEventsDropdownType = 'popover' | 'modal';
9
+ export type MoreEventsSlots = EventSlots;
10
+ /** Props declared by `MoreEvents` itself. See `MoreEventsProps` for the full public type. */
11
+ export interface MoreEventsOwnProps extends StylesApiProps<MoreEventsFactory> {
12
+ /** Events listed in the dropdown. */
13
+ events: ScheduleEventData[];
14
+ /** Number of events hidden behind the control, used to build its label. */
15
+ moreEventsCount: number;
16
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius`. */
17
+ radius?: string | number;
18
+ /** Title of the modal, used only when `dropdownType` is `modal`. */
19
+ modalTitle?: string;
20
+ /**
21
+ * Whether the hidden events open in a popover or in a modal.
22
+ * @default 'popover'
23
+ */
24
+ dropdownType?: MoreEventsDropdownType;
25
+ /** Props passed to the underlying `Popover`. */
26
+ popoverProps?: ForwardedProps<PopoverProps>;
27
+ /** Props passed to the underlying `Modal`. */
28
+ modalProps?: ForwardedProps<ModalProps>;
29
+ /**
30
+ * Replaces the body of every listed event. Can also be set with the `eventBody` slot,
31
+ * which takes precedence over the prop.
32
+ */
33
+ renderEventBody?: RenderEventBody;
34
+ /**
35
+ * Replaces every listed event entirely. Can also be set with the `event` slot,
36
+ * which takes precedence over the prop.
37
+ */
38
+ renderEvent?: RenderEvent;
39
+ /** Label overrides, used for the control text and accessible names. */
40
+ labels?: ScheduleLabelsOverride;
41
+ /**
42
+ * Interaction mode. `static` keeps the control visible but non-interactive.
43
+ * @default 'default'
44
+ */
45
+ mode?: ScheduleMode;
46
+ }
47
+ export interface MoreEventsProps extends Omit<BoxProps, keyof MoreEventsOwnProps>, MoreEventsOwnProps {
48
+ }
49
+ export interface MoreEventsEmits {
50
+ /** Emitted when the dropdown closes. */
51
+ dropdownClose: [];
52
+ /** Emitted when a listed event is clicked. */
53
+ eventClick: [event: ScheduleEventData, nativeEvent: MouseEvent];
54
+ }
55
+ export type MoreEventsFactory = Factory<{
56
+ props: Omit<MoreEventsProps, 'rootRef'>;
57
+ slots: MoreEventsSlots;
58
+ emits: MoreEventsEmits;
59
+ ref: HTMLButtonElement;
60
+ element: 'button';
61
+ stylesNames: MoreEventsStylesNames;
62
+ }>;