@mantine/schedule 9.3.2 → 9.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/cjs/components/AgendaView/AgendaView.cjs +133 -0
  2. package/cjs/components/AgendaView/AgendaView.cjs.map +1 -0
  3. package/cjs/components/AgendaView/AgendaView.module.cjs +19 -0
  4. package/cjs/components/AgendaView/AgendaView.module.cjs.map +1 -0
  5. package/cjs/components/AgendaView/get-agenda-view-events.cjs +48 -0
  6. package/cjs/components/AgendaView/get-agenda-view-events.cjs.map +1 -0
  7. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  8. package/cjs/components/DayView/DayView.cjs +127 -106
  9. package/cjs/components/DayView/DayView.cjs.map +1 -1
  10. package/cjs/components/DayView/DayView.module.cjs.map +1 -1
  11. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -1
  12. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  13. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  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 +114 -64
  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/add-event-to-day-groups.cjs.map +1 -1
  20. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  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.map +1 -1
  24. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs +17 -15
  25. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs.map +1 -1
  26. package/cjs/components/MonthView/get-visible-columns.cjs +54 -0
  27. package/cjs/components/MonthView/get-visible-columns.cjs.map +1 -0
  28. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
  29. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  30. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs +578 -0
  31. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs.map +1 -0
  32. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs +29 -0
  33. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs.map +1 -0
  34. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs +89 -0
  35. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs.map +1 -0
  36. package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs +26 -0
  37. package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs.map +1 -0
  38. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs +129 -0
  39. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs.map +1 -0
  40. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs +602 -0
  41. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs.map +1 -0
  42. package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs +23 -0
  43. package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs.map +1 -0
  44. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs +105 -0
  45. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs.map +1 -0
  46. package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs +7 -0
  47. package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs.map +1 -0
  48. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs +676 -0
  49. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs.map +1 -0
  50. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs +33 -0
  51. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs.map +1 -0
  52. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs +90 -0
  53. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs.map +1 -0
  54. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs +97 -0
  55. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs.map +1 -0
  56. package/cjs/components/Schedule/Schedule.cjs +3 -2
  57. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  58. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +1 -1
  59. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  60. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  61. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +2 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -1
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +29 -11
  66. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  67. package/cjs/components/ScheduleHeader/ScheduleHeaderContext.cjs.map +1 -1
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  69. package/cjs/components/WeekView/WeekView.cjs +128 -102
  70. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  71. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -1
  72. package/cjs/components/WeekView/WeekViewDay.cjs +3 -1
  73. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  74. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  75. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  77. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  78. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
  79. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  80. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  81. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  82. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
  83. package/cjs/components/YearView/YearView.cjs.map +1 -1
  84. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  85. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  86. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
  87. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  88. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  89. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  90. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  91. package/cjs/hooks/use-horizontal-event-resize.cjs +161 -0
  92. package/cjs/hooks/use-horizontal-event-resize.cjs.map +1 -0
  93. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  94. package/cjs/index.cjs +20 -0
  95. package/cjs/labels.cjs +5 -1
  96. package/cjs/labels.cjs.map +1 -1
  97. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  98. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  99. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  100. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  101. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  102. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  103. package/cjs/utils/get-day-relative-percent/get-day-relative-percent.cjs +18 -0
  104. package/cjs/utils/get-day-relative-percent/get-day-relative-percent.cjs.map +1 -0
  105. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  106. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs +12 -0
  107. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs.map +1 -0
  108. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs +27 -0
  109. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs.map +1 -0
  110. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  111. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  112. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  113. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  114. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs +54 -0
  115. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs.map +1 -0
  116. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  117. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  118. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  119. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  120. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs +88 -0
  121. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs.map +1 -0
  122. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  123. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  124. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  125. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  126. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  127. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  128. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  129. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  130. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  131. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  132. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  133. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  134. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  135. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  136. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  137. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  138. package/esm/components/AgendaView/AgendaView.mjs +130 -0
  139. package/esm/components/AgendaView/AgendaView.mjs.map +1 -0
  140. package/esm/components/AgendaView/AgendaView.module.mjs +19 -0
  141. package/esm/components/AgendaView/AgendaView.module.mjs.map +1 -0
  142. package/esm/components/AgendaView/get-agenda-view-events.mjs +46 -0
  143. package/esm/components/AgendaView/get-agenda-view-events.mjs.map +1 -0
  144. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  145. package/esm/components/DayView/DayView.mjs +128 -107
  146. package/esm/components/DayView/DayView.mjs.map +1 -1
  147. package/esm/components/DayView/DayView.module.mjs.map +1 -1
  148. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  149. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  150. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  151. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  152. package/esm/components/MonthView/MonthView.mjs +115 -65
  153. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  154. package/esm/components/MonthView/MonthView.module.mjs.map +1 -1
  155. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  156. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  157. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  158. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  159. package/esm/components/MonthView/get-renderable-month-event-segments.mjs +17 -15
  160. package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
  161. package/esm/components/MonthView/get-visible-columns.mjs +53 -0
  162. package/esm/components/MonthView/get-visible-columns.mjs.map +1 -0
  163. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  164. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  165. package/esm/components/ResourcesDayView/ResourcesDayView.mjs +576 -0
  166. package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -0
  167. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +29 -0
  168. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -0
  169. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs +89 -0
  170. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -0
  171. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs +26 -0
  172. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs.map +1 -0
  173. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs +127 -0
  174. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs.map +1 -0
  175. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs +600 -0
  176. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -0
  177. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs +23 -0
  178. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs.map +1 -0
  179. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +105 -0
  180. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -0
  181. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs +7 -0
  182. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs.map +1 -0
  183. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +674 -0
  184. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -0
  185. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +33 -0
  186. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -0
  187. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs +90 -0
  188. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -0
  189. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +95 -0
  190. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -0
  191. package/esm/components/Schedule/Schedule.mjs +3 -2
  192. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  193. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +1 -1
  194. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  195. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  196. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  197. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +2 -0
  198. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -1
  199. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +29 -11
  200. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  201. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  202. package/esm/components/WeekView/WeekView.mjs +128 -102
  203. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  204. package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
  205. package/esm/components/WeekView/WeekViewDay.mjs +3 -1
  206. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  207. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  208. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  209. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  210. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  211. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  212. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  213. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  214. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  215. package/esm/components/YearView/YearView.mjs.map +1 -1
  216. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  217. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  218. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  219. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  220. package/esm/hooks/use-event-resize.mjs.map +1 -1
  221. package/esm/hooks/use-horizontal-event-resize.mjs +159 -0
  222. package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -0
  223. package/esm/index.mjs +11 -1
  224. package/esm/labels.mjs +5 -1
  225. package/esm/labels.mjs.map +1 -1
  226. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  227. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  228. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  229. package/esm/utils/format-date/format-date.mjs.map +1 -1
  230. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  231. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  232. package/esm/utils/get-day-relative-percent/get-day-relative-percent.mjs +18 -0
  233. package/esm/utils/get-day-relative-percent/get-day-relative-percent.mjs.map +1 -0
  234. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs +12 -0
  235. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs.map +1 -0
  236. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs +27 -0
  237. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs.map +1 -0
  238. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  239. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  240. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  241. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  242. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs +54 -0
  243. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs.map +1 -0
  244. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  245. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  246. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs +88 -0
  247. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs.map +1 -0
  248. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  249. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  250. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  251. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  252. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  253. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  254. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  255. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  256. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  257. package/esm/utils/next-week/next-week.mjs.map +1 -1
  258. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  259. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  260. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  261. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  262. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  263. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  264. package/lib/components/AgendaView/AgendaView.d.ts +54 -0
  265. package/lib/components/AgendaView/get-agenda-view-events.d.ts +9 -0
  266. package/lib/components/AgendaView/index.d.ts +2 -0
  267. package/lib/components/DayView/DayView.d.ts +6 -1
  268. package/lib/components/MonthView/MonthView.d.ts +6 -1
  269. package/lib/components/MonthView/get-renderable-month-event-segments.d.ts +5 -1
  270. package/lib/components/MonthView/get-visible-columns.d.ts +19 -0
  271. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +148 -0
  272. package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +39 -0
  273. package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
  274. package/lib/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.d.ts +16 -0
  275. package/lib/components/ResourcesDayView/index.d.ts +9 -0
  276. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +129 -0
  277. package/lib/components/ResourcesMonthView/index.d.ts +9 -0
  278. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +123 -0
  279. package/lib/components/ResourcesSchedule/index.d.ts +3 -0
  280. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +117 -0
  281. package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +39 -0
  282. package/lib/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.d.ts +29 -0
  283. package/lib/components/ResourcesWeekView/index.d.ts +3 -0
  284. package/lib/components/Schedule/Schedule.d.ts +3 -1
  285. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +5 -1
  286. package/lib/components/WeekView/WeekView.d.ts +6 -1
  287. package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
  288. package/lib/hooks/use-horizontal-event-resize.d.ts +39 -0
  289. package/lib/index.d.mts +5 -0
  290. package/lib/index.d.ts +5 -0
  291. package/lib/labels.d.ts +4 -0
  292. package/lib/types.d.ts +20 -0
  293. package/lib/utils/get-day-relative-percent/get-day-relative-percent.d.ts +15 -0
  294. package/lib/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.d.ts +3 -0
  295. package/lib/utils/get-index-from-drag-point/get-index-from-drag-point.d.ts +6 -0
  296. package/lib/utils/get-ordered-resources/get-ordered-resources.d.ts +17 -0
  297. package/lib/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.d.ts +10 -0
  298. package/lib/utils/index.d.ts +7 -0
  299. package/package.json +4 -4
  300. package/styles.css +1362 -9
  301. package/styles.layer.css +1363 -10
