@mantine/schedule 9.0.0-alpha.5 → 9.0.0-alpha.7

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 (457) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +79 -102
  3. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  4. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs +12 -0
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs.map +1 -0
  6. package/cjs/components/DayView/DayView.cjs +482 -578
  7. package/cjs/components/DayView/DayView.cjs.map +1 -1
  8. package/cjs/components/DayView/DayView.module.cjs +20 -0
  9. package/cjs/components/DayView/DayView.module.cjs.map +1 -0
  10. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +89 -106
  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 +106 -106
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  14. package/cjs/components/DragContext/DragContext.cjs +7 -8
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +261 -297
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  18. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs +27 -0
  19. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs.map +1 -0
  20. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +35 -53
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/MonthView.cjs +365 -467
  23. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  24. package/cjs/components/MonthView/MonthView.module.cjs +18 -0
  25. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -0
  26. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +15 -24
  27. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -1
  28. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +23 -35
  29. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -1
  30. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +16 -29
  31. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  32. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +87 -97
  33. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  34. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +36 -45
  35. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  36. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +30 -39
  37. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  38. package/cjs/components/MonthView/handle-month-view-key-down.cjs +94 -139
  39. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
  40. package/cjs/components/MoreEvents/MoreEvents.cjs +87 -121
  41. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  42. package/cjs/components/MoreEvents/MoreEvents.module.cjs +11 -0
  43. package/cjs/components/MoreEvents/MoreEvents.module.cjs.map +1 -0
  44. package/cjs/components/Schedule/Schedule.cjs +147 -174
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  46. package/cjs/components/Schedule/Schedule.module.cjs +11 -0
  47. package/cjs/components/Schedule/Schedule.module.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +116 -154
  49. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  50. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs +11 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs.map +1 -0
  52. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +62 -73
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs +7 -0
  55. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs.map +1 -0
  56. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +152 -190
  57. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  58. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs +13 -0
  59. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs.map +1 -0
  60. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +41 -55
  61. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +13 -0
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +83 -84
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  66. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +105 -126
  67. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs +7 -0
  69. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs.map +1 -0
  70. package/cjs/components/WeekView/WeekView.cjs +630 -748
  71. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  72. package/cjs/components/WeekView/WeekView.module.cjs +29 -0
  73. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -0
  74. package/cjs/components/WeekView/WeekViewDay.cjs +82 -109
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +27 -35
  77. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  78. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +21 -29
  79. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -1
  80. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +13 -29
  81. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  82. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +14 -31
  83. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  84. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +13 -16
  85. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  86. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +14 -22
  87. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -1
  88. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +26 -35
  89. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -1
  90. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +26 -39
  91. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
  92. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +11 -16
  93. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  94. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +17 -30
  95. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  96. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +200 -186
  97. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  98. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +11 -9
  99. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -1
  100. package/cjs/components/WeekView/handle-week-view-key-down.cjs +82 -127
  101. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
  102. package/cjs/components/YearView/YearView.cjs +160 -213
  103. package/cjs/components/YearView/YearView.cjs.map +1 -1
  104. package/cjs/components/YearView/YearView.module.cjs +20 -0
  105. package/cjs/components/YearView/YearView.module.cjs.map +1 -0
  106. package/cjs/components/YearView/YearViewMonth.cjs +135 -158
  107. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  108. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +32 -48
  109. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  110. package/cjs/components/YearView/handle-year-view-key-down.cjs +143 -202
  111. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
  112. package/cjs/hooks/use-auto-scroll-on-drag.cjs +67 -70
  113. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  114. package/cjs/hooks/use-drag-drop-handlers.cjs +115 -127
  115. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  116. package/cjs/hooks/use-drag-state.cjs +38 -42
  117. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  118. package/cjs/hooks/use-event-resize.cjs +137 -163
  119. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  120. package/cjs/hooks/use-slot-drag-select.cjs +75 -88
  121. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  122. package/cjs/index.cjs +98 -103
  123. package/cjs/labels.cjs +30 -28
  124. package/cjs/labels.cjs.map +1 -1
  125. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +23 -36
  126. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  127. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +17 -24
  128. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  129. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +9 -8
  130. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -1
  131. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs +103 -141
  132. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  133. package/cjs/utils/format-date/format-date.cjs +10 -15
  134. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  135. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +23 -22
  136. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -1
  137. package/cjs/utils/get-current-time-position/get-current-time-position.cjs +19 -25
  138. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  139. package/cjs/utils/get-day-position/get-day-position.cjs +26 -35
  140. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  141. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +50 -45
  142. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -1
  143. package/cjs/utils/get-end-of-week/get-end-of-week.cjs +13 -20
  144. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  145. package/cjs/utils/get-month-days/get-month-days.cjs +41 -47
  146. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  147. package/cjs/utils/get-month-range/get-month-range.cjs +25 -30
  148. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  149. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +21 -21
  150. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  151. package/cjs/utils/get-months-list/get-months-list.cjs +20 -18
  152. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  153. package/cjs/utils/get-start-of-week/get-start-of-week.cjs +11 -16
  154. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  155. package/cjs/utils/get-visible-events/get-visible-events.cjs +13 -15
  156. package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -1
  157. package/cjs/utils/get-week-days/get-week-days.cjs +23 -30
  158. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  159. package/cjs/utils/get-week-number/get-week-number.cjs +13 -19
  160. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  161. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +18 -23
  162. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  163. package/cjs/utils/get-years-list/get-years-list.cjs +8 -10
  164. package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -1
  165. package/cjs/utils/is-after-min-date/is-after-min-date.cjs +9 -12
  166. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  167. package/cjs/utils/is-all-day-event/is-all-day-event.cjs +13 -16
  168. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  169. package/cjs/utils/is-before-max-date/is-before-max-date.cjs +9 -12
  170. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  171. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +19 -27
  172. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  173. package/cjs/utils/is-events-overlap/is-events-overlap.cjs +13 -16
  174. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  175. package/cjs/utils/is-in-time-range/is-in-time-range.cjs +17 -23
  176. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  177. package/cjs/utils/is-multiday-event/is-multiday-event.cjs +10 -14
  178. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  179. package/cjs/utils/is-same-month/is-same-month.cjs +9 -12
  180. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  181. package/cjs/utils/is-within-week/is-within-week.cjs +15 -15
  182. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  183. package/cjs/utils/next-week/next-week.cjs +15 -15
  184. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  185. package/cjs/utils/parse-time-string/parse-time-string.cjs +11 -7
  186. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  187. package/cjs/utils/previous-week/previous-week.cjs +15 -15
  188. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  189. package/cjs/utils/sort-events/sort-events.cjs +14 -18
  190. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  191. package/cjs/utils/to-date-string/to-date-string.cjs +9 -12
  192. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  193. package/cjs/utils/to-time-string/to-time-string.cjs +6 -6
  194. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  195. package/cjs/utils/validate-event/validate-event.cjs +12 -23
  196. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  197. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +76 -95
  198. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  199. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs +12 -0
  200. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs.map +1 -0
  201. package/esm/components/DayView/DayView.mjs +479 -571
  202. package/esm/components/DayView/DayView.mjs.map +1 -1
  203. package/esm/components/DayView/DayView.module.mjs +20 -0
  204. package/esm/components/DayView/DayView.module.mjs.map +1 -0
  205. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +89 -104
  206. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  207. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +104 -100
  208. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  209. package/esm/components/DragContext/DragContext.mjs +6 -5
  210. package/esm/components/DragContext/DragContext.mjs.map +1 -1
  211. package/esm/components/MobileMonthView/MobileMonthView.mjs +257 -289
  212. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  213. package/esm/components/MobileMonthView/MobileMonthView.module.mjs +27 -0
  214. package/esm/components/MobileMonthView/MobileMonthView.module.mjs.map +1 -0
  215. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +33 -47
  216. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  217. package/esm/components/MonthView/MonthView.mjs +362 -460
  218. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  219. package/esm/components/MonthView/MonthView.module.mjs +18 -0
  220. package/esm/components/MonthView/MonthView.module.mjs.map +1 -0
  221. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +15 -22
  222. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  223. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +23 -33
  224. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -1
  225. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +14 -23
  226. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  227. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +85 -91
  228. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  229. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +34 -39
  230. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  231. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +28 -33
  232. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
  233. package/esm/components/MonthView/handle-month-view-key-down.mjs +94 -137
  234. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  235. package/esm/components/MoreEvents/MoreEvents.mjs +85 -118
  236. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  237. package/esm/components/MoreEvents/MoreEvents.module.mjs +11 -0
  238. package/esm/components/MoreEvents/MoreEvents.module.mjs.map +1 -0
  239. package/esm/components/Schedule/Schedule.mjs +145 -171
  240. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  241. package/esm/components/Schedule/Schedule.module.mjs +11 -0
  242. package/esm/components/Schedule/Schedule.module.mjs.map +1 -0
  243. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +114 -151
  244. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  245. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs +11 -0
  246. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs.map +1 -0
  247. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +60 -70
  248. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  249. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs +7 -0
  250. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs.map +1 -0
  251. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +150 -187
  252. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  253. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs +13 -0
  254. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs.map +1 -0
  255. package/esm/components/ScheduleHeader/ScheduleHeader.mjs +33 -46
  256. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
  257. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +13 -0
  258. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -0
  259. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +82 -82
  260. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  261. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +103 -123
  262. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  263. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs +7 -0
  264. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs.map +1 -0
  265. package/esm/components/WeekView/WeekView.mjs +627 -741
  266. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  267. package/esm/components/WeekView/WeekView.module.mjs +29 -0
  268. package/esm/components/WeekView/WeekView.module.mjs.map +1 -0
  269. package/esm/components/WeekView/WeekViewDay.mjs +80 -103
  270. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  271. package/esm/components/WeekView/get-week-label/get-week-label.mjs +25 -29
  272. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  273. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +21 -27
  274. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -1
  275. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +11 -23
  276. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  277. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +12 -25
  278. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  279. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +11 -10
  280. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  281. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +14 -20
  282. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -1
  283. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +26 -33
  284. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -1
  285. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +26 -37
  286. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  287. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +9 -10
  288. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  289. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +15 -24
  290. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -1
  291. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +198 -180
  292. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  293. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +11 -7
  294. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -1
  295. package/esm/components/WeekView/handle-week-view-key-down.mjs +82 -125
  296. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  297. package/esm/components/YearView/YearView.mjs +157 -206
  298. package/esm/components/YearView/YearView.mjs.map +1 -1
  299. package/esm/components/YearView/YearView.module.mjs +20 -0
  300. package/esm/components/YearView/YearView.module.mjs.map +1 -0
  301. package/esm/components/YearView/YearViewMonth.mjs +133 -152
  302. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  303. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +30 -42
  304. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  305. package/esm/components/YearView/handle-year-view-key-down.mjs +143 -200
  306. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  307. package/esm/hooks/use-auto-scroll-on-drag.mjs +66 -68
  308. package/esm/hooks/use-auto-scroll-on-drag.mjs.map +1 -1
  309. package/esm/hooks/use-drag-drop-handlers.mjs +113 -121
  310. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  311. package/esm/hooks/use-drag-state.mjs +37 -40
  312. package/esm/hooks/use-drag-state.mjs.map +1 -1
  313. package/esm/hooks/use-event-resize.mjs +135 -157
  314. package/esm/hooks/use-event-resize.mjs.map +1 -1
  315. package/esm/hooks/use-slot-drag-select.mjs +74 -86
  316. package/esm/hooks/use-slot-drag-select.mjs.map +1 -1
  317. package/esm/index.mjs +49 -49
  318. package/esm/labels.mjs +30 -26
  319. package/esm/labels.mjs.map +1 -1
  320. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +21 -30
  321. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  322. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +15 -18
  323. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  324. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -6
  325. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -1
  326. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs +101 -134
  327. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  328. package/esm/utils/format-date/format-date.mjs +8 -9
  329. package/esm/utils/format-date/format-date.mjs.map +1 -1
  330. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +23 -20
  331. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -1
  332. package/esm/utils/get-current-time-position/get-current-time-position.mjs +17 -19
  333. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  334. package/esm/utils/get-day-position/get-day-position.mjs +24 -29
  335. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  336. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +50 -43
  337. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -1
  338. package/esm/utils/get-end-of-week/get-end-of-week.mjs +11 -14
  339. package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -1
  340. package/esm/utils/get-month-days/get-month-days.mjs +39 -41
  341. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  342. package/esm/utils/get-month-range/get-month-range.mjs +23 -24
  343. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  344. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +19 -15
  345. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  346. package/esm/utils/get-months-list/get-months-list.mjs +18 -12
  347. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  348. package/esm/utils/get-start-of-week/get-start-of-week.mjs +9 -10
  349. package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -1
  350. package/esm/utils/get-visible-events/get-visible-events.mjs +13 -13
  351. package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -1
  352. package/esm/utils/get-week-days/get-week-days.mjs +21 -24
  353. package/esm/utils/get-week-days/get-week-days.mjs.map +1 -1
  354. package/esm/utils/get-week-number/get-week-number.mjs +9 -11
  355. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  356. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +16 -17
  357. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  358. package/esm/utils/get-years-list/get-years-list.mjs +8 -8
  359. package/esm/utils/get-years-list/get-years-list.mjs.map +1 -1
  360. package/esm/utils/is-after-min-date/is-after-min-date.mjs +7 -6
  361. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  362. package/esm/utils/is-all-day-event/is-all-day-event.mjs +11 -10
  363. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  364. package/esm/utils/is-before-max-date/is-before-max-date.mjs +7 -6
  365. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  366. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +17 -21
  367. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  368. package/esm/utils/is-events-overlap/is-events-overlap.mjs +11 -10
  369. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  370. package/esm/utils/is-in-time-range/is-in-time-range.mjs +15 -17
  371. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  372. package/esm/utils/is-multiday-event/is-multiday-event.mjs +8 -8
  373. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  374. package/esm/utils/is-same-month/is-same-month.mjs +7 -6
  375. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  376. package/esm/utils/is-within-week/is-within-week.mjs +13 -9
  377. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  378. package/esm/utils/next-week/next-week.mjs +13 -9
  379. package/esm/utils/next-week/next-week.mjs.map +1 -1
  380. package/esm/utils/parse-time-string/parse-time-string.mjs +11 -5
  381. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  382. package/esm/utils/previous-week/previous-week.mjs +13 -9
  383. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  384. package/esm/utils/sort-events/sort-events.mjs +12 -12
  385. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  386. package/esm/utils/to-date-string/to-date-string.mjs +7 -6
  387. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  388. package/esm/utils/to-time-string/to-time-string.mjs +6 -4
  389. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  390. package/esm/utils/validate-event/validate-event.mjs +10 -17
  391. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  392. package/lib/components/DayView/DayView.d.ts +22 -3
  393. package/lib/components/MobileMonthView/MobileMonthView.d.ts +0 -2
  394. package/lib/components/MonthView/MonthView.d.ts +6 -1
  395. package/lib/components/Schedule/Schedule.d.ts +17 -3
  396. package/lib/components/WeekView/WeekView.d.ts +22 -3
  397. package/lib/components/WeekView/WeekViewDay.d.ts +7 -2
  398. package/lib/hooks/use-drag-drop-handlers.d.ts +6 -1
  399. package/lib/hooks/use-event-resize.d.ts +15 -2
  400. package/lib/labels.d.ts +1 -0
  401. package/package.json +4 -4
  402. package/styles.css +3 -1
  403. package/styles.layer.css +3 -1
  404. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
  405. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
  406. package/cjs/components/DayView/DayView.module.css.cjs +0 -7
  407. package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
  408. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
  409. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
  410. package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
  411. package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
  412. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
  413. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
  414. package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
  415. package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
  416. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
  417. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
  418. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
  419. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
  420. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
  421. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
  422. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
  423. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
  424. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
  425. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
  426. package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
  427. package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
  428. package/cjs/components/YearView/YearView.module.css.cjs +0 -7
  429. package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
  430. package/cjs/index.cjs.map +0 -1
  431. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
  432. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
  433. package/esm/components/DayView/DayView.module.css.mjs +0 -5
  434. package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
  435. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
  436. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
  437. package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
  438. package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
  439. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
  440. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
  441. package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
  442. package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
  443. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
  444. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
  445. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
  446. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
  447. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
  448. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
  449. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
  450. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
  451. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
  452. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
  453. package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
  454. package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
  455. package/esm/components/YearView/YearView.module.css.mjs +0 -5
  456. package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
  457. package/esm/index.mjs.map +0 -1
