@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,576 @@
1
+ "use client";
2
+ import { getLabel } from "../../labels.mjs";
3
+ import { formatDate } from "../../utils/format-date/format-date.mjs";
4
+ import { getDayTimeIntervals } from "../../utils/get-day-time-intervals/get-day-time-intervals.mjs";
5
+ import { toDateString } from "../../utils/to-date-string/to-date-string.mjs";
6
+ import { getCurrentTimePosition } from "../../utils/get-current-time-position/get-current-time-position.mjs";
7
+ import { isInTimeRange } from "../../utils/is-in-time-range/is-in-time-range.mjs";
8
+ import { isAllDayEvent } from "../../utils/is-all-day-event/is-all-day-event.mjs";
9
+ import { calculateDropTime } from "../../utils/calculate-drop-time/calculate-drop-time.mjs";
10
+ import { getBusinessHoursMod } from "../../utils/get-business-hours-mod/get-business-hours-mod.mjs";
11
+ import { expandRecurringEvents } from "../../utils/expand-recurring-events/expand-recurring-events.mjs";
12
+ import { getOrderedResources } from "../../utils/get-ordered-resources/get-ordered-resources.mjs";
13
+ import { handleResourcesGridKeyDown } from "../../utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs";
14
+ import { getGroupToResourceIdMap } from "../../utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs";
15
+ import { getIndexFromDragPoint } from "../../utils/get-index-from-drag-point/get-index-from-drag-point.mjs";
16
+ import { useDragDropHandlers } from "../../hooks/use-drag-drop-handlers.mjs";
17
+ import { useSlotDragSelect } from "../../hooks/use-slot-drag-select.mjs";
18
+ import { DragContext } from "../DragContext/DragContext.mjs";
19
+ import { ScheduleEvent } from "../ScheduleEvent/ScheduleEvent.mjs";
20
+ import { MoreEvents } from "../MoreEvents/MoreEvents.mjs";
21
+ import { ScheduleHeaderBase } from "../ScheduleHeader/ScheduleHeaderBase.mjs";
22
+ import { useHorizontalEventResize } from "../../hooks/use-horizontal-event-resize.mjs";
23
+ import { getOverlapClusters } from "./get-overlap-clusters/get-overlap-clusters.mjs";
24
+ import { getResourcesDayViewEvents } from "./get-resources-day-view-events/get-resources-day-view-events.mjs";
25
+ import { ResourcesDayViewRow } from "./ResourcesDayViewColumn.mjs";
26
+ import ResourcesDayView_module_default from "./ResourcesDayView.module.mjs";
27
+ import dayjs from "dayjs";
28
+ import { Box, ScrollArea, createVarsResolver, factory, getRadius, rem, useMantineTheme, useProps, useResolvedStylesApi, useStyles } from "@mantine/core";
29
+ import { useInterval, useIsomorphicEffect, useMergedRef } from "@mantine/hooks";
30
+ import { createElement, useCallback, useMemo, useRef, useState } from "react";
31
+ import { useDatesContext } from "@mantine/dates";
32
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
33
+ //#region packages/@mantine/schedule/src/components/ResourcesDayView/ResourcesDayView.tsx
34
+ const defaultProps = {
35
+ __staticSelector: "ResourcesDayView",
36
+ startTime: "00:00:00",
37
+ endTime: "23:59:59",
38
+ slotLabelFormat: "HH:mm",
39
+ intervalMinutes: 60,
40
+ withHeader: true,
41
+ headerFormat: "MMMM D, YYYY",
42
+ highlightBusinessHours: false,
43
+ businessHours: ["09:00:00", "17:00:00"],
44
+ withEventsDragAndDrop: false,
45
+ withDragSlotSelect: false,
46
+ withEventResize: false,
47
+ mode: "default",
48
+ maxEventsPerTimeSlot: 2
49
+ };
50
+ const varsResolver = createVarsResolver((_theme, { radius, slotWidth, rowHeight, groupLabelWidth }) => ({ resourcesDayView: {
51
+ "--resources-day-view-radius": radius ? getRadius(radius) : void 0,
52
+ "--resources-day-view-slot-width": rem(slotWidth),
53
+ "--resources-day-view-row-height": rem(rowHeight),
54
+ "--resources-day-view-group-label-width": rem(groupLabelWidth)
55
+ } }));
56
+ const ResourcesDayView = factory((_props) => {
57
+ const props = useProps("ResourcesDayView", defaultProps, _props);
58
+ const { classNames, className, style, styles, unstyled, attributes, vars, startTime, endTime, date, onDateChange, resources, intervalMinutes, slotLabelFormat, radius, startScrollTime, scrollAreaProps, locale, withCurrentTimeIndicator: _withCurrentTimeIndicator, withCurrentTimeBubble = true, __staticSelector, withHeader, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, headerFormat, events, slotWidth, rowHeight, labels, highlightBusinessHours, businessHours, renderEventBody, renderEvent, renderResourceLabel, groups, renderGroupLabel, groupLabelWidth, withEventsDragAndDrop, onEventDrop, canDragEvent, onEventDragStart, onEventDragEnd, onTimeSlotClick, onEventClick, withDragSlotSelect, onSlotDragEnd, mode, onExternalEventDrop, withEventResize, onEventResize, canResizeEvent, recurrenceExpansionLimit, maxEventsPerTimeSlot: _maxEventsPerTimeSlot, moreEventsProps, ...others } = props;
59
+ const maxEventsPerTimeSlot = _maxEventsPerTimeSlot !== void 0 ? Math.max(1, _maxEventsPerTimeSlot) : void 0;
60
+ const getStyles = useStyles({
61
+ name: __staticSelector,
62
+ classes: ResourcesDayView_module_default,
63
+ props,
64
+ className,
65
+ style,
66
+ classNames,
67
+ styles,
68
+ unstyled,
69
+ vars,
70
+ varsResolver,
71
+ attributes,
72
+ rootSelector: "resourcesDayView"
73
+ });
74
+ const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi({
75
+ classNames,
76
+ styles,
77
+ props
78
+ });
79
+ const stylesApiProps = {
80
+ classNames: resolvedClassNames,
81
+ styles: resolvedStyles,
82
+ attributes,
83
+ __staticSelector,
84
+ radius
85
+ };
86
+ const theme = useMantineTheme();
87
+ const [scrolled, setScrolled] = useState(false);
88
+ const [scrolledX, setScrolledX] = useState(false);
89
+ const ctx = useDatesContext();
90
+ const slots = getDayTimeIntervals({
91
+ startTime,
92
+ endTime,
93
+ intervalMinutes
94
+ });
95
+ const { orderedResources, groupRanges, resourceGroupMap } = useMemo(() => getOrderedResources(resources, groups), [resources, groups]);
96
+ const hasGroups = groupRanges.length > 0;
97
+ const handleExternalDrop = useCallback((e, target) => {
98
+ if (!onExternalEventDrop) return;
99
+ const slotDate = dayjs(date).format("YYYY-MM-DD");
100
+ onExternalEventDrop({
101
+ dataTransfer: e.dataTransfer,
102
+ dropDateTime: `${slotDate} ${slots[target.slotIndex].startTime}`,
103
+ resourceId: target.resourceId
104
+ });
105
+ }, [
106
+ onExternalEventDrop,
107
+ slots,
108
+ date
109
+ ]);
110
+ const lastDropResourceId = useRef(void 0);
111
+ const dragDrop = useDragDropHandlers({
112
+ enabled: withEventsDragAndDrop,
113
+ mode,
114
+ onEventDrop: useCallback((data) => {
115
+ onEventDrop?.({
116
+ ...data,
117
+ resourceId: lastDropResourceId.current
118
+ });
119
+ }, [onEventDrop]),
120
+ canDragEvent,
121
+ onEventDragStart,
122
+ onEventDragEnd,
123
+ calculateDropTarget: (target, draggedEvent) => {
124
+ lastDropResourceId.current = target.resourceId;
125
+ const slotTime = slots[target.slotIndex].startTime;
126
+ return calculateDropTime({
127
+ draggedEvent,
128
+ targetDate: dayjs(date).format("YYYY-MM-DD"),
129
+ targetSlotTime: slotTime,
130
+ intervalMinutes
131
+ });
132
+ },
133
+ onExternalDrop: onExternalEventDrop ? handleExternalDrop : void 0
134
+ });
135
+ const groupToResourceId = useMemo(() => getGroupToResourceIdMap(resources), [resources]);
136
+ const slotDragSelect = useSlotDragSelect({
137
+ enabled: withDragSlotSelect && mode !== "static",
138
+ onDragEnd: (startIndex, endIndex, group) => {
139
+ if (!onSlotDragEnd) return;
140
+ const slotDate = dayjs(date).format("YYYY-MM-DD");
141
+ onSlotDragEnd({
142
+ rangeStart: `${slotDate} ${slots[startIndex].startTime}`,
143
+ rangeEnd: `${slotDate} ${slots[endIndex].endTime}`,
144
+ resourceId: groupToResourceId.get(group) ?? group
145
+ });
146
+ }
147
+ });
148
+ const eventResize = useHorizontalEventResize({
149
+ enabled: withEventResize,
150
+ mode,
151
+ startTime,
152
+ endTime,
153
+ intervalMinutes,
154
+ onEventResize,
155
+ canResizeEvent
156
+ });
157
+ const withDragHandlers = (withEventsDragAndDrop || !!onExternalEventDrop) && mode !== "static";
158
+ const handleTimeSlotClick = (resourceId, slotTime, e) => {
159
+ if (!onTimeSlotClick) return;
160
+ const slotDate = dayjs(date).format("YYYY-MM-DD");
161
+ const slotIndex = slots.findIndex((s) => s.startTime === slotTime);
162
+ if (slotIndex === -1) return;
163
+ const slot = slots[slotIndex];
164
+ onTimeSlotClick({
165
+ slotStart: `${slotDate} ${slot.startTime}`,
166
+ slotEnd: `${slotDate} ${slot.endTime}`,
167
+ nativeEvent: e,
168
+ resourceId
169
+ });
170
+ };
171
+ const dateStr = dayjs(date).format("YYYY-MM-DD");
172
+ const isToday = dayjs(date).isSame(dayjs(), "day");
173
+ const withCurrentTimeIndicator = _withCurrentTimeIndicator ?? isToday;
174
+ const [timeIndicatorOffset, setTimeIndicatorOffset] = useState(getCurrentTimePosition({
175
+ startTime,
176
+ endTime,
177
+ intervalMinutes
178
+ }));
179
+ useInterval(() => setTimeIndicatorOffset(getCurrentTimePosition({
180
+ startTime,
181
+ endTime,
182
+ intervalMinutes
183
+ })), 6e4, { autoInvoke: true });
184
+ const showTimeIndicator = withCurrentTimeIndicator && isInTimeRange({
185
+ date: dayjs().toDate(),
186
+ startTime,
187
+ endTime
188
+ });
189
+ const formattedCurrentTime = withCurrentTimeBubble ? formatDate({
190
+ locale: ctx.getLocale(locale),
191
+ date: dayjs(),
192
+ format: slotLabelFormat
193
+ }) : "";
194
+ const expandedEvents = useMemo(() => expandRecurringEvents({
195
+ events,
196
+ rangeStart: dayjs(date).startOf("day").toDate(),
197
+ rangeEnd: dayjs(date).endOf("day").toDate(),
198
+ expansionLimit: recurrenceExpansionLimit
199
+ }), [
200
+ events,
201
+ date,
202
+ recurrenceExpansionLimit
203
+ ]);
204
+ const resourceEvents = useMemo(() => getResourcesDayViewEvents({
205
+ date,
206
+ events: expandedEvents,
207
+ resources,
208
+ startTime,
209
+ endTime
210
+ }), [
211
+ date,
212
+ expandedEvents,
213
+ resources,
214
+ startTime,
215
+ endTime
216
+ ]);
217
+ const timeLabels = slots.map((interval) => {
218
+ const label = formatDate({
219
+ date: dayjs(`${dateStr} ${interval.startTime}`),
220
+ locale: ctx.getLocale(locale),
221
+ format: slotLabelFormat
222
+ });
223
+ return /* @__PURE__ */ createElement(Box, {
224
+ ...getStyles("resourcesDayViewTimeLabel"),
225
+ key: interval.startTime,
226
+ mod: {
227
+ "hour-start": interval.isHourStart,
228
+ ...getBusinessHoursMod({
229
+ time: interval.startTime,
230
+ businessHours,
231
+ highlightBusinessHours
232
+ })
233
+ }
234
+ }, label);
235
+ });
236
+ const slotsRef = useRef([]);
237
+ const rowSlotsContainersRef = useRef([]);
238
+ const viewportRef = useRef(null);
239
+ const mergedViewportRef = useMergedRef(viewportRef, scrollAreaProps?.viewportRef);
240
+ const firstSlotIndex = {
241
+ resourceIndex: 0,
242
+ slotIndex: 0
243
+ };
244
+ useIsomorphicEffect(() => {
245
+ if (!startScrollTime || !viewportRef.current) return;
246
+ const firstResourceSlots = slotsRef.current[0];
247
+ if (!firstResourceSlots || firstResourceSlots.length === 0) return;
248
+ const targetIndex = slots.findIndex((s) => s.startTime >= startScrollTime);
249
+ if (targetIndex < 0) return;
250
+ const targetSlot = firstResourceSlots[targetIndex];
251
+ if (!targetSlot) return;
252
+ const slotRect = targetSlot.getBoundingClientRect();
253
+ const viewportRect = viewportRef.current.getBoundingClientRect();
254
+ const cornerEl = viewportRef.current.querySelector(`.${ResourcesDayView_module_default.resourcesDayViewCorner}`);
255
+ const labelWidth = cornerEl ? cornerEl.getBoundingClientRect().width : 0;
256
+ viewportRef.current.scrollTo({
257
+ left: slotRect.left - viewportRect.left - labelWidth,
258
+ top: 0
259
+ });
260
+ }, []);
261
+ const getSlotIndexFromDragPoint = useCallback((event, resourceIndex) => {
262
+ return getIndexFromDragPoint(slotsRef.current[resourceIndex] ?? [], event.clientX);
263
+ }, []);
264
+ const handleSlotKeyDown = (event, resourceIndex, slotIndex) => {
265
+ handleResourcesGridKeyDown({
266
+ controlsRef: slotsRef,
267
+ resourceIndex,
268
+ slotIndex,
269
+ event
270
+ });
271
+ };
272
+ const rows = orderedResources.map((resource, resourceIndex) => {
273
+ const backgroundEventNodes = [...resourceEvents.backgroundTimedEvents[resource.id] || [], ...resourceEvents.backgroundAllDayEvents[resource.id] || []].map((event) => {
274
+ const colors = theme.variantColorResolver({
275
+ color: event.color || theme.primaryColor,
276
+ theme,
277
+ variant: "light",
278
+ autoContrast: true
279
+ });
280
+ const bgEventBody = typeof renderEventBody === "function" ? renderEventBody(event) : event.title;
281
+ const bgEventProps = {
282
+ key: `bg-${event.id}`,
283
+ ...getStyles("resourcesDayViewBackgroundEvent", { style: {
284
+ left: `${event.position.top}%`,
285
+ width: `${event.position.height}%`,
286
+ top: 0,
287
+ height: "100%"
288
+ } }),
289
+ __vars: {
290
+ "--bg-event-bg": colors.background,
291
+ "--bg-event-color": colors.color
292
+ },
293
+ children: bgEventBody
294
+ };
295
+ if (typeof renderEvent === "function") return renderEvent(event, bgEventProps);
296
+ return /* @__PURE__ */ jsx(Box, { ...bgEventProps });
297
+ });
298
+ const allRegularEvents = (resourceEvents.regularEvents[resource.id] || []).filter((event) => !isAllDayEvent({
299
+ event,
300
+ date
301
+ }));
302
+ const regularEvents = (maxEventsPerTimeSlot !== void 0 ? allRegularEvents.filter((event) => event.position.column < maxEventsPerTimeSlot) : allRegularEvents).map((event) => {
303
+ const isDraggable = dragDrop.isDraggableEvent(event);
304
+ const isResizable = eventResize.isResizableEvent(event);
305
+ const resizePosition = eventResize.getResizePosition(event.id);
306
+ const eventLeft = resizePosition ? resizePosition.left : event.position.top;
307
+ const eventWidth = resizePosition ? resizePosition.width : event.position.height;
308
+ const adjustPosition = maxEventsPerTimeSlot !== void 0 && event.position.overlaps > maxEventsPerTimeSlot;
309
+ const eventColors = isResizable ? theme.variantColorResolver({
310
+ color: event.color || theme.primaryColor,
311
+ theme,
312
+ variant: event.variant || "light",
313
+ autoContrast: true
314
+ }) : null;
315
+ const isThisEventResizing = resizePosition !== null;
316
+ const activeEdge = isThisEventResizing && eventResize.resizingEdge ? eventResize.resizingEdge : null;
317
+ return /* @__PURE__ */ jsxs(Box, {
318
+ ...getStyles("resourcesDayViewEventWrapper"),
319
+ __vars: eventColors ? { "--event-color": eventColors.color } : void 0,
320
+ "data-resizing": isThisEventResizing || void 0,
321
+ style: {
322
+ left: `calc(${eventLeft}% + 1px)`,
323
+ top: adjustPosition ? `calc((100% - 22px) * ${event.position.column} / ${maxEventsPerTimeSlot})` : `${event.position.offset}%`,
324
+ width: `calc(${eventWidth}% - 2px)`,
325
+ height: adjustPosition ? `calc((100% - 22px) / ${maxEventsPerTimeSlot})` : `${event.position.width}%`
326
+ },
327
+ children: [/* @__PURE__ */ jsx(ScheduleEvent, {
328
+ event,
329
+ autoSize: true,
330
+ nowrap: true,
331
+ draggable: isDraggable,
332
+ isResizing: isThisEventResizing,
333
+ renderEventBody,
334
+ renderEvent,
335
+ radius,
336
+ mode,
337
+ onClick: onEventClick ? (e) => {
338
+ if (!eventResize.wasResizing()) onEventClick(event, e);
339
+ } : void 0,
340
+ style: {
341
+ width: "100%",
342
+ height: "100%"
343
+ }
344
+ }), isResizable && mode !== "static" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
345
+ ...getStyles("resourcesDayViewResizeHandle"),
346
+ "data-edge": "start",
347
+ "data-active": activeEdge === "start" || void 0,
348
+ onPointerDown: (e) => {
349
+ const container = rowSlotsContainersRef.current[resourceIndex];
350
+ if (container) eventResize.handleResizeStart({
351
+ event,
352
+ edge: "start",
353
+ container,
354
+ originalLeft: event.position.top,
355
+ originalWidth: event.position.height,
356
+ eventDate: dateStr,
357
+ pointerEvent: e
358
+ });
359
+ }
360
+ }), /* @__PURE__ */ jsx("div", {
361
+ ...getStyles("resourcesDayViewResizeHandle"),
362
+ "data-edge": "end",
363
+ "data-active": activeEdge === "end" || void 0,
364
+ onPointerDown: (e) => {
365
+ const container = rowSlotsContainersRef.current[resourceIndex];
366
+ if (container) eventResize.handleResizeStart({
367
+ event,
368
+ edge: "end",
369
+ container,
370
+ originalLeft: event.position.top,
371
+ originalWidth: event.position.height,
372
+ eventDate: dateStr,
373
+ pointerEvent: e
374
+ });
375
+ }
376
+ })] })]
377
+ }, event.id);
378
+ });
379
+ const allDayEvents = resourceEvents.allDayEvents[resource.id] || [];
380
+ const allDayEventNodes = allDayEvents.map((event, index) => /* @__PURE__ */ jsx(Box, {
381
+ ...getStyles("resourcesDayViewAllDayEvent", { style: { top: `calc(${index} * (var(--resources-day-view-all-day-height) + 2px) + 2px)` } }),
382
+ children: /* @__PURE__ */ jsx(ScheduleEvent, {
383
+ event,
384
+ autoSize: true,
385
+ nowrap: true,
386
+ renderEventBody,
387
+ renderEvent,
388
+ radius,
389
+ mode,
390
+ onClick: onEventClick ? (e) => onEventClick(event, e) : void 0,
391
+ style: {
392
+ width: "100%",
393
+ height: "100%"
394
+ }
395
+ })
396
+ }, `all-day-${event.id}`));
397
+ const moreEventsForResource = maxEventsPerTimeSlot !== void 0 ? getOverlapClusters(allRegularEvents).filter((cluster) => cluster.some((e) => e.position.column >= maxEventsPerTimeSlot)).map((cluster) => {
398
+ const hiddenCount = cluster.filter((e) => e.position.column >= maxEventsPerTimeSlot).length;
399
+ const leftPercent = Math.min(...cluster.map((e) => e.position.top));
400
+ const rightPercent = Math.max(...cluster.map((e) => e.position.top + e.position.height));
401
+ return /* @__PURE__ */ jsx(MoreEvents, {
402
+ events: cluster,
403
+ moreEventsCount: hiddenCount,
404
+ mode,
405
+ labels,
406
+ renderEventBody,
407
+ renderEvent,
408
+ onEventClick,
409
+ style: {
410
+ position: "absolute",
411
+ left: `calc(${leftPercent}% + 1px)`,
412
+ width: `calc(${rightPercent - leftPercent}% - 2px)`,
413
+ bottom: 0,
414
+ height: "22px",
415
+ paddingInline: 4,
416
+ zIndex: 4
417
+ },
418
+ ...stylesApiProps,
419
+ ...moreEventsProps
420
+ }, `more-${cluster[0].id}`);
421
+ }) : [];
422
+ return /* @__PURE__ */ jsxs(ResourcesDayViewRow, {
423
+ resource,
424
+ resourceIndex,
425
+ date: dateStr,
426
+ slots,
427
+ getStyles,
428
+ labels,
429
+ highlightBusinessHours,
430
+ businessHours,
431
+ withEventsDragAndDrop: withDragHandlers,
432
+ mode,
433
+ slotsRef,
434
+ firstSlotIndex,
435
+ onSlotKeyDown: handleSlotKeyDown,
436
+ onSlotClick: handleTimeSlotClick,
437
+ onRowSlotsDragOver: (event, resourceId, resIdx) => {
438
+ const slotIndex = getSlotIndexFromDragPoint(event, resIdx);
439
+ if (slotIndex !== null) dragDrop.handleDragOver(event, {
440
+ resourceId,
441
+ slotIndex
442
+ });
443
+ },
444
+ onRowSlotsDragLeave: dragDrop.handleDragLeave,
445
+ onRowSlotsDrop: (event, resourceId, resIdx) => {
446
+ const slotIndex = getSlotIndexFromDragPoint(event, resIdx);
447
+ if (slotIndex !== null) dragDrop.handleDrop(event, {
448
+ resourceId,
449
+ slotIndex
450
+ });
451
+ },
452
+ dropTargetSlotIndex: dragDrop.dropTarget?.resourceId === resource.id ? dragDrop.dropTarget.slotIndex : void 0,
453
+ withDragSlotSelect,
454
+ onSlotPointerDown: slotDragSelect.handleSlotPointerDown,
455
+ isSlotDragSelected: slotDragSelect.isSlotSelected,
456
+ rowSlotsContainerRef: (node) => {
457
+ rowSlotsContainersRef.current[resourceIndex] = node;
458
+ },
459
+ renderResourceLabel,
460
+ renderGroupLabel,
461
+ scrolledX,
462
+ groupInfo: hasGroups ? resourceGroupMap[resourceIndex] : void 0,
463
+ allDayCount: allDayEvents.length,
464
+ children: [
465
+ backgroundEventNodes,
466
+ allDayEventNodes,
467
+ regularEvents,
468
+ moreEventsForResource
469
+ ]
470
+ }, resource.id);
471
+ });
472
+ const headerLabel = formatDate({
473
+ date: dayjs(date),
474
+ locale: ctx.getLocale(locale),
475
+ format: headerFormat
476
+ });
477
+ const content = /* @__PURE__ */ jsxs(Box, {
478
+ ...getStyles("resourcesDayView"),
479
+ mod: {
480
+ static: mode === "static",
481
+ "slot-dragging": slotDragSelect.isDragging,
482
+ resizing: eventResize.isResizing,
483
+ "event-interaction": eventResize.isResizing || dragDrop.dragContextValue.isDragging
484
+ },
485
+ ...others,
486
+ children: [withHeader && /* @__PURE__ */ jsx(ScheduleHeaderBase, {
487
+ view: "day",
488
+ navigationHandlers: {
489
+ previous: () => toDateString(dayjs(date).subtract(1, "day")),
490
+ next: () => toDateString(dayjs(date).add(1, "day")),
491
+ today: () => toDateString(dayjs())
492
+ },
493
+ control: {
494
+ miw: 140,
495
+ title: headerLabel
496
+ },
497
+ labels,
498
+ onDateChange,
499
+ onViewChange,
500
+ previousControlProps,
501
+ nextControlProps,
502
+ todayControlProps,
503
+ viewSelectProps: {
504
+ views: [
505
+ "day",
506
+ "week",
507
+ "month"
508
+ ],
509
+ ...viewSelectProps
510
+ },
511
+ stylesApiProps
512
+ }), /* @__PURE__ */ jsx(Box, {
513
+ ...getStyles("resourcesDayViewRoot"),
514
+ children: /* @__PURE__ */ jsx(ScrollArea, {
515
+ scrollbarSize: 4,
516
+ ...scrollAreaProps,
517
+ ...getStyles("resourcesDayViewScrollArea", {
518
+ className: scrollAreaProps?.className,
519
+ style: scrollAreaProps?.style
520
+ }),
521
+ onScrollPositionChange: (position) => {
522
+ scrollAreaProps?.onScrollPositionChange?.(position);
523
+ setScrolled(position.y !== 0);
524
+ setScrolledX(position.x !== 0);
525
+ },
526
+ viewportRef: mergedViewportRef,
527
+ children: /* @__PURE__ */ jsxs("div", {
528
+ ...getStyles("resourcesDayViewInner"),
529
+ children: [
530
+ /* @__PURE__ */ jsxs(Box, {
531
+ ...getStyles("resourcesDayViewTimeLabelsRow"),
532
+ mod: { scrolled },
533
+ children: [/* @__PURE__ */ createElement("div", {
534
+ ...getStyles("resourcesDayViewCorner"),
535
+ key: "corner",
536
+ style: hasGroups ? {
537
+ flexBasis: "calc(var(--resources-day-view-resource-label-width) + var(--resources-day-view-group-label-width))",
538
+ minWidth: "calc(var(--resources-day-view-resource-label-width) + var(--resources-day-view-group-label-width))"
539
+ } : void 0
540
+ }, getLabel("resources", labels)), timeLabels]
541
+ }),
542
+ rows,
543
+ showTimeIndicator && /* @__PURE__ */ jsxs(Box, {
544
+ ...getStyles("resourcesDayViewCurrentTimeIndicator"),
545
+ __vars: {
546
+ "--indicator-left-offset": hasGroups ? `calc(var(--resources-day-view-resource-label-width) + var(--resources-day-view-group-label-width) + (100% - var(--resources-day-view-resource-label-width) - var(--resources-day-view-group-label-width)) * ${timeIndicatorOffset} / 100)` : `calc(var(--resources-day-view-resource-label-width) + (100% - var(--resources-day-view-resource-label-width)) * ${timeIndicatorOffset} / 100)`,
547
+ "--_time-bubble-width": formattedCurrentTime?.toString().toLowerCase().includes("m") ? "64px" : "46px"
548
+ },
549
+ children: [
550
+ withCurrentTimeBubble && /* @__PURE__ */ jsx("div", {
551
+ ...getStyles("resourcesDayViewCurrentTimeIndicatorTimeBubble"),
552
+ children: formattedCurrentTime
553
+ }),
554
+ !withCurrentTimeBubble && /* @__PURE__ */ jsx("div", { ...getStyles("resourcesDayViewCurrentTimeIndicatorThumb") }),
555
+ /* @__PURE__ */ jsx("div", { ...getStyles("resourcesDayViewCurrentTimeIndicatorLine") })
556
+ ]
557
+ })
558
+ ]
559
+ })
560
+ })
561
+ })]
562
+ });
563
+ const dragContextValue = useMemo(() => dragDrop.dragContextValue, [dragDrop.dragContextValue]);
564
+ if (withEventsDragAndDrop) return /* @__PURE__ */ jsx(DragContext.Provider, {
565
+ value: dragContextValue,
566
+ children: content
567
+ });
568
+ return content;
569
+ });
570
+ ResourcesDayView.displayName = "@mantine/schedule/ResourcesDayView";
571
+ ResourcesDayView.classes = ResourcesDayView_module_default;
572
+ ResourcesDayView.varsResolver = varsResolver;
573
+ //#endregion
574
+ export { ResourcesDayView };
575
+
576
+ //# sourceMappingURL=ResourcesDayView.mjs.map