@@ -0,0 +1,9 @@
1
+ import { AnyDateValue, DateStringValue, ScheduleEventData } from '../../types';
2
+ export type AgendaGroupedEvents = Record<DateStringValue, ScheduleEventData[]>;
3
+ interface GetAgendaViewEventsInput {
4
+ rangeStart: AnyDateValue;
5
+ rangeEnd: AnyDateValue;
6
+ events: ScheduleEventData[] | undefined;
7
+ }
8
+ export declare function getAgendaViewEvents({ rangeStart, rangeEnd, events }: GetAgendaViewEventsInput): AgendaGroupedEvents;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ export { AgendaView } from './AgendaView';
2
+ export type { AgendaViewProps, AgendaViewFactory, AgendaViewStylesNames, AgendaViewCssVariables, } from './AgendaView';
@@ -1,13 +1,14 @@
1
1
  import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaAutosizeProps, StylesApiProps } from '@mantine/core';
2
2
  import { ScheduleLabelsOverride } from '../../labels';
3
3
  import { AnyDateValue, DateLabelFormat, DateStringValue, DateTimeStringValue, ScheduleEventData, ScheduleMode, ScheduleViewLevel } from '../../types';
4
+ import { AgendaViewStylesNames } from '../AgendaView/AgendaView';
4
5
  import { CurrentTimeIndicatorStylesNames } from '../CurrentTimeIndicator/CurrentTimeIndicator';
