@mantine/schedule 9.5.2 → 9.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.
Files changed (208) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/cjs/components/AgendaView/AgendaView.cjs +7 -6
  3. package/cjs/components/AgendaView/AgendaView.cjs.map +1 -1
  4. package/cjs/components/AgendaView/get-agenda-view-events.cjs.map +1 -1
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +3 -2
  6. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  7. package/cjs/components/DayView/DayView.cjs +144 -78
  8. package/cjs/components/DayView/DayView.cjs.map +1 -1
  9. package/cjs/components/DayView/DayView.module.cjs +2 -1
  10. package/cjs/components/DayView/DayView.module.cjs.map +1 -1
  11. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  12. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  13. package/cjs/components/MobileMonthView/MobileMonthView.cjs +7 -6
  14. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  15. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  16. package/cjs/components/MonthView/MonthView.cjs +24 -34
  17. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  18. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -1
  19. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  20. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +4 -2
  21. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  23. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +3 -2
  24. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  25. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs +1 -1
  26. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs.map +1 -1
  27. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  28. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs +136 -52
  29. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs.map +1 -1
  30. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs +2 -1
  31. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs.map +1 -1
  32. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs.map +1 -1
  33. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs.map +1 -1
  34. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs.map +1 -1
  35. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs +3 -1
  36. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs.map +1 -1
  37. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs +150 -59
  38. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs.map +1 -1
  39. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs +2 -1
  40. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs.map +1 -1
  41. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs.map +1 -1
  42. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs +6 -3
  43. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs.map +1 -1
  44. package/cjs/components/Schedule/Schedule.cjs +4 -1
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  46. package/cjs/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.cjs +53 -0
  47. package/cjs/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  49. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +15 -14
  50. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  51. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  52. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  53. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  54. package/cjs/components/ScheduleHeader/ScheduleHeaderContext.cjs.map +1 -1
  55. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  56. package/cjs/components/WeekView/WeekView.cjs +159 -82
  57. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  58. package/cjs/components/WeekView/WeekView.module.cjs +2 -1
  59. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -1
  60. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  61. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  62. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  63. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  64. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  65. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  66. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  67. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  68. package/cjs/components/YearView/YearView.cjs +7 -6
  69. package/cjs/components/YearView/YearView.cjs.map +1 -1
  70. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  71. package/cjs/components/YearView/get-visible-week-days.cjs.map +1 -1
  72. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  73. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  74. package/cjs/hooks/use-day-grid-event-resize.cjs.map +1 -1
  75. package/cjs/hooks/use-drag-drop-handlers.cjs +13 -2
  76. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  77. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  78. package/cjs/hooks/use-event-resize.cjs +30 -15
  79. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  80. package/cjs/hooks/use-horizontal-event-resize.cjs +30 -15
  81. package/cjs/hooks/use-horizontal-event-resize.cjs.map +1 -1
  82. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  83. package/cjs/index.cjs +2 -0
  84. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +25 -4
  85. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  86. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  87. package/cjs/utils/calculate-month-resize-dates/calculate-month-resize-dates.cjs.map +1 -1
  88. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  89. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  90. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  91. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  92. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  93. package/cjs/utils/get-month-days/get-month-days.cjs +4 -2
  94. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  95. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  96. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  97. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  98. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  99. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  100. package/cjs/utils/get-week-number/get-week-number.cjs +4 -1
  101. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  102. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  103. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  104. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  105. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  106. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  107. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  108. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  109. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  110. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  111. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  112. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  113. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  114. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  115. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  116. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  117. package/esm/components/AgendaView/AgendaView.mjs +7 -6
  118. package/esm/components/AgendaView/AgendaView.mjs.map +1 -1
  119. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +4 -3
  120. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  121. package/esm/components/DayView/DayView.mjs +145 -79
  122. package/esm/components/DayView/DayView.mjs.map +1 -1
  123. package/esm/components/DayView/DayView.module.mjs +2 -1
  124. package/esm/components/DayView/DayView.module.mjs.map +1 -1
  125. package/esm/components/MobileMonthView/MobileMonthView.mjs +7 -6
  126. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  127. package/esm/components/MonthView/MonthView.mjs +25 -35
  128. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  129. package/esm/components/MonthView/MonthView.module.mjs.map +1 -1
  130. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +4 -2
  131. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  132. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +3 -2
  133. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
  134. package/esm/components/MonthView/get-renderable-month-event-segments.mjs +1 -1
  135. package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
  136. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  137. package/esm/components/ResourcesDayView/ResourcesDayView.mjs +138 -54
  138. package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -1
  139. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +2 -1
  140. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -1
  141. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -1
  142. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -1
  143. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +3 -1
  144. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -1
  145. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +152 -61
  146. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -1
  147. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +2 -1
  148. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -1
  149. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -1
  150. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +6 -3
  151. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -1
  152. package/esm/components/Schedule/Schedule.mjs +4 -1
  153. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  154. package/esm/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.mjs +53 -0
  155. package/esm/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.mjs.map +1 -0
  156. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  157. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +15 -14
  158. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  159. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  160. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
  161. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  162. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  163. package/esm/components/WeekView/WeekView.mjs +160 -83
  164. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  165. package/esm/components/WeekView/WeekView.module.mjs +2 -1
  166. package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
  167. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  168. package/esm/components/YearView/YearView.mjs +7 -6
  169. package/esm/components/YearView/YearView.mjs.map +1 -1
  170. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  171. package/esm/hooks/use-drag-drop-handlers.mjs +13 -2
  172. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  173. package/esm/hooks/use-event-resize.mjs +30 -15
  174. package/esm/hooks/use-event-resize.mjs.map +1 -1
  175. package/esm/hooks/use-horizontal-event-resize.mjs +30 -15
  176. package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -1
  177. package/esm/index.mjs +2 -1
  178. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +25 -4
  179. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  180. package/esm/utils/get-month-days/get-month-days.mjs +4 -2
  181. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  182. package/esm/utils/get-week-number/get-week-number.mjs +4 -1
  183. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  184. package/lib/components/DayView/DayView.d.ts +7 -1
  185. package/lib/components/MonthView/MonthView.d.ts +2 -0
  186. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +7 -1
  187. package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +1 -1
  188. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +3 -1
  189. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +7 -1
  190. package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +1 -1
  191. package/lib/components/Schedule/Schedule.d.ts +3 -1
  192. package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.d.ts +19 -0
  193. package/lib/components/ScheduleBackgroundEvent/index.d.ts +2 -0
  194. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +3 -3
  195. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +1 -1
  196. package/lib/components/WeekView/WeekView.d.ts +7 -1
  197. package/lib/components/WeekView/WeekViewDay.d.ts +1 -1
  198. package/lib/components/YearView/YearViewMonth.d.ts +1 -1
  199. package/lib/hooks/use-drag-drop-handlers.d.ts +10 -1
  200. package/lib/hooks/use-event-resize.d.ts +2 -1
  201. package/lib/hooks/use-horizontal-event-resize.d.ts +2 -1
  202. package/lib/index.d.mts +1 -0
  203. package/lib/index.d.ts +1 -0
  204. package/lib/types.d.ts +1 -1
  205. package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +11 -1
  206. package/package.json +8 -5
  207. package/styles.css +160 -0
  208. package/styles.layer.css +160 -0
