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

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 (450) 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 +462 -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 +617 -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 +71 -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 +110 -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 +132 -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 +459 -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 +614 -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 +69 -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 +108 -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 +130 -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/MobileMonthView/MobileMonthView.d.ts +0 -2
  393. package/lib/labels.d.ts +1 -0
  394. package/package.json +4 -4
  395. package/styles.css +3 -1
  396. package/styles.layer.css +3 -1
  397. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
  398. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
  399. package/cjs/components/DayView/DayView.module.css.cjs +0 -7
  400. package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
  401. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
  402. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
  403. package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
  404. package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
  405. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
  406. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
  407. package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
  408. package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
  409. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
  410. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
  411. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
  412. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
  413. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
  414. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
  415. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
  416. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
  417. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
  418. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
  419. package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
  420. package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
  421. package/cjs/components/YearView/YearView.module.css.cjs +0 -7
  422. package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
  423. package/cjs/index.cjs.map +0 -1
  424. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
  425. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
  426. package/esm/components/DayView/DayView.module.css.mjs +0 -5
  427. package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
  428. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
  429. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
  430. package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
  431. package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
  432. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
  433. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
  434. package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
  435. package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
  436. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
  437. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
  438. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
  439. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
  440. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
  441. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
  442. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
  443. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
  444. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
  445. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
  446. package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
  447. package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
  448. package/esm/components/YearView/YearView.module.css.mjs +0 -5
  449. package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
  450. package/esm/index.mjs.map +0 -1
@@ -1,145 +1,102 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/schedule/src/components/MonthView/handle-month-view-key-down.ts
2
3
  function getDirection(key) {
3
- switch (key) {
4
- case "ArrowDown":
5
- return "down";
6
- case "ArrowUp":
7
- return "up";
8
- case "ArrowRight":
9
- return "right";
10
- case "ArrowLeft":
11
- return "left";
12
- default:
13
- return null;
14
- }
4
+ switch (key) {
5
+ case "ArrowDown": return "down";
6
+ case "ArrowUp": return "up";
7
+ case "ArrowRight": return "right";
8
+ case "ArrowLeft": return "left";
9
+ default: return null;
10
+ }
15
11
  }
16
12
  function getControlsSize(controlsRef) {
17
- if (!controlsRef.current) {
18
- return null;
19
- }
20
- return controlsRef.current.map((week) => week ? week.length : 0);
13
+ if (!controlsRef.current) return null;
14
+ return controlsRef.current.map((week) => week ? week.length : 0);
21
15
  }