5
6
  import { MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents';
6
7
  import { RenderEvent, RenderEventBody, ScheduleEventStylesNames } from '../ScheduleEvent/ScheduleEvent';
7
8
  import { MonthYearSelectStylesNames } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect';
8
9
  import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
9
10
  import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
10
- export type DayViewStylesNames = 'dayView' | 'dayViewInner' | 'dayViewScrollArea' | 'dayViewAllDay' | 'dayViewAllDayEvents' | 'dayViewSlot' | 'dayViewSlots' | 'dayViewTimeSlots' | 'dayViewSlotLabel' | 'dayViewSlotLabels' | 'dayViewBackgroundEvent' | MoreEventsStylesNames | ScheduleEventStylesNames | Exclude<CombinedScheduleHeaderStylesNames, MonthYearSelectStylesNames> | CurrentTimeIndicatorStylesNames;
11
+ export type DayViewStylesNames = 'dayView' | 'dayViewInner' | 'dayViewScrollArea' | 'dayViewAllDay' | 'dayViewAllDayEvents' | 'dayViewSlot' | 'dayViewSlots' | 'dayViewTimeSlots' | 'dayViewSlotLabel' | 'dayViewSlotLabels' | 'dayViewBackgroundEvent' | MoreEventsStylesNames | ScheduleEventStylesNames | Exclude<CombinedScheduleHeaderStylesNames, MonthYearSelectStylesNames> | CurrentTimeIndicatorStylesNames | AgendaViewStylesNames;
11
12
  export type DayViewCssVariables = {
12
13
  dayView: '--day-view-radius' | '--day-view-slot-height' | '--day-view-all-day-slot-height';
13
14
  };
@@ -25,6 +26,8 @@ export interface DayViewProps extends BoxProps, StylesApiProps<DayViewFactory>,
25
26
  endTime?: string;
26
27
  /** Number of minutes for each time slot @default 15 */
27
28
  intervalMinutes?: number;
29
+ /** If set, grid lines are displayed for intervals smaller than one hour, for example 15 and 30 minutes intervals @default true */
30
+ withSubHourGridLines?: boolean;
28
31
  /** If set, the all-day slot is displayed below the header @default true */
29
32
  withAllDaySlot?: boolean;
30
33
  /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */
@@ -124,6 +127,8 @@ export interface DayViewProps extends BoxProps, StylesApiProps<DayViewFactory>,
124
127
  start: DateTimeStringValue;
125
128
  end: DateTimeStringValue;
126
129
  }) => Record<string, any> | undefined;
130
+ /** If set, displays an Agenda button in the header that opens an agenda list view @default false */
131
+ withAgenda?: boolean;
127
132
  }
128
133
  export type DayViewFactory = Factory<{
129
134
  props: DayViewProps;
@@ -1,12 +1,13 @@
1
1
  import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaProps, StylesApiProps } from '@mantine/core';
2
2
  import { ScheduleLabelsOverride } from '../../labels';
3
3
  import { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleViewLevel } from '../../types';
4
+ import { AgendaViewStylesNames } from '../AgendaView/AgendaView';
4
5
  import { MoreEventsProps } from '../MoreEvents/MoreEvents';
5
6
  import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
6
7
  import { MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect';
7
8
  import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
8
9
  import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
9
- export type MonthViewStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | 'monthViewBackgroundEvent' | CombinedScheduleHeaderStylesNames;
10
+ export type MonthViewStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | 'monthViewBackgroundEvent' | CombinedScheduleHeaderStylesNames | AgendaViewStylesNames;
10
11
  export type MonthViewCssVariables = {
11
12
  monthView: '--month-view-radius' | '--month-view-max-events';
12
13
  };
@@ -20,6 +21,8 @@ export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactor
20
21
  withWeekNumbers?: boolean;
21
22
  /** If set, weekdays names are displayed in the first row @default true */
22
23
  withWeekDays?: boolean;
24
+ /** If set, weekend days are displayed. When `false`, days defined by `weekendDays` are hidden and the grid shrinks to the remaining columns @default true */
25
+ withWeekendDays?: boolean;
23
26
  /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */
24
27
  locale?: string;
25
28
  /** Number 0-6, where 0 – Sunday and 6 – Saturday. @default 1 – Monday */
@@ -99,6 +102,8 @@ export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactor
99
102
  recurrenceExpansionLimit?: number;
100
103
  /** Maximum number of events visible per day before "+more" indicator shows, value is clamped between 1 and 10 @default 2 */
101
104
  maxEventsPerDay?: number;
105
+ /** If set, displays an Agenda button in the header that opens an agenda list view @default false */
106
+ withAgenda?: boolean;
102
107
  }