@@ -5,7 +5,7 @@ import { MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents
5
5
  import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
6
6
  import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
7
7
  import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
8
- export type ResourcesWeekViewStylesNames = 'resourcesWeekView' | 'resourcesWeekViewRoot' | 'resourcesWeekViewInner' | 'resourcesWeekViewHeaderRows' | 'resourcesWeekViewHeaderContent' | 'resourcesWeekViewDayLabelsRow' | 'resourcesWeekViewDayLabel' | 'resourcesWeekViewTimeLabelsRow' | 'resourcesWeekViewScrollArea' | 'resourcesWeekViewCorner' | 'resourcesWeekViewTimeLabel' | 'resourcesWeekViewResourceLabel' | 'resourcesWeekViewRow' | 'resourcesWeekViewRowSlot' | 'resourcesWeekViewRowSlots' | 'resourcesWeekViewBackgroundEvent' | 'resourcesWeekViewAllDayEvent' | 'resourcesWeekViewCurrentTimeIndicator' | 'resourcesWeekViewCurrentTimeIndicatorLine' | 'resourcesWeekViewCurrentTimeIndicatorThumb' | 'resourcesWeekViewCurrentTimeIndicatorTimeBubble' | 'resourcesWeekViewEventWrapper' | 'resourcesWeekViewResizeHandle' | 'resourcesWeekViewGroupColumn' | 'resourcesWeekViewGroupColumnEmpty' | MoreEventsStylesNames | CombinedScheduleHeaderStylesNames;
8
+ export type ResourcesWeekViewStylesNames = 'resourcesWeekView' | 'resourcesWeekViewRoot' | 'resourcesWeekViewInner' | 'resourcesWeekViewHeaderRows' | 'resourcesWeekViewHeaderContent' | 'resourcesWeekViewDayLabelsRow' | 'resourcesWeekViewDayLabel' | 'resourcesWeekViewTimeLabelsRow' | 'resourcesWeekViewScrollArea' | 'resourcesWeekViewCorner' | 'resourcesWeekViewTimeLabel' | 'resourcesWeekViewResourceLabel' | 'resourcesWeekViewRow' | 'resourcesWeekViewRowSlot' | 'resourcesWeekViewRowSlots' | 'resourcesWeekViewBackgroundEvent' | 'resourcesWeekViewAllDayEvent' | 'resourcesWeekViewCurrentTimeIndicator' | 'resourcesWeekViewCurrentTimeIndicatorLine' | 'resourcesWeekViewCurrentTimeIndicatorThumb' | 'resourcesWeekViewCurrentTimeIndicatorTimeBubble' | 'resourcesWeekViewEventWrapper' | 'resourcesWeekViewDragPreview' | 'resourcesWeekViewResizeHandle' | 'resourcesWeekViewGroupColumn' | 'resourcesWeekViewGroupColumnEmpty' | MoreEventsStylesNames | CombinedScheduleHeaderStylesNames;
9
9
  export type ResourcesWeekViewCssVariables = {
10
10
  resourcesWeekView: '--resources-week-view-radius' | '--resources-week-view-slot-width' | '--resources-week-view-row-height' | '--resources-week-view-group-label-width';
11
11
  };
@@ -65,6 +65,8 @@ export interface ResourcesWeekViewProps extends BoxProps, StylesApiProps<Resourc
65
65
  resourceId?: string | number;
66
66
  }) => void;
