@mantine/schedule 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/README.md +21 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +107 -0
  3. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -0
  4. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +7 -0
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +1 -0
  6. package/cjs/components/DayView/DayView.cjs +404 -0
  7. package/cjs/components/DayView/DayView.cjs.map +1 -0
  8. package/cjs/components/DayView/DayView.module.css.cjs +7 -0
  9. package/cjs/components/DayView/DayView.module.css.cjs.map +1 -0
  10. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +108 -0
  11. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -0
  12. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +52 -0
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -0
  14. package/cjs/components/DragContext/DragContext.cjs +9 -0
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -0
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +295 -0
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -0
  18. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +7 -0
  19. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +1 -0
  20. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +54 -0
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -0
  22. package/cjs/components/MonthView/MonthView.cjs +410 -0
  23. package/cjs/components/MonthView/MonthView.cjs.map +1 -0
  24. package/cjs/components/MonthView/MonthView.module.css.cjs +7 -0
  25. package/cjs/components/MonthView/MonthView.module.css.cjs.map +1 -0
  26. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +26 -0
  27. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -0
  28. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +37 -0
  29. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -0
  30. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +31 -0
  31. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -0
  32. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +83 -0
  33. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -0
  34. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +46 -0
  35. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -0
  36. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +40 -0
  37. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -0
  38. package/cjs/components/MonthView/handle-month-view-key-down.cjs +147 -0
  39. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -0
  40. package/cjs/components/MoreEvents/MoreEvents.cjs +124 -0
  41. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -0
  42. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +7 -0
  43. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +1 -0
  44. package/cjs/components/Schedule/Schedule.cjs +168 -0
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -0
  46. package/cjs/components/Schedule/Schedule.module.css.cjs +7 -0
  47. package/cjs/components/Schedule/Schedule.module.css.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +126 -0
  49. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -0
  50. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +7 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +1 -0
  52. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +91 -0
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -0
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +7 -0
  55. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +1 -0
  56. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +195 -0
  57. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -0
  58. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +7 -0
  59. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +1 -0
  60. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +59 -0
  61. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -0
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +7 -0
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +1 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +86 -0
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -0
  66. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +131 -0
  67. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -0
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +7 -0
  69. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +1 -0
  70. package/cjs/components/WeekView/WeekView.cjs +557 -0
  71. package/cjs/components/WeekView/WeekView.cjs.map +1 -0
  72. package/cjs/components/WeekView/WeekView.module.css.cjs +7 -0
  73. package/cjs/components/WeekView/WeekView.module.css.cjs.map +1 -0
  74. package/cjs/components/WeekView/WeekViewDay.cjs +100 -0
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -0
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +36 -0
  77. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -0
  78. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +31 -0
  79. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -0
  80. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +31 -0
  81. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -0
  82. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +33 -0
  83. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -0
  84. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +19 -0
  85. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -0
  86. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +24 -0
  87. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -0
  88. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +36 -0
  89. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -0
  90. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +42 -0
  91. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -0
  92. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +19 -0
  93. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -0
  94. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +32 -0
  95. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -0
  96. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +142 -0
  97. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -0
  98. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +12 -0
  99. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -0
  100. package/cjs/components/WeekView/handle-week-view-key-down.cjs +135 -0
  101. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -0
  102. package/cjs/components/YearView/YearView.cjs +216 -0
  103. package/cjs/components/YearView/YearView.cjs.map +1 -0
  104. package/cjs/components/YearView/YearView.module.css.cjs +7 -0
  105. package/cjs/components/YearView/YearView.module.css.cjs.map +1 -0
  106. package/cjs/components/YearView/YearViewMonth.cjs +158 -0
  107. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -0
  108. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +52 -0
  109. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -0
  110. package/cjs/components/YearView/handle-year-view-key-down.cjs +210 -0
  111. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -0
  112. package/cjs/hooks/use-drag-drop-handlers.cjs +107 -0
  113. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -0
  114. package/cjs/hooks/use-drag-state.cjs +47 -0
  115. package/cjs/hooks/use-drag-state.cjs.map +1 -0
  116. package/cjs/hooks/use-slot-drag-select.cjs +91 -0
  117. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -0
  118. package/cjs/index.cjs +101 -0
  119. package/cjs/index.cjs.map +1 -0
  120. package/cjs/labels.cjs +34 -0
  121. package/cjs/labels.cjs.map +1 -0
  122. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +38 -0
  123. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -0
  124. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +26 -0
  125. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -0
  126. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +11 -0
  127. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -0
  128. package/cjs/utils/format-date/format-date.cjs +18 -0
  129. package/cjs/utils/format-date/format-date.cjs.map +1 -0
  130. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +24 -0
  131. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -0
  132. package/cjs/utils/get-current-time-position/get-current-time-position.cjs +28 -0
  133. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -0
  134. package/cjs/utils/get-day-position/get-day-position.cjs +37 -0
  135. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -0
  136. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +47 -0
  137. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -0
  138. package/cjs/utils/get-end-of-week/get-end-of-week.cjs +23 -0
  139. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -0
  140. package/cjs/utils/get-month-days/get-month-days.cjs +49 -0
  141. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -0
  142. package/cjs/utils/get-month-range/get-month-range.cjs +32 -0
  143. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -0
  144. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +24 -0
  145. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -0
  146. package/cjs/utils/get-months-list/get-months-list.cjs +21 -0
  147. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -0
  148. package/cjs/utils/get-start-of-week/get-start-of-week.cjs +19 -0
  149. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -0
  150. package/cjs/utils/get-visible-events/get-visible-events.cjs +18 -0
  151. package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -0
  152. package/cjs/utils/get-week-days/get-week-days.cjs +32 -0
  153. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -0
  154. package/cjs/utils/get-week-number/get-week-number.cjs +22 -0
  155. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -0
  156. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +25 -0
  157. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -0
  158. package/cjs/utils/get-years-list/get-years-list.cjs +13 -0
  159. package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -0
  160. package/cjs/utils/is-after-min-date/is-after-min-date.cjs +15 -0
  161. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -0
  162. package/cjs/utils/is-all-day-event/is-all-day-event.cjs +19 -0
  163. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -0
  164. package/cjs/utils/is-before-max-date/is-before-max-date.cjs +15 -0
  165. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -0
  166. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +30 -0
  167. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -0
  168. package/cjs/utils/is-events-overlap/is-events-overlap.cjs +19 -0
  169. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -0
  170. package/cjs/utils/is-in-time-range/is-in-time-range.cjs +25 -0
  171. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -0
  172. package/cjs/utils/is-multiday-event/is-multiday-event.cjs +17 -0
  173. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -0
  174. package/cjs/utils/is-same-month/is-same-month.cjs +15 -0
  175. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -0
  176. package/cjs/utils/is-within-week/is-within-week.cjs +18 -0
  177. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -0
  178. package/cjs/utils/next-week/next-week.cjs +18 -0
  179. package/cjs/utils/next-week/next-week.cjs.map +1 -0
  180. package/cjs/utils/parse-time-string/parse-time-string.cjs +10 -0
  181. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -0
  182. package/cjs/utils/previous-week/previous-week.cjs +18 -0
  183. package/cjs/utils/previous-week/previous-week.cjs.map +1 -0
  184. package/cjs/utils/sort-events/sort-events.cjs +21 -0
  185. package/cjs/utils/sort-events/sort-events.cjs.map +1 -0
  186. package/cjs/utils/to-date-string/to-date-string.cjs +15 -0
  187. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -0
  188. package/cjs/utils/to-time-string/to-time-string.cjs +9 -0
  189. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -0
  190. package/cjs/utils/validate-event/validate-event.cjs +26 -0
  191. package/cjs/utils/validate-event/validate-event.cjs.map +1 -0
  192. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +101 -0
  193. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -0
  194. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +5 -0
  195. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +1 -0
  196. package/esm/components/DayView/DayView.mjs +398 -0
  197. package/esm/components/DayView/DayView.mjs.map +1 -0
  198. package/esm/components/DayView/DayView.module.css.mjs +5 -0
  199. package/esm/components/DayView/DayView.module.css.mjs.map +1 -0
  200. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +106 -0
  201. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -0
  202. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +46 -0
  203. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -0
  204. package/esm/components/DragContext/DragContext.mjs +7 -0
  205. package/esm/components/DragContext/DragContext.mjs.map +1 -0
  206. package/esm/components/MobileMonthView/MobileMonthView.mjs +288 -0
  207. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -0
  208. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +5 -0
  209. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +1 -0
  210. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +48 -0
  211. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -0
  212. package/esm/components/MonthView/MonthView.mjs +404 -0
  213. package/esm/components/MonthView/MonthView.mjs.map +1 -0
  214. package/esm/components/MonthView/MonthView.module.css.mjs +5 -0
  215. package/esm/components/MonthView/MonthView.module.css.mjs.map +1 -0
  216. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +24 -0
  217. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -0
  218. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +35 -0
  219. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -0
  220. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +25 -0
  221. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -0
  222. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +77 -0
  223. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -0
  224. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +40 -0
  225. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -0
  226. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +34 -0
  227. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -0
  228. package/esm/components/MonthView/handle-month-view-key-down.mjs +145 -0
  229. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -0
  230. package/esm/components/MoreEvents/MoreEvents.mjs +122 -0
  231. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -0
  232. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +5 -0
  233. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +1 -0
  234. package/esm/components/Schedule/Schedule.mjs +166 -0
  235. package/esm/components/Schedule/Schedule.mjs.map +1 -0
  236. package/esm/components/Schedule/Schedule.module.css.mjs +5 -0
  237. package/esm/components/Schedule/Schedule.module.css.mjs.map +1 -0
  238. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +124 -0
  239. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -0
  240. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +5 -0
  241. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +1 -0
  242. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +86 -0
  243. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -0
  244. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +5 -0
  245. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +1 -0
  246. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +193 -0
  247. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -0
  248. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +5 -0
  249. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +1 -0
  250. package/esm/components/ScheduleHeader/ScheduleHeader.mjs +57 -0
  251. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -0
  252. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +5 -0
  253. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +1 -0
  254. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +84 -0
  255. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -0
  256. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +129 -0
  257. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -0
  258. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +5 -0
  259. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +1 -0
  260. package/esm/components/WeekView/WeekView.mjs +551 -0
  261. package/esm/components/WeekView/WeekView.mjs.map +1 -0
  262. package/esm/components/WeekView/WeekView.module.css.mjs +5 -0
  263. package/esm/components/WeekView/WeekView.module.css.mjs.map +1 -0
  264. package/esm/components/WeekView/WeekViewDay.mjs +94 -0
  265. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -0
  266. package/esm/components/WeekView/get-week-label/get-week-label.mjs +30 -0
  267. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -0
  268. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +29 -0
  269. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -0
  270. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +25 -0
  271. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -0
  272. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +27 -0
  273. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -0
  274. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +13 -0
  275. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -0
  276. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +22 -0
  277. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -0
  278. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +34 -0
  279. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -0
  280. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +40 -0
  281. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -0
  282. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +13 -0
  283. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -0
  284. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +26 -0
  285. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -0
  286. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +136 -0
  287. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -0
  288. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +10 -0
  289. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -0
  290. package/esm/components/WeekView/handle-week-view-key-down.mjs +133 -0
  291. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -0
  292. package/esm/components/YearView/YearView.mjs +210 -0
  293. package/esm/components/YearView/YearView.mjs.map +1 -0
  294. package/esm/components/YearView/YearView.module.css.mjs +5 -0
  295. package/esm/components/YearView/YearView.module.css.mjs.map +1 -0
  296. package/esm/components/YearView/YearViewMonth.mjs +152 -0
  297. package/esm/components/YearView/YearViewMonth.mjs.map +1 -0
  298. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +46 -0
  299. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -0
  300. package/esm/components/YearView/handle-year-view-key-down.mjs +208 -0
  301. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -0
  302. package/esm/hooks/use-drag-drop-handlers.mjs +101 -0
  303. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -0
  304. package/esm/hooks/use-drag-state.mjs +45 -0
  305. package/esm/hooks/use-drag-state.mjs.map +1 -0
  306. package/esm/hooks/use-slot-drag-select.mjs +89 -0
  307. package/esm/hooks/use-slot-drag-select.mjs.map +1 -0
  308. package/esm/index.mjs +48 -0
  309. package/esm/index.mjs.map +1 -0
  310. package/esm/labels.mjs +31 -0
  311. package/esm/labels.mjs.map +1 -0
  312. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +32 -0
  313. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -0
  314. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +20 -0
  315. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -0
  316. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -0
  317. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -0
  318. package/esm/utils/format-date/format-date.mjs +12 -0
  319. package/esm/utils/format-date/format-date.mjs.map +1 -0
  320. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +22 -0
  321. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -0
  322. package/esm/utils/get-current-time-position/get-current-time-position.mjs +22 -0
  323. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -0
  324. package/esm/utils/get-day-position/get-day-position.mjs +31 -0
  325. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -0
  326. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +45 -0
  327. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -0
  328. package/esm/utils/get-end-of-week/get-end-of-week.mjs +17 -0
  329. package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -0
  330. package/esm/utils/get-month-days/get-month-days.mjs +43 -0
  331. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -0
  332. package/esm/utils/get-month-range/get-month-range.mjs +26 -0
  333. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -0
  334. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +18 -0
  335. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -0
  336. package/esm/utils/get-months-list/get-months-list.mjs +15 -0
  337. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -0
  338. package/esm/utils/get-start-of-week/get-start-of-week.mjs +13 -0
  339. package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -0
  340. package/esm/utils/get-visible-events/get-visible-events.mjs +16 -0
  341. package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -0
  342. package/esm/utils/get-week-days/get-week-days.mjs +26 -0
  343. package/esm/utils/get-week-days/get-week-days.mjs.map +1 -0
  344. package/esm/utils/get-week-number/get-week-number.mjs +15 -0
  345. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -0
  346. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +19 -0
  347. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -0
  348. package/esm/utils/get-years-list/get-years-list.mjs +11 -0
  349. package/esm/utils/get-years-list/get-years-list.mjs.map +1 -0
  350. package/esm/utils/is-after-min-date/is-after-min-date.mjs +9 -0
  351. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -0
  352. package/esm/utils/is-all-day-event/is-all-day-event.mjs +13 -0
  353. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -0
  354. package/esm/utils/is-before-max-date/is-before-max-date.mjs +9 -0
  355. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -0
  356. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +24 -0
  357. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -0
  358. package/esm/utils/is-events-overlap/is-events-overlap.mjs +13 -0
  359. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -0
  360. package/esm/utils/is-in-time-range/is-in-time-range.mjs +19 -0
  361. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -0
  362. package/esm/utils/is-multiday-event/is-multiday-event.mjs +11 -0
  363. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -0
  364. package/esm/utils/is-same-month/is-same-month.mjs +9 -0
  365. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -0
  366. package/esm/utils/is-within-week/is-within-week.mjs +12 -0
  367. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -0
  368. package/esm/utils/next-week/next-week.mjs +12 -0
  369. package/esm/utils/next-week/next-week.mjs.map +1 -0
  370. package/esm/utils/parse-time-string/parse-time-string.mjs +8 -0
  371. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -0
  372. package/esm/utils/previous-week/previous-week.mjs +12 -0
  373. package/esm/utils/previous-week/previous-week.mjs.map +1 -0
  374. package/esm/utils/sort-events/sort-events.mjs +15 -0
  375. package/esm/utils/sort-events/sort-events.mjs.map +1 -0
  376. package/esm/utils/to-date-string/to-date-string.mjs +9 -0
  377. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -0
  378. package/esm/utils/to-time-string/to-time-string.mjs +7 -0
  379. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -0
  380. package/esm/utils/validate-event/validate-event.mjs +20 -0
  381. package/esm/utils/validate-event/validate-event.mjs.map +1 -0
  382. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts +43 -0
  383. package/lib/components/CurrentTimeIndicator/index.d.ts +2 -0
  384. package/lib/components/DayView/DayView.d.ts +106 -0
  385. package/lib/components/DayView/get-day-view-events/get-day-positioned-events.d.ts +13 -0
  386. package/lib/components/DayView/get-day-view-events/get-day-view-events.d.ts +12 -0
  387. package/lib/components/DayView/index.d.ts +9 -0
  388. package/lib/components/DragContext/DragContext.d.ts +18 -0
  389. package/lib/components/DragContext/index.d.ts +2 -0
  390. package/lib/components/MobileMonthView/MobileMonthView.d.ts +94 -0
  391. package/lib/components/MobileMonthView/get-mobile-month-view-events.d.ts +8 -0
  392. package/lib/components/MobileMonthView/index.d.ts +2 -0
  393. package/lib/components/MonthView/MonthView.d.ts +103 -0
  394. package/lib/components/MonthView/get-month-view-events/add-event-to-day-groups.d.ts +14 -0
  395. package/lib/components/MonthView/get-month-view-events/calculate-event-position-in-week.d.ts +18 -0
  396. package/lib/components/MonthView/get-month-view-events/find-available-row.d.ts +10 -0
  397. package/lib/components/MonthView/get-month-view-events/get-month-positioned-events.d.ts +27 -0
  398. package/lib/components/MonthView/get-month-view-events/get-month-view-events.d.ts +16 -0
  399. package/lib/components/MonthView/get-month-view-events/get-weeks-in-range.d.ts +15 -0
  400. package/lib/components/MonthView/handle-month-view-key-down.d.ts +10 -0
  401. package/lib/components/MonthView/index.d.ts +9 -0
  402. package/lib/components/MoreEvents/MoreEvents.d.ts +40 -0
  403. package/lib/components/MoreEvents/index.d.ts +2 -0
  404. package/lib/components/Schedule/Schedule.d.ts +97 -0
  405. package/lib/components/Schedule/index.d.ts +2 -0
  406. package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +54 -0
  407. package/lib/components/ScheduleEvent/index.d.ts +2 -0
  408. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +43 -0
  409. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.d.ts +52 -0
  410. package/lib/components/ScheduleHeader/ScheduleHeader.d.ts +40 -0
  411. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +53 -0
  412. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.d.ts +27 -0
  413. package/lib/components/ScheduleHeader/index.d.ts +2 -0
  414. package/lib/components/WeekView/WeekView.d.ts +119 -0
  415. package/lib/components/WeekView/WeekViewDay.d.ts +58 -0
  416. package/lib/components/WeekView/get-week-label/get-week-label.d.ts +13 -0
  417. package/lib/components/WeekView/get-week-view-events/assign-event-rows.d.ts +2 -0
  418. package/lib/components/WeekView/get-week-view-events/calculate-all-day-event-offset.d.ts +11 -0
  419. package/lib/components/WeekView/get-week-view-events/calculate-all-day-event-width.d.ts +12 -0
  420. package/lib/components/WeekView/get-week-view-events/calculate-event-days.d.ts +9 -0
  421. package/lib/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.d.ts +2 -0
  422. package/lib/components/WeekView/get-week-view-events/filter-week-view-events.d.ts +14 -0
  423. package/lib/components/WeekView/get-week-view-events/find-available-column.d.ts +9 -0
  424. package/lib/components/WeekView/get-week-view-events/get-event-end-date.d.ts +3 -0
  425. package/lib/components/WeekView/get-week-view-events/get-hanging-status.d.ts +9 -0
  426. package/lib/components/WeekView/get-week-view-events/get-week-positioned-events.d.ts +23 -0
  427. package/lib/components/WeekView/get-week-view-events/get-week-view-events.d.ts +7 -0
  428. package/lib/components/WeekView/handle-week-view-key-down.d.ts +10 -0
  429. package/lib/components/WeekView/index.d.ts +9 -0
  430. package/lib/components/YearView/YearView.d.ts +51 -0
  431. package/lib/components/YearView/YearViewMonth.d.ts +62 -0
  432. package/lib/components/YearView/get-year-view-events/get-year-view-events.d.ts +8 -0
  433. package/lib/components/YearView/handle-year-view-key-down.d.ts +11 -0
  434. package/lib/components/YearView/index.d.ts +9 -0
  435. package/lib/hooks/index.d.ts +5 -0
  436. package/lib/hooks/use-drag-drop-handlers.d.ts +51 -0
  437. package/lib/hooks/use-drag-state.d.ts +32 -0
  438. package/lib/hooks/use-slot-drag-select.d.ts +10 -0
  439. package/lib/index.d.mts +15 -0
  440. package/lib/index.d.ts +15 -0
  441. package/lib/labels.d.ts +24 -0
  442. package/lib/test-utils.d.ts +7 -0
  443. package/lib/types.d.ts +91 -0
  444. package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +22 -0
  445. package/lib/utils/calculate-month-drop-date/calculate-month-drop-date.d.ts +14 -0
  446. package/lib/utils/clamp-interval-minutes/clamp-interval-minutes.d.ts +2 -0
  447. package/lib/utils/format-date/format-date.d.ts +8 -0
  448. package/lib/utils/get-business-hours-mod/get-business-hours-mod.d.ts +17 -0
  449. package/lib/utils/get-current-time-position/get-current-time-position.d.ts +6 -0
  450. package/lib/utils/get-day-position/get-day-position.d.ts +15 -0
  451. package/lib/utils/get-day-time-intervals/get-day-time-intervals.d.ts +19 -0
  452. package/lib/utils/get-end-of-week/get-end-of-week.d.ts +3 -0
  453. package/lib/utils/get-month-days/get-month-days.d.ts +8 -0
  454. package/lib/utils/get-month-range/get-month-range.d.ts +13 -0
  455. package/lib/utils/get-months-by-quarter/get-months-by-quarter.d.ts +2 -0
  456. package/lib/utils/get-months-list/get-months-list.d.ts +11 -0
  457. package/lib/utils/get-start-of-week/get-start-of-week.d.ts +7 -0
  458. package/lib/utils/get-visible-events/get-visible-events.d.ts +9 -0
  459. package/lib/utils/get-week-days/get-week-days.d.ts +13 -0
  460. package/lib/utils/get-week-number/get-week-number.d.ts +2 -0
  461. package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts +8 -0
  462. package/lib/utils/get-years-list/get-years-list.d.ts +6 -0
  463. package/lib/utils/index.d.ts +40 -0
  464. package/lib/utils/is-after-min-date/is-after-min-date.d.ts +2 -0
  465. package/lib/utils/is-all-day-event/is-all-day-event.d.ts +7 -0
  466. package/lib/utils/is-before-max-date/is-before-max-date.d.ts +2 -0
  467. package/lib/utils/is-event-in-time-range/is-event-in-time-range.d.ts +8 -0
  468. package/lib/utils/is-events-overlap/is-events-overlap.d.ts +3 -0
  469. package/lib/utils/is-in-time-range/is-in-time-range.d.ts +9 -0
  470. package/lib/utils/is-multiday-event/is-multiday-event.d.ts +2 -0
  471. package/lib/utils/is-same-month/is-same-month.d.ts +2 -0
  472. package/lib/utils/is-within-week/is-within-week.d.ts +8 -0
  473. package/lib/utils/next-week/next-week.d.ts +2 -0
  474. package/lib/utils/parse-time-string/parse-time-string.d.ts +6 -0
  475. package/lib/utils/previous-week/previous-week.d.ts +2 -0
  476. package/lib/utils/sort-events/sort-events.d.ts +3 -0
  477. package/lib/utils/to-date-string/to-date-string.d.ts +2 -0
  478. package/lib/utils/to-time-string/to-time-string.d.ts +2 -0
  479. package/lib/utils/validate-event/validate-event.d.ts +2 -0
  480. package/package.json +50 -0
  481. package/styles.css +1948 -0
  482. package/styles.layer.css +1949 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSelect.mjs","sources":["../../../../src/components/ScheduleHeader/ViewSelect/ViewSelect.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n MantineRadius,\n StylesApiProps,\n useDirection,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '@mantine/core';\nimport { getLabel, ScheduleLabels, ScheduleLabelsOverride } from '../../../labels';\nimport { ScheduleViewLevel } from '../../../types';\nimport { HeaderControl } from '../HeaderControl/HeaderControl';\nimport classes from './ViewSelect.module.css';\n\nexport type ViewSelectStylesNames = 'viewSelect';\n\nexport interface ViewSelectProps\n extends BoxProps, StylesApiProps<ViewSelectFactory>, ElementProps<'div', 'value' | 'onChange'> {\n __staticSelector?: string;\n\n /** A list of views to display @default ['day', 'week', 'month', 'year'] */\n views?: readonly ScheduleViewLevel[];\n\n /** Selected view type */\n value?: ScheduleViewLevel;\n\n /** Called when view type changes */\n onChange?: (value: ScheduleViewLevel) => void;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Labels override */\n labels?: ScheduleLabelsOverride;\n}\n\nexport type ViewSelectFactory = Factory<{\n props: ViewSelectProps;\n ref: HTMLDivElement;\n stylesNames: ViewSelectStylesNames;\n}>;\n\nconst defaultProps = {\n __staticSelector: 'ViewSelect',\n views: ['day', 'week', 'month', 'year'],\n} satisfies Partial<ViewSelectProps>;\n\nexport const ViewSelect = factory<ViewSelectFactory>((_props) => {\n const props = useProps('ViewSelect', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n attributes,\n value,\n onChange,\n views,\n __staticSelector,\n radius,\n labels,\n ...others\n } = props;\n\n const getStyles = useStyles<ViewSelectFactory>({\n name: __staticSelector,\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n rootSelector: 'viewSelect',\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<ViewSelectFactory>({\n classNames,\n styles,\n props,\n });\n\n const { dir } = useDirection();\n const controlsRef = useRef<(HTMLButtonElement | null)[]>([]);\n const activatedWithKeyboardRef = useRef(false);\n\n // Restore focus to the selected tab when the component mounts\n // This handles the case where focus is lost due to view switch (header unmount/remount)\n // Only restore focus if the view was activated via keyboard (Enter/Space)\n useEffect(() => {\n if (activatedWithKeyboardRef.current && document.activeElement === document.body) {\n const selectedIndex = views!.findIndex((view) => view === value);\n if (selectedIndex !== -1) {\n controlsRef.current[selectedIndex]?.focus();\n }\n }\n activatedWithKeyboardRef.current = false;\n }, []);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>, index: number) => {\n const isRtl = dir === 'rtl';\n const nextKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n const prevKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n\n if (event.key === nextKey) {\n event.preventDefault();\n const nextIndex = index < views!.length - 1 ? index + 1 : 0;\n controlsRef.current[nextIndex]?.focus();\n } else if (event.key === prevKey) {\n event.preventDefault();\n const prevIndex = index > 0 ? index - 1 : views!.length - 1;\n controlsRef.current[prevIndex]?.focus();\n } else if (event.key === 'Home') {\n event.preventDefault();\n controlsRef.current[0]?.focus();\n } else if (event.key === 'End') {\n event.preventDefault();\n controlsRef.current[views!.length - 1]?.focus();\n } else if (event.key === 'Enter' || event.key === ' ') {\n activatedWithKeyboardRef.current = true;\n }\n };\n\n const switchToLabelKeys: Record<ScheduleViewLevel, keyof ScheduleLabels> = {\n day: 'switchToDayView',\n week: 'switchToWeekView',\n month: 'switchToMonthView',\n year: 'switchToYearView',\n };\n\n const items = views!.map((view, index) => {\n const isSelected = value === view;\n return (\n <HeaderControl\n key={view}\n ref={(node) => {\n controlsRef.current[index] = node;\n }}\n data-type={view}\n active={isSelected}\n onClick={() => onChange?.(view)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n __staticSelector={__staticSelector}\n radius={radius}\n role=\"tab\"\n aria-label={getLabel(switchToLabelKeys[view], labels) as string}\n aria-selected={isSelected}\n tabIndex={isSelected ? 0 : -1}\n >\n {getLabel(view, labels)}\n </HeaderControl>\n );\n });\n\n return (\n <Box\n {...getStyles('viewSelect')}\n role=\"tablist\"\n aria-label={getLabel('viewSelectLabel', labels)}\n {...others}\n >\n {items}\n </Box>\n );\n});\n\nViewSelect.displayName = '@mantine/schedule/ViewSelect';\nViewSelect.classes = classes;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var classes = {"viewSelect":"m_e106e12d"};
3
+
4
+ export { classes as default };
5
+ //# sourceMappingURL=ViewSelect.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSelect.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,551 @@
1
+ 'use client';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useState, createElement, useRef, useMemo } from 'react';
4
+ import dayjs from 'dayjs';
5
+ import { createVarsResolver, rem, getRadius, factory, useProps, useStyles, useResolvedStylesApi, Box, UnstyledButton, ScrollArea } from '@mantine/core';
6
+ import { useDatesContext } from '@mantine/dates';
7
+ import { useDragDropHandlers } from '../../hooks/use-drag-drop-handlers.mjs';
8
+ import { useSlotDragSelect } from '../../hooks/use-slot-drag-select.mjs';
9
+ import { getLabel } from '../../labels.mjs';
10
+ import { formatDate } from '../../utils/format-date/format-date.mjs';
11
+ import { getWeekNumber } from '../../utils/get-week-number/get-week-number.mjs';
12
+ import { getDayTimeIntervals } from '../../utils/get-day-time-intervals/get-day-time-intervals.mjs';
13
+ import { getWeekDays } from '../../utils/get-week-days/get-week-days.mjs';
14
+ import { toDateString } from '../../utils/to-date-string/to-date-string.mjs';
15
+ import { nextWeek } from '../../utils/next-week/next-week.mjs';
16
+ import { previousWeek } from '../../utils/previous-week/previous-week.mjs';
17
+ import { isAllDayEvent } from '../../utils/is-all-day-event/is-all-day-event.mjs';
18
+ import { calculateDropTime } from '../../utils/calculate-drop-time/calculate-drop-time.mjs';
19
+ import { getBusinessHoursMod } from '../../utils/get-business-hours-mod/get-business-hours-mod.mjs';
20
+ import { CurrentTimeIndicator } from '../CurrentTimeIndicator/CurrentTimeIndicator.mjs';
21
+ import { DragContext } from '../DragContext/DragContext.mjs';
22
+ import { ScheduleEvent } from '../ScheduleEvent/ScheduleEvent.mjs';
23
+ import { ScheduleHeaderBase } from '../ScheduleHeader/ScheduleHeaderBase.mjs';
24
+ import { getWeekLabel } from './get-week-label/get-week-label.mjs';
25
+ import { getWeekViewEvents } from './get-week-view-events/get-week-view-events.mjs';
26
+ import { handleWeekViewKeyDown } from './handle-week-view-key-down.mjs';
27
+ import classes from './WeekView.module.css.mjs';
28
+ import { WeekViewDay } from './WeekViewDay.mjs';
29
+
30
+ const defaultProps = {
31
+ __staticSelector: "WeekView",
32
+ withWeekendDays: true,
33
+ withCurrentTimeIndicator: true,
34
+ startTime: "00:00:00",
35
+ endTime: "23:59:59",
36
+ slotLabelFormat: "HH:mm",
37
+ intervalMinutes: 60,
38
+ weekdayFormat: "ddd",
39
+ withWeekNumber: true,
40
+ withCurrentTimeBubble: true,
41
+ withAllDaySlots: true,
42
+ withHeader: true,
43
+ weekLabelFormat: "MMM DD",
44
+ highlightBusinessHours: false,
45
+ businessHours: ["09:00:00", "17:00:00"],
46
+ withEventsDragAndDrop: false,
47
+ withDragSlotSelect: false,
48
+ mode: "default"
49
+ };
50
+ const varsResolver = createVarsResolver(
51
+ (_theme, { radius, allDaySlotHeight, slotHeight }) => ({
52
+ weekView: {
53
+ "--week-view-radius": radius ? getRadius(radius) : void 0,
54
+ "--week-view-all-day-slots-height": rem(allDaySlotHeight),
55
+ "--week-view-slot-height": rem(slotHeight)
56
+ }
57
+ })
58
+ );
59
+ const WeekView = factory((_props) => {
60
+ const props = useProps("WeekView", defaultProps, _props);
61
+ const {
62
+ classNames,
63
+ className,
64
+ style,
65
+ styles,
66
+ unstyled,
67
+ attributes,
68
+ vars,
69
+ startTime,
70
+ endTime,
71
+ date,
72
+ onDateChange,
73
+ intervalMinutes,
74
+ slotLabelFormat,
75
+ withWeekendDays,
76
+ weekendDays,
77
+ firstDayOfWeek,
78
+ weekdayFormat,
79
+ radius,
80
+ highlightToday,
81
+ withCurrentTimeIndicator,
82
+ scrollAreaProps,
83
+ locale,
84
+ withWeekNumber,
85
+ withCurrentTimeBubble,
86
+ withAllDaySlots,
87
+ __staticSelector,
88
+ withHeader,
89
+ onViewChange,
90
+ previousControlProps,
91
+ nextControlProps,
92
+ todayControlProps,
93
+ viewSelectProps,
94
+ weekLabelFormat,
95
+ events,
96
+ allDaySlotHeight,
97
+ slotHeight,
98
+ labels,
99
+ highlightBusinessHours,
100
+ businessHours,
101
+ renderEventBody,
102
+ renderEvent,
103
+ withEventsDragAndDrop,
104
+ onEventDrop,
105
+ canDragEvent,
106
+ onEventDragStart,
107
+ onEventDragEnd,
108
+ onTimeSlotClick,
109
+ onAllDaySlotClick,
110
+ onEventClick,
111
+ withDragSlotSelect,
112
+ onSlotDragEnd,
113
+ mode,
114
+ renderWeekLabel,
115
+ ...others
116
+ } = props;
117
+ const getStyles = useStyles({
118
+ name: __staticSelector,
119
+ classes,
120
+ props,
121
+ className,
122
+ style,
123
+ classNames,
124
+ styles,
125
+ unstyled,
126
+ vars,
127
+ varsResolver,
128
+ attributes,
129
+ rootSelector: "weekView"
130
+ });
131
+ const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi({
132
+ classNames,
133
+ styles,
134
+ props
135
+ });
136
+ const stylesApiProps = {
137
+ classNames: resolvedClassNames,
138
+ styles: resolvedStyles,
139
+ attributes,
140
+ __staticSelector,
141
+ radius
142
+ };
143
+ const [scrolled, setScrolled] = useState(false);
144
+ const ctx = useDatesContext();
145
+ const slots = getDayTimeIntervals({ startTime, endTime, intervalMinutes });
146
+ const dragDrop = useDragDropHandlers({
147
+ enabled: withEventsDragAndDrop,
148
+ mode,
149
+ onEventDrop,
150
+ canDragEvent,
151
+ onEventDragStart,
152
+ onEventDragEnd,
153
+ calculateDropTarget: (target, draggedEvent) => {
154
+ const slotTime = slots[target.slotIndex].startTime;
155
+ return calculateDropTime({
156
+ draggedEvent,
157
+ targetDate: target.day,
158
+ targetSlotTime: slotTime,
159
+ intervalMinutes
160
+ });
161
+ }
162
+ });
163
+ const allDayDragDrop = useDragDropHandlers({
164
+ enabled: withEventsDragAndDrop,
165
+ mode,
166
+ onEventDrop,
167
+ canDragEvent,
168
+ onEventDragStart,
169
+ onEventDragEnd,
170
+ calculateDropTarget: (targetDay, draggedEvent) => {
171
+ const eventDuration = dayjs(draggedEvent.end).diff(dayjs(draggedEvent.start), "millisecond");
172
+ const newStart = dayjs(targetDay).startOf("day");
173
+ return { start: newStart.toDate(), end: newStart.add(eventDuration, "millisecond").toDate() };
174
+ }
175
+ });
176
+ const slotDragSelect = useSlotDragSelect({
177
+ enabled: withDragSlotSelect && mode !== "static",
178
+ onDragEnd: (startIndex, endIndex, group) => {
179
+ if (!onSlotDragEnd) {
180
+ return;
181
+ }
182
+ const slotDate = dayjs(group).format("YYYY-MM-DD");
183
+ onSlotDragEnd(
184
+ `${slotDate} ${slots[startIndex].startTime}`,
185
+ `${slotDate} ${slots[endIndex].endTime}`
186
+ );
187
+ }
188
+ });
189
+ const handleSlotDragOver = (e, day, slotIndex) => {
190
+ dragDrop.handleDragOver(e, { day, slotIndex });
191
+ };
192
+ const handleSlotDrop = (e, day, _slotTime, slotIndex) => {
193
+ dragDrop.handleDrop(e, { day, slotIndex });
194
+ };
195
+ const handleTimeSlotClick = (day, slotTime, e) => {
196
+ if (!onTimeSlotClick) {
197
+ return;
198
+ }
199
+ const slotDate = dayjs(day).format("YYYY-MM-DD");
200
+ const slotIndex = slots.findIndex((s) => s.startTime === slotTime);
201
+ if (slotIndex === -1) {
202
+ return;
203
+ }
204
+ const slot = slots[slotIndex];
205
+ onTimeSlotClick(`${slotDate} ${slot.startTime}`, `${slotDate} ${slot.endTime}`, e);
206
+ };
207
+ const weekEvents = getWeekViewEvents({
208
+ date,
209
+ events,
210
+ startTime,
211
+ endTime,
212
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek),
213
+ weekendDays: ctx.getWeekendDays(weekendDays),
214
+ withWeekendDays
215
+ });
216
+ const timeValues = slots.map((interval) => {
217
+ const intervalTime = dayjs(`${dayjs(date).format("YYYY-MM-DD")} ${interval.startTime}`);
218
+ const label = formatDate({
219
+ date: intervalTime,
220
+ locale: ctx.getLocale(locale),
221
+ format: slotLabelFormat
222
+ });
223
+ return /* @__PURE__ */ createElement(
224
+ Box,
225
+ {
226
+ ...getStyles("weekViewSlotLabel"),
227
+ key: interval.startTime,
228
+ mod: {
229
+ "hour-start": interval.isHourStart,
230
+ ...getBusinessHoursMod({
231
+ time: interval.startTime,
232
+ businessHours,
233
+ highlightBusinessHours
234
+ })
235
+ }
236
+ },
237
+ label
238
+ );
239
+ });
240
+ const weekdays = getWeekDays({
241
+ week: date,
242
+ withWeekendDays,
243
+ weekendDays: ctx.getWeekendDays(weekendDays),
244
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek)
245
+ });
246
+ const slotsRef = useRef([]);
247
+ const allDaySlotsRef = useRef([]);
248
+ const weekdaysRef = useRef([]);
249
+ const firstSlotIndex = { dayIndex: 0, slotIndex: 0 };
250
+ const handleSlotKeyDown = (event, dayIndex, slotIndex) => {
251
+ handleWeekViewKeyDown({
252
+ controlsRef: slotsRef,
253
+ dayIndex,
254
+ slotIndex,
255
+ event
256
+ });
257
+ };
258
+ const handleAllDaySlotKeyDown = (event, dayIndex) => {
259
+ const direction = event.key;
260
+ if (direction === "ArrowRight" && dayIndex < weekdays.length - 1) {
261
+ event.preventDefault();
262
+ allDaySlotsRef.current[dayIndex + 1]?.focus();
263
+ } else if (direction === "ArrowLeft" && dayIndex > 0) {
264
+ event.preventDefault();
265
+ allDaySlotsRef.current[dayIndex - 1]?.focus();
266
+ } else if (direction === "ArrowDown") {
267
+ event.preventDefault();
268
+ slotsRef.current?.[dayIndex]?.[0]?.focus();
269
+ }
270
+ };
271
+ const handleWeekdayKeyDown = (event, dayIndex) => {
272
+ const direction = event.key;
273
+ if (direction === "ArrowRight" && dayIndex < weekdays.length - 1) {
274
+ event.preventDefault();
275
+ weekdaysRef.current[dayIndex + 1]?.focus();
276
+ } else if (direction === "ArrowLeft" && dayIndex > 0) {
277
+ event.preventDefault();
278
+ weekdaysRef.current[dayIndex - 1]?.focus();
279
+ }
280
+ };
281
+ const currentWeekdayIndex = withCurrentTimeIndicator ? weekdays.findIndex((day) => dayjs(day).isSame(dayjs(), "date")) : -1;
282
+ const weekdaysLabels = weekdays.map((day, dayIndex) => /* @__PURE__ */ createElement(
283
+ UnstyledButton,
284
+ {
285
+ ...getStyles("weekViewDayLabel"),
286
+ key: day,
287
+ ref: (node) => {
288
+ weekdaysRef.current[dayIndex] = node;
289
+ },
290
+ "aria-label": `${getLabel("weekday", labels)} ${dayjs(day).format("YYYY-MM-DD")}`,
291
+ mod: {
292
+ today: dayjs(day).isSame(dayjs(), "day") && !!highlightToday,
293
+ weekend: ctx.getWeekendDays(weekendDays).includes(dayjs(day).day()),
294
+ static: mode === "static"
295
+ },
296
+ tabIndex: mode === "static" ? -1 : dayIndex === 0 ? 0 : -1,
297
+ onKeyDown: mode === "static" ? void 0 : (event) => handleWeekdayKeyDown(event, dayIndex),
298
+ onClick: mode === "static" ? void 0 : () => {
299
+ onViewChange?.("day");
300
+ onDateChange?.(toDateString(day));
301
+ }
302
+ },
303
+ /* @__PURE__ */ createElement(Box, { ...getStyles("weekViewDayWeekday"), key: "weekday" }, formatDate({ locale: ctx.getLocale(locale), date: day, format: weekdayFormat })),
304
+ /* @__PURE__ */ createElement("div", { ...getStyles("weekViewDayNumber"), key: "date" }, dayjs(day).date())
305
+ ));
306
+ const days = weekdays.map((day, dayIndex) => {
307
+ const dayEvents = (weekEvents.regularEvents[day] || []).map((event) => {
308
+ const eventIsAllDay = isAllDayEvent({ event, date: day });
309
+ const isDraggable = !eventIsAllDay && dragDrop.isDraggableEvent(event);
310
+ return /* @__PURE__ */ jsx(
311
+ ScheduleEvent,
312
+ {
313
+ event,
314
+ autoSize: true,
315
+ hanging: event.position.hanging,
316
+ draggable: isDraggable,
317
+ renderEventBody,
318
+ renderEvent,
319
+ radius,
320
+ mode,
321
+ onClick: onEventClick ? (e) => onEventClick(event, e) : void 0,
322
+ style: {
323
+ position: "absolute",
324
+ top: `calc(${event.position.top}% + 1px)`,
325
+ left: `${event.position.offset}%`,
326
+ width: `${event.position.width}%`,
327
+ height: `calc(${event.position.height}% - 1px)`
328
+ }
329
+ },
330
+ event.id
331
+ );
332
+ });
333
+ return /* @__PURE__ */ jsx(
334
+ WeekViewDay,
335
+ {
336
+ day,
337
+ dayIndex,
338
+ slots,
339
+ getStyles,
340
+ weekendDays,
341
+ highlightBusinessHours,
342
+ businessHours,
343
+ labels,
344
+ withEventsDragAndDrop,
345
+ mode,
346
+ slotsRef,
347
+ firstSlotIndex,
348
+ onSlotKeyDown: handleSlotKeyDown,
349
+ onSlotClick: handleTimeSlotClick,
350
+ onFirstSlotArrowUp: withAllDaySlots ? (dayIdx) => {
351
+ allDaySlotsRef.current[dayIdx]?.focus();
352
+ } : void 0,
353
+ onSlotDragOver: handleSlotDragOver,
354
+ onSlotDragLeave: dragDrop.handleDragLeave,
355
+ onSlotDrop: (e, dayStr, slotTime) => {
356
+ const slotIndex = slots.findIndex((s) => s.startTime === slotTime);
357
+ handleSlotDrop(e, dayStr, slotTime, slotIndex);
358
+ },
359
+ dropTargetSlotIndex: dragDrop.dropTarget?.day === day ? dragDrop.dropTarget.slotIndex : void 0,
360
+ withDragSlotSelect,
361
+ onSlotPointerDown: slotDragSelect.handleSlotPointerDown,
362
+ isSlotDragSelected: slotDragSelect.isSlotSelected,
363
+ children: dayEvents
364
+ },
365
+ day
366
+ );
367
+ });
368
+ const allDaySlots = weekdays.map((day, dayIndex) => /* @__PURE__ */ jsx(
369
+ UnstyledButton,
370
+ {
371
+ "aria-label": `${getLabel("allDay", labels)} ${dayjs(day).format("YYYY-MM-DD")}`,
372
+ ref: (node) => {
373
+ allDaySlotsRef.current[dayIndex] = node;
374
+ },
375
+ tabIndex: dayIndex === 0 ? 0 : -1,
376
+ onKeyDown: (event) => handleAllDaySlotKeyDown(event, dayIndex),
377
+ onClick: mode === "static" || !onAllDaySlotClick ? void 0 : (e) => onAllDaySlotClick(dayjs(day).format("YYYY-MM-DD"), e),
378
+ onDragOver: withEventsDragAndDrop && mode !== "static" ? (e) => allDayDragDrop.handleDragOver(e, day) : void 0,
379
+ onDragLeave: withEventsDragAndDrop && mode !== "static" ? allDayDragDrop.handleDragLeave : void 0,
380
+ onDrop: withEventsDragAndDrop && mode !== "static" ? (e) => allDayDragDrop.handleDrop(e, day) : void 0,
381
+ ...getStyles("weekViewDaySlot"),
382
+ mod: { "drop-target": allDayDragDrop.isDropTarget(day) }
383
+ },
384
+ day
385
+ ));
386
+ const allDayEventIds = useMemo(
387
+ () => new Set(weekEvents.allDayEvents.map((e) => e.id)),
388
+ [weekEvents.allDayEvents]
389
+ );
390
+ const allDayEvents = weekEvents.allDayEvents.map((event) => /* @__PURE__ */ jsx(
391
+ ScheduleEvent,
392
+ {
393
+ event,
394
+ autoSize: true,
395
+ nowrap: true,
396
+ hanging: event.position.hanging,
397
+ draggable: allDayDragDrop.isDraggableEvent(event),
398
+ renderEvent,
399
+ mode,
400
+ onClick: onEventClick ? (e) => onEventClick(event, e) : void 0,
401
+ style: {
402
+ position: "absolute",
403
+ zIndex: 2,
404
+ top: `calc(${event.position.row * 50}% + 1px)`,
405
+ left: `calc(${event.position.offset}% + 1px)`,
406
+ width: `calc(${event.position.width}% - 1px)`,
407
+ height: "calc(50% - 2px)",
408
+ maxHeight: "calc(50% - 2px)"
409
+ }
410
+ },
411
+ event.id
412
+ ));
413
+ const extraRows = Math.max(...weekEvents.allDayEvents.map((event) => event.position.row), 1) - 1;
414
+ const content = /* @__PURE__ */ jsxs(
415
+ Box,
416
+ {
417
+ ...getStyles("weekView"),
418
+ mod: { static: mode === "static", "slot-dragging": slotDragSelect.isDragging },
419
+ ...others,
420
+ children: [
421
+ withHeader && /* @__PURE__ */ jsx(
422
+ ScheduleHeaderBase,
423
+ {
424
+ view: "week",
425
+ navigationHandlers: {
426
+ previous: () => previousWeek(date, ctx.getFirstDayOfWeek(firstDayOfWeek)),
427
+ next: () => nextWeek(date, ctx.getFirstDayOfWeek(firstDayOfWeek)),
428
+ today: () => toDateString(dayjs())
429
+ },
430
+ control: {
431
+ miw: 140,
432
+ title: getWeekLabel({
433
+ weekdays,
434
+ locale: ctx.getLocale(locale),
435
+ weekLabelFormat,
436
+ renderWeekLabel
437
+ })
438
+ },
439
+ labels,
440
+ onDateChange,
441
+ onViewChange,
442
+ previousControlProps,
443
+ nextControlProps,
444
+ todayControlProps,
445
+ viewSelectProps,
446
+ stylesApiProps
447
+ }
448
+ ),
449
+ /* @__PURE__ */ jsx(
450
+ Box,
451
+ {
452
+ ...getStyles("weekViewRoot"),
453
+ __vars: {
454
+ "--indicator-offset-index": currentWeekdayIndex === -1 ? void 0 : `${currentWeekdayIndex + 1}`,
455
+ "--number-of-days": withWeekendDays ? "7" : `${7 - ctx.getWeekendDays(weekendDays).length}`
456
+ },
457
+ mod: { "with-weekends": withWeekendDays },
458
+ children: /* @__PURE__ */ jsxs(
459
+ ScrollArea.Autosize,
460
+ {
461
+ scrollbarSize: 4,
462
+ ...scrollAreaProps,
463
+ ...getStyles("weekViewScrollArea", {
464
+ className: scrollAreaProps?.className,
465
+ style: scrollAreaProps?.style
466
+ }),
467
+ onScrollPositionChange: (position) => {
468
+ scrollAreaProps?.onScrollPositionChange?.(position);
469
+ setScrolled(position.y !== 0);
470
+ },
471
+ children: [
472
+ /* @__PURE__ */ jsxs(Box, { ...getStyles("weekViewHeader"), mod: { scrolled }, children: [
473
+ /* @__PURE__ */ createElement("div", { ...getStyles("weekViewCorner"), key: "corner" }, withWeekNumber && /* @__PURE__ */ jsxs(Fragment, { children: [
474
+ /* @__PURE__ */ jsx("div", { ...getStyles("weekViewWeekLabel"), children: getLabel("week", labels) }),
475
+ /* @__PURE__ */ jsx("div", { ...getStyles("weekViewWeekNumber"), children: getWeekNumber(date) })
476
+ ] })),
477
+ weekdaysLabels
478
+ ] }),
479
+ withAllDaySlots && /* @__PURE__ */ jsxs("div", { ...getStyles("weekViewAllDaySlots"), children: [
480
+ /* @__PURE__ */ jsx("div", { ...getStyles("weekViewAllDaySlotsLabel"), children: getLabel("allDay", labels) }),
481
+ /* @__PURE__ */ jsxs("div", { ...getStyles("weekViewAllDaySlotsList"), children: [
482
+ /* @__PURE__ */ jsx(
483
+ Box,
484
+ {
485
+ ...getStyles("weekViewAllDaySlotsEvents"),
486
+ __vars: { "--extra-rows": `${extraRows}` },
487
+ children: allDayEvents
488
+ }
489
+ ),
490
+ allDaySlots
491
+ ] })
492
+ ] }),
493
+ /* @__PURE__ */ jsxs("div", { ...getStyles("weekViewInner"), children: [
494
+ /* @__PURE__ */ jsx("div", { ...getStyles("weekViewSlotLabels"), children: timeValues }),
495
+ withCurrentTimeIndicator && currentWeekdayIndex !== -1 && /* @__PURE__ */ jsx(
496
+ CurrentTimeIndicator,
497
+ {
498
+ startOffset: "calc(100% - (100% / var(--number-of-days)) * (var(--number-of-days) - var(--indicator-offset-index) + 1) + ((var(--number-of-days) - var(--indicator-offset-index) + 1) * var(--indicator-labels-offset)))",
499
+ endOffset: "calc((100% / var(--number-of-days)) * (var(--number-of-days) - var(--indicator-offset-index)) - (var(--number-of-days) - var(--indicator-offset-index)) * var(--indicator-labels-offset))",
500
+ timeBubbleStartOffset: "calc(var(--week-view-slots-label-width) - var(--time-bubble-width))",
501
+ currentTimeFormat: slotLabelFormat,
502
+ withTimeBubble: withCurrentTimeBubble,
503
+ withThumb: withCurrentTimeBubble ? currentWeekdayIndex !== 0 : true,
504
+ locale,
505
+ startTime,
506
+ endTime,
507
+ ...stylesApiProps
508
+ }
509
+ ),
510
+ days
511
+ ] })
512
+ ]
513
+ }
514
+ )
515
+ }
516
+ )
517
+ ]
518
+ }
519
+ );
520
+ const mergedDragContextValue = useMemo(
521
+ () => ({
522
+ isDragging: dragDrop.dragContextValue.isDragging || allDayDragDrop.dragContextValue.isDragging,
523
+ draggedEventId: dragDrop.dragContextValue.draggedEventId ?? allDayDragDrop.dragContextValue.draggedEventId,
524
+ draggedEvent: dragDrop.dragContextValue.draggedEvent ?? allDayDragDrop.dragContextValue.draggedEvent,
525
+ dropTarget: dragDrop.dragContextValue.dropTarget ?? allDayDragDrop.dragContextValue.dropTarget,
526
+ onDragStart: (event) => {
527
+ if (allDayEventIds.has(event.id)) {
528
+ allDayDragDrop.handleDragStart(event);
529
+ } else {
530
+ dragDrop.handleDragStart(event);
531
+ }
532
+ },
533
+ onDragEnd: () => {
534
+ dragDrop.handleDragEnd();
535
+ allDayDragDrop.handleDragEnd();
536
+ },
537
+ setDropTarget: dragDrop.dragContextValue.setDropTarget
538
+ }),
539
+ [dragDrop.dragContextValue, allDayDragDrop.dragContextValue, allDayEventIds]
540
+ );
541
+ if (withEventsDragAndDrop) {
542
+ return /* @__PURE__ */ jsx(DragContext.Provider, { value: mergedDragContextValue, children: content });
543
+ }
544
+ return content;
545
+ });
546
+ WeekView.displayName = "@mantine/schedule/WeekView";
547
+ WeekView.classes = classes;
548
+ WeekView.varsResolver = varsResolver;
549
+
550
+ export { WeekView };
551
+ //# sourceMappingURL=WeekView.mjs.map