@@ -1,296 +1,264 @@
1
- 'use client';
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import React, { useRef, createElement } from 'react';
4
- import dayjs from 'dayjs';
5
- import { createVarsResolver, getRadius, factory, useProps, useMantineTheme, useStyles, getThemeColor, UnstyledButton, Box, Text, useDirection, AccordionChevron } from '@mantine/core';
6
- import { useDatesContext } from '@mantine/dates';
7
- import { useUncontrolled } from '@mantine/hooks';
8
- import { getWeekdaysNames } from '../../utils/get-weekdays-names/get-weekdays-names.mjs';
9
- import { getWeekNumber } from '../../utils/get-week-number/get-week-number.mjs';
10
- import { getMonthDays } from '../../utils/get-month-days/get-month-days.mjs';
11
- import { isSameMonth } from '../../utils/is-same-month/is-same-month.mjs';
12
- import { toDateString } from '../../utils/to-date-string/to-date-string.mjs';
13
- import { formatDate } from '../../utils/format-date/format-date.mjs';
14
- import { sortEvents } from '../../utils/sort-events/sort-events.mjs';
15
- import { expandRecurringEvents } from '../../utils/expand-recurring-events/expand-recurring-events.mjs';
16
- import { handleMonthViewKeyDown } from '../MonthView/handle-month-view-key-down.mjs';
17
- import { getMobileMonthViewEvents } from './get-mobile-month-view-events.mjs';
18
- import classes from './MobileMonthView.module.css.mjs';
19
-
1
+ "use client";
2
+ import { getLabel } from "../../labels.mjs";
3
+ import { formatDate } from "../../utils/format-date/format-date.mjs";
4
+ import { getWeekdaysNames } from "../../utils/get-weekdays-names/get-weekdays-names.mjs";
5
+ import { getWeekNumber } from "../../utils/get-week-number/get-week-number.mjs";
6
+ import { getMonthDays } from "../../utils/get-month-days/get-month-days.mjs";
7
+ import { isSameMonth } from "../../utils/is-same-month/is-same-month.mjs";
8
+ import { toDateString } from "../../utils/to-date-string/to-date-string.mjs";
9
+ import { sortEvents } from "../../utils/sort-events/sort-events.mjs";
10
+ import { expandRecurringEvents } from "../../utils/expand-recurring-events/expand-recurring-events.mjs";
11
+ import { handleMonthViewKeyDown } from "../MonthView/handle-month-view-key-down.mjs";
12
+ import { getMobileMonthViewEvents } from "./get-mobile-month-view-events.mjs";
13
+ import MobileMonthView_module_default from "./MobileMonthView.module.mjs";
14
+ import dayjs from "dayjs";
15
+ import { AccordionChevron, Box, Text, UnstyledButton, createVarsResolver, factory, getRadius, getThemeColor, useDirection, useMantineTheme, useProps, useStyles } from "@mantine/core";
16
+ import { useUncontrolled } from "@mantine/hooks";
17
+ import React, { createElement, useRef } from "react";
18
+ import { useDatesContext } from "@mantine/dates";
19
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
+ //#region packages/@mantine/schedule/src/components/MobileMonthView/MobileMonthView.tsx
20
21
  const defaultProps = {
21
- __staticSelector: "MobileMonthView",
22
- withWeekDays: true,
23
- consistentWeeks: true,
24
- highlightToday: true,
25
- mode: "default",
26
- eventsHeaderFormat: "dddd, MMMM D",
27
- noEventsText: "No events"
22
+ __staticSelector: "MobileMonthView",
23
+ withWeekDays: true,
24
+ consistentWeeks: true,
25
+ highlightToday: true,
26
+ mode: "default",
27
+ eventsHeaderFormat: "dddd, MMMM D"
28
28
  };