67
67
  canDragEvent?: (event: ScheduleEventData) => boolean;
68
+ /** Snap step for moving events by drag and drop, in minutes. Must divide evenly into an hour (e.g. `15`, `30`) or be a whole number of hours. When not set, `intervalMinutes` is used. @default intervalMinutes */
69
+ eventDragInterval?: number;
68
70
  onEventDragStart?: (event: ScheduleEventData) => void;
69
71
  onEventDragEnd?: () => void;
70
72
  onTimeSlotClick?: (data: {
@@ -74,6 +76,8 @@ export interface ResourcesWeekViewProps extends BoxProps, StylesApiProps<Resourc
74
76
  resourceId?: string | number;
75
77
  }) => void;
76
78
  onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
79
+ /** If set, background events (`display: 'background'`) can be clicked and trigger `onEventClick` @default false */
80
+ withInteractiveBackgroundEvents?: boolean;
77
81
  withDragSlotSelect?: boolean;
78
82
  onSlotDragEnd?: (data: {
79
83
  rangeStart: DateTimeStringValue;
@@ -97,6 +101,8 @@ export interface ResourcesWeekViewProps extends BoxProps, StylesApiProps<Resourc
97
101
  }) => void;
98
102
  /** Function to determine if event can be resized */
99
103
  canResizeEvent?: (event: ScheduleEventData) => boolean;
104
+ /** Snap step for resizing events, in minutes. Must divide evenly into an hour (e.g. `15`, `30`) or be a whole number of hours. When not set, `intervalMinutes` is used. @default intervalMinutes */
105
+ eventResizeInterval?: number;
100
106
  recurrenceExpansionLimit?: number;
101
107
  /** Maximum number of events visible per time slot before "+more" indicator shows, minimum value is 1 @default 2 */
102
108
  maxEventsPerTimeSlot?: number;
@@ -36,4 +36,4 @@ export interface ResourcesWeekViewRowProps {
36
36
  groupInfo?: ResourceGroupInfo | null;
37
37
  allDayCount?: number;
38
38
  }
39
- export declare function ResourcesWeekViewRow({ resource, resourceIndex, weekdays, slots, getStyles, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onRowSlotsDragOver, onRowSlotsDragLeave, onRowSlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, rowSlotsContainerRef, renderResourceLabel, renderGroupLabel, scrolledX, groupInfo, allDayCount, }: ResourcesWeekViewRowProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function ResourcesWeekViewRow({ resource, resourceIndex, weekdays, slots, getStyles, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onRowSlotsDragOver, onRowSlotsDragLeave, onRowSlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, rowSlotsContainerRef, renderResourceLabel, renderGroupLabel, scrolledX, groupInfo, allDayCount, }: ResourcesWeekViewRowProps): import("react").JSX.Element;
@@ -9,7 +9,7 @@ import { WeekViewProps, WeekViewStylesNames } from '../WeekView/WeekView';
9
9
  import { YearViewProps, YearViewStylesNames } from '../YearView/YearView';
10
10
  export type ScheduleStylesNames = 'root' | 'desktopView' | 'mobileView' | DayViewStylesNames | WeekViewStylesNames | MonthViewStylesNames | YearViewStylesNames | MobileMonthViewStylesNames;
11
11
  export type ScheduleLayout = 'default' | 'responsive';
12
- type ScheduleCommonProps = 'date' | 'onDateChange' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onAllDaySlotClick' | 'onEventClick' | 'onDayClick' | 'onMonthClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode' | 'withAgenda' | 'onExternalEventDrop' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit';
12
+ type ScheduleCommonProps = 'date' | 'onDateChange' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onAllDaySlotClick' | 'onEventClick' | 'onDayClick' | 'onMonthClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode' | 'withAgenda' | 'onExternalEventDrop' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit' | 'withInteractiveBackgroundEvents';
13
13
  type ScheduleViewProps<T> = Partial<Omit<T, ScheduleCommonProps>>;
14
14
  export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>, ElementProps<'div'> {
15
15
  __staticSelector?: string;
@@ -84,6 +84,8 @@ export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>
84
84
  }) => void;
85
85
  /** Function to determine if event can be resized */
86
86
  canResizeEvent?: (event: ScheduleEventData) => boolean;
87
+ /** If set, background events (`display: 'background'`) can be clicked and trigger `onEventClick`. Applies to `day`, `week` and `month` views only – `YearView` and the `MobileMonthView` used by `layout="responsive"` on small screens do not render background events at all. @default false */
88
+ withInteractiveBackgroundEvents?: boolean;
87
89
  /** Max number of generated recurring instances per recurring series @default 2000 */
88
90
  recurrenceExpansionLimit?: number;