22
- function getNextPosition({
23
- direction,
24
- weekIndex,
25
- dayIndex,
26
- size
27
- }) {
28
- const currentWeekSize = size[weekIndex];
29
- if (!currentWeekSize) {
30
- return null;
31
- }
32
- switch (direction) {
33
- case "up": {
34
- if (weekIndex === 0) {
35
- return null;
36
- }
37
- const prevWeekSize = size[weekIndex - 1];
38
- const clampedDayIndex = Math.min(dayIndex, prevWeekSize - 1);
39
- return {
40
- weekIndex: weekIndex - 1,
41
- dayIndex: clampedDayIndex
42
- };
43
- }
44
- case "down": {
45
- if (weekIndex === size.length - 1) {
46
- return null;
47
- }
48
- const nextWeekSize = size[weekIndex + 1];
49
- const clampedDayIndex = Math.min(dayIndex, nextWeekSize - 1);
50
- return {
51
- weekIndex: weekIndex + 1,
52
- dayIndex: clampedDayIndex
53
- };
54
- }
55
- case "left": {
56
- if (dayIndex === 0) {
57
- if (weekIndex === 0) {
58
- return null;
59
- }
60
- return {
61
- weekIndex: weekIndex - 1,
62
- dayIndex: size[weekIndex - 1] - 1
63
- };
64
- }
65
- return {
66
- weekIndex,
67
- dayIndex: dayIndex - 1
68
- };
69
- }
70
- case "right": {
71
- if (dayIndex === currentWeekSize - 1) {
72
- if (weekIndex === size.length - 1) {
73
- return null;
74
- }
75
- return {
76
- weekIndex: weekIndex + 1,
77
- dayIndex: 0
78
- };
79
- }
80
- return {
81
- weekIndex,
82
- dayIndex: dayIndex + 1
83
- };
84
- }
85
- default:
86
- return null;
87
- }
16
+ function getNextPosition({ direction, weekIndex, dayIndex, size }) {
17
+ const currentWeekSize = size[weekIndex];
18
+ if (!currentWeekSize) return null;
19
+ switch (direction) {
20
+ case "up": {
21
+ if (weekIndex === 0) return null;
22
+ const prevWeekSize = size[weekIndex - 1];
23
+ const clampedDayIndex = Math.min(dayIndex, prevWeekSize - 1);
24
+ return {
25
+ weekIndex: weekIndex - 1,
26
+ dayIndex: clampedDayIndex
27
+ };
28
+ }
29
+ case "down": {
30
+ if (weekIndex === size.length - 1) return null;
31
+ const nextWeekSize = size[weekIndex + 1];
32
+ const clampedDayIndex = Math.min(dayIndex, nextWeekSize - 1);
33
+ return {
34
+ weekIndex: weekIndex + 1,
35
+ dayIndex: clampedDayIndex
36
+ };
37
+ }
38
+ case "left":
39
+ if (dayIndex === 0) {
40
+ if (weekIndex === 0) return null;
41
+ return {
42
+ weekIndex: weekIndex - 1,
43
+ dayIndex: size[weekIndex - 1] - 1
44
+ };
45
+ }
46
+ return {
47
+ weekIndex,
48
+ dayIndex: dayIndex - 1
49
+ };
50
+ case "right":
51
+ if (dayIndex === currentWeekSize - 1) {
52
+ if (weekIndex === size.length - 1) return null;
53
+ return {
54
+ weekIndex: weekIndex + 1,
55
+ dayIndex: 0
56
+ };
57
+ }
58
+ return {
59
+ weekIndex,
60
+ dayIndex: dayIndex + 1
61
+ };
62
+ default: return null;
63
+ }
88
64
  }
89
- function focusOnNextFocusableControl({
90
- controlsRef,
91
- direction,
92
- weekIndex,
93
- dayIndex,
94
- size
95
- }) {
96
- const nextPosition = getNextPosition({
97
- direction,
98
- weekIndex,
99
- dayIndex,
100
- size
101
- });
102
- if (!nextPosition) {
103
- return;
104
- }
105
- const controlToFocus = controlsRef.current?.[nextPosition.weekIndex]?.[nextPosition.dayIndex];
106
- if (!controlToFocus) {
107
- return;
108
- }
109
- if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-day-placeholder")) {
110
- focusOnNextFocusableControl({
111
- controlsRef,
112
- direction,
113
- weekIndex: nextPosition.weekIndex,
114
- dayIndex: nextPosition.dayIndex,
115
- size
116
- });
117
- } else {
118
- controlToFocus.focus();
119
- }
65
+ function focusOnNextFocusableControl({ controlsRef, direction, weekIndex, dayIndex, size }) {
66
+ const nextPosition = getNextPosition({
67
+ direction,
68
+ weekIndex,
69
+ dayIndex,
70
+ size
71
+ });
72
+ if (!nextPosition) return;
73
+ const controlToFocus = controlsRef.current?.[nextPosition.weekIndex]?.[nextPosition.dayIndex];
74
+ if (!controlToFocus) return;
75
+ if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-day-placeholder")) focusOnNextFocusableControl({
76
+ controlsRef,
77
+ direction,
78
+ weekIndex: nextPosition.weekIndex,
79
+ dayIndex: nextPosition.dayIndex,
80
+ size
81
+ });
82
+ else controlToFocus.focus();
120
83
  }