103
108
  export type MonthViewFactory = Factory<{
104
109
  props: MonthViewProps;
@@ -4,6 +4,10 @@ interface GetRenderableMonthEventSegmentsInput {
4
4
  groupedByDay: Record<string, MonthPositionedEventData[]>;
5
5
  maxEventsPerDay: number;
6
6
  week: DateStringValue[];
7
+ /** Week-relative indices (0–6) of hidden columns, e.g. weekend days */
8
+ hiddenColumns?: number[];
9
+ /** Number of visible columns, defaults to 7 */
10
+ columnsCount?: number;
7
11
  }
8
12
  export interface RenderableMonthEventSegment {
9
13
  event: MonthPositionedEventData;
@@ -12,5 +16,5 @@ export interface RenderableMonthEventSegment {
12
16
  clipEnd: boolean;
13
17
  key: string;
14
18
  }
15
- export declare function getRenderableMonthEventSegments({ events, groupedByDay, maxEventsPerDay, week, }: GetRenderableMonthEventSegmentsInput): RenderableMonthEventSegment[];
19
+ export declare function getRenderableMonthEventSegments({ events, groupedByDay, maxEventsPerDay, week, hiddenColumns, columnsCount, }: GetRenderableMonthEventSegmentsInput): RenderableMonthEventSegment[];
16
20
  export {};
@@ -0,0 +1,19 @@
1
+ declare const DAYS_IN_WEEK = 7;
2
+ declare const COLUMN_WIDTH: number;
3
+ /**
4
+ * Builds a map from a full week-day index (0–6, relative to the first day of
5
+ * the week) to its visible column index. Hidden columns are mapped to -1.
6
+ */
7
+ export declare function getVisibleColumnMap(hiddenColumns: number[]): number[];
8
+ export interface VisibleColumnSpan {
9
+ startOffset: number;
10
+ width: number;
11
+ }
12
+ /**
13
+ * Clips a span defined by full week-day indices (`startColumn`–`endColumn`,
14
+ * inclusive) to the visible columns, returning one entry per contiguous run of
15
+ * visible columns. Offsets and widths are expressed in percent of the visible
16
+ * grid width.
17
+ */
18
+ export declare function clipSpanToVisibleColumns(startColumn: number, endColumn: number, visibleColumnMap: number[], columnsCount: number): VisibleColumnSpan[];
19
+ export { DAYS_IN_WEEK, COLUMN_WIDTH };
@@ -0,0 +1,148 @@
1
+ import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaProps, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { DateLabelFormat, DateStringValue, DateTimeStringValue, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
4
+ import { MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents';
5
+ import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
6
+ import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
7
+ import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
8
+ export type ResourcesDayViewStylesNames = 'resourcesDayView' | 'resourcesDayViewRoot' | 'resourcesDayViewInner' | 'resourcesDayViewTimeLabelsRow' | 'resourcesDayViewScrollArea' | 'resourcesDayViewCorner' | 'resourcesDayViewTimeLabel' | 'resourcesDayViewResourceLabel' | 'resourcesDayViewRow' | 'resourcesDayViewRowSlot' | 'resourcesDayViewRowSlots' | 'resourcesDayViewBackgroundEvent' | 'resourcesDayViewAllDayEvent' | 'resourcesDayViewCurrentTimeIndicator' | 'resourcesDayViewCurrentTimeIndicatorLine' | 'resourcesDayViewCurrentTimeIndicatorThumb' | 'resourcesDayViewCurrentTimeIndicatorTimeBubble' | 'resourcesDayViewEventWrapper' | 'resourcesDayViewResizeHandle' | 'resourcesDayViewGroupColumn' | 'resourcesDayViewGroupColumnEmpty' | MoreEventsStylesNames | CombinedScheduleHeaderStylesNames;
9
+ export type ResourcesDayViewCssVariables = {
10
+ resourcesDayView: '--resources-day-view-radius' | '--resources-day-view-slot-width' | '--resources-day-view-row-height' | '--resources-day-view-group-label-width';
11
+ };
12
+ export interface ResourcesDayViewProps extends BoxProps, StylesApiProps<ResourcesDayViewFactory>, ElementProps<'div'> {
13
+ __staticSelector?: string;
14
+ /** Day to display, Date object or date string in `YYYY-MM-DD` format */
15
+ date: Date | string;
16
+ /** Called with the new date value when a date is selected */
17
+ onDateChange?: (value: DateStringValue) => void;
18
+ /** List of resources to display as rows */
19
+ resources: ScheduleResourceData[];
20
+ /** Start time for the day view, in `HH:mm:ss` format @default 00:00:00 */
21
+ startTime?: string;
22
+ /** End time for the day view, in `HH:mm:ss` format @default 23:59:59 */
23
+ endTime?: string;
24
+ /** Number of minutes for each interval in the day view @default 60 */
25
+ intervalMinutes?: number;
26
+ /** Dayjs format for slot labels or a callback function that returns formatted value @default HH:mm */
27
+ slotLabelFormat?: DateLabelFormat;
28
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
29
+ radius?: MantineRadius;
30
+ /** Time to scroll to on initial render, in `HH:mm:ss` format */
31
+ startScrollTime?: string;
32
+ /** Props passed down to the `ScrollArea` component */
33
+ scrollAreaProps?: Partial<ScrollAreaProps> & DataAttributes;
34
+ /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */
35
+ locale?: string;
36
+ /** If set, displays a vertical line indicating the current time. By default, displayed only for the current day. */
37
+ withCurrentTimeIndicator?: boolean;
38
+ /** If set, the time indicator displays the current time in the bubble @default true */
39
+ withCurrentTimeBubble?: boolean;
40
+ /** If set, the header is displayed @default true */
41
+ withHeader?: boolean;
42
+ /** Called when view level select button is clicked */
43
+ onViewChange?: (view: ScheduleViewLevel) => void;
44
+ /** Props passed to previous control */
45
+ previousControlProps?: React.ComponentProps<'button'> & DataAttributes;
46
+ /** Props passed to next control */
47
+ nextControlProps?: React.ComponentProps<'button'> & DataAttributes;
48
+ /** Props passed to today control */
49
+ todayControlProps?: React.ComponentProps<'button'> & DataAttributes;
50
+ /** Props passed to view level select */
51
+ viewSelectProps?: Partial<ViewSelectProps> & DataAttributes;
52
+ /** Dayjs format for header label @default 'MMMM D, YYYY' */
53
+ headerFormat?: DateLabelFormat;
54
+ /** List of events to display */
55
+ events?: ScheduleEventData[];
56
+ /** Width of each time slot column @default 80px */
57
+ slotWidth?: React.CSSProperties['width'];
58
+ /** Height of each resource row @default 64px */
59
+ rowHeight?: React.CSSProperties['height'];
60
+ /** Labels override */
61
+ labels?: ScheduleLabelsOverride;
62
+ /** If set to true, highlights business hours with white background @default false */
63
+ highlightBusinessHours?: boolean;
64
+ /** Business hours range in `HH:mm:ss` format @default ['09:00:00', '17:00:00'] */
65
+ businessHours?: [string, string];
66
+ /** Function to customize event body */
67
+ renderEventBody?: RenderEventBody;
68
+ /** Function to fully customize event rendering */
69
+ renderEvent?: RenderEvent;
70
+ /** Function to customize resource label rendering */
71
+ renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
72
+ /** List of resource groups to display as a column to the left of resource labels */
73
+ groups?: ScheduleResourceGroup[];
74
+ /** Function to customize group label rendering */
75
+ renderGroupLabel?: (group: ScheduleResourceGroup) => React.ReactNode;
76
+ /** Width of the group label column @default 80px */
77
+ groupLabelWidth?: React.CSSProperties['width'];
78
+ /** If true, events can be dragged and dropped @default false */
79
+ withEventsDragAndDrop?: boolean;
80
+ /** Called when event is dropped at new time, includes target resourceId */
81
+ onEventDrop?: (data: {
82
+ eventId: string | number;
83
+ newStart: DateTimeStringValue;
84
+ newEnd: DateTimeStringValue;
85
+ event: ScheduleEventData;
86
+ resourceId?: string | number;
87
+ }) => void;
88
+ /** Function to determine if event can be dragged */
89
+ canDragEvent?: (event: ScheduleEventData) => boolean;
90
+ /** Called when any event drag starts */
91
+ onEventDragStart?: (event: ScheduleEventData) => void;
92
+ /** Called when any event drag ends */
93
+ onEventDragEnd?: () => void;
94
+ /** Called when time slot is clicked, includes resourceId */
95
+ onTimeSlotClick?: (data: {
96
+ slotStart: DateTimeStringValue;
97
+ slotEnd: DateTimeStringValue;
98
+ nativeEvent: React.MouseEvent<HTMLButtonElement>;
99
+ resourceId?: string | number;
100
+ }) => void;
101
+ /** Called when event is clicked */
102
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
103
+ /** If set, enables drag-to-select time slot ranges @default false */
104
+ withDragSlotSelect?: boolean;
105
+ /** Called when a time slot range is selected by dragging, includes resourceId */
106
+ onSlotDragEnd?: (data: {
107
+ rangeStart: DateTimeStringValue;
108
+ rangeEnd: DateTimeStringValue;
109
+ resourceId?: string | number;
110
+ }) => void;
111
+ /** Interaction mode @default default */
112
+ mode?: ScheduleMode;
113
+ /** Called when an external item is dropped onto the schedule */
114
+ onExternalEventDrop?: (data: {
115
+ dataTransfer: DataTransfer;
116
+ dropDateTime: DateTimeStringValue;
117
+ resourceId?: string | number;
118
+ }) => void;
119
+ /** If true, events can be resized by dragging their left/right edges @default false */
120
+ withEventResize?: boolean;
121
+ /** Called when event is resized */
122
+ onEventResize?: (data: {
123
+ eventId: string | number;
124
+ newStart: DateTimeStringValue;
125
+ newEnd: DateTimeStringValue;
126
+ event: ScheduleEventData;
127
+ }) => void;
128
+ /** Function to determine if event can be resized */
129
+ canResizeEvent?: (event: ScheduleEventData) => boolean;
130
+ /** Max number of generated recurring instances per recurring series @default 2000 */
131
+ recurrenceExpansionLimit?: number;
132
+ /** Maximum number of events visible per time slot before "+more" indicator shows, minimum value is 1 @default 2 */
133
+ maxEventsPerTimeSlot?: number;
134
+ /** Props passed down to `MoreEvents` component */
135
+ moreEventsProps?: Partial<MoreEventsProps>;
136
+ }
137
+ export type ResourcesDayViewFactory = Factory<{
138
+ props: ResourcesDayViewProps;
139
+ ref: HTMLDivElement;
140
+ stylesNames: ResourcesDayViewStylesNames;
141
+ vars: ResourcesDayViewCssVariables;
142
+ }>;
143
+ export declare const ResourcesDayView: import("@mantine/core").MantineComponent<{
144
+ props: ResourcesDayViewProps;
145
+ ref: HTMLDivElement;
146
+ stylesNames: ResourcesDayViewStylesNames;
147
+ vars: ResourcesDayViewCssVariables;
148
+ }>;
@@ -0,0 +1,39 @@
1
+ import { GetStylesApi } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { ScheduleMode, ScheduleResourceData, ScheduleResourceGroup } from '../../types';
4
+ import { DayTimeInterval, ResourceGroupInfo, ResourcesGridControlsRef } from '../../utils';
5
+ import type { ResourcesDayViewFactory } from './ResourcesDayView';
6
+ export interface ResourcesDayViewRowProps {
7
+ resource: ScheduleResourceData;
8
+ resourceIndex: number;
9
+ date: string;
10
+ slots: DayTimeInterval[];
11
+ getStyles: GetStylesApi<ResourcesDayViewFactory>;
12
+ children?: React.ReactNode;
13
+ labels?: ScheduleLabelsOverride;
14
+ highlightBusinessHours?: boolean;
15
+ businessHours?: [string, string];
16
+ withEventsDragAndDrop?: boolean;
17
+ onRowSlotsDragOver?: (e: React.DragEvent<HTMLDivElement>, resourceId: string | number, resourceIndex: number) => void;
18
+ onRowSlotsDragLeave?: () => void;
19
+ onRowSlotsDrop?: (e: React.DragEvent<HTMLDivElement>, resourceId: string | number, resourceIndex: number) => void;
20
+ onSlotClick?: (resourceId: string | number, slotTime: string, event: React.MouseEvent<HTMLButtonElement>) => void;
21
+ dropTargetSlotIndex?: number;
22
+ mode?: ScheduleMode;
23
+ slotsRef?: ResourcesGridControlsRef;
24
+ firstSlotIndex?: {
25
+ resourceIndex: number;
26
+ slotIndex: number;
27
+ };
28
+ onSlotKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, resourceIndex: number, slotIndex: number) => void;
29
+ withDragSlotSelect?: boolean;
30
+ onSlotPointerDown?: (event: React.PointerEvent<HTMLButtonElement>, index: number, group: string) => void;
31
+ isSlotDragSelected?: (index: number, group: string) => boolean;
32
+ rowSlotsContainerRef?: (node: HTMLDivElement | null) => void;
33
+ renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
34
+ renderGroupLabel?: (group: ScheduleResourceGroup) => React.ReactNode;
35
+ scrolledX?: boolean;
36
+ groupInfo?: ResourceGroupInfo | null;
37
+ allDayCount?: number;
38
+ }
39
+ export declare function ResourcesDayViewRow({ resource, resourceIndex, date, 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, }: ResourcesDayViewRowProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { DayPositionedEventData } from '../../../types';
2
+ export declare function getOverlapClusters(events: DayPositionedEventData[]): DayPositionedEventData[][];
@@ -0,0 +1,16 @@
1
+ import { AnyDateValue, DayPositionedEventData, ScheduleEventData, ScheduleResourceData } from '../../../types';
2
+ interface GetResourcesDayViewEventsInput {
3
+ events: ScheduleEventData[] | undefined;
4
+ resources: ScheduleResourceData[];
5
+ date: AnyDateValue;
6
+ startTime?: string;
7
+ endTime?: string;
8
+ }
9
+ export interface ResourcesDayViewEventsResult {
10
+ regularEvents: Record<string | number, DayPositionedEventData[]>;
11
+ allDayEvents: Record<string | number, DayPositionedEventData[]>;
12
+ backgroundTimedEvents: Record<string | number, DayPositionedEventData[]>;
13
+ backgroundAllDayEvents: Record<string | number, DayPositionedEventData[]>;
14
+ }
15
+ export declare function getResourcesDayViewEvents({ events, resources, date, startTime, endTime, }: GetResourcesDayViewEventsInput): ResourcesDayViewEventsResult;
16
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { ResourcesDayViewCssVariables, ResourcesDayViewFactory, ResourcesDayViewProps, ResourcesDayViewStylesNames } from './ResourcesDayView';
2
+ export { ResourcesDayView } from './ResourcesDayView';
3
+ export type { ResourcesDayViewProps, ResourcesDayViewFactory, ResourcesDayViewStylesNames, ResourcesDayViewCssVariables, };
4
+ export declare namespace ResourcesDayView {
5
+ type Props = ResourcesDayViewProps;
6
+ type Factory = ResourcesDayViewFactory;
7
+ type StylesNames = ResourcesDayViewStylesNames;
8
+ type CssVariables = ResourcesDayViewCssVariables;
9
+ }
@@ -0,0 +1,129 @@
1
+ import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaProps, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
4
+ import { MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents';
5
+ import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
6
+ import { MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect';
7
+ import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
8
+ import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
9
+ export type ResourcesMonthViewStylesNames = 'resourcesMonthView' | 'resourcesMonthViewRoot' | 'resourcesMonthViewScrollArea' | 'resourcesMonthViewDayLabelsRow' | 'resourcesMonthViewCorner' | 'resourcesMonthViewDayLabel' | 'resourcesMonthViewDayLabelWeekday' | 'resourcesMonthViewDayLabelNumber' | 'resourcesMonthViewRow' | 'resourcesMonthViewResourceLabel' | 'resourcesMonthViewRowSlots' | 'resourcesMonthViewCell' | 'resourcesMonthViewInner' | 'resourcesMonthViewGroupColumn' | 'resourcesMonthViewGroupColumnEmpty' | MoreEventsStylesNames | CombinedScheduleHeaderStylesNames;
10
+ export type ResourcesMonthViewCssVariables = {
11
+ resourcesMonthView: '--resources-month-view-radius' | '--resources-month-view-day-width' | '--resources-month-view-row-height' | '--resources-month-view-group-label-width';
12
+ };
13
+ export interface ResourcesMonthViewProps extends BoxProps, StylesApiProps<ResourcesMonthViewFactory>, ElementProps<'div'> {
14
+ __staticSelector?: string;
15
+ /** Date to display, Date object or date string in `YYYY-MM-DD` format */
16
+ date: Date | string;
17
+ /** Called with the new date value when a date is selected */
18
+ onDateChange?: (value: DateStringValue) => void;
19
+ /** List of resources to display as rows */
20
+ resources: ScheduleResourceData[];
21
+ /** Locale passed down to dayjs */
22
+ locale?: string;
23
+ /** `dayjs` format for weekdays in day column headers @default 'dd' */
24
+ weekdayFormat?: DateLabelFormat;
25
+ /** Indices of weekend days */
26
+ weekendDays?: DayOfWeek[];
27
+ /** If set to false, weekend days are hidden @default true */
28
+ withWeekendDays?: boolean;
29
+ /** Date to scroll to on initial render, in `YYYY-MM-DD` format */
30
+ startScrollDate?: string;
31
+ /** Called when a cell is clicked, includes resourceId */
32
+ onDayClick?: (data: {
33
+ date: DateStringValue;
34
+ nativeEvent: React.MouseEvent<HTMLButtonElement>;
35
+ resourceId?: string | number;
36
+ }) => void;
37
+ /** If set, highlights the current day @default true */
38
+ highlightToday?: boolean;
39
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
40
+ radius?: MantineRadius;
41
+ /** If set, the header is displayed @default true */
42
+ withHeader?: boolean;
43
+ /** Props passed down to `MonthYearSelect` component */
44
+ monthYearSelectProps?: Partial<MonthYearSelectProps>;
45
+ /** Called when view level select button is clicked */
46
+ onViewChange?: (view: ScheduleViewLevel) => void;
47
+ /** Props passed to previous control */
48
+ previousControlProps?: React.ComponentProps<'button'> & DataAttributes;
49
+ /** Props passed to next control */
50
+ nextControlProps?: React.ComponentProps<'button'> & DataAttributes;
51
+ /** Props passed to today control */
52
+ todayControlProps?: React.ComponentProps<'button'> & DataAttributes;
53
+ /** Props passed to view level select */
54
+ viewSelectProps?: Partial<ViewSelectProps> & DataAttributes;
55
+ /** Events to display */
56
+ events?: ScheduleEventData[];
57
+ /** Width of each day column @default 40px */
58
+ dayWidth?: React.CSSProperties['width'];
59
+ /** Height of each resource row @default 48px */
60
+ rowHeight?: React.CSSProperties['height'];
61
+ /** Function to customize event body */
62
+ renderEventBody?: RenderEventBody;
63
+ /** Function to fully customize event rendering */
64
+ renderEvent?: RenderEvent;
65
+ /** Function to customize resource label rendering */
66
+ renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
67
+ /** List of resource groups to display as a column to the left of resource labels */
68
+ groups?: ScheduleResourceGroup[];
69
+ /** Function to customize group label rendering */
70
+ renderGroupLabel?: (group: ScheduleResourceGroup) => React.ReactNode;
71
+ /** Width of the group label column @default 80px */
72
+ groupLabelWidth?: React.CSSProperties['width'];
73
+ /** If true, events can be dragged and dropped @default false */
74
+ withEventsDragAndDrop?: boolean;
75
+ /** Called when event is dropped, includes target resourceId */
76
+ onEventDrop?: (data: {
77
+ eventId: string | number;
78
+ newStart: DateTimeStringValue;
79
+ newEnd: DateTimeStringValue;
80
+ event: ScheduleEventData;
81
+ resourceId?: string | number;
82
+ }) => void;
83
+ /** Function to determine if event can be dragged */
84
+ canDragEvent?: (event: ScheduleEventData) => boolean;
85
+ /** Called when any event drag starts */
86
+ onEventDragStart?: (event: ScheduleEventData) => void;
87
+ /** Called when any event drag ends */
88
+ onEventDragEnd?: () => void;
89
+ /** Called when event is clicked */
90
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
91
+ /** If set, enables drag-to-select day ranges @default false */
92
+ withDragSlotSelect?: boolean;
93
+ /** Called when a day range is selected by dragging, includes resourceId */
94
+ onSlotDragEnd?: (data: {
95
+ rangeStart: DateTimeStringValue;
96
+ rangeEnd: DateTimeStringValue;
97
+ resourceId?: string | number;
98
+ }) => void;
99
+ /** Labels override for i18n */
100
+ labels?: ScheduleLabelsOverride;
101
+ /** Interaction mode @default default */
102
+ mode?: ScheduleMode;
103
+ /** Props passed down to `ScrollArea` component */
104
+ scrollAreaProps?: Partial<ScrollAreaProps> & DataAttributes;
105
+ /** Called when an external item is dropped */
106
+ onExternalEventDrop?: (data: {
107
+ dataTransfer: DataTransfer;
108
+ dropDateTime: DateTimeStringValue;
109
+ resourceId?: string | number;
110
+ }) => void;
111
+ /** Maximum number of events visible per cell before "+more" indicator @default 2 */
112
+ maxEventsPerTimeSlot?: number;
113
+ /** Props passed down to `MoreEvents` component */
114
+ moreEventsProps?: Partial<MoreEventsProps>;
115
+ /** Max number of generated recurring instances @default 2000 */
116
+ recurrenceExpansionLimit?: number;
117
+ }
118
+ export type ResourcesMonthViewFactory = Factory<{
119
+ props: ResourcesMonthViewProps;
120
+ ref: HTMLDivElement;
121
+ stylesNames: ResourcesMonthViewStylesNames;
122
+ vars: ResourcesMonthViewCssVariables;
123
+ }>;
124
+ export declare const ResourcesMonthView: import("@mantine/core").MantineComponent<{
125
+ props: ResourcesMonthViewProps;
126
+ ref: HTMLDivElement;
127
+ stylesNames: ResourcesMonthViewStylesNames;
128
+ vars: ResourcesMonthViewCssVariables;
129
+ }>;
@@ -0,0 +1,9 @@
1
+ import type { ResourcesMonthViewCssVariables, ResourcesMonthViewFactory, ResourcesMonthViewProps, ResourcesMonthViewStylesNames } from './ResourcesMonthView';
2
+ export { ResourcesMonthView } from './ResourcesMonthView';
3
+ export type { ResourcesMonthViewProps, ResourcesMonthViewFactory, ResourcesMonthViewStylesNames, ResourcesMonthViewCssVariables, };
4
+ export declare namespace ResourcesMonthView {
5
+ type Props = ResourcesMonthViewProps;
6
+ type Factory = ResourcesMonthViewFactory;
7
+ type StylesNames = ResourcesMonthViewStylesNames;
8
+ type CssVariables = ResourcesMonthViewCssVariables;
9
+ }
@@ -0,0 +1,123 @@
1
+ import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { DateStringValue, DateTimeStringValue, ScheduleEventData, ScheduleMode, ScheduleResourceData } from '../../types';
4
+ import { ResourcesDayViewProps, ResourcesDayViewStylesNames } from '../ResourcesDayView/ResourcesDayView';
5
+ import { ResourcesMonthViewProps, ResourcesMonthViewStylesNames } from '../ResourcesMonthView/ResourcesMonthView';
6
+ import { ResourcesWeekViewProps, ResourcesWeekViewStylesNames } from '../ResourcesWeekView/ResourcesWeekView';
7
+ import { RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
8
+ export type ResourcesScheduleStylesNames = 'root' | ResourcesDayViewStylesNames | ResourcesWeekViewStylesNames | ResourcesMonthViewStylesNames;
9
+ export type ResourcesScheduleViewLevel = 'day' | 'week' | 'month';
10
+ type ResourcesScheduleCommonProps = 'date' | 'onDateChange' | 'resources' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'renderResourceLabel' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onEventClick' | 'onDayClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode' | 'onExternalEventDrop' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit';
11
+ type ResourcesScheduleViewProps<T> = Partial<Omit<T, ResourcesScheduleCommonProps>>;
12
+ export interface ResourcesScheduleProps extends BoxProps, StylesApiProps<ResourcesScheduleFactory>, ElementProps<'div'> {
13
+ __staticSelector?: string;
14
+ /** List of resources to display */
15
+ resources: ScheduleResourceData[];
16
+ /** Current date to display (controlled) */
17
+ date?: Date | DateStringValue;
18
+ /** Default date (uncontrolled) */
19
+ defaultDate?: Date | DateStringValue;
20
+ /** Called when date changes via navigation */
21
+ onDateChange?: (date: DateStringValue) => void;
22
+ /** Current view level (controlled) */
23
+ view?: ResourcesScheduleViewLevel;
24
+ /** Default view level (uncontrolled) @default 'day' */
25
+ defaultView?: ResourcesScheduleViewLevel;
26
+ /** Called when view level changes */
27
+ onViewChange?: (view: ResourcesScheduleViewLevel) => void;
28
+ /** Events to display across all views */
29
+ events?: ScheduleEventData[];
30
+ /** Locale for date formatting */
31
+ locale?: string;
32
+ /** Key of theme.radius or any valid CSS value to set border-radius */
33
+ radius?: MantineRadius;
34
+ /** Labels override for i18n */
35
+ labels?: ScheduleLabelsOverride;
36
+ /** Custom event body renderer */
37
+ renderEventBody?: RenderEventBody;
38
+ /** Custom resource label renderer */
39
+ renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
40
+ /** Enable drag and drop for events @default false */
41
+ withEventsDragAndDrop?: boolean;
42
+ /** Called when event is dropped */
43
+ onEventDrop?: (data: {
44
+ eventId: string | number;
45
+ newStart: DateTimeStringValue;
46
+ newEnd: DateTimeStringValue;
47
+ event: ScheduleEventData;
48
+ resourceId?: string | number;
49
+ }) => void;
50
+ /** Function to determine if event can be dragged */
51
+ canDragEvent?: (event: ScheduleEventData) => boolean;
52
+ /** Called when any event drag starts */
53
+ onEventDragStart?: (event: ScheduleEventData) => void;
54
+ /** Called when any event drag ends */
55
+ onEventDragEnd?: () => void;
56
+ /** Called when time slot is clicked */
57
+ onTimeSlotClick?: (data: {
58
+ slotStart: DateTimeStringValue;
59
+ slotEnd: DateTimeStringValue;
60
+ nativeEvent: React.MouseEvent<HTMLButtonElement>;
61
+ resourceId?: string | number;
62
+ }) => void;
63
+ /** Called when day is clicked in month view */
64
+ onDayClick?: (data: {
65
+ date: DateStringValue;
66
+ nativeEvent: React.MouseEvent<HTMLButtonElement>;
67
+ resourceId?: string | number;
68
+ }) => void;
69
+ /** Called when event is clicked */
70
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
71
+ /** If set, enables drag-to-select slot ranges @default false */
72
+ withDragSlotSelect?: boolean;
73
+ /** Called when a slot range is selected by dragging */
74
+ onSlotDragEnd?: (data: {
75
+ rangeStart: DateTimeStringValue;
76
+ rangeEnd: DateTimeStringValue;
77
+ resourceId?: string | number;
78
+ }) => void;
79
+ /** Interaction mode @default default */
80
+ mode?: ScheduleMode;
81
+ /** Called when an external item is dropped onto the schedule */
82
+ onExternalEventDrop?: (data: {
83
+ dataTransfer: DataTransfer;
84
+ dropDateTime: DateTimeStringValue;
85
+ resourceId?: string | number;
86
+ }) => void;
87
+ /** If true, events can be resized @default false */
88
+ withEventResize?: boolean;
89
+ /** Called when event is resized */
90
+ onEventResize?: (data: {
91
+ eventId: string | number;
92
+ newStart: DateTimeStringValue;
93
+ newEnd: DateTimeStringValue;
94
+ event: ScheduleEventData;
95
+ }) => void;
96
+ /** Function to determine if event can be resized */
97
+ canResizeEvent?: (event: ScheduleEventData) => boolean;
98
+ /** Max number of generated recurring instances @default 2000 */
99
+ recurrenceExpansionLimit?: number;
100
+ /** Props specific to ResourcesDayView */
101
+ dayViewProps?: ResourcesScheduleViewProps<ResourcesDayViewProps>;
102
+ /** Props specific to ResourcesWeekView */
103
+ weekViewProps?: ResourcesScheduleViewProps<ResourcesWeekViewProps>;
104
+ /** Props specific to ResourcesMonthView */
105
+ monthViewProps?: ResourcesScheduleViewProps<ResourcesMonthViewProps>;
106
+ }
107
+ export type ResourcesScheduleFactory = Factory<{
108
+ props: ResourcesScheduleProps;
109
+ ref: HTMLDivElement;
110
+ stylesNames: ResourcesScheduleStylesNames;
111
+ }>;
112
+ export declare const ResourcesSchedule: import("@mantine/core").MantineComponent<{
113
+ props: ResourcesScheduleProps;
114
+ ref: HTMLDivElement;
115
+ stylesNames: ResourcesScheduleStylesNames;
116
+ }>;
117
+ export declare namespace ResourcesSchedule {
118
+ type Props = ResourcesScheduleProps;
119
+ type StylesNames = ResourcesScheduleStylesNames;
120
+ type Factory = ResourcesScheduleFactory;
121
+ type ViewLevel = ResourcesScheduleViewLevel;
122
+ }
123
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ResourcesScheduleFactory, ResourcesScheduleProps, ResourcesScheduleStylesNames, ResourcesScheduleViewLevel } from './ResourcesSchedule';
2
+ export { ResourcesSchedule } from './ResourcesSchedule';
3
+ export type { ResourcesScheduleProps, ResourcesScheduleFactory, ResourcesScheduleStylesNames, ResourcesScheduleViewLevel, };