89
91
  /** Layout mode:
@@ -0,0 +1,19 @@
1
+ import { BoxProps, ElementProps } from '@mantine/core';
2
+ import { ScheduleEventData } from '../../types';
3
+ import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
4
+ export interface ScheduleBackgroundEventProps extends BoxProps, ElementProps<'div', 'onClick'> {
5
+ /** Background event to display */
6
+ event: ScheduleEventData;
7
+ /** If set, the root element is a `button` instead of a `div` and the event can be clicked @default false */
8
+ interactive?: boolean;
9
+ /** Called when the event is clicked, only when `interactive` is set */
10
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
11
+ /** Function to fully customize event rendering */
12
+ renderEvent?: RenderEvent;
13
+ /** Function to customize event body */
14
+ renderEventBody?: RenderEventBody;
15
+ }
16
+ export declare function ScheduleBackgroundEvent(props: ScheduleBackgroundEventProps): import("react").JSX.Element;
17
+ export declare namespace ScheduleBackgroundEvent {
18
+ var displayName: string;
19
+ }
@@ -0,0 +1,2 @@
1
+ export { ScheduleBackgroundEvent } from './ScheduleBackgroundEvent';
2
+ export type { ScheduleBackgroundEventProps } from './ScheduleBackgroundEvent';
@@ -29,15 +29,15 @@ export declare const HeaderControl: import("@mantine/core").MantineComponent<{
29
29
  stylesNames: HeaderControlStylesNames;
30
30
  vars: HeaderControlCssVariables;
31
31
  }>;
32
- export declare function ScheduleHeaderNext(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function ScheduleHeaderNext(props: HeaderControlProps): import("react").JSX.Element;
33
33
  export declare namespace ScheduleHeaderNext {
34
34
  var displayName: string;
35
35
  }
36
- export declare function ScheduleHeaderPrevious(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function ScheduleHeaderPrevious(props: HeaderControlProps): import("react").JSX.Element;
37
37
  export declare namespace ScheduleHeaderPrevious {
38
38
  var displayName: string;
39
39
  }
40
- export declare function ScheduleHeaderToday(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function ScheduleHeaderToday(props: HeaderControlProps): import("react").JSX.Element;
41
41
  export declare namespace ScheduleHeaderToday {
42
42
  var displayName: string;
43
43
  }
@@ -53,5 +53,5 @@ export interface ScheduleHeaderBaseProps {
53
53
  /** Whether the agenda view is currently active */
54
54
  agendaActive?: boolean;
55
55
  }
56
- export declare function ScheduleHeaderBase({ view, navigationHandlers, control, labels, onDateChange, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, stylesApiProps, onAgendaClick, agendaActive, }: ScheduleHeaderBaseProps): import("react/jsx-runtime").JSX.Element;
56
+ export declare function ScheduleHeaderBase({ view, navigationHandlers, control, labels, onDateChange, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, stylesApiProps, onAgendaClick, agendaActive, }: ScheduleHeaderBaseProps): import("react").JSX.Element;
57
57
  export {};
@@ -7,7 +7,7 @@ import { CurrentTimeIndicatorStylesNames } from '../CurrentTimeIndicator/Current
7
7
  import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
8
8
  import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
9
9
  import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
10
- export type WeekViewStylesNames = 'weekView' | 'weekViewRoot' | 'weekViewHeader' | 'weekViewInner' | 'weekViewAllDaySlotsEvents' | 'weekViewAllDaySlots' | 'weekViewAllDaySlotsList' | 'weekViewAllDaySlot' | 'weekViewAllDaySlotsLabel' | 'weekViewScrollArea' | 'weekViewCorner' | 'weekViewSlotLabels' | 'weekViewSlotLabel' | 'weekViewDayLabel' | 'weekViewDayWeekday' | 'weekViewDay' | 'weekViewDayNumber' | 'weekViewDaySlot' | 'weekViewDaySlots' | 'weekViewWeekLabel' | 'weekViewWeekNumber' | 'weekViewBackgroundEvent' | CurrentTimeIndicatorStylesNames | CombinedScheduleHeaderStylesNames | AgendaViewStylesNames;
10
+ export type WeekViewStylesNames = 'weekView' | 'weekViewRoot' | 'weekViewHeader' | 'weekViewInner' | 'weekViewAllDaySlotsEvents' | 'weekViewAllDaySlots' | 'weekViewAllDaySlotsList' | 'weekViewAllDaySlot' | 'weekViewAllDaySlotsLabel' | 'weekViewScrollArea' | 'weekViewCorner' | 'weekViewSlotLabels' | 'weekViewSlotLabel' | 'weekViewDayLabel' | 'weekViewDayWeekday' | 'weekViewDay' | 'weekViewDayNumber' | 'weekViewDaySlot' | 'weekViewDaySlots' | 'weekViewWeekLabel' | 'weekViewWeekNumber' | 'weekViewBackgroundEvent' | 'weekViewDragPreview' | CurrentTimeIndicatorStylesNames | CombinedScheduleHeaderStylesNames | AgendaViewStylesNames;
11
11
  export type WeekViewCssVariables = {
12
12
  weekView: '--week-view-radius' | '--week-view-slot-height' | '--week-view-all-day-slots-height';
13
13
  };
@@ -96,6 +96,8 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
96
96
  }) => void;
97
97
  /** Function to determine if event can be dragged */
98
98
  canDragEvent?: (event: ScheduleEventData) => boolean;
99
+ /** Snap step for moving events by drag and drop, in minutes. Must divide evenly into an hour (e.g. `15`, `30`) or be a whole number of hours. When not set, `intervalMinutes` is used. @default intervalMinutes */
100
+ eventDragInterval?: number;
99
101
  /** Called when any event drag starts */
100
102
  onEventDragStart?: (event: ScheduleEventData) => void;
101
103
  /** Called when any event drag ends */
@@ -110,6 +112,8 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
110
112
  onAllDaySlotClick?: (day: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
111
113
  /** Called when event is clicked */
112
114
  onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
115
+ /** If set, background events (`display: 'background'`) can be clicked and trigger `onEventClick` @default false */
116
+ withInteractiveBackgroundEvents?: boolean;
113
117
  /** If set, enables drag-to-select time slot ranges @default false */
114
118
  withDragSlotSelect?: boolean;
115
119
  /** Called when a time slot range is selected by dragging */
@@ -136,6 +140,8 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
136
140
  }) => void;