121
- function handleMonthViewKeyDown({
122
- controlsRef,
123
- weekIndex,
124
- dayIndex,
125
- event
126
- }) {
127
- const direction = getDirection(event.key);
128
- if (direction) {
129
- event.preventDefault();
130
- const size = getControlsSize(controlsRef);
131
- if (!size) {
132
- return;
133
- }
134
- focusOnNextFocusableControl({
135
- controlsRef,
136
- direction,
137
- weekIndex,
138
- dayIndex,
139
- size
140
- });
141
- }
84
+ function handleMonthViewKeyDown({ controlsRef, weekIndex, dayIndex, event }) {
85
+ const direction = getDirection(event.key);
86
+ if (direction) {
87
+ event.preventDefault();
88
+ const size = getControlsSize(controlsRef);
89
+ if (!size) return;
90
+ focusOnNextFocusableControl({
91
+ controlsRef,
92
+ direction,
93
+ weekIndex,
94
+ dayIndex,
95
+ size
96
+ });
97
+ }
142
98
  }
143
-
99
+ //#endregion
144
100
  export { handleMonthViewKeyDown };
145
- //# sourceMappingURL=handle-month-view-key-down.mjs.map
101
+
102
+ //# sourceMappingURL=handle-month-view-key-down.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle-month-view-key-down.mjs","sources":["../../../src/components/MonthView/handle-month-view-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\n/** Reference to a 2D array of day buttons: [weekIndex][dayIndex] */\nexport type MonthViewControlsRef = RefObject<HTMLButtonElement[][]>;\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ninterface DayPosition {\n weekIndex: number;\n dayIndex: number;\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction | null {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: MonthViewControlsRef): number[] | null {\n if (!controlsRef.current) {\n return null;\n }\n return controlsRef.current.map((week) => (week ? week.length : 0));\n}\n\ninterface GetNextPositionInput {\n direction: Direction;\n weekIndex: number;\n dayIndex: number;\n size: number[];\n}\n\nfunction getNextPosition({\n direction,\n weekIndex,\n dayIndex,\n size,\n}: GetNextPositionInput): DayPosition | null {\n const currentWeekSize = size[weekIndex];\n if (!currentWeekSize) {\n return null;\n }\n\n switch (direction) {\n case 'up': {\n if (weekIndex === 0) {\n return null;\n }\n\n const prevWeekSize = size[weekIndex - 1];\n const clampedDayIndex = Math.min(dayIndex, prevWeekSize - 1);\n return {\n weekIndex: weekIndex - 1,\n dayIndex: clampedDayIndex,\n };\n }\n\n case 'down': {\n if (weekIndex === size.length - 1) {\n return null;\n }\n\n const nextWeekSize = size[weekIndex + 1];\n const clampedDayIndex = Math.min(dayIndex, nextWeekSize - 1);\n return {\n weekIndex: weekIndex + 1,\n dayIndex: clampedDayIndex,\n };\n }\n\n case 'left': {\n if (dayIndex === 0) {\n if (weekIndex === 0) {\n return null;\n }\n\n return {\n weekIndex: weekIndex - 1,\n dayIndex: size[weekIndex - 1] - 1,\n };\n }\n\n return {\n weekIndex,\n dayIndex: dayIndex - 1,\n };\n }\n\n case 'right': {\n if (dayIndex === currentWeekSize - 1) {\n if (weekIndex === size.length - 1) {\n return null;\n }\n\n return {\n weekIndex: weekIndex + 1,\n dayIndex: 0,\n };\n }\n\n return {\n weekIndex,\n dayIndex: dayIndex + 1,\n };\n }\n\n default:\n return null;\n }\n}\n\ninterface FocusOnNextControlInput {\n controlsRef: MonthViewControlsRef;\n direction: Direction;\n weekIndex: number;\n dayIndex: number;\n size: number[];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex,\n dayIndex,\n size,\n}: FocusOnNextControlInput): void {\n const nextPosition = getNextPosition({\n direction,\n weekIndex,\n dayIndex,\n size,\n });\n\n if (!nextPosition) {\n return;\n }\n\n const controlToFocus = controlsRef.current?.[nextPosition.weekIndex]?.[nextPosition.dayIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-day-placeholder')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex: nextPosition.weekIndex,\n dayIndex: nextPosition.dayIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nexport interface HandleMonthViewKeyDownInput {\n controlsRef: MonthViewControlsRef;\n weekIndex: number;\n dayIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleMonthViewKeyDown({\n controlsRef,\n weekIndex,\n dayIndex,\n event,\n}: HandleMonthViewKeyDownInput): void {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n if (!size) {\n return;\n }\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex,\n dayIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-month-view-key-down.mjs","names":[],"sources":["../../../src/components/MonthView/handle-month-view-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\n/** Reference to a 2D array of day buttons: [weekIndex][dayIndex] */\nexport type MonthViewControlsRef = RefObject<HTMLButtonElement[][]>;\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ninterface DayPosition {\n weekIndex: number;\n dayIndex: number;\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction | null {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: MonthViewControlsRef): number[] | null {\n if (!controlsRef.current) {\n return null;\n }\n return controlsRef.current.map((week) => (week ? week.length : 0));\n}\n\ninterface GetNextPositionInput {\n direction: Direction;\n weekIndex: number;\n dayIndex: number;\n size: number[];\n}\n\nfunction getNextPosition({\n direction,\n weekIndex,\n dayIndex,\n size,\n}: GetNextPositionInput): DayPosition | null {\n const currentWeekSize = size[weekIndex];\n if (!currentWeekSize) {\n return null;\n }\n\n switch (direction) {\n case 'up': {\n if (weekIndex === 0) {\n return null;\n }\n\n const prevWeekSize = size[weekIndex - 1];\n const clampedDayIndex = Math.min(dayIndex, prevWeekSize - 1);\n return {\n weekIndex: weekIndex - 1,\n dayIndex: clampedDayIndex,\n };\n }\n\n case 'down': {\n if (weekIndex === size.length - 1) {\n return null;\n }\n\n const nextWeekSize = size[weekIndex + 1];\n const clampedDayIndex = Math.min(dayIndex, nextWeekSize - 1);\n return {\n weekIndex: weekIndex + 1,\n dayIndex: clampedDayIndex,\n };\n }\n\n case 'left': {\n if (dayIndex === 0) {\n if (weekIndex === 0) {\n return null;\n }\n\n return {\n weekIndex: weekIndex - 1,\n dayIndex: size[weekIndex - 1] - 1,\n };\n }\n\n return {\n weekIndex,\n dayIndex: dayIndex - 1,\n };\n }\n\n case 'right': {\n if (dayIndex === currentWeekSize - 1) {\n if (weekIndex === size.length - 1) {\n return null;\n }\n\n return {\n weekIndex: weekIndex + 1,\n dayIndex: 0,\n };\n }\n\n return {\n weekIndex,\n dayIndex: dayIndex + 1,\n };\n }\n\n default:\n return null;\n }\n}\n\ninterface FocusOnNextControlInput {\n controlsRef: MonthViewControlsRef;\n direction: Direction;\n weekIndex: number;\n dayIndex: number;\n size: number[];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex,\n dayIndex,\n size,\n}: FocusOnNextControlInput): void {\n const nextPosition = getNextPosition({\n direction,\n weekIndex,\n dayIndex,\n size,\n });\n\n if (!nextPosition) {\n return;\n }\n\n const controlToFocus = controlsRef.current?.[nextPosition.weekIndex]?.[nextPosition.dayIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-day-placeholder')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex: nextPosition.weekIndex,\n dayIndex: nextPosition.dayIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nexport interface HandleMonthViewKeyDownInput {\n controlsRef: MonthViewControlsRef;\n weekIndex: number;\n dayIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleMonthViewKeyDown({\n controlsRef,\n weekIndex,\n dayIndex,\n event,\n}: HandleMonthViewKeyDownInput): void {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n if (!size) {\n return;\n }\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n weekIndex,\n dayIndex,\n size,\n });\n }\n}\n"],"mappings":";;AAYA,SAAS,aAAa,KAA6C;AACjE,SAAQ,KAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAS,gBAAgB,aAAoD;AAC3E,KAAI,CAAC,YAAY,QACf,QAAO;AAET,QAAO,YAAY,QAAQ,KAAK,SAAU,OAAO,KAAK,SAAS,EAAG;;AAUpE,SAAS,gBAAgB,EACvB,WACA,WACA,UACA,QAC2C;CAC3C,MAAM,kBAAkB,KAAK;AAC7B,KAAI,CAAC,gBACH,QAAO;AAGT,SAAQ,WAAR;EACE,KAAK,MAAM;AACT,OAAI,cAAc,EAChB,QAAO;GAGT,MAAM,eAAe,KAAK,YAAY;GACtC,MAAM,kBAAkB,KAAK,IAAI,UAAU,eAAe,EAAE;AAC5D,UAAO;IACL,WAAW,YAAY;IACvB,UAAU;IACX;;EAGH,KAAK,QAAQ;AACX,OAAI,cAAc,KAAK,SAAS,EAC9B,QAAO;GAGT,MAAM,eAAe,KAAK,YAAY;GACtC,MAAM,kBAAkB,KAAK,IAAI,UAAU,eAAe,EAAE;AAC5D,UAAO;IACL,WAAW,YAAY;IACvB,UAAU;IACX;;EAGH,KAAK;AACH,OAAI,aAAa,GAAG;AAClB,QAAI,cAAc,EAChB,QAAO;AAGT,WAAO;KACL,WAAW,YAAY;KACvB,UAAU,KAAK,YAAY,KAAK;KACjC;;AAGH,UAAO;IACL;IACA,UAAU,WAAW;IACtB;EAGH,KAAK;AACH,OAAI,aAAa,kBAAkB,GAAG;AACpC,QAAI,cAAc,KAAK,SAAS,EAC9B,QAAO;AAGT,WAAO;KACL,WAAW,YAAY;KACvB,UAAU;KACX;;AAGH,UAAO;IACL;IACA,UAAU,WAAW;IACtB;EAGH,QACE,QAAO;;;AAYb,SAAS,4BAA4B,EACnC,aACA,WACA,WACA,UACA,QACgC;CAChC,MAAM,eAAe,gBAAgB;EACnC;EACA;EACA;EACA;EACD,CAAC;AAEF,KAAI,CAAC,aACH;CAGF,MAAM,iBAAiB,YAAY,UAAU,aAAa,aAAa,aAAa;AAEpF,KAAI,CAAC,eACH;AAGF,KACE,eAAe,YACf,eAAe,aAAa,cAAc,IAC1C,eAAe,aAAa,uBAAuB,CAEnD,6BAA4B;EAC1B;EACA;EACA,WAAW,aAAa;EACxB,UAAU,aAAa;EACvB;EACD,CAAC;KAEF,gBAAe,OAAO;;AAW1B,SAAgB,uBAAuB,EACrC,aACA,WACA,UACA,SACoC;CACpC,MAAM,YAAY,aAAa,MAAM,IAAI;AAEzC,KAAI,WAAW;AACb,QAAM,gBAAgB;EAEtB,MAAM,OAAO,gBAAgB,YAAY;AAEzC,MAAI,CAAC,KACH;AAGF,8BAA4B;GAC1B;GACA;GACA;GACA;GACA;GACD,CAAC"}
@@ -1,122 +1,89 @@
1
- 'use client';
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import { factory, useProps, useStyles, Modal, Popover, UnstyledButton } from '@mantine/core';
4
- import { useDisclosure } from '@mantine/hooks';
5
- import { getLabel } from '../../labels.mjs';
6
- import { ScheduleEvent } from '../ScheduleEvent/ScheduleEvent.mjs';
7
- import classes from './MoreEvents.module.css.mjs';
8
-
9
- const defaultProps = {
10
- dropdownType: "popover"
11
- };
1
+ "use client";
2
+ import { getLabel } from "../../labels.mjs";
3
+ import { ScheduleEvent } from "../ScheduleEvent/ScheduleEvent.mjs";
4
+ import MoreEvents_module_default from "./MoreEvents.module.mjs";
5
+ import { Modal, Popover, UnstyledButton, factory, useProps, useStyles } from "@mantine/core";
6
+ import { useDisclosure } from "@mantine/hooks";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ //#region packages/@mantine/schedule/src/components/MoreEvents/MoreEvents.tsx
9
+ const defaultProps = { dropdownType: "popover" };
12
10
  const MoreEvents = factory((_props) => {
13
- const props = useProps("MoreEvents", defaultProps, _props);
14
- const {
15
- classNames,
16
- className,
17
- style,
18
- styles,
19
- unstyled,
20
- vars,
21
- attributes,
22
- radius,
23
- dropdownType,
24
- events,
25
- moreEventsCount,
26
- popoverProps,
27
- modalProps,
28
- onDropdownClose,
29
- children,
30
- modalTitle,
31
- renderEventBody,
32
- id,
33
- labels,
34
- mode,
35
- ...others
36
- } = props;
37
- const [dropdownOpened, dropdownHandlers] = useDisclosure();
38
- const getStyles = useStyles({
39
- name: "MoreEvents",
40
- classes,
41
- props,
42
- className,
43
- style,
44
- classNames,
45
- styles,
46
- unstyled,
47
- attributes,
48
- vars,
49
- rootSelector: "moreEventsButton"
50
- });
51
- const handleClose = () => {
52
- dropdownHandlers.close();
53
- onDropdownClose?.();
54
- };
55
- const eventsList = /* @__PURE__ */ jsx("div", { ...getStyles("moreEventsList"), children: events.map((event) => /* @__PURE__ */ jsx(
56
- ScheduleEvent,
57
- {
58
- radius,
59
- event,
60
- size: "md",
61
- renderEventBody,
62
- mode,
63
- children: event.title
64
- },
65
- event.id
66
- )) });
67
- return /* @__PURE__ */ jsxs(Fragment, { children: [
68
- dropdownType === "modal" && /* @__PURE__ */ jsx(
69
- Modal,
70
- {
71
- opened: dropdownOpened,
72
- onClose: handleClose,
73
- unstyled,
74
- radius,
75
- title: modalTitle,
76
- ...modalProps,
77
- children: eventsList
78
- }
79
- ),
80
- /* @__PURE__ */ jsxs(
81
- Popover,
82
- {
83
- position: "bottom-start",
84
- width: 260,
85
- opened: dropdownOpened,
86
- trapFocus: true,
87
- returnFocus: false,
88
- unstyled,
89
- disabled: popoverProps?.disabled || dropdownType === "modal",
90
- radius,
91
- transitionProps: { transition: "pop", duration: 120 },
92
- offset: -46,
93
- id,
94
- ...popoverProps,
95
- onChange: (_opened) => {
96
- if (!_opened) {
97
- popoverProps?.onChange?.(_opened);
98
- handleClose();
99
- }
100
- },
101
- children: [
102
- /* @__PURE__ */ jsx(Popover.Target, { children: /* @__PURE__ */ jsx(
103
- UnstyledButton,
104
- {
105
- ...getStyles("moreEventsButton"),
106
- mod: { static: mode === "static" },
107
- onClick: () => dropdownHandlers.toggle(),
108
- ...others,
109
- children: getLabel("moreLabel", labels)(moreEventsCount)
110
- }
111
- ) }),
112
- /* @__PURE__ */ jsx(Popover.Dropdown, { ...getStyles("moreEventsDropdown"), children: eventsList })
113
- ]
114
- }
115
- )
116
- ] });
11
+ const props = useProps("MoreEvents", defaultProps, _props);
12
+ const { classNames, className, style, styles, unstyled, vars, attributes, radius, dropdownType, events, moreEventsCount, popoverProps, modalProps, onDropdownClose, children, modalTitle, renderEventBody, id, labels, mode, ...others } = props;
13
+ const [dropdownOpened, dropdownHandlers] = useDisclosure();
14
+ const getStyles = useStyles({
15
+ name: "MoreEvents",
16
+ classes: MoreEvents_module_default,
17
+ props,
18
+ className,
19
+ style,
20
+ classNames,
21
+ styles,
22
+ unstyled,
23
+ attributes,
24
+ vars,
25
+ rootSelector: "moreEventsButton"
26
+ });
27
+ const handleClose = () => {
28
+ dropdownHandlers.close();
29
+ onDropdownClose?.();
30
+ };
31
+ const eventsList = /* @__PURE__ */ jsx("div", {
32
+ ...getStyles("moreEventsList"),
33
+ children: events.map((event) => /* @__PURE__ */ jsx(ScheduleEvent, {
34
+ radius,
35
+ event,
36
+ size: "md",
37
+ renderEventBody,
38
+ mode,
39
+ children: event.title
40
+ }, event.id))
41
+ });
42
+ return /* @__PURE__ */ jsxs(Fragment, { children: [dropdownType === "modal" && /* @__PURE__ */ jsx(Modal, {
43
+ opened: dropdownOpened,
44
+ onClose: handleClose,
45
+ unstyled,
46
+ radius,
47
+ title: modalTitle,
48
+ ...modalProps,
49
+ children: eventsList
50
+ }), /* @__PURE__ */ jsxs(Popover, {
51
+ position: "bottom-start",
52
+ width: 260,
53
+ opened: dropdownOpened,
54
+ trapFocus: true,
55
+ returnFocus: false,
56
+ unstyled,
57
+ disabled: popoverProps?.disabled || dropdownType === "modal",
58
+ radius,
59
+ transitionProps: {
60
+ transition: "pop",
61
+ duration: 120
62
+ },
63
+ offset: -46,
64
+ id,
65
+ ...popoverProps,
66
+ onChange: (_opened) => {
67
+ if (!_opened) {
68
+ popoverProps?.onChange?.(_opened);
69
+ handleClose();
70
+ }
71
+ },
72
+ children: [/* @__PURE__ */ jsx(Popover.Target, { children: /* @__PURE__ */ jsx(UnstyledButton, {
73
+ ...getStyles("moreEventsButton"),
74
+ mod: { static: mode === "static" },
75
+ onClick: () => dropdownHandlers.toggle(),
76
+ ...others,
77
+ children: getLabel("moreLabel", labels)(moreEventsCount)
78
+ }) }), /* @__PURE__ */ jsx(Popover.Dropdown, {
79
+ ...getStyles("moreEventsDropdown"),
80
+ children: eventsList
81
+ })]
82
+ })] });
117
83
  });
118
84
  MoreEvents.displayName = "@mantine/schedule/MoreEvents";
119
- MoreEvents.classes = classes;
120
-
85
+ MoreEvents.classes = MoreEvents_module_default;
86
+ //#endregion
121
87
  export { MoreEvents };
122
- //# sourceMappingURL=MoreEvents.mjs.map
88
+
89
+ //# sourceMappingURL=MoreEvents.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreEvents.mjs","sources":["../../../src/components/MoreEvents/MoreEvents.tsx"],"sourcesContent":["import {\n BoxProps,\n ElementProps,\n factory,\n Factory,\n MantineRadius,\n Modal,\n ModalProps,\n Popover,\n PopoverProps,\n StylesApiProps,\n UnstyledButton,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport { useDisclosure } from '@mantine/hooks';\nimport { getLabel, ScheduleLabelsOverride } from '../../labels';\nimport { ScheduleEventData, ScheduleMode } from '../../types';\nimport { RenderEventBody, ScheduleEvent } from '../ScheduleEvent/ScheduleEvent';\nimport classes from './MoreEvents.module.css';\n\nexport type MoreEventsDropdownType = 'popover' | 'modal';\n\nexport type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsList' | 'moreEventsDropdown';\n\nexport interface MoreEventsProps\n extends BoxProps, StylesApiProps<MoreEventsFactory>, ElementProps<'button'> {\n /** List of events to display */\n events: ScheduleEventData[];\n\n /** Events count to use for `+X more` label */\n moreEventsCount: number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Title for the Modal component, ignored if `dropdownType` is not 'modal' */\n modalTitle?: string;\n\n /** Type of dropdown to use for displaying more events @default 'popover' */\n dropdownType?: MoreEventsDropdownType;\n\n /** Props passed down to `Popover` component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Props passed down to `Modal` component */\n modalProps?: Partial<Omit<ModalProps, 'children'>>;\n\n /** Called when the dropdown is closed */\n onDropdownClose?: () => void;\n\n /** Function to customize event body, `event` object is passed as first argument */\n renderEventBody?: RenderEventBody;\n\n /** Labels override */\n labels?: ScheduleLabelsOverride;\n\n /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */\n mode?: ScheduleMode;\n}\n\nexport type MoreEventsFactory = Factory<{\n props: MoreEventsProps;\n ref: HTMLButtonElement;\n stylesNames: MoreEventsStylesNames;\n}>;\n\nconst defaultProps = {\n dropdownType: 'popover',\n} satisfies Partial<MoreEventsProps>;\n\nexport const MoreEvents = factory<MoreEventsFactory>((_props) => {\n const props = useProps('MoreEvents', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n attributes,\n radius,\n dropdownType,\n events,\n moreEventsCount,\n popoverProps,\n modalProps,\n onDropdownClose,\n children,\n modalTitle,\n renderEventBody,\n id,\n labels,\n mode,\n ...others\n } = props;\n const [dropdownOpened, dropdownHandlers] = useDisclosure();\n\n const getStyles = useStyles<MoreEventsFactory>({\n name: 'MoreEvents',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n rootSelector: 'moreEventsButton',\n });\n\n const handleClose = () => {\n dropdownHandlers.close();\n onDropdownClose?.();\n };\n\n const eventsList = (\n <div {...getStyles('moreEventsList')}>\n {events.map((event) => (\n <ScheduleEvent\n key={event.id}\n radius={radius}\n event={event}\n size=\"md\"\n renderEventBody={renderEventBody}\n mode={mode}\n >\n {event.title}\n </ScheduleEvent>\n ))}\n </div>\n );\n\n return (\n <>\n {dropdownType === 'modal' && (\n <Modal\n opened={dropdownOpened}\n onClose={handleClose}\n unstyled={unstyled}\n radius={radius}\n title={modalTitle}\n {...modalProps}\n >\n {eventsList}\n </Modal>\n )}\n\n <Popover\n position=\"bottom-start\"\n width={260}\n opened={dropdownOpened}\n trapFocus\n returnFocus={false}\n unstyled={unstyled}\n disabled={popoverProps?.disabled || dropdownType === 'modal'}\n radius={radius}\n transitionProps={{ transition: 'pop', duration: 120 }}\n offset={-46}\n id={id}\n {...popoverProps}\n onChange={(_opened) => {\n if (!_opened) {\n popoverProps?.onChange?.(_opened);\n handleClose();\n }\n }}\n >\n <Popover.Target>\n <UnstyledButton\n {...getStyles('moreEventsButton')}\n mod={{ static: mode === 'static' }}\n onClick={() => dropdownHandlers.toggle()}\n {...others}\n >\n {getLabel('moreLabel', labels)(moreEventsCount)}\n </UnstyledButton>\n </Popover.Target>\n\n <Popover.Dropdown {...getStyles('moreEventsDropdown')}>{eventsList}</Popover.Dropdown>\n </Popover>\n </>\n );\n});\n\nMoreEvents.displayName = '@mantine/schedule/MoreEvents';\nMoreEvents.classes = classes;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoreEvents.mjs","names":["classes"],"sources":["../../../src/components/MoreEvents/MoreEvents.tsx"],"sourcesContent":["import {\n BoxProps,\n ElementProps,\n factory,\n Factory,\n MantineRadius,\n Modal,\n ModalProps,\n Popover,\n PopoverProps,\n StylesApiProps,\n UnstyledButton,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport { useDisclosure } from '@mantine/hooks';\nimport { getLabel, ScheduleLabelsOverride } from '../../labels';\nimport { ScheduleEventData, ScheduleMode } from '../../types';\nimport { RenderEventBody, ScheduleEvent } from '../ScheduleEvent/ScheduleEvent';\nimport classes from './MoreEvents.module.css';\n\nexport type MoreEventsDropdownType = 'popover' | 'modal';\n\nexport type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsList' | 'moreEventsDropdown';\n\nexport interface MoreEventsProps\n extends BoxProps, StylesApiProps<MoreEventsFactory>, ElementProps<'button'> {\n /** List of events to display */\n events: ScheduleEventData[];\n\n /** Events count to use for `+X more` label */\n moreEventsCount: number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Title for the Modal component, ignored if `dropdownType` is not 'modal' */\n modalTitle?: string;\n\n /** Type of dropdown to use for displaying more events @default 'popover' */\n dropdownType?: MoreEventsDropdownType;\n\n /** Props passed down to `Popover` component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Props passed down to `Modal` component */\n modalProps?: Partial<Omit<ModalProps, 'children'>>;\n\n /** Called when the dropdown is closed */\n onDropdownClose?: () => void;\n\n /** Function to customize event body, `event` object is passed as first argument */\n renderEventBody?: RenderEventBody;\n\n /** Labels override */\n labels?: ScheduleLabelsOverride;\n\n /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */\n mode?: ScheduleMode;\n}\n\nexport type MoreEventsFactory = Factory<{\n props: MoreEventsProps;\n ref: HTMLButtonElement;\n stylesNames: MoreEventsStylesNames;\n}>;\n\nconst defaultProps = {\n dropdownType: 'popover',\n} satisfies Partial<MoreEventsProps>;\n\nexport const MoreEvents = factory<MoreEventsFactory>((_props) => {\n const props = useProps('MoreEvents', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n attributes,\n radius,\n dropdownType,\n events,\n moreEventsCount,\n popoverProps,\n modalProps,\n onDropdownClose,\n children,\n modalTitle,\n renderEventBody,\n id,\n labels,\n mode,\n ...others\n } = props;\n const [dropdownOpened, dropdownHandlers] = useDisclosure();\n\n const getStyles = useStyles<MoreEventsFactory>({\n name: 'MoreEvents',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n rootSelector: 'moreEventsButton',\n });\n\n const handleClose = () => {\n dropdownHandlers.close();\n onDropdownClose?.();\n };\n\n const eventsList = (\n <div {...getStyles('moreEventsList')}>\n {events.map((event) => (\n <ScheduleEvent\n key={event.id}\n radius={radius}\n event={event}\n size=\"md\"\n renderEventBody={renderEventBody}\n mode={mode}\n >\n {event.title}\n </ScheduleEvent>\n ))}\n </div>\n );\n\n return (\n <>\n {dropdownType === 'modal' && (\n <Modal\n opened={dropdownOpened}\n onClose={handleClose}\n unstyled={unstyled}\n radius={radius}\n title={modalTitle}\n {...modalProps}\n >\n {eventsList}\n </Modal>\n )}\n\n <Popover\n position=\"bottom-start\"\n width={260}\n opened={dropdownOpened}\n trapFocus\n returnFocus={false}\n unstyled={unstyled}\n disabled={popoverProps?.disabled || dropdownType === 'modal'}\n radius={radius}\n transitionProps={{ transition: 'pop', duration: 120 }}\n offset={-46}\n id={id}\n {...popoverProps}\n onChange={(_opened) => {\n if (!_opened) {\n popoverProps?.onChange?.(_opened);\n handleClose();\n }\n }}\n >\n <Popover.Target>\n <UnstyledButton\n {...getStyles('moreEventsButton')}\n mod={{ static: mode === 'static' }}\n onClick={() => dropdownHandlers.toggle()}\n {...others}\n >\n {getLabel('moreLabel', labels)(moreEventsCount)}\n </UnstyledButton>\n </Popover.Target>\n\n <Popover.Dropdown {...getStyles('moreEventsDropdown')}>{eventsList}</Popover.Dropdown>\n </Popover>\n </>\n );\n});\n\nMoreEvents.displayName = '@mantine/schedule/MoreEvents';\nMoreEvents.classes = classes;\n"],"mappings":";;;;;;;;AAmEA,MAAM,eAAe,EACnB,cAAc,WACf;AAED,MAAa,aAAa,SAA4B,WAAW;CAC/D,MAAM,QAAQ,SAAS,cAAc,cAAc,OAAO;CAC1D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,YACA,QACA,cACA,QACA,iBACA,cACA,YACA,iBACA,UACA,YACA,iBACA,IACA,QACA,MACA,GAAG,WACD;CACJ,MAAM,CAAC,gBAAgB,oBAAoB,eAAe;CAE1D,MAAM,YAAY,UAA6B;EAC7C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACf,CAAC;CAEF,MAAM,oBAAoB;AACxB,mBAAiB,OAAO;AACxB,qBAAmB;;CAGrB,MAAM,aACJ,oBAAC,OAAD;EAAK,GAAI,UAAU,iBAAiB;YACjC,OAAO,KAAK,UACX,oBAAC,eAAD;GAEU;GACD;GACP,MAAK;GACY;GACX;aAEL,MAAM;GACO,EART,MAAM,GAQG,CAChB;EACE,CAAA;AAGR,QACE,qBAAA,UAAA,EAAA,UAAA,CACG,iBAAiB,WAChB,oBAAC,OAAD;EACE,QAAQ;EACR,SAAS;EACC;EACF;EACR,OAAO;EACP,GAAI;YAEH;EACK,CAAA,EAGV,qBAAC,SAAD;EACE,UAAS;EACT,OAAO;EACP,QAAQ;EACR,WAAA;EACA,aAAa;EACH;EACV,UAAU,cAAc,YAAY,iBAAiB;EAC7C;EACR,iBAAiB;GAAE,YAAY;GAAO,UAAU;GAAK;EACrD,QAAQ;EACJ;EACJ,GAAI;EACJ,WAAW,YAAY;AACrB,OAAI,CAAC,SAAS;AACZ,kBAAc,WAAW,QAAQ;AACjC,iBAAa;;;YAhBnB,CAoBE,oBAAC,QAAQ,QAAT,EAAA,UACE,oBAAC,gBAAD;GACE,GAAI,UAAU,mBAAmB;GACjC,KAAK,EAAE,QAAQ,SAAS,UAAU;GAClC,eAAe,iBAAiB,QAAQ;GACxC,GAAI;aAEH,SAAS,aAAa,OAAO,CAAC,gBAAgB;GAChC,CAAA,EACF,CAAA,EAEjB,oBAAC,QAAQ,UAAT;GAAkB,GAAI,UAAU,qBAAqB;aAAG;GAA8B,CAAA,CAC9E;IACT,EAAA,CAAA;EAEL;AAEF,WAAW,cAAc;AACzB,WAAW,UAAUA"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ //#region packages/@mantine/schedule/src/components/MoreEvents/MoreEvents.module.css
3
+ var MoreEvents_module_default = {
4
+ "moreEventsButton": "m_c958249f",
5
+ "moreEventsDropdown": "m_fc2b9a3e",
6
+ "moreEventsList": "m_89f3254b"
7
+ };
8
+ //#endregion
9
+ export { MoreEvents_module_default as default };
10
+
11
+ //# sourceMappingURL=MoreEvents.module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoreEvents.module.mjs","names":[],"sources":["../../../src/components/MoreEvents/MoreEvents.module.css"],"sourcesContent":[".moreEventsButton {\n color: var(--mantine-color-dimmed);\n font-size: 13px;\n pointer-events: all;\n flex: 1;\n\n @mixin hover {\n color: var(--mantine-color-bright);\n text-decoration: underline;\n }\n\n &:where([data-static]) {\n cursor: default;\n\n @mixin hover {\n color: var(--mantine-color-dimmed);\n text-decoration: none;\n }\n }\n}\n\n.moreEventsDropdown {\n padding: 4px;\n}\n\n.moreEventsList {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n"],"mappings":""}