@mantine/schedule 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/README.md +21 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +107 -0
  3. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -0
  4. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +7 -0
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +1 -0
  6. package/cjs/components/DayView/DayView.cjs +404 -0
  7. package/cjs/components/DayView/DayView.cjs.map +1 -0
  8. package/cjs/components/DayView/DayView.module.css.cjs +7 -0
  9. package/cjs/components/DayView/DayView.module.css.cjs.map +1 -0
  10. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +108 -0
  11. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -0
  12. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +52 -0
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -0
  14. package/cjs/components/DragContext/DragContext.cjs +9 -0
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -0
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +295 -0
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -0
  18. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +7 -0
  19. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +1 -0
  20. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +54 -0
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -0
  22. package/cjs/components/MonthView/MonthView.cjs +410 -0
  23. package/cjs/components/MonthView/MonthView.cjs.map +1 -0
  24. package/cjs/components/MonthView/MonthView.module.css.cjs +7 -0
  25. package/cjs/components/MonthView/MonthView.module.css.cjs.map +1 -0
  26. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +26 -0
  27. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -0
  28. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +37 -0
  29. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -0
  30. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +31 -0
  31. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -0
  32. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +83 -0
  33. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -0
  34. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +46 -0
  35. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -0
  36. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +40 -0
  37. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -0
  38. package/cjs/components/MonthView/handle-month-view-key-down.cjs +147 -0
  39. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -0
  40. package/cjs/components/MoreEvents/MoreEvents.cjs +124 -0
  41. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -0
  42. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +7 -0
  43. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +1 -0
  44. package/cjs/components/Schedule/Schedule.cjs +168 -0
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -0
  46. package/cjs/components/Schedule/Schedule.module.css.cjs +7 -0
  47. package/cjs/components/Schedule/Schedule.module.css.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +126 -0
  49. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -0
  50. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +7 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +1 -0
  52. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +91 -0
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -0
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +7 -0
  55. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +1 -0
  56. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +195 -0
  57. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -0
  58. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +7 -0
  59. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +1 -0
  60. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +59 -0
  61. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -0
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +7 -0
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +1 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +86 -0
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -0
  66. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +131 -0
  67. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -0
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +7 -0
  69. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +1 -0
  70. package/cjs/components/WeekView/WeekView.cjs +557 -0
  71. package/cjs/components/WeekView/WeekView.cjs.map +1 -0
  72. package/cjs/components/WeekView/WeekView.module.css.cjs +7 -0
  73. package/cjs/components/WeekView/WeekView.module.css.cjs.map +1 -0
  74. package/cjs/components/WeekView/WeekViewDay.cjs +100 -0
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -0
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +36 -0
  77. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -0
  78. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +31 -0
  79. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -0
  80. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +31 -0
  81. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -0
  82. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +33 -0
  83. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -0
  84. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +19 -0
  85. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -0
  86. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +24 -0
  87. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -0
  88. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +36 -0
  89. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -0
  90. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +42 -0
  91. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -0
  92. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +19 -0
  93. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -0
  94. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +32 -0
  95. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -0
  96. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +142 -0
  97. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -0
  98. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +12 -0
  99. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -0
  100. package/cjs/components/WeekView/handle-week-view-key-down.cjs +135 -0
  101. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -0
  102. package/cjs/components/YearView/YearView.cjs +216 -0
  103. package/cjs/components/YearView/YearView.cjs.map +1 -0
  104. package/cjs/components/YearView/YearView.module.css.cjs +7 -0
  105. package/cjs/components/YearView/YearView.module.css.cjs.map +1 -0
  106. package/cjs/components/YearView/YearViewMonth.cjs +158 -0
  107. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -0
  108. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +52 -0
  109. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -0
  110. package/cjs/components/YearView/handle-year-view-key-down.cjs +210 -0
  111. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -0
  112. package/cjs/hooks/use-drag-drop-handlers.cjs +107 -0
  113. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -0
  114. package/cjs/hooks/use-drag-state.cjs +47 -0
  115. package/cjs/hooks/use-drag-state.cjs.map +1 -0
  116. package/cjs/hooks/use-slot-drag-select.cjs +91 -0
  117. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -0
  118. package/cjs/index.cjs +101 -0
  119. package/cjs/index.cjs.map +1 -0
  120. package/cjs/labels.cjs +34 -0
  121. package/cjs/labels.cjs.map +1 -0
  122. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +38 -0
  123. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -0
  124. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +26 -0
  125. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -0
  126. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +11 -0
  127. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -0
  128. package/cjs/utils/format-date/format-date.cjs +18 -0
  129. package/cjs/utils/format-date/format-date.cjs.map +1 -0
  130. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +24 -0
  131. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -0
  132. package/cjs/utils/get-current-time-position/get-current-time-position.cjs +28 -0
  133. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -0
  134. package/cjs/utils/get-day-position/get-day-position.cjs +37 -0
  135. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -0
  136. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +47 -0
  137. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -0
  138. package/cjs/utils/get-end-of-week/get-end-of-week.cjs +23 -0
  139. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -0
  140. package/cjs/utils/get-month-days/get-month-days.cjs +49 -0
  141. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -0
  142. package/cjs/utils/get-month-range/get-month-range.cjs +32 -0
  143. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -0
  144. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +24 -0
  145. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -0
  146. package/cjs/utils/get-months-list/get-months-list.cjs +21 -0
  147. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -0
  148. package/cjs/utils/get-start-of-week/get-start-of-week.cjs +19 -0
  149. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -0
  150. package/cjs/utils/get-visible-events/get-visible-events.cjs +18 -0
  151. package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -0
  152. package/cjs/utils/get-week-days/get-week-days.cjs +32 -0
  153. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -0
  154. package/cjs/utils/get-week-number/get-week-number.cjs +22 -0
  155. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -0
  156. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +25 -0
  157. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -0
  158. package/cjs/utils/get-years-list/get-years-list.cjs +13 -0
  159. package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -0
  160. package/cjs/utils/is-after-min-date/is-after-min-date.cjs +15 -0
  161. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -0
  162. package/cjs/utils/is-all-day-event/is-all-day-event.cjs +19 -0
  163. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -0
  164. package/cjs/utils/is-before-max-date/is-before-max-date.cjs +15 -0
  165. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -0
  166. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +30 -0
  167. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -0
  168. package/cjs/utils/is-events-overlap/is-events-overlap.cjs +19 -0
  169. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -0
  170. package/cjs/utils/is-in-time-range/is-in-time-range.cjs +25 -0
  171. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -0
  172. package/cjs/utils/is-multiday-event/is-multiday-event.cjs +17 -0
  173. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -0
  174. package/cjs/utils/is-same-month/is-same-month.cjs +15 -0
  175. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -0
  176. package/cjs/utils/is-within-week/is-within-week.cjs +18 -0
  177. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -0
  178. package/cjs/utils/next-week/next-week.cjs +18 -0
  179. package/cjs/utils/next-week/next-week.cjs.map +1 -0
  180. package/cjs/utils/parse-time-string/parse-time-string.cjs +10 -0
  181. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -0
  182. package/cjs/utils/previous-week/previous-week.cjs +18 -0
  183. package/cjs/utils/previous-week/previous-week.cjs.map +1 -0
  184. package/cjs/utils/sort-events/sort-events.cjs +21 -0
  185. package/cjs/utils/sort-events/sort-events.cjs.map +1 -0
  186. package/cjs/utils/to-date-string/to-date-string.cjs +15 -0
  187. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -0
  188. package/cjs/utils/to-time-string/to-time-string.cjs +9 -0
  189. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -0
  190. package/cjs/utils/validate-event/validate-event.cjs +26 -0
  191. package/cjs/utils/validate-event/validate-event.cjs.map +1 -0
  192. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +101 -0
  193. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -0
  194. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +5 -0
  195. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +1 -0
  196. package/esm/components/DayView/DayView.mjs +398 -0
  197. package/esm/components/DayView/DayView.mjs.map +1 -0
  198. package/esm/components/DayView/DayView.module.css.mjs +5 -0
  199. package/esm/components/DayView/DayView.module.css.mjs.map +1 -0
  200. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +106 -0
  201. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -0
  202. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +46 -0
  203. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -0
  204. package/esm/components/DragContext/DragContext.mjs +7 -0
  205. package/esm/components/DragContext/DragContext.mjs.map +1 -0
  206. package/esm/components/MobileMonthView/MobileMonthView.mjs +288 -0
  207. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -0
  208. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +5 -0
  209. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +1 -0
  210. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +48 -0
  211. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -0
  212. package/esm/components/MonthView/MonthView.mjs +404 -0
  213. package/esm/components/MonthView/MonthView.mjs.map +1 -0
  214. package/esm/components/MonthView/MonthView.module.css.mjs +5 -0
  215. package/esm/components/MonthView/MonthView.module.css.mjs.map +1 -0
  216. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +24 -0
  217. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -0
  218. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +35 -0
  219. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -0
  220. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +25 -0
  221. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -0
  222. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +77 -0
  223. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -0
  224. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +40 -0
  225. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -0
  226. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +34 -0
  227. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -0
  228. package/esm/components/MonthView/handle-month-view-key-down.mjs +145 -0
  229. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -0
  230. package/esm/components/MoreEvents/MoreEvents.mjs +122 -0
  231. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -0
  232. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +5 -0
  233. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +1 -0
  234. package/esm/components/Schedule/Schedule.mjs +166 -0
  235. package/esm/components/Schedule/Schedule.mjs.map +1 -0
  236. package/esm/components/Schedule/Schedule.module.css.mjs +5 -0
  237. package/esm/components/Schedule/Schedule.module.css.mjs.map +1 -0
  238. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +124 -0
  239. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -0
  240. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +5 -0
  241. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +1 -0
  242. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +86 -0
  243. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -0
  244. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +5 -0
  245. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +1 -0
  246. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +193 -0
  247. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -0
  248. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +5 -0
  249. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +1 -0
  250. package/esm/components/ScheduleHeader/ScheduleHeader.mjs +57 -0
  251. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -0
  252. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +5 -0
  253. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +1 -0
  254. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +84 -0
  255. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -0
  256. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +129 -0
  257. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -0
  258. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +5 -0
  259. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +1 -0
  260. package/esm/components/WeekView/WeekView.mjs +551 -0
  261. package/esm/components/WeekView/WeekView.mjs.map +1 -0
  262. package/esm/components/WeekView/WeekView.module.css.mjs +5 -0
  263. package/esm/components/WeekView/WeekView.module.css.mjs.map +1 -0
  264. package/esm/components/WeekView/WeekViewDay.mjs +94 -0
  265. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -0
  266. package/esm/components/WeekView/get-week-label/get-week-label.mjs +30 -0
  267. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -0
  268. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +29 -0
  269. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -0
  270. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +25 -0
  271. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -0
  272. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +27 -0
  273. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -0
  274. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +13 -0
  275. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -0
  276. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +22 -0
  277. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -0
  278. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +34 -0
  279. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -0
  280. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +40 -0
  281. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -0
  282. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +13 -0
  283. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -0
  284. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +26 -0
  285. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -0
  286. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +136 -0
  287. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -0
  288. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +10 -0
  289. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -0
  290. package/esm/components/WeekView/handle-week-view-key-down.mjs +133 -0
  291. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -0
  292. package/esm/components/YearView/YearView.mjs +210 -0
  293. package/esm/components/YearView/YearView.mjs.map +1 -0
  294. package/esm/components/YearView/YearView.module.css.mjs +5 -0
  295. package/esm/components/YearView/YearView.module.css.mjs.map +1 -0
  296. package/esm/components/YearView/YearViewMonth.mjs +152 -0
  297. package/esm/components/YearView/YearViewMonth.mjs.map +1 -0
  298. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +46 -0
  299. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -0
  300. package/esm/components/YearView/handle-year-view-key-down.mjs +208 -0
  301. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -0
  302. package/esm/hooks/use-drag-drop-handlers.mjs +101 -0
  303. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -0
  304. package/esm/hooks/use-drag-state.mjs +45 -0
  305. package/esm/hooks/use-drag-state.mjs.map +1 -0
  306. package/esm/hooks/use-slot-drag-select.mjs +89 -0
  307. package/esm/hooks/use-slot-drag-select.mjs.map +1 -0
  308. package/esm/index.mjs +48 -0
  309. package/esm/index.mjs.map +1 -0
  310. package/esm/labels.mjs +31 -0
  311. package/esm/labels.mjs.map +1 -0
  312. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +32 -0
  313. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -0
  314. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +20 -0
  315. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -0
  316. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -0
  317. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -0
  318. package/esm/utils/format-date/format-date.mjs +12 -0
  319. package/esm/utils/format-date/format-date.mjs.map +1 -0
  320. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +22 -0
  321. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -0
  322. package/esm/utils/get-current-time-position/get-current-time-position.mjs +22 -0
  323. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -0
  324. package/esm/utils/get-day-position/get-day-position.mjs +31 -0
  325. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -0
  326. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +45 -0
  327. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -0
  328. package/esm/utils/get-end-of-week/get-end-of-week.mjs +17 -0
  329. package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -0
  330. package/esm/utils/get-month-days/get-month-days.mjs +43 -0
  331. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -0
  332. package/esm/utils/get-month-range/get-month-range.mjs +26 -0
  333. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -0
  334. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +18 -0
  335. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -0
  336. package/esm/utils/get-months-list/get-months-list.mjs +15 -0
  337. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -0
  338. package/esm/utils/get-start-of-week/get-start-of-week.mjs +13 -0
  339. package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -0
  340. package/esm/utils/get-visible-events/get-visible-events.mjs +16 -0
  341. package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -0
  342. package/esm/utils/get-week-days/get-week-days.mjs +26 -0
  343. package/esm/utils/get-week-days/get-week-days.mjs.map +1 -0
  344. package/esm/utils/get-week-number/get-week-number.mjs +15 -0
  345. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -0
  346. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +19 -0
  347. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -0
  348. package/esm/utils/get-years-list/get-years-list.mjs +11 -0
  349. package/esm/utils/get-years-list/get-years-list.mjs.map +1 -0
  350. package/esm/utils/is-after-min-date/is-after-min-date.mjs +9 -0
  351. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -0
  352. package/esm/utils/is-all-day-event/is-all-day-event.mjs +13 -0
  353. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -0
  354. package/esm/utils/is-before-max-date/is-before-max-date.mjs +9 -0
  355. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -0
  356. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +24 -0
  357. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -0
  358. package/esm/utils/is-events-overlap/is-events-overlap.mjs +13 -0
  359. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -0
  360. package/esm/utils/is-in-time-range/is-in-time-range.mjs +19 -0
  361. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -0
  362. package/esm/utils/is-multiday-event/is-multiday-event.mjs +11 -0
  363. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -0
  364. package/esm/utils/is-same-month/is-same-month.mjs +9 -0
  365. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -0
  366. package/esm/utils/is-within-week/is-within-week.mjs +12 -0
  367. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -0
  368. package/esm/utils/next-week/next-week.mjs +12 -0
  369. package/esm/utils/next-week/next-week.mjs.map +1 -0
  370. package/esm/utils/parse-time-string/parse-time-string.mjs +8 -0
  371. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -0
  372. package/esm/utils/previous-week/previous-week.mjs +12 -0
  373. package/esm/utils/previous-week/previous-week.mjs.map +1 -0
  374. package/esm/utils/sort-events/sort-events.mjs +15 -0
  375. package/esm/utils/sort-events/sort-events.mjs.map +1 -0
  376. package/esm/utils/to-date-string/to-date-string.mjs +9 -0
  377. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -0
  378. package/esm/utils/to-time-string/to-time-string.mjs +7 -0
  379. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -0
  380. package/esm/utils/validate-event/validate-event.mjs +20 -0
  381. package/esm/utils/validate-event/validate-event.mjs.map +1 -0
  382. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts +43 -0
  383. package/lib/components/CurrentTimeIndicator/index.d.ts +2 -0
  384. package/lib/components/DayView/DayView.d.ts +106 -0
  385. package/lib/components/DayView/get-day-view-events/get-day-positioned-events.d.ts +13 -0
  386. package/lib/components/DayView/get-day-view-events/get-day-view-events.d.ts +12 -0
  387. package/lib/components/DayView/index.d.ts +9 -0
  388. package/lib/components/DragContext/DragContext.d.ts +18 -0
  389. package/lib/components/DragContext/index.d.ts +2 -0
  390. package/lib/components/MobileMonthView/MobileMonthView.d.ts +94 -0
  391. package/lib/components/MobileMonthView/get-mobile-month-view-events.d.ts +8 -0
  392. package/lib/components/MobileMonthView/index.d.ts +2 -0
  393. package/lib/components/MonthView/MonthView.d.ts +103 -0
  394. package/lib/components/MonthView/get-month-view-events/add-event-to-day-groups.d.ts +14 -0
  395. package/lib/components/MonthView/get-month-view-events/calculate-event-position-in-week.d.ts +18 -0
  396. package/lib/components/MonthView/get-month-view-events/find-available-row.d.ts +10 -0
  397. package/lib/components/MonthView/get-month-view-events/get-month-positioned-events.d.ts +27 -0
  398. package/lib/components/MonthView/get-month-view-events/get-month-view-events.d.ts +16 -0
  399. package/lib/components/MonthView/get-month-view-events/get-weeks-in-range.d.ts +15 -0
  400. package/lib/components/MonthView/handle-month-view-key-down.d.ts +10 -0
  401. package/lib/components/MonthView/index.d.ts +9 -0
  402. package/lib/components/MoreEvents/MoreEvents.d.ts +40 -0
  403. package/lib/components/MoreEvents/index.d.ts +2 -0
  404. package/lib/components/Schedule/Schedule.d.ts +97 -0
  405. package/lib/components/Schedule/index.d.ts +2 -0
  406. package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +54 -0
  407. package/lib/components/ScheduleEvent/index.d.ts +2 -0
  408. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +43 -0
  409. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.d.ts +52 -0
  410. package/lib/components/ScheduleHeader/ScheduleHeader.d.ts +40 -0
  411. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +53 -0
  412. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.d.ts +27 -0
  413. package/lib/components/ScheduleHeader/index.d.ts +2 -0
  414. package/lib/components/WeekView/WeekView.d.ts +119 -0
  415. package/lib/components/WeekView/WeekViewDay.d.ts +58 -0
  416. package/lib/components/WeekView/get-week-label/get-week-label.d.ts +13 -0
  417. package/lib/components/WeekView/get-week-view-events/assign-event-rows.d.ts +2 -0
  418. package/lib/components/WeekView/get-week-view-events/calculate-all-day-event-offset.d.ts +11 -0
  419. package/lib/components/WeekView/get-week-view-events/calculate-all-day-event-width.d.ts +12 -0
  420. package/lib/components/WeekView/get-week-view-events/calculate-event-days.d.ts +9 -0
  421. package/lib/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.d.ts +2 -0
  422. package/lib/components/WeekView/get-week-view-events/filter-week-view-events.d.ts +14 -0
  423. package/lib/components/WeekView/get-week-view-events/find-available-column.d.ts +9 -0
  424. package/lib/components/WeekView/get-week-view-events/get-event-end-date.d.ts +3 -0
  425. package/lib/components/WeekView/get-week-view-events/get-hanging-status.d.ts +9 -0
  426. package/lib/components/WeekView/get-week-view-events/get-week-positioned-events.d.ts +23 -0
  427. package/lib/components/WeekView/get-week-view-events/get-week-view-events.d.ts +7 -0
  428. package/lib/components/WeekView/handle-week-view-key-down.d.ts +10 -0
  429. package/lib/components/WeekView/index.d.ts +9 -0
  430. package/lib/components/YearView/YearView.d.ts +51 -0
  431. package/lib/components/YearView/YearViewMonth.d.ts +62 -0
  432. package/lib/components/YearView/get-year-view-events/get-year-view-events.d.ts +8 -0
  433. package/lib/components/YearView/handle-year-view-key-down.d.ts +11 -0
  434. package/lib/components/YearView/index.d.ts +9 -0
  435. package/lib/hooks/index.d.ts +5 -0
  436. package/lib/hooks/use-drag-drop-handlers.d.ts +51 -0
  437. package/lib/hooks/use-drag-state.d.ts +32 -0
  438. package/lib/hooks/use-slot-drag-select.d.ts +10 -0
  439. package/lib/index.d.mts +15 -0
  440. package/lib/index.d.ts +15 -0
  441. package/lib/labels.d.ts +24 -0
  442. package/lib/test-utils.d.ts +7 -0
  443. package/lib/types.d.ts +91 -0
  444. package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +22 -0
  445. package/lib/utils/calculate-month-drop-date/calculate-month-drop-date.d.ts +14 -0
  446. package/lib/utils/clamp-interval-minutes/clamp-interval-minutes.d.ts +2 -0
  447. package/lib/utils/format-date/format-date.d.ts +8 -0
  448. package/lib/utils/get-business-hours-mod/get-business-hours-mod.d.ts +17 -0
  449. package/lib/utils/get-current-time-position/get-current-time-position.d.ts +6 -0
  450. package/lib/utils/get-day-position/get-day-position.d.ts +15 -0
  451. package/lib/utils/get-day-time-intervals/get-day-time-intervals.d.ts +19 -0
  452. package/lib/utils/get-end-of-week/get-end-of-week.d.ts +3 -0
  453. package/lib/utils/get-month-days/get-month-days.d.ts +8 -0
  454. package/lib/utils/get-month-range/get-month-range.d.ts +13 -0
  455. package/lib/utils/get-months-by-quarter/get-months-by-quarter.d.ts +2 -0
  456. package/lib/utils/get-months-list/get-months-list.d.ts +11 -0
  457. package/lib/utils/get-start-of-week/get-start-of-week.d.ts +7 -0
  458. package/lib/utils/get-visible-events/get-visible-events.d.ts +9 -0
  459. package/lib/utils/get-week-days/get-week-days.d.ts +13 -0
  460. package/lib/utils/get-week-number/get-week-number.d.ts +2 -0
  461. package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts +8 -0
  462. package/lib/utils/get-years-list/get-years-list.d.ts +6 -0
  463. package/lib/utils/index.d.ts +40 -0
  464. package/lib/utils/is-after-min-date/is-after-min-date.d.ts +2 -0
  465. package/lib/utils/is-all-day-event/is-all-day-event.d.ts +7 -0
  466. package/lib/utils/is-before-max-date/is-before-max-date.d.ts +2 -0
  467. package/lib/utils/is-event-in-time-range/is-event-in-time-range.d.ts +8 -0
  468. package/lib/utils/is-events-overlap/is-events-overlap.d.ts +3 -0
  469. package/lib/utils/is-in-time-range/is-in-time-range.d.ts +9 -0
  470. package/lib/utils/is-multiday-event/is-multiday-event.d.ts +2 -0
  471. package/lib/utils/is-same-month/is-same-month.d.ts +2 -0
  472. package/lib/utils/is-within-week/is-within-week.d.ts +8 -0
  473. package/lib/utils/next-week/next-week.d.ts +2 -0
  474. package/lib/utils/parse-time-string/parse-time-string.d.ts +6 -0
  475. package/lib/utils/previous-week/previous-week.d.ts +2 -0
  476. package/lib/utils/sort-events/sort-events.d.ts +3 -0
  477. package/lib/utils/to-date-string/to-date-string.d.ts +2 -0
  478. package/lib/utils/to-time-string/to-time-string.d.ts +2 -0
  479. package/lib/utils/validate-event/validate-event.d.ts +2 -0
  480. package/package.json +50 -0
  481. package/styles.css +1948 -0
  482. package/styles.layer.css +1949 -0