137
141
  /** Function to determine if event can be resized */
138
142
  canResizeEvent?: (event: ScheduleEventData) => boolean;
143
+ /** Snap step for resizing events, in minutes. Must divide evenly into an hour (e.g. `15`, `30`) or be a whole number of hours. When not set, `intervalMinutes` is used. @default intervalMinutes */
144
+ eventResizeInterval?: number;
139
145
  /** Max number of generated recurring instances per recurring series @default 2000 */
140
146
  recurrenceExpansionLimit?: number;
141
147
  /** Function to get additional props for each time slot. Receives slot start and end datetime strings. Returned props are spread onto the slot element. Event handlers returned by this function are composed with internal handlers (e.g. onClick) rather than overriding them. */
@@ -64,4 +64,4 @@ export interface WeekViewDayProps {
64
64
  end: DateTimeStringValue;
65
65
  }) => Record<string, any> | undefined;
66
66
  }
67
- export declare function WeekViewDay({ day, dayIndex, slots, intervalMinutes, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, daySlotsContainerRef, getTimeSlotProps, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;
67
+ export declare function WeekViewDay({ day, dayIndex, slots, intervalMinutes, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, daySlotsContainerRef, getTimeSlotProps, }: WeekViewDayProps): import("react").JSX.Element;
@@ -68,4 +68,4 @@ export interface YearViewMonthProps extends YearViewMonthSettings {
68
68
  dayIndex: number;
69
69
  };
70
70
  }
71
- export declare function YearViewMonth({ month, getStyles, monthLabelFormat, withWeekNumbers, withWeekDays, locale, firstDayOfWeek, weekdayFormat, weekendDays, withWeekendDays, getDayProps, onDayClick, onWeekNumberClick, onMonthClick, getWeekNumberProps, highlightToday, groupedEvents, mode, withOutsideDays, renderDay, __getDayRef, __onDayKeyDown, firstDayIndex, }: YearViewMonthProps): import("react/jsx-runtime").JSX.Element;
71
+ export declare function YearViewMonth({ month, getStyles, monthLabelFormat, withWeekNumbers, withWeekDays, locale, firstDayOfWeek, weekdayFormat, weekendDays, withWeekendDays, getDayProps, onDayClick, onWeekNumberClick, onMonthClick, getWeekNumberProps, highlightToday, groupedEvents, mode, withOutsideDays, renderDay, __getDayRef, __onDayKeyDown, firstDayIndex, }: YearViewMonthProps): import("react").JSX.Element;
@@ -1,5 +1,10 @@
1
1
  import { DragContextValue } from '../components/DragContext/DragContext';
2
2
  import { DateTimeStringValue, ScheduleEventData, ScheduleMode } from '../types';
3
+ export interface DragPreview<T = any> {
4
+ start: DateTimeStringValue;
5
+ end: DateTimeStringValue;
6
+ target: T;
7
+ }
3
8
  export interface UseDragDropHandlersOptions<T = any> {
4
9
  /** Whether drag and drop is enabled */
5
10
  enabled: boolean;
@@ -41,13 +46,17 @@ export interface DragDropHandlers<T = any> {
41
46
  /** Handle drag over event */
42
47
  handleDragOver: (e: React.DragEvent, target: T) => void;
43
48
  /** Handle drag leave event */
44
- handleDragLeave: () => void;
49
+ handleDragLeave: (event?: React.DragEvent) => void;
45
50
  /** Handle drop event */
46
51
  handleDrop: (e: React.DragEvent, target: T) => void;
47
52
  /** Check if event is draggable */
48
53
  isDraggableEvent: (event: ScheduleEventData) => boolean;
49
54
  /** Check if target is the current drop target */
50
55
  isDropTarget: (target: T) => boolean;
56
+ /** Snapped drop preview used to render the drag ghost, or `null` when not dragging */
57
+ dragPreview: DragPreview<T> | null;
58
+ /** Sets the current drag preview */
59
+ setDragPreview: (preview: DragPreview<T> | null) => void;
51
60
  }
52
61
  /**
53
62
  * Hook that provides unified drag-drop handlers for Schedule views.
@@ -6,6 +6,7 @@ export interface UseEventResizeInput {
6
6
  startTime: string;
7
7
  endTime: string;
8
8
  intervalMinutes: number;
9
+ resizeIntervalMinutes?: number;
9
10
  onEventResize?: (data: {
10
11
  eventId: string | number;
11
12
  newStart: DateTimeStringValue;
@@ -14,7 +15,7 @@ export interface UseEventResizeInput {
14
15
  }) => void;
15
16
  canResizeEvent?: (event: ScheduleEventData) => boolean;
16
17
  }
17
- export declare function useEventResize({ enabled, mode, startTime, endTime, intervalMinutes, onEventResize, canResizeEvent, }: UseEventResizeInput): {
18
+ export declare function useEventResize({ enabled, mode, startTime, endTime, intervalMinutes, resizeIntervalMinutes, onEventResize, canResizeEvent, }: UseEventResizeInput): {
18
19
  handleResizeStart: ({ event, edge, container, originalTop, originalHeight, eventDate, pointerEvent, }: {
19
20
  event: ScheduleEventData;
20
21
  edge: ResizeEdge;
@@ -6,6 +6,7 @@ export interface UseHorizontalEventResizeInput {
6
6
  startTime: string;
7
7
  endTime: string;
8
8
  intervalMinutes: number;
9
+ resizeIntervalMinutes?: number;
9
10
  onEventResize?: (data: {
10
11
  eventId: string | number;
11
12
  newStart: DateTimeStringValue;
@@ -14,7 +15,7 @@ export interface UseHorizontalEventResizeInput {
14
15
  }) => void;
15
16
  canResizeEvent?: (event: ScheduleEventData) => boolean;
16
17
  }
17
- export declare function useHorizontalEventResize({ enabled, mode, startTime, endTime, intervalMinutes, onEventResize, canResizeEvent, }: UseHorizontalEventResizeInput): {
18
+ export declare function useHorizontalEventResize({ enabled, mode, startTime, endTime, intervalMinutes, resizeIntervalMinutes, onEventResize, canResizeEvent, }: UseHorizontalEventResizeInput): {
18
19
  handleResizeStart: ({ event, edge, container, originalLeft, originalWidth, eventDate, dayIndex, dayCount, pointerEvent, }: {
19
20
  event: ScheduleEventData;
20
21
  edge: ResizeEdge;
package/lib/index.d.mts CHANGED
@@ -12,6 +12,7 @@ export * from './components/ResourcesWeekView';
12
12
  export * from './components/ResourcesMonthView';
13
13
  export * from './components/ResourcesSchedule';
14
14
  export * from './components/AgendaView';
15
+ export * from './components/ScheduleBackgroundEvent';
15
16
  export * from './components/ScheduleEvent';
16
17
  export * from './components/ScheduleHeader';
17
18
  export * from './components/CurrentTimeIndicator';
package/lib/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from './components/ResourcesWeekView';
12
12
  export * from './components/ResourcesMonthView';
13
13
  export * from './components/ResourcesSchedule';
14
14
  export * from './components/AgendaView';
15
+ export * from './components/ScheduleBackgroundEvent';
15
16
  export * from './components/ScheduleEvent';
16
17
  export * from './components/ScheduleHeader';
17
18
  export * from './components/CurrentTimeIndicator';
package/lib/types.d.ts CHANGED
@@ -68,7 +68,7 @@ interface ScheduleEventBase<Payload extends EventPayload = EventPayload> {
68
68
  color: MantineColor;
69
69
  /** Event variant, default is `'light'` */
70
70
  variant?: 'filled' | 'light';
71
- /** Event display mode. Background events render as full-width, non-interactive blocks behind regular events. @default 'default' */
71
+ /** Event display mode. Background events render as full-width blocks behind regular events, non-interactive unless `withInteractiveBackgroundEvents` is set on the view. @default 'default' */
72
72
  display?: 'default' | 'background';
73
73
  /** Additional event data, defined by the user, not used internally by the library */
74
74
  payload?: Payload;
@@ -12,6 +12,16 @@ export interface CalculateDropTimeInput {
12
12
  slotHeight?: number;
13
13
  /** Minutes per slot */
14
14
  intervalMinutes?: number;
15
+ /** Pointer offset along the time axis within the target slot, in px. Axis-agnostic alias for `mouseYOffset`; when both are set, `slotOffset` wins. */
16
+ slotOffset?: number;
17
+ /** Size of the target slot along the time axis, in px. Axis-agnostic alias for `slotHeight`; when both are set, `slotSize` wins. */
18
+ slotSize?: number;
19
+ /** Snap step for the resulting start time, in minutes. When set, the start snaps to this interval (absolute, from the day boundary) instead of the slot start. */
20
+ dragIntervalMinutes?: number;
21
+ /** Start time boundary of the schedule in HH:mm:ss format. When set together with `dragIntervalMinutes`, the snapped start is clamped to stay within the displayed range (the event may still extend past `endTime`, matching how overflowing events are clipped). */
22
+ startTime?: string;
23
+ /** End time boundary of the schedule in HH:mm:ss format. When set together with `dragIntervalMinutes`, the snapped start is clamped to stay within the displayed range (the event may still extend past `endTime`, matching how overflowing events are clipped). */
24
+ endTime?: string;
15
25
  }
16
26
  export interface CalculateDropTimeResult {
17
27
  /** New start date/time for the event */
@@ -19,4 +29,4 @@ export interface CalculateDropTimeResult {
19
29
  /** New end date/time for the event */
20
30
  end: Date;
21
31
  }
22
- export declare function calculateDropTime({ draggedEvent, targetDate, targetSlotTime, mouseYOffset, slotHeight, intervalMinutes, }: CalculateDropTimeInput): CalculateDropTimeResult;
32
+ export declare function calculateDropTime({ draggedEvent, targetDate, targetSlotTime, mouseYOffset, slotHeight, intervalMinutes, slotOffset, slotSize, dragIntervalMinutes, startTime, endTime, }: CalculateDropTimeInput): CalculateDropTimeResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/schedule",
3
- "version": "9.5.2",
3
+ "version": "9.6.0",
4
4
  "description": "Schedule Mantine component",
5
5
  "homepage": "https://mantine.dev/",
6
6
  "license": "MIT",
@@ -35,9 +35,9 @@
35
35
  "directory": "packages/@mantine/schedule"
36
36
  },
37
37
  "peerDependencies": {
38
- "@mantine/core": "9.5.2",
39
- "@mantine/dates": "9.5.2",
40
- "@mantine/hooks": "9.5.2",
38
+ "@mantine/core": "9.6.0",
39
+ "@mantine/dates": "9.6.0",
40
+ "@mantine/hooks": "9.6.0",
41
41
  "react": "^19.2.0",
42
42
  "react-dom": "^19.2.0"
43
43
  },
@@ -48,6 +48,9 @@
48
48
  "@mantine-tests/core": "workspace:*",
49
49
  "@mantine/core": "workspace:*",
50
50
  "@mantine/dates": "workspace:*",
51
- "@mantine/hooks": "workspace:*"
51
+ "@mantine/hooks": "workspace:*",
52
+ "dayjs": "^1.11.23",
53
+ "react": "19.2.8",
54
+ "react-dom": "19.2.8"
52
55
  }
53
56
  }
