@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,8 @@
1
+ import { AnyDateValue, DateStringValue, ScheduleEventData } from '../../../types';
2
+ export type GroupedEvents = Record<DateStringValue, ScheduleEventData[]>;
3
+ interface GetYearViewEventsInput {
4
+ date: AnyDateValue;
5
+ events: ScheduleEventData[] | undefined;
6
+ }
7
+ export declare function getYearViewEvents({ date, events }: GetYearViewEventsInput): GroupedEvents;
8
+ export {};
@@ -0,0 +1,11 @@
1
+ import { RefObject } from 'react';
2
+ /** Reference to a 3D array of day buttons: [monthIndex][weekIndex][dayIndex] */
3
+ export type YearViewControlsRef = RefObject<HTMLButtonElement[][][]>;
4
+ export interface HandleYearViewKeyDownInput {
5
+ controlsRef: YearViewControlsRef;
6
+ monthIndex: number;
7
+ weekIndex: number;
8
+ dayIndex: number;
9
+ event: React.KeyboardEvent<HTMLButtonElement>;
10
+ }
11
+ export declare function handleYearViewKeyDown({ controlsRef, monthIndex, weekIndex, dayIndex, event, }: HandleYearViewKeyDownInput): void;
@@ -0,0 +1,9 @@
1
+ import type { YearViewCssVariables, YearViewFactory, YearViewProps, YearViewStylesNames } from './YearView';
2
+ export { YearView } from './YearView';
3
+ export type { YearViewProps, YearViewFactory, YearViewStylesNames, YearViewCssVariables };
4
+ export declare namespace YearView {
5
+ type Props = YearViewProps;
6
+ type Factory = YearViewFactory;
7
+ type StylesNames = YearViewStylesNames;
8
+ type CssVariables = YearViewCssVariables;
9
+ }
@@ -0,0 +1,5 @@
1
+ export { useDragState } from './use-drag-state';
2
+ export type { DragState, DropTarget, UseDragStateReturn } from './use-drag-state';
3
+ export { useDragDropHandlers } from './use-drag-drop-handlers';
4
+ export type { DragDropHandlers, UseDragDropHandlersOptions } from './use-drag-drop-handlers';
5
+ export { useSlotDragSelect } from './use-slot-drag-select';
@@ -0,0 +1,51 @@
1
+ import { DragContextValue } from '../components/DragContext/DragContext';
2
+ import { DateTimeStringValue, ScheduleEventData, ScheduleMode } from '../types';
3
+ export interface UseDragDropHandlersOptions<T = any> {
4
+ /** Whether drag and drop is enabled */
5
+ enabled: boolean;
6
+ /** Schedule interaction mode */
7
+ mode: ScheduleMode;
8
+ /** Called when event is dropped at new location */
9
+ onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
10
+ /** Function to determine if event can be dragged */
11
+ canDragEvent?: (event: ScheduleEventData) => boolean;
12
+ /** Called when any event drag starts */
13
+ onEventDragStart?: (event: ScheduleEventData) => void;
14
+ /** Called when any event drag ends */
15
+ onEventDragEnd?: () => void;
16
+ /**
17
+ * Function to calculate drop target dates from drop location.
18
+ * Receives the target location and the dragged event.
19
+ */
20
+ calculateDropTarget: (target: T, draggedEvent: ScheduleEventData) => {
21
+ start: Date;
22
+ end: Date;
23
+ };
24
+ }
25
+ export interface DragDropHandlers<T = any> {
26
+ /** Context value for DragContext.Provider */
27
+ dragContextValue: DragContextValue;
28
+ /** Current drop target */
29
+ dropTarget: T | null;
30
+ /** Handle drag start event */
31
+ handleDragStart: (event: ScheduleEventData) => void;
32
+ /** Handle drag end event */
33
+ handleDragEnd: () => void;
34
+ /** Handle drag over event */
35
+ handleDragOver: (e: React.DragEvent, target: T) => void;
36
+ /** Handle drag leave event */
37
+ handleDragLeave: () => void;
38
+ /** Handle drop event */
39
+ handleDrop: (e: React.DragEvent, target: T) => void;
40
+ /** Check if event is draggable */
41
+ isDraggableEvent: (event: ScheduleEventData) => boolean;
42
+ /** Check if target is the current drop target */
43
+ isDropTarget: (target: T) => boolean;
44
+ }
45
+ /**
46
+ * Hook that provides unified drag-drop handlers for Schedule views.
47
+ * Handles drag state management and event drops across Day, Week, and Month views.
48
+ *
49
+ * @template T - Type of the drop target (e.g., slot index, day string, etc.)
50
+ */
51
+ export declare function useDragDropHandlers<T = any>(options: UseDragDropHandlersOptions<T>): DragDropHandlers<T>;
@@ -0,0 +1,32 @@
1
+ import { DateStringValue, ScheduleEventData } from '../types';
2
+ export interface DropTarget {
3
+ /** Target date in YYYY-MM-DD format */
4
+ date: DateStringValue;
5
+ /** Target time in HH:mm:ss format (for DayView/WeekView) */
6
+ time?: string;
7
+ /** Target slot index (for DayView/WeekView) */
8
+ slotIndex?: number;
9
+ }
10
+ export interface DragState {
11
+ /** Whether an event is currently being dragged */
12
+ isDragging: boolean;
13
+ /** ID of the event being dragged */
14
+ draggedEventId: string | number | null;
15
+ /** The event being dragged */
16
+ draggedEvent: ScheduleEventData | null;
17
+ /** Current drop target information */
18
+ dropTarget: DropTarget | null;
19
+ }
20
+ export interface UseDragStateReturn {
21
+ /** Current drag state */
22
+ state: DragState;
23
+ /** Start dragging an event */
24
+ startDrag: (event: ScheduleEventData) => void;
25
+ /** End dragging */
26
+ endDrag: () => void;
27
+ /** Set the current drop target */
28
+ setDropTarget: (target: DropTarget | null) => void;
29
+ /** Clear the drop target */
30
+ clearDropTarget: () => void;
31
+ }
32
+ export declare function useDragState(): UseDragStateReturn;
@@ -0,0 +1,10 @@
1
+ interface UseSlotDragSelectInput {
2
+ enabled?: boolean;
3
+ onDragEnd?: (startIndex: number, endIndex: number, group: string) => void;
4
+ }
5
+ export declare function useSlotDragSelect({ enabled, onDragEnd }: UseSlotDragSelectInput): {
6
+ handleSlotPointerDown: (_event: React.PointerEvent<HTMLButtonElement>, index: number, group: string) => void;
7
+ isSlotSelected: (index: number, group: string) => boolean;
8
+ isDragging: boolean;
9
+ };
10
+ export {};
@@ -0,0 +1,15 @@
1
+ export * from './types';
2
+ export type { ScheduleLabels, ScheduleLabelsOverride } from './labels';
3
+ export { DEFAULT_SCHEDULE_LABELS, getLabel } from './labels';
4
+ export * from './utils';
5
+ export * from './components/Schedule';
6
+ export * from './components/DayView';
7
+ export * from './components/WeekView';
8
+ export * from './components/MonthView';
9
+ export * from './components/YearView';
10
+ export * from './components/ScheduleEvent';
11
+ export * from './components/ScheduleHeader';
12
+ export * from './components/CurrentTimeIndicator';
13
+ export * from './components/MoreEvents';
14
+ export * from './components/MobileMonthView';
15
+ export * from './components/DragContext';
package/lib/index.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export * from './types';
2
+ export type { ScheduleLabels, ScheduleLabelsOverride } from './labels';
3
+ export { DEFAULT_SCHEDULE_LABELS, getLabel } from './labels';
4
+ export * from './utils';
5
+ export * from './components/Schedule';
6
+ export * from './components/DayView';
7
+ export * from './components/WeekView';
8
+ export * from './components/MonthView';
9
+ export * from './components/YearView';
10
+ export * from './components/ScheduleEvent';
11
+ export * from './components/ScheduleHeader';
12
+ export * from './components/CurrentTimeIndicator';
13
+ export * from './components/MoreEvents';
14
+ export * from './components/MobileMonthView';
15
+ export * from './components/DragContext';
@@ -0,0 +1,24 @@
1
+ export interface ScheduleLabels {
2
+ day: string;
3
+ week: string;
4
+ month: string;
5
+ year: string;
6
+ allDay: string;
7
+ weekday: string;
8
+ timeSlot: string;
9
+ today: string;
10
+ next: string;
11
+ previous: string;
12
+ more: string;
13
+ selectMonth: string;
14
+ selectYear: string;
15
+ switchToDayView: string;
16
+ switchToWeekView: string;
17
+ switchToMonthView: string;
18
+ switchToYearView: string;
19
+ viewSelectLabel: string;
20
+ moreLabel: (hiddenEventsCount: number) => string;
21
+ }
22
+ export declare const DEFAULT_SCHEDULE_LABELS: ScheduleLabels;
23
+ export type ScheduleLabelsOverride = Partial<ScheduleLabels>;
24
+ export declare function getLabel<K extends keyof ScheduleLabels>(key: K, override?: ScheduleLabelsOverride): ScheduleLabels[K];
@@ -0,0 +1,7 @@
1
+ import { ScheduleEventData } from './types';
2
+ declare function createEvent(input: Partial<ScheduleEventData>): ScheduleEventData;
3
+ export declare const testUtils: {
4
+ testDate: string;
5
+ createEvent: typeof createEvent;
6
+ };
7
+ export {};
package/lib/types.d.ts ADDED
@@ -0,0 +1,91 @@
1
+ import dayjs from 'dayjs';
2
+ import { MantineColor } from '@mantine/core';
3
+ /** Date value type used by internal package utils */
4
+ export type AnyDateValue = DateStringValue | Date | dayjs.Dayjs;
5
+ /** Date value used by all Mantine components, format: `YYYY-MM-DD` */
6
+ export type DateStringValue = string;
7
+ /** DateTime value used by all Mantine components, format: `YYYY-MM-DD HH:mm:ss` */
8
+ export type DateTimeStringValue = string;
9
+ /** Day of the week, 0 – Sunday, 1 – Monday, etc. */
10
+ export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
11
+ /** string – dayjs format, callback function – custom formatter */
12
+ export type DateLabelFormat = string | ((date: DateStringValue) => string);
13
+ /** View level used by Schedule component */
14
+ export type ScheduleViewLevel = 'day' | 'week' | 'month' | 'year';
15
+ /** Interaction mode used by Schedule components */
16
+ export type ScheduleMode = 'static' | 'default';
17
+ /** Payload type for ScheduleEventData, defined in user application */
18
+ export type EventPayload = Record<PropertyKey, any>;
19
+ /** Event data object passed to all `@mantine/schedule` components */
20
+ export interface ScheduleEventData<Payload extends EventPayload = EventPayload> {
21
+ /** Unique event id, used for key and identification */
22
+ id: string | number;
23
+ /** Event title, displayed in month, week and day views */
24
+ title: string;
25
+ /** Event start date/time */
26
+ start: Date | DateTimeStringValue;
27
+ /** Event end date/time */
28
+ end: Date | DateTimeStringValue;
29
+ /** Event background color. Key of `theme.colors` or any valid CSS color. */
30
+ color: MantineColor;
31
+ /** Event variant, default is `'light'` */
32
+ variant?: 'filled' | 'light';
33
+ /** Additional event data, defined by the user, not used internally by the library */
34
+ payload?: Payload;
35
+ }
36
+ export interface DayEventPositionData {
37
+ /** All day events */
38
+ allDay: boolean;
39
+ /** Event top position in %, represents start time */
40
+ top: number;
41
+ /** Event height in %, represents duration (end time - start time) */
42
+ height: number;
43
+ /** Event width in %, represents event size in overlap group */
44
+ width: number;
45
+ /** Event left offset in %, represents event position in overlap group */
46
+ offset: number;
47
+ /** Number of events in the overlap group */
48
+ overlaps: number;
49
+ /** Column index in the overlap group, 1-based */
50
+ column: number;
51
+ }
52
+ /** Event data with calculated position for day view */
53
+ export interface DayPositionedEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventData<Payload> {
54
+ position: DayEventPositionData;
55
+ }
56
+ export interface WeekEventPositionData extends DayEventPositionData {
57
+ /** Week offset in %, represents event start position from the first day of the week (for regular events only) */
58
+ weekOffset?: number;
59
+ /** Row index for all-day events, used for vertical stacking */
60
+ row: number;
61
+ /** Indicates if the event hangs from the start, end, both or none of the week */
62
+ hanging: 'start' | 'end' | 'both' | 'none';
63
+ }
64
+ /** Event data with calculated position for week view */
65
+ export interface WeekPositionedEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventData<Payload> {
66
+ position: WeekEventPositionData;
67
+ }
68
+ export interface MonthEventPositionData {
69
+ /** Start offset % from the start of the week (inset-inline-start) */
70
+ startOffset: number;
71
+ /** Event width in % */
72
+ width: number;
73
+ /** Week index in the month, 0-based */
74
+ weekIndex: number;
75
+ /** Event row index in the week, 0-based */
76
+ row: number;
77
+ /** Indicates if the event hangs from the start, end, both or none of the week */
78
+ hanging: 'start' | 'end' | 'both' | 'none';
79
+ }
80
+ /** Event data with calculated position for month view */
81
+ export interface MonthPositionedEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventData<Payload> {
82
+ position: MonthEventPositionData;
83
+ }
84
+ export interface DropTarget {
85
+ /** Target date in YYYY-MM-DD format */
86
+ date: DateStringValue;
87
+ /** Target time in HH:mm:ss format (for DayView/WeekView) */
88
+ time?: string;
89
+ /** Target slot index (for DayView/WeekView) */
90
+ slotIndex?: number;
91
+ }
@@ -0,0 +1,22 @@
1
+ import { AnyDateValue, ScheduleEventData } from '../../types';
2
+ export interface CalculateDropTimeInput {
3
+ /** The event being dragged */
4
+ draggedEvent: ScheduleEventData;
5
+ /** Target date where event will be dropped */
6
+ targetDate: AnyDateValue;
7
+ /** Target time slot start time in HH:mm:ss format */
8
+ targetSlotTime: string;
9
+ /** Mouse Y position relative to the slot */
10
+ mouseYOffset?: number;
11
+ /** Height of one slot in pixels */
12
+ slotHeight?: number;
13
+ /** Minutes per slot */
14
+ intervalMinutes?: number;
15
+ }
16
+ export interface CalculateDropTimeResult {
17
+ /** New start date/time for the event */
18
+ start: Date;
19
+ /** New end date/time for the event */
20
+ end: Date;
21
+ }
22
+ export declare function calculateDropTime({ draggedEvent, targetDate, targetSlotTime, mouseYOffset, slotHeight, intervalMinutes, }: CalculateDropTimeInput): CalculateDropTimeResult;
@@ -0,0 +1,14 @@
1
+ import { DateStringValue, ScheduleEventData } from '../../types';
2
+ export interface CalculateMonthDropDateInput {
3
+ /** The event being dragged */
4
+ draggedEvent: ScheduleEventData;
5
+ /** The target day where the event is being dropped */
6
+ targetDay: DateStringValue;
7
+ }
8
+ export interface CalculateMonthDropDateResult {
9
+ /** New start date for the event */
10
+ start: Date;
11
+ /** New end date for the event */
12
+ end: Date;
13
+ }
14
+ export declare function calculateMonthDropDate({ draggedEvent, targetDay, }: CalculateMonthDropDateInput): CalculateMonthDropDateResult;
@@ -0,0 +1,2 @@
1
+ /** Clamp interval minutes to valid values (1-60) and ensure it divides evenly into 60 */
2
+ export declare function clampIntervalMinutes(intervalMinutes: number): number;
@@ -0,0 +1,8 @@
1
+ import dayjs from 'dayjs';
2
+ import { DateLabelFormat } from '../../types';
3
+ export interface FormatDateInput {
4
+ locale: string;
5
+ date: string | Date | dayjs.Dayjs;
6
+ format: DateLabelFormat;
7
+ }
8
+ export declare function formatDate({ locale, date, format }: FormatDateInput): string;
@@ -0,0 +1,17 @@
1
+ export interface GetBusinessHoursModInput {
2
+ time: string;
3
+ businessHours?: [string, string];
4
+ highlightBusinessHours?: boolean;
5
+ }
6
+ export interface BusinessHoursMod {
7
+ 'business-hours': boolean;
8
+ 'non-business-hours': boolean;
9
+ }
10
+ /**
11
+ * Determines if a given time is within business hours and returns modifier object
12
+ * @param time - Time string in HH:mm:ss format
13
+ * @param businessHours - Tuple of [start, end] times in HH:mm:ss format
14
+ * @param highlightBusinessHours - Whether to highlight business hours
15
+ * @returns Modifier object for styling business/non-business hours
16
+ */
17
+ export declare function getBusinessHoursMod({ time, businessHours, highlightBusinessHours, }: GetBusinessHoursModInput): BusinessHoursMod;
@@ -0,0 +1,6 @@
1
+ interface GetCurrentTimePositionInput {
2
+ startTime?: string;
3
+ endTime?: string;
4
+ }
5
+ export declare function getCurrentTimePosition(input?: GetCurrentTimePositionInput): number;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { ScheduleEventData } from '../../types';
2
+ interface GetDayPositionInput {
3
+ /** Event data to calculate position for */
4
+ event: ScheduleEventData;
5
+ /** Start time boundary for the day in HH:mm:ss format, `00:00:00` by default */
6
+ startTime?: string;
7
+ /** End time boundary for the day in HH:mm:ss format, `23:59:59` by default */
8
+ endTime?: string;
9
+ }
10
+ /** Calculates day position within given start and end time boundaries. Returns top and height in percentages. */
11
+ export declare function getDayPosition({ event, startTime, endTime, }: GetDayPositionInput): {
12
+ top: number;
13
+ height: number;
14
+ };
15
+ export {};
@@ -0,0 +1,19 @@
1
+ export interface DayTimeInterval {
2
+ /** Start time of the interval in HH:mm:ss format */
3
+ startTime: string;
4
+ /** End time of the interval in HH:mm:ss format */
5
+ endTime: string;
6
+ /** Duration of the interval in seconds */
7
+ duration: number;
8
+ /** Indicates if the interval starts at the beginning of an hour */
9
+ isHourStart: boolean;
10
+ }
11
+ export interface GetDayTimeIntervalsInput {
12
+ /** Start time in HH:mm:ss format */
13
+ startTime: string;
14
+ /** End time in HH:mm:ss format, end of the day by default */
15
+ endTime?: string;
16
+ /** Interval in minutes, 60 by default */
17
+ intervalMinutes?: number;
18
+ }
19
+ export declare function getDayTimeIntervals({ startTime, endTime, intervalMinutes: _intervalMinutes, }: GetDayTimeIntervalsInput): DayTimeInterval[];
@@ -0,0 +1,3 @@
1
+ import dayjs from 'dayjs';
2
+ import { AnyDateValue, DayOfWeek } from '../../types';
3
+ export declare function getEndOfWeek(date: AnyDateValue, firstDayOfWeek?: DayOfWeek): string | dayjs.Dayjs;
@@ -0,0 +1,8 @@
1
+ import { AnyDateValue, DateStringValue, DayOfWeek } from '../../types';
2
+ interface GetMonthDaysInput {
3
+ month: AnyDateValue;
4
+ firstDayOfWeek: DayOfWeek | undefined;
5
+ consistentWeeks: boolean | undefined;
6
+ }
7
+ export declare function getMonthDays({ month, firstDayOfWeek, consistentWeeks, }: GetMonthDaysInput): DateStringValue[][];
8
+ export {};
@@ -0,0 +1,13 @@
1
+ import { AnyDateValue, DayOfWeek } from '../../types';
2
+ interface GetMonthRangeInput {
3
+ month: AnyDateValue;
4
+ withOutsideDays: boolean | undefined;
5
+ consistentWeeks: boolean | undefined;
6
+ firstDayOfWeek: DayOfWeek;
7
+ }
8
+ /** Returns start and end dates as displayed in MonthView */
9
+ export declare function getMonthRange({ month, withOutsideDays, consistentWeeks, firstDayOfWeek, }: GetMonthRangeInput): {
10
+ start: string;
11
+ end: string;
12
+ };
13
+ export {};
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue } from '../../types';
2
+ export declare function getMonthsByQuarter(year: AnyDateValue): string[][];
@@ -0,0 +1,11 @@
1
+ import { DateLabelFormat } from '../../types';
2
+ interface GetMonthsListInput {
3
+ locale: string;
4
+ format: DateLabelFormat;
5
+ }
6
+ interface MonthData {
7
+ month: number;
8
+ name: string;
9
+ }
10
+ export declare function getMonthsList({ locale, format }: GetMonthsListInput): MonthData[];
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { AnyDateValue, DayOfWeek } from '../../types';
2
+ interface GetStartOfWeekInput {
3
+ date: AnyDateValue;
4
+ firstDayOfWeek?: DayOfWeek;
5
+ }
6
+ export declare function getStartOfWeek({ date, firstDayOfWeek }: GetStartOfWeekInput): string;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ interface GetVisibleEventsInput {
2
+ maxEvents: number;
3
+ totalEvents: number;
4
+ }
5
+ export declare function getVisibleEvents({ maxEvents, totalEvents }: GetVisibleEventsInput): {
6
+ visibleEventsCount: number;
7
+ hiddenEventsCount: number;
8
+ };
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import { AnyDateValue, DateStringValue, DayOfWeek } from '../../types';
2
+ export interface GetWeekDaysInput {
3
+ /** Week to generate days for */
4
+ week: AnyDateValue;
5
+ /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */
6
+ weekendDays?: DayOfWeek[];
7
+ /** If set to false, weekend days are hidden @default true */
8
+ withWeekendDays?: boolean;
9
+ /** Number 0-6, where 0 – Sunday and 6 – Saturday @default 1 */
10
+ firstDayOfWeek?: DayOfWeek;
11
+ }
12
+ /** Returns a list of days in a given week */
13
+ export declare function getWeekDays({ week, weekendDays, withWeekendDays, firstDayOfWeek, }: GetWeekDaysInput): DateStringValue[];
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue } from '../../types';
2
+ export declare function getWeekNumber(week: AnyDateValue | AnyDateValue[]): number;
@@ -0,0 +1,8 @@
1
+ import type { DateLabelFormat, DayOfWeek } from '../../types';
2
+ interface GetWeekdaysNamesInput {
3
+ locale: string;
4
+ format?: DateLabelFormat;
5
+ firstDayOfWeek?: DayOfWeek;
6
+ }
7
+ export declare function getWeekdaysNames({ locale, format, firstDayOfWeek, }: GetWeekdaysNamesInput): import("react").ReactNode[];
8
+ export {};
@@ -0,0 +1,6 @@
1
+ interface GetYearsListInput {
2
+ startYear: number;
3
+ endYear: number;
4
+ }
5
+ export declare function getYearsList({ startYear, endYear }: GetYearsListInput): number[];
6
+ export {};
@@ -0,0 +1,40 @@
1
+ export { getWeekdaysNames } from './get-weekdays-names/get-weekdays-names';
2
+ export { getStartOfWeek } from './get-start-of-week/get-start-of-week';
3
+ export { getEndOfWeek } from './get-end-of-week/get-end-of-week';
4
+ export { getWeekNumber } from './get-week-number/get-week-number';
5
+ export { getMonthDays } from './get-month-days/get-month-days';
6
+ export { isAfterMinDate } from './is-after-min-date/is-after-min-date';
7
+ export { isBeforeMaxDate } from './is-before-max-date/is-before-max-date';
8
+ export { isSameMonth } from './is-same-month/is-same-month';
9
+ export { getMonthsByQuarter } from './get-months-by-quarter/get-months-by-quarter';
10
+ export { getDayTimeIntervals } from './get-day-time-intervals/get-day-time-intervals';
11
+ export { getWeekDays } from './get-week-days/get-week-days';
12
+ export { getMonthsList } from './get-months-list/get-months-list';
13
+ export { getYearsList } from './get-years-list/get-years-list';
14
+ export { formatDate } from './format-date/format-date';
15
+ export { toDateString } from './to-date-string/to-date-string';
16
+ export { nextWeek } from './next-week/next-week';
17
+ export { previousWeek } from './previous-week/previous-week';
18
+ export { clampIntervalMinutes } from './clamp-interval-minutes/clamp-interval-minutes';
19
+ export { getCurrentTimePosition } from './get-current-time-position/get-current-time-position';
20
+ export { isInTimeRange } from './is-in-time-range/is-in-time-range';
21
+ export { isAllDayEvent } from './is-all-day-event/is-all-day-event';
22
+ export { validateEvent } from './validate-event/validate-event';
23
+ export { sortEvents } from './sort-events/sort-events';
24
+ export { isEventsOverlap } from './is-events-overlap/is-events-overlap';
25
+ export { getVisibleEvents } from './get-visible-events/get-visible-events';
26
+ export { isMultidayEvent } from './is-multiday-event/is-multiday-event';
27
+ export { isEventInTimeRange } from './is-event-in-time-range/is-event-in-time-range';
28
+ export { isWithinWeek } from './is-within-week/is-within-week';
29
+ export { getMonthRange } from './get-month-range/get-month-range';
30
+ export { parseTimeString } from './parse-time-string/parse-time-string';
31
+ export { toTimeString } from './to-time-string/to-time-string';
32
+ export { getDayPosition } from './get-day-position/get-day-position';
33
+ export { calculateDropTime } from './calculate-drop-time/calculate-drop-time';
34
+ export { calculateMonthDropDate } from './calculate-month-drop-date/calculate-month-drop-date';
35
+ export { getBusinessHoursMod } from './get-business-hours-mod/get-business-hours-mod';
36
+ export type { DayTimeInterval } from './get-day-time-intervals/get-day-time-intervals';
37
+ export type { ParsedTime } from './parse-time-string/parse-time-string';
38
+ export type { CalculateDropTimeInput, CalculateDropTimeResult, } from './calculate-drop-time/calculate-drop-time';
39
+ export type { CalculateMonthDropDateInput, CalculateMonthDropDateResult, } from './calculate-month-drop-date/calculate-month-drop-date';
40
+ export type { GetBusinessHoursModInput, BusinessHoursMod, } from './get-business-hours-mod/get-business-hours-mod';
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue } from '../../types';
2
+ export declare function isAfterMinDate(date: AnyDateValue, minDate: AnyDateValue | undefined): boolean;
@@ -0,0 +1,7 @@
1
+ import { AnyDateValue, ScheduleEventData } from '../../types';
2
+ interface IsAllDayEventInput {
3
+ event: ScheduleEventData;
4
+ date: AnyDateValue;
5
+ }
6
+ export declare function isAllDayEvent({ event, date }: IsAllDayEventInput): boolean;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue } from '../../types';
2
+ export declare function isBeforeMaxDate(date: AnyDateValue, maxDate: AnyDateValue | undefined): boolean;
@@ -0,0 +1,8 @@
1
+ import { ScheduleEventData } from '../../types';
2
+ interface IsEventInTimeRangeInput {
3
+ event: ScheduleEventData;
4
+ startTime?: string;
5
+ endTime?: string;
6
+ }
7
+ export declare function isEventInTimeRange({ event, startTime, endTime }: IsEventInTimeRangeInput): boolean;
8
+ export {};
@@ -0,0 +1,3 @@
1
+ import { ScheduleEventData } from '../../types';
2
+ /** Returns true if two events overlap in time */
3
+ export declare function isEventsOverlap(event1: ScheduleEventData, event2: ScheduleEventData): boolean;
@@ -0,0 +1,9 @@
1
+ import { AnyDateValue } from '../../types';
2
+ interface IsInTimeRangeInput {
3
+ date: AnyDateValue;
4
+ startTime?: string;
5
+ endTime?: string;
6
+ }
7
+ /** Returns true if the given date's time is within the specified time range */
8
+ export declare function isInTimeRange({ date, startTime, endTime, }: IsInTimeRangeInput): boolean;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ScheduleEventData } from '../../types';
2
+ export declare function isMultidayEvent(event: ScheduleEventData): boolean;
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue } from '../../types';
2
+ export declare function isSameMonth(date: AnyDateValue, comparison: AnyDateValue): boolean;
@@ -0,0 +1,8 @@
1
+ import { AnyDateValue, DayOfWeek, ScheduleEventData } from '../../types';
2
+ interface IsWithinWeekInput {
3
+ event: ScheduleEventData;
4
+ targetWeek: AnyDateValue;
5
+ firstDayOfWeek: DayOfWeek;
6
+ }
7
+ export declare function isWithinWeek({ event, targetWeek, firstDayOfWeek }: IsWithinWeekInput): boolean;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue, DateStringValue, DayOfWeek } from '../../types';
2
+ export declare function nextWeek(date: AnyDateValue, firstDayOfWeek: DayOfWeek): DateStringValue;
@@ -0,0 +1,6 @@
1
+ export interface ParsedTime {
2
+ hours: number;
3
+ minutes: number;
4
+ seconds: number;
5
+ }
6
+ export declare function parseTimeString(time: string): ParsedTime;
@@ -0,0 +1,2 @@
1
+ import { AnyDateValue, DateStringValue, DayOfWeek } from '../../types';
2
+ export declare function previousWeek(date: AnyDateValue, firstDayOfWeek: DayOfWeek): DateStringValue;