29
- const varsResolver = createVarsResolver((_theme, { radius }) => ({
30
- mobileMonthView: {
31
- "--mobile-month-view-radius": getRadius(radius)
32
- }
33
- }));
29
+ const varsResolver = createVarsResolver((_theme, { radius }) => ({ mobileMonthView: { "--mobile-month-view-radius": getRadius(radius) } }));
34
30
  const MobileMonthView = factory((_props) => {
35
- const props = useProps("MobileMonthView", defaultProps, _props);
36
- const {
37
- classNames,
38
- className,
39
- style,
40
- styles,
41
- unstyled,
42
- vars,
43
- attributes,
44
- __staticSelector,
45
- date,
46
- onDateChange,
47
- selectedDate,
48
- defaultSelectedDate,
49
- onSelectedDateChange,
50
- withWeekNumbers,
51
- withWeekDays,
52
- locale,
53
- firstDayOfWeek,
54
- weekdayFormat,
55
- weekendDays,
56
- getWeekNumberProps,
57
- getDayProps,
58
- onDayClick,
59
- onWeekNumberClick,
60
- consistentWeeks,
61
- highlightToday,
62
- radius,
63
- withOutsideDays,
64
- events,
65
- labels,
66
- mode,
67
- renderEvent,
68
- eventsHeaderFormat,
69
- noEventsText,
70
- onYearClick,
71
- onEventClick,
72
- renderHeader,
73
- recurrenceExpansionLimit,
74
- ...others
75
- } = props;
76
- const ctx = useDatesContext();
77
- const theme = useMantineTheme();
78
- const today = dayjs();
79
- const [_selectedDate, _setSelectedDate] = useUncontrolled({
80
- value: selectedDate,
81
- defaultValue: defaultSelectedDate ?? toDateString(today),
82
- onChange: (value) => onSelectedDateChange?.(value ? toDateString(dayjs(value)) : null)
83
- });
84
- const getStyles = useStyles({
85
- name: __staticSelector,
86
- classes,
87
- props,
88
- className,
89
- style,
90
- classNames,
91
- styles,
92
- unstyled,
93
- attributes,
94
- vars,
95
- varsResolver,
96
- rootSelector: "mobileMonthView"
97
- });
98
- const daysRef = useRef([]);
99
- const firstDayPosition = useRef(null);
100
- const expandedEvents = expandRecurringEvents({
101
- events,
102
- rangeStart: dayjs(date).startOf("month").toDate(),
103
- rangeEnd: dayjs(date).endOf("month").toDate(),
104
- expansionLimit: recurrenceExpansionLimit
105
- });
106
- const groupedEvents = getMobileMonthViewEvents({ date, events: expandedEvents });
107
- const weekdays = withWeekDays ? getWeekdaysNames({
108
- locale: ctx.getLocale(locale),
109
- format: weekdayFormat,
110
- firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek)
111
- }).map((day, index) => /* @__PURE__ */ createElement("div", { ...getStyles("mobileMonthViewWeekday"), key: index }, day)) : null;
112
- const weeks = getMonthDays({
113
- month: dayjs(date).format("YYYY-MM-DD"),
114
- firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek),
115
- consistentWeeks
116
- }).map((week, weekIndex) => {
117
- const days = week.map((dayDate, dayIndex) => {
118
- const outside = !isSameMonth(dayDate, date);
119
- const weekend = ctx.getWeekendDays(weekendDays).includes(dayjs(dayDate).day());
120
- const ariaLabel = dayjs(dayDate).locale(locale || ctx.locale).format("MMMM D, YYYY");
121
- const dayProps = getDayProps?.(dayjs(dayDate).format("YYYY-MM-DD")) || {};
122
- const isToday = dayjs(dayDate).isSame(today, "day") && highlightToday;
123
- const isSelected = _selectedDate && dayjs(dayDate).isSame(dayjs(_selectedDate), "day");
124
- const dayEvents = groupedEvents[dayjs(dayDate).format("YYYY-MM-DD")] || [];
125
- const shouldRender = withOutsideDays || !outside;
126
- if (shouldRender && firstDayPosition.current === null) {
127
- firstDayPosition.current = { weekIndex, dayIndex };
128
- }
129
- const isFirstDay = firstDayPosition.current?.weekIndex === weekIndex && firstDayPosition.current?.dayIndex === dayIndex;
130
- const indicators = dayEvents.slice(0, 3).map((event) => /* @__PURE__ */ createElement(
131
- "div",
132
- {
133
- ...getStyles("mobileMonthViewDayIndicator", {
134
- style: { backgroundColor: getThemeColor(event.color, theme) }
135
- }),
136
- key: event.id
137
- }
138
- ));
139
- const handleDayClick = (event) => {
140
- const dateStr = dayjs(dayDate).format("YYYY-MM-DD");
141
- _setSelectedDate(dateStr);
142
- onDayClick?.(dateStr, event);
143
- dayProps.onClick?.(event);
144
- };
145
- const handleDayKeyDown = (event) => {
146
- handleMonthViewKeyDown({
147
- controlsRef: daysRef,
148
- weekIndex,
149
- dayIndex,
150
- event
151
- });
152
- };
153
- return /* @__PURE__ */ createElement(
154
- UnstyledButton,
155
- {
156
- "aria-label": ariaLabel,
157
- "aria-selected": isSelected || void 0,
158
- ...dayProps,
159
- ...getStyles("mobileMonthViewDay", {
160
- className: dayProps.className,
161
- style: dayProps.style
162
- }),
163
- key: dayDate,
164
- ref: (node) => {
165
- if (node) {
166
- if (!daysRef.current[weekIndex]) {
167
- daysRef.current[weekIndex] = [];
168
- }
169
- daysRef.current[weekIndex][dayIndex] = node;
170
- }
171
- },
172
- mod: [
173
- {
174
- outside,
175
- weekend,
176
- today: isToday,
177
- selected: isSelected,
178
- static: mode === "static",
179
- hidden: !shouldRender
180
- },
181
- dayProps.mod
182
- ],
183
- tabIndex: mode === "static" || !shouldRender ? -1 : isFirstDay ? 0 : -1,
184
- onClick: mode === "static" || !shouldRender ? void 0 : handleDayClick,
185
- onKeyDown: mode === "static" || !shouldRender ? void 0 : handleDayKeyDown
186
- },
187
- shouldRender ? dayjs(dayDate).format("D") : null,
188
- shouldRender && /* @__PURE__ */ jsx("div", { ...getStyles("mobileMonthViewDayIndicators"), children: indicators })
189
- );
190
- });
191
- const weekNumberProps = getWeekNumberProps?.(dayjs(week[0]).format("YYYY-MM-DD")) || {};
192
- const weekNumber = getWeekNumber(week);
193
- return /* @__PURE__ */ createElement("div", { ...getStyles("mobileMonthViewWeek"), key: weekIndex }, withWeekNumbers && /* @__PURE__ */ jsx(
194
- UnstyledButton,
195
- {
196
- "aria-label": `Week ${weekNumber}`,
197
- ...weekNumberProps,
198
- onClick: mode === "static" ? void 0 : (event) => {
199
- onWeekNumberClick?.(dayjs(week[0]).format("YYYY-MM-DD"), event);
200
- weekNumberProps.onClick?.(event);
201
- },
202
- mod: { static: mode === "static" },
203
- tabIndex: mode === "static" ? -1 : 0,
204
- ...getStyles("mobileMonthViewWeekNumber", {
205
- className: weekNumberProps.className,
206
- style: weekNumberProps.style
207
- }),
208
- children: weekNumber
209
- },
210
- weekNumber
211
- ), days);
212
- });
213
- const selectedDateEvents = _selectedDate ? sortEvents(groupedEvents[dayjs(_selectedDate).format("YYYY-MM-DD")] || []) : [];
214
- const eventsList = selectedDateEvents.map((event) => {
215
- const startTime = dayjs(event.start).format("HH:mm");
216
- const endTime = dayjs(event.end).format("HH:mm");
217
- const isAllDay = startTime === "00:00" && endTime === "00:00";
218
- const eventChildren = /* @__PURE__ */ jsxs(Box, { ...getStyles("mobileMonthViewEventBody"), children: [
219
- /* @__PURE__ */ jsx(
220
- "div",
221
- {
222
- ...getStyles("mobileMonthViewEventColor", {
223
- style: { backgroundColor: getThemeColor(event.color, theme) }
224
- })
225
- }
226
- ),
227
- /* @__PURE__ */ jsxs("div", { children: [
228
- /* @__PURE__ */ jsx(Text, { ...getStyles("mobileMonthViewEventTitle"), children: event.title }),
229
- /* @__PURE__ */ jsx(Text, { ...getStyles("mobileMonthViewEventTime"), size: "xs", c: "dimmed", children: isAllDay ? "All day" : `${startTime} \u2013 ${endTime}` })
230
- ] })
231
- ] });
232
- const rootProps = {
233
- ...getStyles("mobileMonthViewEvent"),
234
- onClick: mode === "static" ? void 0 : (e) => {
235
- onEventClick?.(event, e);
236
- },
237
- tabIndex: mode === "static" ? -1 : 0,
238
- children: eventChildren
239
- };
240
- if (typeof renderEvent === "function") {
241
- return /* @__PURE__ */ jsx(React.Fragment, { children: renderEvent(event, rootProps) }, event.id);
242
- }
243
- return /* @__PURE__ */ createElement(UnstyledButton, { ...rootProps, key: event.id });
244
- });
245
- const eventsHeader = _selectedDate ? formatDate({
246
- locale: ctx.getLocale(locale),
247
- date: _selectedDate,
248
- format: eventsHeaderFormat
249
- }) : "";
250
- const { dir } = useDirection();
251
- const headerLabel = formatDate({ locale: ctx.getLocale(locale), date, format: "MMMM YYYY" });
252
- const defaultHeader = /* @__PURE__ */ jsxs(Fragment, { children: [
253
- /* @__PURE__ */ jsxs(
254
- UnstyledButton,
255
- {
256
- ...getStyles("mobileMonthViewHeaderBackButton"),
257
- onClick: onYearClick,
258
- mod: { static: mode === "static" },
259
- tabIndex: mode === "static" ? -1 : 0,
260
- children: [
261
- /* @__PURE__ */ jsx(AccordionChevron, { transform: `rotate(${dir === "rtl" ? -90 : 90} 0 0)`, size: 20 }),
262
- dayjs(date).format("YYYY")
263
- ]
264
- }
265
- ),
266
- /* @__PURE__ */ jsx(Text, { ...getStyles("mobileMonthViewHeaderLabel"), fw: 600, tt: "capitalize", children: headerLabel })
267
- ] });
268
- return /* @__PURE__ */ jsxs(
269
- Box,
270
- {
271
- ...getStyles("mobileMonthView"),
272
- mod: { "with-week-numbers": withWeekNumbers },
273
- ...others,
274
- children: [
275
- /* @__PURE__ */ jsx("div", { ...getStyles("mobileMonthViewHeader"), children: typeof renderHeader === "function" ? renderHeader({ mode, date, defaultHeader }) : defaultHeader }),
276
- /* @__PURE__ */ jsxs(Box, { ...getStyles("mobileMonthViewCalendar"), mod: { "with-weekdays": withWeekDays }, children: [
277
- weekdays && /* @__PURE__ */ jsxs("div", { ...getStyles("mobileMonthViewWeekdays"), children: [
278
- withWeekNumbers && /* @__PURE__ */ jsx("div", { ...getStyles("mobileMonthViewWeekdaysCorner") }),
279
- weekdays
280
- ] }),
281
- weeks
282
- ] }),
283
- /* @__PURE__ */ jsxs(Box, { ...getStyles("mobileMonthViewEventsList"), children: [
284
- /* @__PURE__ */ jsx(Text, { ...getStyles("mobileMonthViewEventsHeader"), fw: 600, tt: "capitalize", children: eventsHeader }),
285
- eventsList.length > 0 ? eventsList : /* @__PURE__ */ jsx(Text, { ...getStyles("mobileMonthViewNoEvents"), c: "dimmed", ta: "center", py: "xl", children: noEventsText })
286
- ] })
287
- ]
288
- }
289
- );
31
+ const props = useProps("MobileMonthView", defaultProps, _props);
32
+ const { classNames, className, style, styles, unstyled, vars, attributes, __staticSelector, date, onDateChange, selectedDate, defaultSelectedDate, onSelectedDateChange, withWeekNumbers, withWeekDays, locale, firstDayOfWeek, weekdayFormat, weekendDays, getWeekNumberProps, getDayProps, onDayClick, onWeekNumberClick, consistentWeeks, highlightToday, radius, withOutsideDays, events, labels, mode, renderEvent, eventsHeaderFormat, onYearClick, onEventClick, renderHeader, recurrenceExpansionLimit, ...others } = props;
33
+ const ctx = useDatesContext();
34
+ const theme = useMantineTheme();
35
+ const today = dayjs();
36
+ const [_selectedDate, _setSelectedDate] = useUncontrolled({
37
+ value: selectedDate,
38
+ defaultValue: defaultSelectedDate ?? toDateString(today),
39
+ onChange: (value) => onSelectedDateChange?.(value ? toDateString(dayjs(value)) : null)
40
+ });
41
+ const getStyles = useStyles({
42
+ name: __staticSelector,
43
+ classes: MobileMonthView_module_default,
44
+ props,
45
+ className,
46
+ style,
47
+ classNames,
48
+ styles,
49
+ unstyled,
50
+ attributes,
51
+ vars,
52
+ varsResolver,
53
+ rootSelector: "mobileMonthView"
54
+ });
55
+ const daysRef = useRef([]);
56
+ const firstDayPosition = useRef(null);
57
+ const groupedEvents = getMobileMonthViewEvents({
58
+ date,
59
+ events: expandRecurringEvents({
60
+ events,
61
+ rangeStart: dayjs(date).startOf("month").toDate(),
62
+ rangeEnd: dayjs(date).endOf("month").toDate(),
63
+ expansionLimit: recurrenceExpansionLimit
64
+ })
65
+ });
66
+ const weekdays = withWeekDays ? getWeekdaysNames({
67
+ locale: ctx.getLocale(locale),
68
+ format: weekdayFormat,
69
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek)
70
+ }).map((day, index) => /* @__PURE__ */ createElement("div", {
71
+ ...getStyles("mobileMonthViewWeekday"),
72
+ key: index
73
+ }, day)) : null;
74
+ const weeks = getMonthDays({
75
+ month: dayjs(date).format("YYYY-MM-DD"),
76
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek),
77
+ consistentWeeks
78
+ }).map((week, weekIndex) => {
79
+ const days = week.map((dayDate, dayIndex) => {
80
+ const outside = !isSameMonth(dayDate, date);
81
+ const weekend = ctx.getWeekendDays(weekendDays).includes(dayjs(dayDate).day());
82
+ const ariaLabel = dayjs(dayDate).locale(locale || ctx.locale).format("MMMM D, YYYY");
83
+ const dayProps = getDayProps?.(dayjs(dayDate).format("YYYY-MM-DD")) || {};
84
+ const isToday = dayjs(dayDate).isSame(today, "day") && highlightToday;
85
+ const isSelected = _selectedDate && dayjs(dayDate).isSame(dayjs(_selectedDate), "day");
86
+ const dayEvents = groupedEvents[dayjs(dayDate).format("YYYY-MM-DD")] || [];
87
+ const shouldRender = withOutsideDays || !outside;
88
+ if (shouldRender && firstDayPosition.current === null) firstDayPosition.current = {
89
+ weekIndex,
90
+ dayIndex
91
+ };
92
+ const isFirstDay = firstDayPosition.current?.weekIndex === weekIndex && firstDayPosition.current?.dayIndex === dayIndex;
93
+ const indicators = dayEvents.slice(0, 3).map((event) => /* @__PURE__ */ createElement("div", {
94
+ ...getStyles("mobileMonthViewDayIndicator", { style: { backgroundColor: getThemeColor(event.color, theme) } }),
95
+ key: event.id
96
+ }));
97
+ const handleDayClick = (event) => {
98
+ const dateStr = dayjs(dayDate).format("YYYY-MM-DD");
99
+ _setSelectedDate(dateStr);
100
+ onDayClick?.(dateStr, event);
101
+ dayProps.onClick?.(event);
102
+ };
103
+ const handleDayKeyDown = (event) => {
104
+ handleMonthViewKeyDown({
105
+ controlsRef: daysRef,
106
+ weekIndex,
107
+ dayIndex,
108
+ event
109
+ });
110
+ };
111
+ return /* @__PURE__ */ createElement(UnstyledButton, {
112
+ "aria-label": ariaLabel,
113
+ "aria-selected": isSelected || void 0,
114
+ ...dayProps,
115
+ ...getStyles("mobileMonthViewDay", {
116
+ className: dayProps.className,
117
+ style: dayProps.style
118
+ }),
119
+ key: dayDate,
120
+ ref: (node) => {
121
+ if (node) {
122
+ if (!daysRef.current[weekIndex]) daysRef.current[weekIndex] = [];
123
+ daysRef.current[weekIndex][dayIndex] = node;
124
+ }
125
+ },
126
+ mod: [{
127
+ outside,
128
+ weekend,
129
+ today: isToday,
130
+ selected: isSelected,
131
+ static: mode === "static",
132
+ hidden: !shouldRender
133
+ }, dayProps.mod],
134
+ tabIndex: mode === "static" || !shouldRender ? -1 : isFirstDay ? 0 : -1,
135
+ onClick: mode === "static" || !shouldRender ? void 0 : handleDayClick,
136
+ onKeyDown: mode === "static" || !shouldRender ? void 0 : handleDayKeyDown
137
+ }, shouldRender ? dayjs(dayDate).format("D") : null, shouldRender && /* @__PURE__ */ jsx("div", {
138
+ ...getStyles("mobileMonthViewDayIndicators"),
139
+ children: indicators
140
+ }));
141
+ });
142
+ const weekNumberProps = getWeekNumberProps?.(dayjs(week[0]).format("YYYY-MM-DD")) || {};
143
+ const weekNumber = getWeekNumber(week);
144
+ return /* @__PURE__ */ createElement("div", {
145
+ ...getStyles("mobileMonthViewWeek"),
146
+ key: weekIndex
147
+ }, withWeekNumbers && /* @__PURE__ */ jsx(UnstyledButton, {
148
+ "aria-label": `Week ${weekNumber}`,
149
+ ...weekNumberProps,
150
+ onClick: mode === "static" ? void 0 : (event) => {
151
+ onWeekNumberClick?.(dayjs(week[0]).format("YYYY-MM-DD"), event);
152
+ weekNumberProps.onClick?.(event);
153
+ },
154
+ mod: { static: mode === "static" },
155
+ tabIndex: mode === "static" ? -1 : 0,
156
+ ...getStyles("mobileMonthViewWeekNumber", {
157
+ className: weekNumberProps.className,
158
+ style: weekNumberProps.style
159
+ }),
160
+ children: weekNumber
161
+ }, weekNumber), days);
162
+ });
163
+ const eventsList = (_selectedDate ? sortEvents(groupedEvents[dayjs(_selectedDate).format("YYYY-MM-DD")] || []) : []).map((event) => {
164
+ const startTime = dayjs(event.start).format("HH:mm");
165
+ const endTime = dayjs(event.end).format("HH:mm");
166
+ const isAllDay = startTime === "00:00" && endTime === "00:00";
167
+ const eventChildren = /* @__PURE__ */ jsxs(Box, {
168
+ ...getStyles("mobileMonthViewEventBody"),
169
+ children: [/* @__PURE__ */ jsx("div", { ...getStyles("mobileMonthViewEventColor", { style: { backgroundColor: getThemeColor(event.color, theme) } }) }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Text, {
170
+ ...getStyles("mobileMonthViewEventTitle"),
171
+ children: event.title
172
+ }), /* @__PURE__ */ jsx(Text, {
173
+ ...getStyles("mobileMonthViewEventTime"),
174
+ size: "xs",
175
+ c: "dimmed",
176
+ children: isAllDay ? "All day" : `${startTime} – ${endTime}`
177
+ })] })]
178
+ });
179
+ const rootProps = {
180
+ ...getStyles("mobileMonthViewEvent"),
181
+ onClick: mode === "static" ? void 0 : (e) => {
182
+ onEventClick?.(event, e);
183
+ },
184
+ tabIndex: mode === "static" ? -1 : 0,
185
+ children: eventChildren
186
+ };
187
+ if (typeof renderEvent === "function") return /* @__PURE__ */ jsx(React.Fragment, { children: renderEvent(event, rootProps) }, event.id);
188
+ return /* @__PURE__ */ createElement(UnstyledButton, {
189
+ ...rootProps,
190
+ key: event.id
191
+ });
192
+ });
193
+ const eventsHeader = _selectedDate ? formatDate({
194
+ locale: ctx.getLocale(locale),
195
+ date: _selectedDate,
196
+ format: eventsHeaderFormat
197
+ }) : "";
198
+ const { dir } = useDirection();
199
+ const headerLabel = formatDate({
200
+ locale: ctx.getLocale(locale),
201
+ date,
202
+ format: "MMMM YYYY"
203
+ });
204
+ const defaultHeader = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(UnstyledButton, {
205
+ ...getStyles("mobileMonthViewHeaderBackButton"),
206
+ onClick: onYearClick,
207
+ mod: { static: mode === "static" },
208
+ tabIndex: mode === "static" ? -1 : 0,
209
+ children: [/* @__PURE__ */ jsx(AccordionChevron, {
210
+ transform: `rotate(${dir === "rtl" ? -90 : 90} 0 0)`,
211
+ size: 20
212
+ }), dayjs(date).format("YYYY")]
213
+ }), /* @__PURE__ */ jsx(Text, {
214
+ ...getStyles("mobileMonthViewHeaderLabel"),
215
+ fw: 600,
216
+ tt: "capitalize",
217
+ children: headerLabel
218
+ })] });
219
+ return /* @__PURE__ */ jsxs(Box, {
220
+ ...getStyles("mobileMonthView"),
221
+ mod: { "with-week-numbers": withWeekNumbers },
222
+ ...others,
223
+ children: [
224
+ /* @__PURE__ */ jsx("div", {
225
+ ...getStyles("mobileMonthViewHeader"),
226
+ children: typeof renderHeader === "function" ? renderHeader({
227
+ mode,
228
+ date,
229
+ defaultHeader
230
+ }) : defaultHeader
231
+ }),
232
+ /* @__PURE__ */ jsxs(Box, {
233
+ ...getStyles("mobileMonthViewCalendar"),
234
+ mod: { "with-weekdays": withWeekDays },
235
+ children: [weekdays && /* @__PURE__ */ jsxs("div", {
236
+ ...getStyles("mobileMonthViewWeekdays"),
237
+ children: [withWeekNumbers && /* @__PURE__ */ jsx("div", { ...getStyles("mobileMonthViewWeekdaysCorner") }), weekdays]
238
+ }), weeks]
239
+ }),
240
+ /* @__PURE__ */ jsxs(Box, {
241
+ ...getStyles("mobileMonthViewEventsList"),
242
+ children: [/* @__PURE__ */ jsx(Text, {
243
+ ...getStyles("mobileMonthViewEventsHeader"),
244
+ fw: 600,
245
+ tt: "capitalize",
246
+ children: eventsHeader
247
+ }), eventsList.length > 0 ? eventsList : /* @__PURE__ */ jsx(Text, {
248
+ ...getStyles("mobileMonthViewNoEvents"),
249
+ c: "dimmed",
250
+ ta: "center",
251
+ py: "xl",
252
+ children: getLabel("noEvents", labels)
253
+ })]
254
+ })
255
+ ]
256
+ });
290
257
  });
291
258
  MobileMonthView.displayName = "@mantine/schedule/MobileMonthView";
292
- MobileMonthView.classes = classes;
259
+ MobileMonthView.classes = MobileMonthView_module_default;
293
260
  MobileMonthView.varsResolver = varsResolver;
294
-
261
+ //#endregion
295
262
  export { MobileMonthView };
296
- //# sourceMappingURL=MobileMonthView.mjs.map
263
+
264
+ //# sourceMappingURL=MobileMonthView.mjs.map