package/styles.css CHANGED
@@ -916,6 +916,30 @@
916
916
  color: var(--bg-event-color);
917
917
  }
918
918
 
919
+ .m_c5cd9a77:where([data-interactive]) {
920
+ pointer-events: auto;
921
+ cursor: pointer;
922
+ user-select: none;
923
+ }
924
+
925
+ @media (hover: hover) {
926
+
927
+ .m_c5cd9a77:where([data-interactive]):hover {
928
+ background-color: var(--bg-event-hover);
929
+ }
930
+ }
931
+
932
+ @media (hover: none) {
933
+
934
+ .m_c5cd9a77:where([data-interactive]):active {
935
+ background-color: var(--bg-event-hover);
936
+ }
937
+ }
938
+
939
+ .m_3c5fb2d5:where([data-event-interaction], [data-slot-dragging]) .m_c5cd9a77 {
940
+ pointer-events: none;
941
+ }
942
+
919
943
  .m_c6f08d70 {
920
944
  position: relative;
921
945
  height: var(--all-day-slot-height);
@@ -930,6 +954,15 @@
930
954
  z-index: 3;
931
955
  }
932
956
 
957
+ .m_2d4819df {
958
+ pointer-events: none;
959
+ z-index: 3;
960
+ border-radius: var(--day-view-radius);
961
+ border: 1px dashed var(--mantine-color-blue-filled);
962
+ background-color: var(--mantine-color-blue-light);
963
+ opacity: 0.6;
964
+ }
965
+
933
966
  .m_70d87f99 {
934
967
  --mobile-month-view-radius: var(--schedule-radius, var(--mantine-radius-default));
935
968
  --week-numbers-offset: 0rem;
@@ -1549,6 +1582,30 @@
1549
1582
  color: var(--bg-event-color);
1550
1583
  }