@@ -0,0 +1,18 @@
1
+ import { DropTarget, ScheduleEventData } from '../../types';
2
+ export interface DragContextValue {
3
+ /** Whether an event is currently being dragged */
4
+ isDragging?: boolean;
5
+ /** ID of the event being dragged */
6
+ draggedEventId?: string | number | null;
7
+ /** The event being dragged */
8
+ draggedEvent?: ScheduleEventData | null;
9
+ /** Current drop target information */
10
+ dropTarget?: DropTarget | null;
11
+ /** Called when drag starts */
12
+ onDragStart?: (event: ScheduleEventData) => void;
13
+ /** Called when drag ends */
14
+ onDragEnd?: () => void;
15
+ /** Set the current drop target */
16
+ setDropTarget?: (target: DropTarget | null) => void;
17
+ }
18
+ export declare const DragContext: import("react").Context<DragContextValue>;
@@ -0,0 +1,2 @@
1
+ export { DragContext } from './DragContext';
2
+ export type { DragContextValue } from './DragContext';
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
3
+ import { ScheduleLabelsOverride } from '../../labels';
4
+ import { DateLabelFormat, DateStringValue, DayOfWeek, ScheduleEventData, ScheduleMode } from '../../types';
5
+ import { RenderEvent } from '../ScheduleEvent/ScheduleEvent';
6
+ export type MobileMonthViewStylesNames = 'mobileMonthView' | 'mobileMonthViewHeader' | 'mobileMonthViewHeaderBackButton' | 'mobileMonthViewHeaderLabel' | 'mobileMonthViewCalendar' | 'mobileMonthViewWeekdays' | 'mobileMonthViewWeekday' | 'mobileMonthViewWeekdaysCorner' | 'mobileMonthViewWeek' | 'mobileMonthViewWeekNumber' | 'mobileMonthViewDay' | 'mobileMonthViewDayIndicators' | 'mobileMonthViewDayIndicator' | 'mobileMonthViewEventsList' | 'mobileMonthViewEventsHeader' | 'mobileMonthViewEvent' | 'mobileMonthViewEventColor' | 'mobileMonthViewEventBody' | 'mobileMonthViewEventTitle' | 'mobileMonthViewEventTime' | 'mobileMonthViewNoEvents';
7
+ export type MobileMonthViewCssVariables = {
8
+ mobileMonthView: '--mobile-month-view-radius';
9
+ };
10
+ export interface MobileMonthViewRenderHeaderInput {
11
+ /** Current interaction mode */
12
+ mode: ScheduleMode;
13
+ /** Current date displayed in the view */
14
+ date: Date | string;
15
+ /** Default header element */
16
+ defaultHeader: React.ReactNode;
17
+ }
18
+ export interface MobileMonthViewProps extends BoxProps, StylesApiProps<MobileMonthViewFactory>, ElementProps<'div'> {
19
+ __staticSelector?: string;
20
+ /** Date to display, Date object or date string in `YYYY-MM-DD 00:00:00` format */
21
+ date: Date | string;
22
+ /** Called with the new date value when a date is selected */
23
+ onDateChange?: (value: DateStringValue) => void;
24
+ /** Currently selected date (controlled) */
25
+ selectedDate?: Date | string | null;
26
+ /** Default selected date (uncontrolled) */
27
+ defaultSelectedDate?: Date | string | null;
28
+ /** Called when selected date changes */
29
+ onSelectedDateChange?: (value: DateStringValue | null) => void;
30
+ /** If set, week numbers are displayed in the first column @default false */
31
+ withWeekNumbers?: boolean;
32
+ /** If set, weekdays names are displayed in the first row @default true */
33
+ withWeekDays?: boolean;
34
+ /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */
35
+ locale?: string;
36
+ /** Number 0-6, where 0 – Sunday and 6 – Saturday. @default 1 – Monday */
37
+ firstDayOfWeek?: DayOfWeek;
38
+ /** `dayjs` format for weekdays names. By default, the first letter of the weekday. */
39
+ weekdayFormat?: DateLabelFormat;
40
+ /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */
41
+ weekendDays?: DayOfWeek[];
42
+ /** Props passed down to the week number button */
43
+ getWeekNumberProps?: (weekStartDate: DateStringValue) => Record<string, any>;
44
+ /** Props passed down to the day button */
45
+ getDayProps?: (date: DateStringValue) => Record<string, any>;
46
+ /** Called when day is clicked */
47
+ onDayClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
48
+ /** Called with first day of the week when week number is clicked */
49
+ onWeekNumberClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
50
+ /** If set, always renders 6 weeks in the month view @default true */
51
+ consistentWeeks?: boolean;
52
+ /** If set, highlights the current day @default true */
53
+ highlightToday?: boolean;
54
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
55
+ radius?: MantineRadius;
56
+ /** If set, days from the previous and next months are displayed to fill the weeks @default false */
57
+ withOutsideDays?: boolean;
58
+ /** Events to display */
59
+ events?: ScheduleEventData[];
60
+ /** Labels override for i18n */
61
+ labels?: ScheduleLabelsOverride;
62
+ /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default 'default' */
63
+ mode?: ScheduleMode;
64
+ /** Function to fully customize event rendering, receives all props that would be passed to the root element including children */
65
+ renderEvent?: RenderEvent;
66
+ /** Format for the events list header date @default 'dddd, MMMM D' */
67
+ eventsHeaderFormat?: DateLabelFormat;
68
+ /** Placeholder text when no events for selected date @default 'No events' */
69
+ noEventsText?: string;
70
+ /** Called when the year back button in the header is clicked */
71
+ onYearClick?: () => void;
72
+ /** Called when event is clicked */
73
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
74
+ /** Custom header renderer, receives object with mode, date, and default header element */
75
+ renderHeader?: (input: MobileMonthViewRenderHeaderInput) => React.ReactNode;
76
+ }
77
+ export type MobileMonthViewFactory = Factory<{
78
+ props: MobileMonthViewProps;
79
+ ref: HTMLDivElement;
80
+ stylesNames: MobileMonthViewStylesNames;
81
+ vars: MobileMonthViewCssVariables;
82
+ }>;
83
+ export declare const MobileMonthView: import("@mantine/core").MantineComponent<{
84
+ props: MobileMonthViewProps;
85
+ ref: HTMLDivElement;
86
+ stylesNames: MobileMonthViewStylesNames;
87
+ vars: MobileMonthViewCssVariables;
88
+ }>;
89
+ export declare namespace MobileMonthView {
90
+ type Props = MobileMonthViewProps;
91
+ type Factory = MobileMonthViewFactory;
92
+ type StylesNames = MobileMonthViewStylesNames;
93
+ type CssVariables = MobileMonthViewCssVariables;
94
+ }
@@ -0,0 +1,8 @@
1
+ import { AnyDateValue, DateStringValue, ScheduleEventData } from '../../types';
2
+ export type GroupedEvents = Record<DateStringValue, ScheduleEventData[]>;
3
+ interface GetMobileMonthViewEventsInput {
4
+ date: AnyDateValue;
5
+ events: ScheduleEventData[] | undefined;
6
+ }
7
+ export declare function getMobileMonthViewEvents({ date, events }: GetMobileMonthViewEventsInput): GroupedEvents;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ export { MobileMonthView } from './MobileMonthView';
2
+ export type { MobileMonthViewProps, MobileMonthViewFactory, MobileMonthViewStylesNames, MobileMonthViewCssVariables, MobileMonthViewRenderHeaderInput, } from './MobileMonthView';
@@ -0,0 +1,103 @@
1
+ import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaProps, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleViewLevel } from '../../types';
4
+ import { MoreEventsProps } from '../MoreEvents/MoreEvents';
5
+ import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
6
+ import { MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect';
7
+ import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
8
+ import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
9
+ export type MonthViewStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | CombinedScheduleHeaderStylesNames;
10
+ export type MonthViewCssVariables = {
11
+ monthView: '--month-view-radius';
12
+ };
13
+ export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactory>, ElementProps<'div'> {
14
+ __staticSelector?: string;
15
+ /** Date to display, Date object or date string in `YYYY-MM-DD 00:00:00` format */
16
+ date: Date | string;
17
+ /** Called with the new date value when a date is selected */
18
+ onDateChange?: (value: DateStringValue) => void;
19
+ /** If set, week numbers are displayed in the first column @default false */
20
+ withWeekNumbers?: boolean;
21
+ /** If set, weekdays names are displayed in the first row @default true */
22
+ withWeekDays?: boolean;
23
+ /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */
24
+ locale?: string;
25
+ /** Number 0-6, where 0 – Sunday and 6 – Saturday. @default 1 – Monday */
26
+ firstDayOfWeek?: DayOfWeek;
27
+ /** `dayjs` format for weekdays names. By default, the first letter of the weekday. */
28
+ weekdayFormat?: DateLabelFormat;
29
+ /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */
30
+ weekendDays?: DayOfWeek[];
31
+ /** Props passed down to the week number button */
32
+ getWeekNumberProps?: (weekStartDate: DateStringValue) => Record<string, any>;
33
+ /** Props passed down to the day button */
34
+ getDayProps?: (date: DateStringValue) => Record<string, any>;
35
+ /** Called when day is clicked */
36
+ onDayClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
37
+ /** Called with first day of the week when week number is clicked */
38
+ onWeekNumberClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
39
+ /** If set, always renders 6 weeks in the month view @default true */
40
+ consistentWeeks?: boolean;
41
+ /** If set, highlights the current day @default true */
42
+ highlightToday?: boolean;
43
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
44
+ radius?: MantineRadius;
45
+ /** If set, days from the previous and next months are displayed to fill the weeks @default true */
46
+ withOutsideDays?: boolean;
47
+ /** If set, the header is displayed @default true */
48
+ withHeader?: boolean;
49
+ /** Props passed down to `MonthYearSelect` component in the header */
50
+ monthYearSelectProps?: Partial<MonthYearSelectProps>;
51
+ /** Called when view level select button is clicked */
52
+ onViewChange?: (view: ScheduleViewLevel) => void;
53
+ /** Props passed to previous month control */
54
+ previousControlProps?: React.ComponentProps<'button'> & DataAttributes;
55
+ /** Props passed to next month control */
56
+ nextControlProps?: React.ComponentProps<'button'> & DataAttributes;
57
+ /** Props passed to today control */
58
+ todayControlProps?: React.ComponentProps<'button'> & DataAttributes;
59
+ /** Props passed to view level select */
60
+ viewSelectProps?: Partial<ViewSelectProps> & DataAttributes;
61
+ /** Events to display */
62
+ events?: ScheduleEventData[];
63
+ /** Props passed down to `MoreEvents` component */
64
+ moreEventsProps?: Partial<MoreEventsProps>;
65
+ /** Function to customize event body, `event` object is passed as first argument */
66
+ renderEventBody?: RenderEventBody;
67
+ /** Function to fully customize event rendering, receives all props that would be passed to the root element including children */
68
+ renderEvent?: RenderEvent;
69
+ /** If true, events can be dragged and dropped @default false */
70
+ withEventsDragAndDrop?: boolean;
71
+ /** Called when event is dropped on new date */
72
+ onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
73
+ /** Function to determine if event can be dragged */
74
+ canDragEvent?: (event: ScheduleEventData) => boolean;
75
+ /** Called when any event drag starts */
76
+ onEventDragStart?: (event: ScheduleEventData) => void;
77
+ /** Called when any event drag ends */
78
+ onEventDragEnd?: () => void;
79
+ /** Called when event is clicked */
80
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
81
+ /** If set, enables drag-to-select day ranges @default false */
82
+ withDragSlotSelect?: boolean;
83
+ /** Called when a day range is selected by dragging */
84
+ onSlotDragEnd?: (rangeStart: DateTimeStringValue, rangeEnd: DateTimeStringValue) => void;
85
+ /** Labels override for i18n */
86
+ labels?: ScheduleLabelsOverride;
87
+ /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */
88
+ mode?: ScheduleMode;
89
+ /** Props passed down to `ScrollArea` component */
90
+ scrollAreaProps?: Partial<ScrollAreaProps> & DataAttributes;
91
+ }
92
+ export type MonthViewFactory = Factory<{
93
+ props: MonthViewProps;
94
+ ref: HTMLDivElement;
95
+ stylesNames: MonthViewStylesNames;
96
+ vars: MonthViewCssVariables;
97
+ }>;
98
+ export declare const MonthView: import("@mantine/core").MantineComponent<{
99
+ props: MonthViewProps;
100
+ ref: HTMLDivElement;
101
+ stylesNames: MonthViewStylesNames;
102
+ vars: MonthViewCssVariables;
103
+ }>;
@@ -0,0 +1,14 @@
1
+ import dayjs from 'dayjs';
2
+ import { MonthPositionedEventData } from '../../../types';
3
+ interface AddEventToDayGroupsInput {
4
+ positionedEvent: MonthPositionedEventData;
5
+ eventStart: dayjs.Dayjs;
6
+ eventEnd: dayjs.Dayjs;
7
+ groupedByDay: {
8
+ [date: string]: MonthPositionedEventData[];
9
+ };
10
+ eventsAddedToDay: Set<string>;
11
+ weekIdx: number;
12
+ }
13
+ export declare function addEventToDayGroups({ positionedEvent, eventStart, eventEnd, groupedByDay, eventsAddedToDay, weekIdx, }: AddEventToDayGroupsInput): void;
14
+ export {};
@@ -0,0 +1,18 @@
1
+ import dayjs from 'dayjs';
2
+ export type HangingStatus = 'none' | 'start' | 'end' | 'both';
3
+ interface CalculateEventPositionInput {
4
+ eventStart: dayjs.Dayjs;
5
+ eventEnd: dayjs.Dayjs;
6
+ weekStart: dayjs.Dayjs;
7
+ weekEnd: dayjs.Dayjs;
8
+ isMultiday: boolean;
9
+ }
10
+ interface EventPositionInWeek {
11
+ startDayIndex: number;
12
+ daysSpanned: number;
13
+ startOffset: number;
14
+ width: number;
15
+ hanging: HangingStatus;
16
+ }
17
+ export declare function calculateEventPositionInWeek({ eventStart, eventEnd, weekStart, weekEnd, isMultiday, }: CalculateEventPositionInput): EventPositionInWeek;
18
+ export {};
@@ -0,0 +1,10 @@
1
+ import dayjs from 'dayjs';
2
+ import { MonthPositionedEventData } from '../../../types';
3
+ interface FindAvailableRowInput {
4
+ existingEvents: MonthPositionedEventData[];
5
+ startDayIndex: number;
6
+ daysSpanned: number;
7
+ weekStart: dayjs.Dayjs;
8
+ }
9
+ export declare function findAvailableRow({ existingEvents, startDayIndex, daysSpanned, weekStart, }: FindAvailableRowInput): number;
10
+ export {};
@@ -0,0 +1,27 @@
1
+ import { AnyDateValue, DateStringValue, DayOfWeek, MonthPositionedEventData, ScheduleEventData } from '../../../types';
2
+ interface GetMonthPositionedEventsInput {
3
+ /** Date (month start) at which events are positioned */
4
+ date: AnyDateValue;
5
+ /** List of all events that belong to the given month, extra events must be filtered out before passing to the function */
6
+ events: ScheduleEventData[];
7
+ /** First day of the week, 0 - Sunday, 1 - Monday, etc., used to calculate events positions */
8
+ firstDayOfWeek?: DayOfWeek;
9
+ /** Range of dates for which events should be displayed (includes outside days if withOutsideDays is true) */
10
+ range?: {
11
+ start: DateStringValue;
12
+ end: DateStringValue;
13
+ };
14
+ }
15
+ /** Events grouped by week index and by day */
16
+ export interface GroupedMonthEvents {
17
+ /** Events grouped by week index (index within month) */
18
+ groupedByWeek: {
19
+ [weekIndex: string]: MonthPositionedEventData[];
20
+ };
21
+ /** Events grouped by day (YYYY-MM-DD format) */
22
+ groupedByDay: {
23
+ [date: string]: MonthPositionedEventData[];
24
+ };
25
+ }
26
+ export declare function getMonthPositionedEvents({ date, events, firstDayOfWeek, range, }: GetMonthPositionedEventsInput): GroupedMonthEvents;
27
+ export {};
@@ -0,0 +1,16 @@
1
+ import { AnyDateValue, DayOfWeek, ScheduleEventData } from '../../../types';
2
+ import { GroupedMonthEvents } from './get-month-positioned-events';
3
+ interface UseMonthViewEventsInput {
4
+ /** Date (month start) at which events are positioned */
5
+ date: AnyDateValue;
6
+ /** List of all events that belong to the given month, extra events must be filtered out before passing to the function */
7
+ events: ScheduleEventData[] | undefined;
8
+ /** First day of the week, 0 - Sunday, 1 - Monday, etc., used to calculate events positions */
9
+ firstDayOfWeek?: DayOfWeek;
10
+ /** If true, events for outside days are included */
11
+ withOutsideDays?: boolean;
12
+ /** If true, month will show events for consistent number of weeks (6) */
13
+ consistentWeeks?: boolean;
14
+ }
15
+ export declare function getMonthViewEvents({ date, events, firstDayOfWeek, withOutsideDays, consistentWeeks, }: UseMonthViewEventsInput): GroupedMonthEvents;
16
+ export {};
@@ -0,0 +1,15 @@
1
+ import dayjs from 'dayjs';
2
+ import { DateStringValue, DayOfWeek } from '../../../types';
3
+ interface GetWeeksInRangeInput {
4
+ rangeStart: dayjs.Dayjs;
5
+ rangeEnd: dayjs.Dayjs;
6
+ firstDayOfWeek: DayOfWeek;
7
+ }
8
+ interface GetWeeksInRangeOutput {
9
+ weeks: DateStringValue[][];
10
+ groupedByDay: {
11
+ [date: string]: any[];
12
+ };
13
+ }
14
+ export declare function getWeeksInRange({ rangeStart, rangeEnd, firstDayOfWeek, }: GetWeeksInRangeInput): GetWeeksInRangeOutput;
15
+ export {};
@@ -0,0 +1,10 @@
1
+ import { RefObject } from 'react';
2
+ /** Reference to a 2D array of day buttons: [weekIndex][dayIndex] */
3
+ export type MonthViewControlsRef = RefObject<HTMLButtonElement[][]>;
4
+ export interface HandleMonthViewKeyDownInput {
5
+ controlsRef: MonthViewControlsRef;
6
+ weekIndex: number;
7
+ dayIndex: number;
8
+ event: React.KeyboardEvent<HTMLButtonElement>;
9
+ }
10
+ export declare function handleMonthViewKeyDown({ controlsRef, weekIndex, dayIndex, event, }: HandleMonthViewKeyDownInput): void;
@@ -0,0 +1,9 @@
1
+ import type { MonthViewCssVariables, MonthViewFactory, MonthViewProps, MonthViewStylesNames } from './MonthView';
2
+ export { MonthView } from './MonthView';
3
+ export type { MonthViewProps, MonthViewFactory, MonthViewStylesNames, MonthViewCssVariables };
4
+ export declare namespace MonthView {
5
+ type Props = MonthViewProps;
6
+ type Factory = MonthViewFactory;
7
+ type StylesNames = MonthViewStylesNames;
8
+ type CssVariables = MonthViewCssVariables;
9
+ }
@@ -0,0 +1,40 @@
1
+ import { BoxProps, ElementProps, Factory, MantineRadius, ModalProps, PopoverProps, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { ScheduleEventData, ScheduleMode } from '../../types';
4
+ import { RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
5
+ export type MoreEventsDropdownType = 'popover' | 'modal';
6
+ export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsList' | 'moreEventsDropdown';
7
+ export interface MoreEventsProps extends BoxProps, StylesApiProps<MoreEventsFactory>, ElementProps<'button'> {
8
+ /** List of events to display */
9
+ events: ScheduleEventData[];
10
+ /** Events count to use for `+X more` label */
11
+ moreEventsCount: number;
12
+ /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */
13
+ radius?: MantineRadius;
14
+ /** Title for the Modal component, ignored if `dropdownType` is not 'modal' */
15
+ modalTitle?: string;
16
+ /** Type of dropdown to use for displaying more events @default 'popover' */
17
+ dropdownType?: MoreEventsDropdownType;
18
+ /** Props passed down to `Popover` component */
19
+ popoverProps?: Partial<Omit<PopoverProps, 'children'>>;
20
+ /** Props passed down to `Modal` component */
21
+ modalProps?: Partial<Omit<ModalProps, 'children'>>;
22
+ /** Called when the dropdown is closed */
23
+ onDropdownClose?: () => void;
24
+ /** Function to customize event body, `event` object is passed as first argument */
25
+ renderEventBody?: RenderEventBody;
26
+ /** Labels override */
27
+ labels?: ScheduleLabelsOverride;
28
+ /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */
29
+ mode?: ScheduleMode;
30
+ }
31
+ export type MoreEventsFactory = Factory<{
32
+ props: MoreEventsProps;
33
+ ref: HTMLButtonElement;
34
+ stylesNames: MoreEventsStylesNames;
35
+ }>;
36
+ export declare const MoreEvents: import("@mantine/core").MantineComponent<{
37
+ props: MoreEventsProps;
38
+ ref: HTMLButtonElement;
39
+ stylesNames: MoreEventsStylesNames;
40
+ }>;
@@ -0,0 +1,2 @@
1
+ export { MoreEvents } from './MoreEvents';
2
+ export type { MoreEventsProps, MoreEventsFactory, MoreEventsStylesNames, MoreEventsDropdownType, } from './MoreEvents';
@@ -0,0 +1,97 @@
1
+ import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../labels';
3
+ import { DateStringValue, DateTimeStringValue, ScheduleEventData, ScheduleMode, ScheduleViewLevel } from '../../types';
4
+ import { DayViewProps, DayViewStylesNames } from '../DayView/DayView';
5
+ import { MobileMonthViewProps, MobileMonthViewStylesNames } from '../MobileMonthView/MobileMonthView';
6
+ import { MonthViewProps, MonthViewStylesNames } from '../MonthView/MonthView';
7
+ import { RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
8
+ import { WeekViewProps, WeekViewStylesNames } from '../WeekView/WeekView';
9
+ import { YearViewProps, YearViewStylesNames } from '../YearView/YearView';
10
+ export type ScheduleStylesNames = 'root' | 'desktopView' | 'mobileView' | DayViewStylesNames | WeekViewStylesNames | MonthViewStylesNames | YearViewStylesNames | MobileMonthViewStylesNames;
11
+ export type ScheduleLayout = 'default' | 'responsive';
12
+ type ScheduleCommonProps = 'date' | 'onDateChange' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onAllDaySlotClick' | 'onEventClick' | 'onDayClick' | 'onMonthClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode';
13
+ type ScheduleViewProps<T> = Partial<Omit<T, ScheduleCommonProps>>;
14
+ export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>, ElementProps<'div'> {
15
+ __staticSelector?: string;
16
+ /** Current date to display (controlled) */
17
+ date?: Date | DateStringValue;
18
+ /** Default date (uncontrolled) */
19
+ defaultDate?: Date | DateStringValue;
20
+ /** Called when date changes via navigation */
21
+ onDateChange?: (date: DateStringValue) => void;
22
+ /** Current view level (controlled) */
23
+ view?: ScheduleViewLevel;
24
+ /** Default view level (uncontrolled) */
25
+ defaultView?: ScheduleViewLevel;
26
+ /** Called when view level changes */
27
+ onViewChange?: (view: ScheduleViewLevel) => void;
28
+ /** Events to display across all views */
29
+ events?: ScheduleEventData[];
30
+ /** Locale for date formatting (overrides `DatesProvider`) */
31
+ locale?: string;
32
+ /** Key of theme.radius or any valid CSS value to set border-radius */
33
+ radius?: MantineRadius;
34
+ /** Labels override for i18n */
35
+ labels?: ScheduleLabelsOverride;
36
+ /** Custom event body renderer */
37
+ renderEventBody?: RenderEventBody;
38
+ /** Enable drag and drop for events @default false */
39
+ withEventsDragAndDrop?: boolean;
40
+ /** Called when event is dropped */
41
+ onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
42
+ /** Function to determine if event can be dragged */
43
+ canDragEvent?: (event: ScheduleEventData) => boolean;
44
+ /** Called when any event drag starts */
45
+ onEventDragStart?: (event: ScheduleEventData) => void;
46
+ /** Called when any event drag ends */
47
+ onEventDragEnd?: () => void;
48
+ /** Called when time slot is clicked in DayView/WeekView */
49
+ onTimeSlotClick?: (slotStart: DateTimeStringValue, slotEnd: DateTimeStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
50
+ /** Called when all-day slot is clicked in DayView/WeekView */
51
+ onAllDaySlotClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
52
+ /** Called when day is clicked in MonthView */
53
+ onDayClick?: (date: DateStringValue, event: React.MouseEvent<HTMLButtonElement>) => void;
54
+ /** If set, enables drag-to-select slot ranges @default false */
55
+ withDragSlotSelect?: boolean;
56
+ /** Called when a slot range is selected by dragging */
57
+ onSlotDragEnd?: (rangeStart: DateTimeStringValue, rangeEnd: DateTimeStringValue) => void;
58
+ /** Called when event is clicked in any view */
59
+ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
60
+ /** Interaction mode:
61
+ * - `'default'` allows all interactions
62
+ * - `'static'` disables event interactions
63
+ * @default 'default' */
64
+ mode?: ScheduleMode;
65
+ /** Layout mode:
66
+ * - `'default'` uses same views on all screen sizes
67
+ * - `'responsive'` switches to YearView/MobileMonthView on small screens
68
+ * @default 'default' */
69
+ layout?: ScheduleLayout;
70
+ /** Props specific to DayView (includes `startTime`, `endTime`, `intervalMinutes`, etc.) */
71
+ dayViewProps?: ScheduleViewProps<DayViewProps>;
72
+ /** Props specific to WeekView (includes `startTime`, `endTime`, `intervalMinutes`, etc.) */
73
+ weekViewProps?: ScheduleViewProps<WeekViewProps>;
74
+ /** Props specific to MonthView (includes `firstDayOfWeek`, `weekendDays`, etc.) */
75
+ monthViewProps?: ScheduleViewProps<MonthViewProps>;
76
+ /** Props specific to YearView (includes `firstDayOfWeek`, `weekendDays`, etc.) */
77
+ yearViewProps?: ScheduleViewProps<YearViewProps>;
78
+ /** Props specific to MobileMonthView (used in responsive layout) */
79
+ mobileMonthViewProps?: ScheduleViewProps<MobileMonthViewProps>;
80
+ }
81
+ export type ScheduleFactory = Factory<{
82
+ props: ScheduleProps;
83
+ ref: HTMLDivElement;
84
+ stylesNames: ScheduleStylesNames;
85
+ }>;
86
+ export declare const Schedule: import("@mantine/core").MantineComponent<{
87
+ props: ScheduleProps;
88
+ ref: HTMLDivElement;
89
+ stylesNames: ScheduleStylesNames;
90
+ }>;
91
+ export declare namespace Schedule {
92
+ type Props = ScheduleProps;
93
+ type StylesNames = ScheduleStylesNames;
94
+ type Factory = ScheduleFactory;
95
+ type Layout = ScheduleLayout;
96
+ }
97
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Schedule } from './Schedule';
2
+ export type { ScheduleFactory, ScheduleLayout, ScheduleProps, ScheduleStylesNames, } from './Schedule';
@@ -0,0 +1,54 @@
1
+ import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleEventData, ScheduleMode } from '../../types';
3
+ export type ScheduleEventStylesNames = 'event' | 'eventInner';
4
+ export type ScheduleEventVariant = 'filled' | 'light';
5
+ export type ScheduleEventCssVariables = {
6
+ event: '--event-bg' | '--event-color' | '--event-radius' | '--event-hover';
7
+ };
8
+ export type RenderEventBody = (event: ScheduleEventData<any>) => React.ReactNode;
9
+ export type RenderEvent = (event: ScheduleEventData, props: React.ComponentPropsWithoutRef<'button'> & {
10
+ children: React.ReactNode;
11
+ }) => React.ReactElement;
12
+ export interface ScheduleEventProps extends BoxProps, StylesApiProps<ScheduleEventFactory>, ElementProps<'button'> {
13
+ __staticSelector?: string;
14
+ /** Event to display */
15
+ event: ScheduleEventData;
16
+ /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */
17
+ radius?: MantineRadius;
18
+ /** If set, event has `white-space: nowrap` @default false */
19
+ nowrap?: boolean;
20
+ /** If set, event shrinks its font-size with limited height @default false */
21
+ autoSize?: boolean;
22
+ /** Event size @default 'sm' */
23
+ size?: 'sm' | 'md' | (string & {});
24
+ /** Function to customize event body, `event` object is passed as first argument */
25
+ renderEventBody?: RenderEventBody;
26
+ /** Function to fully customize event rendering, receives all props that would be passed to the root element including children */
27
+ renderEvent?: RenderEvent;
28
+ /** Event hanging position */
29
+ hanging?: 'start' | 'end' | 'both' | 'none';
30
+ /** If true, event can be dragged @default false */
31
+ draggable?: boolean;
32
+ /** Called when event drag starts */
33
+ onEventDragStart?: (event: ScheduleEventData) => void;
34
+ /** Called when event drag ends */
35
+ onEventDragEnd?: () => void;
36
+ /** If true, event is currently being dragged @default false */
37
+ isDragging?: boolean;
38
+ /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */
39
+ mode?: ScheduleMode;
40
+ }
41
+ export type ScheduleEventFactory = Factory<{
42
+ props: ScheduleEventProps;
43
+ ref: HTMLButtonElement;
44
+ stylesNames: ScheduleEventStylesNames;
45
+ vars: ScheduleEventCssVariables;
46
+ variant: ScheduleEventVariant;
47
+ }>;
48
+ export declare const ScheduleEvent: import("@mantine/core").MantineComponent<{
49
+ props: ScheduleEventProps;
50
+ ref: HTMLButtonElement;
51
+ stylesNames: ScheduleEventStylesNames;
52
+ vars: ScheduleEventCssVariables;
53
+ variant: ScheduleEventVariant;
54
+ }>;
@@ -0,0 +1,2 @@
1
+ export { ScheduleEvent } from './ScheduleEvent';
2
+ export type { ScheduleEventProps, ScheduleEventFactory, ScheduleEventStylesNames, ScheduleEventVariant, ScheduleEventCssVariables, RenderEventBody, } from './ScheduleEvent';
@@ -0,0 +1,43 @@
1
+ import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
2
+ import { ScheduleLabelsOverride } from '../../../labels';
3
+ export type HeaderControlStylesNames = 'headerControl';
4
+ export type HeaderControlCssVariables = {
5
+ headerControl: '--control-radius';
6
+ };
7
+ export interface HeaderControlProps extends BoxProps, StylesApiProps<HeaderControlFactory>, ElementProps<'button'> {
8
+ __staticSelector?: string;
9
+ /** Applies active styles */
10
+ active?: boolean;
11
+ /** Removes inline padding */
12
+ square?: boolean;
13
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
14
+ radius?: MantineRadius;
15
+ /** If set to `false`, the control will not be clickable */
16
+ interactive?: boolean;
17
+ /** Labels override */
18
+ labels?: ScheduleLabelsOverride;
19
+ }
20
+ export type HeaderControlFactory = Factory<{
21
+ props: HeaderControlProps;
22
+ ref: HTMLButtonElement;
23
+ stylesNames: HeaderControlStylesNames;
24
+ vars: HeaderControlCssVariables;
25
+ }>;
26
+ export declare const HeaderControl: import("@mantine/core").MantineComponent<{
27
+ props: HeaderControlProps;
28
+ ref: HTMLButtonElement;
29
+ stylesNames: HeaderControlStylesNames;
30
+ vars: HeaderControlCssVariables;
31
+ }>;
32
+ export declare function ScheduleHeaderNext(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare namespace ScheduleHeaderNext {
34
+ var displayName: string;
35
+ }
36
+ export declare function ScheduleHeaderPrevious(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare namespace ScheduleHeaderPrevious {
38
+ var displayName: string;
39
+ }
40
+ export declare function ScheduleHeaderToday(props: HeaderControlProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare namespace ScheduleHeaderToday {
42
+ var displayName: string;
43
+ }