1551
1584
 
1585
+ .m_9e8509af:where([data-interactive]) {
1586
+ pointer-events: auto;
1587
+ cursor: pointer;
1588
+ user-select: none;
1589
+ }
1590
+
1591
+ @media (hover: hover) {
1592
+
1593
+ .m_9e8509af:where([data-interactive]):hover {
1594
+ background-color: var(--bg-event-hover);
1595
+ }
1596
+ }
1597
+
1598
+ @media (hover: none) {
1599
+
1600
+ .m_9e8509af:where([data-interactive]):active {
1601
+ background-color: var(--bg-event-hover);
1602
+ }
1603
+ }
1604
+
1605
+ .m_8eceba9d:where([data-event-interaction], [data-slot-dragging]) .m_9e8509af {
1606
+ pointer-events: none;
1607
+ }
1608
+
1552
1609
  .m_f0fa5e16 {
1553
1610
  position: absolute;
1554
1611
  inset-inline: 0;
@@ -1739,6 +1796,32 @@
1739
1796
  color: var(--bg-event-color);
1740
1797
  }
1741
1798
 
1799
+ .m_41ce8f1f:where([data-interactive]) {
1800
+ pointer-events: auto;
1801
+ cursor: pointer;
1802
+ user-select: none;
1803
+ }
1804
+
1805
+ @media (hover: hover) {
1806
+
1807
+ .m_41ce8f1f:where([data-interactive]):hover {
1808
+ background-color: var(--bg-event-hover);
1809
+ }
1810
+ }
1811
+
1812
+ @media (hover: none) {
1813
+
1814
+ .m_41ce8f1f:where([data-interactive]):active {
1815
+ background-color: var(--bg-event-hover);
1816
+ }
1817
+ }
1818
+
1819
+ .m_42b9032d:where([data-slot-dragging]) .m_41ce8f1f,
1820
+ .m_6b2099af:where([data-event-interaction]) .m_41ce8f1f,
1821
+ .m_6b2099af:where([data-all-day-dragging]) .m_41ce8f1f {
1822
+ pointer-events: none;
1823
+ }
1824
+
1742
1825
  .m_cd58ae46 {
1743
1826
  position: relative;
1744
1827
  }
@@ -1919,6 +2002,15 @@
1919
2002
  pointer-events: all;
1920
2003
  }
1921
2004
 
2005
+ .m_e0da287 {
2006
+ pointer-events: none;
2007
+ z-index: 3;
2008
+ border-radius: var(--week-view-radius);
2009
+ border: 1px dashed var(--mantine-color-blue-filled);
2010
+ background-color: var(--mantine-color-blue-light);
2011
+ opacity: 0.6;
2012
+ }
2013
+
1922
2014
  .m_7301354d {
1923
2015
  --year-view-radius: var(--schedule-radius, var(--mantine-radius-default));
1924
2016
  --year-view-font-size: var(--mantine-font-size-sm);
@@ -2637,6 +2729,26 @@
2637
2729
  color: var(--bg-event-color);
2638
2730
  }
2639
2731
 
2732
+ .m_9cc838bf:where([data-interactive]) {
2733
+ pointer-events: auto;
2734
+ cursor: pointer;
2735
+ user-select: none;
2736
+ }
2737
+
2738
+ @media (hover: hover) {
2739
+
2740
+ .m_9cc838bf:where([data-interactive]):hover {
2741
+ background-color: var(--bg-event-hover);
2742
+ }
2743
+ }
2744
+
2745
+ @media (hover: none) {
2746
+
2747
+ .m_9cc838bf:where([data-interactive]):active {
2748
+ background-color: var(--bg-event-hover);
2749
+ }
2750
+ }
2751
+
2640
2752
  .m_d6d6dd52 {
2641
2753
  position: absolute;
2642
2754
  inset-inline: calc(0.0625rem * var(--mantine-scale));
@@ -2698,6 +2810,11 @@
2698
2810
  pointer-events: none;
2699
2811
  }
2700
2812
 
2813
+ .m_25154d8d:where([data-event-interaction], [data-slot-dragging])
2814
+ .m_9cc838bf {
2815
+ pointer-events: none;
2816
+ }
2817
+
2701
2818
  .m_25154d8d:where([data-resizing]) * {
2702
2819
  cursor: ew-resize !important;
2703
2820
  }
@@ -2710,6 +2827,15 @@
2710
2827
  opacity: 0;
2711
2828
  }
2712
2829
 
2830
+ .m_969d1c27 {
2831
+ pointer-events: none;
2832
+ z-index: 3;
2833
+ border-radius: var(--resources-day-view-radius);
2834
+ border: 1px dashed var(--mantine-color-blue-filled);
2835
+ background-color: var(--mantine-color-blue-light);
2836
+ opacity: 0.6;
2837
+ }
2838
+
2713
2839
  .m_ed4c47cf {
2714
2840
  --resources-week-view-radius: var(--schedule-radius, var(--mantine-radius-default));
2715
2841
  --resources-week-view-resource-label-width: calc(7.5rem * var(--mantine-scale));
@@ -3044,6 +3170,26 @@
3044
3170
  color: var(--bg-event-color);
3045
3171
  }
3046
3172
 
3173
+ .m_3c19323d:where([data-interactive]) {
3174
+ pointer-events: auto;
3175
+ cursor: pointer;
3176
+ user-select: none;
3177
+ }
3178
+
3179
+ @media (hover: hover) {
3180
+
3181
+ .m_3c19323d:where([data-interactive]):hover {
3182
+ background-color: var(--bg-event-hover);
3183
+ }
3184
+ }
3185
+
3186
+ @media (hover: none) {
3187
+
3188
+ .m_3c19323d:where([data-interactive]):active {
3189
+ background-color: var(--bg-event-hover);
3190
+ }
3191
+ }
3192
+
3047
3193
  .m_682c45d0 {
3048
3194
  position: absolute;
3049
3195
  height: var(--resources-week-view-all-day-height);
@@ -3104,6 +3250,11 @@
3104
3250
  pointer-events: none;
3105
3251
  }
3106
3252
 
3253
+ .m_ed4c47cf:where([data-event-interaction], [data-slot-dragging])
3254
+ .m_3c19323d {
3255
+ pointer-events: none;
3256
+ }
3257
+
3107
3258
  .m_ed4c47cf:where([data-resizing]) * {
3108
3259
  cursor: ew-resize !important;
3109
3260
  }
@@ -3178,6 +3329,15 @@
3178
3329
  z-index: 3;
3179
3330
  }
3180
3331
 
3332
+ .m_27f284a5 {
3333
+ pointer-events: none;
3334
+ z-index: 3;
3335
+ border-radius: var(--resources-week-view-radius);
3336
+ border: 1px dashed var(--mantine-color-blue-filled);
3337
+ background-color: var(--mantine-color-blue-light);
3338
+ opacity: 0.6;
3339
+ }
3340
+
3181
3341
  .m_652b3acd {
3182
3342
  --resources-month-view-radius: var(--schedule-radius, var(--mantine-radius-default));
3183
3343
  --resources-month-view-resource-label-width: calc(7.5rem * var(--mantine-scale));