@mantine/dates 7.16.3 → 8.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 (411) hide show
  1. package/cjs/components/Calendar/Calendar.cjs +13 -17
  2. package/cjs/components/Calendar/Calendar.cjs.map +1 -1
  3. package/cjs/components/CalendarHeader/CalendarHeader.cjs.map +1 -1
  4. package/cjs/components/DateInput/DateInput.cjs +3 -9
  5. package/cjs/components/DateInput/DateInput.cjs.map +1 -1
  6. package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs +8 -5
  7. package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs.map +1 -1
  8. package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs +1 -1
  9. package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs.map +1 -1
  10. package/cjs/components/DatePicker/DatePicker.cjs +3 -10
  11. package/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  12. package/cjs/components/DatePickerInput/DatePickerInput.cjs +3 -9
  13. package/cjs/components/DatePickerInput/DatePickerInput.cjs.map +1 -1
  14. package/cjs/components/DateTimePicker/DateTimePicker.cjs +34 -34
  15. package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  16. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs +21 -0
  17. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs.map +1 -0
  18. package/cjs/components/DatesProvider/DatesProvider.cjs +0 -1
  19. package/cjs/components/DatesProvider/DatesProvider.cjs.map +1 -1
  20. package/cjs/components/DatesProvider/use-dates-context.cjs +0 -5
  21. package/cjs/components/DatesProvider/use-dates-context.cjs.map +1 -1
  22. package/cjs/components/Day/Day.cjs +1 -5
  23. package/cjs/components/Day/Day.cjs.map +1 -1
  24. package/cjs/components/DecadeLevel/DecadeLevel.cjs.map +1 -1
  25. package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs.map +1 -1
  26. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs +2 -3
  27. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs.map +1 -1
  28. package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs +17 -15
  29. package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs.map +1 -1
  30. package/cjs/components/Month/Month.cjs +7 -6
  31. package/cjs/components/Month/Month.cjs.map +1 -1
  32. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs +11 -3
  33. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs.map +1 -1
  34. package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs +1 -1
  35. package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs.map +1 -1
  36. package/cjs/components/Month/get-month-days/get-month-days.cjs +10 -11
  37. package/cjs/components/Month/get-month-days/get-month-days.cjs.map +1 -1
  38. package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs +1 -1
  39. package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs.map +1 -1
  40. package/cjs/components/Month/get-week-number/get-week-number.cjs.map +1 -1
  41. package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs +1 -1
  42. package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs.map +1 -1
  43. package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs +1 -1
  44. package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs.map +1 -1
  45. package/cjs/components/MonthLevel/MonthLevel.cjs.map +1 -1
  46. package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs +2 -3
  47. package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs.map +1 -1
  48. package/cjs/components/MonthPicker/MonthPicker.cjs +3 -10
  49. package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -1
  50. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +2 -8
  51. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -1
  52. package/cjs/components/MonthsList/MonthsList.cjs +12 -2
  53. package/cjs/components/MonthsList/MonthsList.cjs.map +1 -1
  54. package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs +7 -2
  55. package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs.map +1 -1
  56. package/cjs/components/MonthsList/get-months-data/get-months-data.cjs +1 -1
  57. package/cjs/components/MonthsList/get-months-data/get-months-data.cjs.map +1 -1
  58. package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs +1 -1
  59. package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs.map +1 -1
  60. package/cjs/components/PickerControl/PickerControl.cjs.map +1 -1
  61. package/cjs/components/PickerInputBase/PickerInputBase.cjs +4 -1
  62. package/cjs/components/PickerInputBase/PickerInputBase.cjs.map +1 -1
  63. package/cjs/components/SpinInput/SpinInput.cjs +115 -0
  64. package/cjs/components/SpinInput/SpinInput.cjs.map +1 -0
  65. package/cjs/components/TimeGrid/TimeGrid.cjs +104 -0
  66. package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -0
  67. package/cjs/components/TimeGrid/TimeGrid.context.cjs +12 -0
  68. package/cjs/components/TimeGrid/TimeGrid.context.cjs.map +1 -0
  69. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs +7 -0
  70. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs.map +1 -0
  71. package/cjs/components/TimeGrid/TimeGridControl.cjs +37 -0
  72. package/cjs/components/TimeGrid/TimeGridControl.cjs.map +1 -0
  73. package/cjs/components/TimeGrid/compare-time.cjs +15 -0
  74. package/cjs/components/TimeGrid/compare-time.cjs.map +1 -0
  75. package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
  76. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs +72 -0
  77. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs.map +1 -0
  78. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs +16 -0
  79. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs.map +1 -0
  80. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs +27 -0
  81. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs.map +1 -0
  82. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +54 -0
  83. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -0
  84. package/cjs/components/TimePicker/TimePicker.cjs +387 -0
  85. package/cjs/components/TimePicker/TimePicker.cjs.map +1 -0
  86. package/cjs/components/TimePicker/TimePicker.context.cjs +12 -0
  87. package/cjs/components/TimePicker/TimePicker.context.cjs.map +1 -0
  88. package/cjs/components/TimePicker/TimePicker.module.css.cjs +7 -0
  89. package/cjs/components/TimePicker/TimePicker.module.css.cjs.map +1 -0
  90. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs +31 -0
  91. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs.map +1 -0
  92. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs +39 -0
  93. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs.map +1 -0
  94. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs +73 -0
  95. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs.map +1 -0
  96. package/cjs/components/TimePicker/use-time-picker.cjs +164 -0
  97. package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -0
  98. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs +15 -0
  99. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs.map +1 -0
  100. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs +38 -0
  101. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs.map +1 -0
  102. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs +18 -0
  103. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs.map +1 -0
  104. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs +51 -0
  105. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs.map +1 -0
  106. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs +16 -0
  107. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs.map +1 -0
  108. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs +9 -0
  109. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs.map +1 -0
  110. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs +10 -0
  111. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs.map +1 -0
  112. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs +24 -0
  113. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs.map +1 -0
  114. package/cjs/components/TimeValue/TimeValue.cjs +18 -0
  115. package/cjs/components/TimeValue/TimeValue.cjs.map +1 -0
  116. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs +31 -0
  117. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs.map +1 -0
  118. package/cjs/components/WeekdaysRow/WeekdaysRow.cjs.map +1 -1
  119. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs +1 -1
  120. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  121. package/cjs/components/YearLevel/YearLevel.cjs.map +1 -1
  122. package/cjs/components/YearLevelGroup/YearLevelGroup.cjs +2 -3
  123. package/cjs/components/YearLevelGroup/YearLevelGroup.cjs.map +1 -1
  124. package/cjs/components/YearPicker/YearPicker.cjs +3 -10
  125. package/cjs/components/YearPicker/YearPicker.cjs.map +1 -1
  126. package/cjs/components/YearPickerInput/YearPickerInput.cjs +3 -9
  127. package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -1
  128. package/cjs/components/YearsList/YearsList.cjs +7 -2
  129. package/cjs/components/YearsList/YearsList.cjs.map +1 -1
  130. package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs +7 -2
  131. package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs.map +1 -1
  132. package/cjs/components/YearsList/get-years-data/get-years-data.cjs +8 -2
  133. package/cjs/components/YearsList/get-years-data/get-years-data.cjs.map +1 -1
  134. package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs +1 -1
  135. package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs.map +1 -1
  136. package/cjs/hooks/use-dates-input/use-dates-input.cjs +7 -4
  137. package/cjs/hooks/use-dates-input/use-dates-input.cjs.map +1 -1
  138. package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs +1 -1
  139. package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs.map +1 -1
  140. package/cjs/hooks/use-dates-state/use-dates-state.cjs +10 -12
  141. package/cjs/hooks/use-dates-state/use-dates-state.cjs.map +1 -1
  142. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs +10 -34
  143. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs.map +1 -1
  144. package/cjs/index.cjs +19 -5
  145. package/cjs/index.cjs.map +1 -1
  146. package/cjs/utils/assign-time/assign-time.cjs +16 -13
  147. package/cjs/utils/assign-time/assign-time.cjs.map +1 -1
  148. package/cjs/utils/clamp-date/clamp-date.cjs +25 -0
  149. package/cjs/utils/clamp-date/clamp-date.cjs.map +1 -0
  150. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs +29 -0
  151. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs.map +1 -0
  152. package/cjs/utils/get-formatted-date/get-formatted-date.cjs +41 -0
  153. package/cjs/utils/get-formatted-date/get-formatted-date.cjs.map +1 -0
  154. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs +158 -0
  155. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs.map +1 -0
  156. package/cjs/utils/to-date-string/to-date-string.cjs +19 -0
  157. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -0
  158. package/esm/components/Calendar/Calendar.mjs +13 -17
  159. package/esm/components/Calendar/Calendar.mjs.map +1 -1
  160. package/esm/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
  161. package/esm/components/DateInput/DateInput.mjs +3 -9
  162. package/esm/components/DateInput/DateInput.mjs.map +1 -1
  163. package/esm/components/DateInput/date-string-parser/date-string-parser.mjs +4 -5
  164. package/esm/components/DateInput/date-string-parser/date-string-parser.mjs.map +1 -1
  165. package/esm/components/DateInput/is-date-valid/is-date-valid.mjs +1 -1
  166. package/esm/components/DateInput/is-date-valid/is-date-valid.mjs.map +1 -1
  167. package/esm/components/DatePicker/DatePicker.mjs +3 -10
  168. package/esm/components/DatePicker/DatePicker.mjs.map +1 -1
  169. package/esm/components/DatePickerInput/DatePickerInput.mjs +3 -9
  170. package/esm/components/DatePickerInput/DatePickerInput.mjs.map +1 -1
  171. package/esm/components/DateTimePicker/DateTimePicker.mjs +34 -34
  172. package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
  173. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs +14 -0
  174. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs.map +1 -0
  175. package/esm/components/DatesProvider/DatesProvider.mjs +0 -1
  176. package/esm/components/DatesProvider/DatesProvider.mjs.map +1 -1
  177. package/esm/components/DatesProvider/use-dates-context.mjs +0 -5
  178. package/esm/components/DatesProvider/use-dates-context.mjs.map +1 -1
  179. package/esm/components/Day/Day.mjs +1 -5
  180. package/esm/components/Day/Day.mjs.map +1 -1
  181. package/esm/components/DecadeLevel/DecadeLevel.mjs.map +1 -1
  182. package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs.map +1 -1
  183. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs +2 -3
  184. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs.map +1 -1
  185. package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs +17 -15
  186. package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs.map +1 -1
  187. package/esm/components/Month/Month.mjs +7 -6
  188. package/esm/components/Month/Month.mjs.map +1 -1
  189. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs +11 -3
  190. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs.map +1 -1
  191. package/esm/components/Month/get-end-of-week/get-end-of-week.mjs +1 -1
  192. package/esm/components/Month/get-end-of-week/get-end-of-week.mjs.map +1 -1
  193. package/esm/components/Month/get-month-days/get-month-days.mjs +10 -11
  194. package/esm/components/Month/get-month-days/get-month-days.mjs.map +1 -1
  195. package/esm/components/Month/get-start-of-week/get-start-of-week.mjs +1 -1
  196. package/esm/components/Month/get-start-of-week/get-start-of-week.mjs.map +1 -1
  197. package/esm/components/Month/get-week-number/get-week-number.mjs.map +1 -1
  198. package/esm/components/Month/is-after-min-date/is-after-min-date.mjs +1 -1
  199. package/esm/components/Month/is-after-min-date/is-after-min-date.mjs.map +1 -1
  200. package/esm/components/Month/is-before-max-date/is-before-max-date.mjs +1 -1
  201. package/esm/components/Month/is-before-max-date/is-before-max-date.mjs.map +1 -1
  202. package/esm/components/MonthLevel/MonthLevel.mjs.map +1 -1
  203. package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs +2 -3
  204. package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs.map +1 -1
  205. package/esm/components/MonthPicker/MonthPicker.mjs +3 -10
  206. package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -1
  207. package/esm/components/MonthPickerInput/MonthPickerInput.mjs +2 -8
  208. package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -1
  209. package/esm/components/MonthsList/MonthsList.mjs +12 -2
  210. package/esm/components/MonthsList/MonthsList.mjs.map +1 -1
  211. package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs +7 -2
  212. package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs.map +1 -1
  213. package/esm/components/MonthsList/get-months-data/get-months-data.mjs +1 -1
  214. package/esm/components/MonthsList/get-months-data/get-months-data.mjs.map +1 -1
  215. package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs +1 -1
  216. package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs.map +1 -1
  217. package/esm/components/PickerControl/PickerControl.mjs.map +1 -1
  218. package/esm/components/PickerInputBase/PickerInputBase.mjs +4 -1
  219. package/esm/components/PickerInputBase/PickerInputBase.mjs.map +1 -1
  220. package/esm/components/SpinInput/SpinInput.mjs +113 -0
  221. package/esm/components/SpinInput/SpinInput.mjs.map +1 -0
  222. package/esm/components/TimeGrid/TimeGrid.context.mjs +9 -0
  223. package/esm/components/TimeGrid/TimeGrid.context.mjs.map +1 -0
  224. package/esm/components/TimeGrid/TimeGrid.mjs +102 -0
  225. package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -0
  226. package/esm/components/TimeGrid/TimeGrid.module.css.mjs +5 -0
  227. package/esm/components/TimeGrid/TimeGrid.module.css.mjs.map +1 -0
  228. package/esm/components/TimeGrid/TimeGridControl.mjs +31 -0
  229. package/esm/components/TimeGrid/TimeGridControl.mjs.map +1 -0
  230. package/esm/components/TimeGrid/compare-time.mjs +12 -0
  231. package/esm/components/TimeGrid/compare-time.mjs.map +1 -0
  232. package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
  233. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs +70 -0
  234. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs.map +1 -0
  235. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs +14 -0
  236. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs.map +1 -0
  237. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs +25 -0
  238. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs.map +1 -0
  239. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +52 -0
  240. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -0
  241. package/esm/components/TimePicker/TimePicker.context.mjs +9 -0
  242. package/esm/components/TimePicker/TimePicker.context.mjs.map +1 -0
  243. package/esm/components/TimePicker/TimePicker.mjs +385 -0
  244. package/esm/components/TimePicker/TimePicker.mjs.map +1 -0
  245. package/esm/components/TimePicker/TimePicker.module.css.mjs +5 -0
  246. package/esm/components/TimePicker/TimePicker.module.css.mjs.map +1 -0
  247. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs +29 -0
  248. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs.map +1 -0
  249. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs +37 -0
  250. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs.map +1 -0
  251. package/esm/components/TimePicker/TimePresets/TimePresets.mjs +71 -0
  252. package/esm/components/TimePicker/TimePresets/TimePresets.mjs.map +1 -0
  253. package/esm/components/TimePicker/use-time-picker.mjs +162 -0
  254. package/esm/components/TimePicker/use-time-picker.mjs.map +1 -0
  255. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs +13 -0
  256. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs.map +1 -0
  257. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs +35 -0
  258. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs.map +1 -0
  259. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs +16 -0
  260. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs.map +1 -0
  261. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs +49 -0
  262. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs.map +1 -0
  263. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs +14 -0
  264. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs.map +1 -0
  265. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs +7 -0
  266. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs.map +1 -0
  267. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs +8 -0
  268. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs.map +1 -0
  269. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs +21 -0
  270. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs.map +1 -0
  271. package/esm/components/TimeValue/TimeValue.mjs +16 -0
  272. package/esm/components/TimeValue/TimeValue.mjs.map +1 -0
  273. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs +29 -0
  274. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs.map +1 -0
  275. package/esm/components/WeekdaysRow/WeekdaysRow.mjs.map +1 -1
  276. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs +1 -1
  277. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  278. package/esm/components/YearLevel/YearLevel.mjs.map +1 -1
  279. package/esm/components/YearLevelGroup/YearLevelGroup.mjs +2 -3
  280. package/esm/components/YearLevelGroup/YearLevelGroup.mjs.map +1 -1
  281. package/esm/components/YearPicker/YearPicker.mjs +3 -10
  282. package/esm/components/YearPicker/YearPicker.mjs.map +1 -1
  283. package/esm/components/YearPickerInput/YearPickerInput.mjs +3 -9
  284. package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -1
  285. package/esm/components/YearsList/YearsList.mjs +7 -2
  286. package/esm/components/YearsList/YearsList.mjs.map +1 -1
  287. package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs +7 -2
  288. package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs.map +1 -1
  289. package/esm/components/YearsList/get-years-data/get-years-data.mjs +4 -2
  290. package/esm/components/YearsList/get-years-data/get-years-data.mjs.map +1 -1
  291. package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs +1 -1
  292. package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs.map +1 -1
  293. package/esm/hooks/use-dates-input/use-dates-input.mjs +3 -4
  294. package/esm/hooks/use-dates-input/use-dates-input.mjs.map +1 -1
  295. package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs +1 -1
  296. package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs.map +1 -1
  297. package/esm/hooks/use-dates-state/use-dates-state.mjs +10 -12
  298. package/esm/hooks/use-dates-state/use-dates-state.mjs.map +1 -1
  299. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs +10 -35
  300. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs.map +1 -1
  301. package/esm/index.mjs +10 -4
  302. package/esm/index.mjs.map +1 -1
  303. package/esm/utils/assign-time/assign-time.mjs +12 -13
  304. package/esm/utils/assign-time/assign-time.mjs.map +1 -1
  305. package/esm/utils/clamp-date/clamp-date.mjs +19 -0
  306. package/esm/utils/clamp-date/clamp-date.mjs.map +1 -0
  307. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs +23 -0
  308. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs.map +1 -0
  309. package/esm/utils/get-formatted-date/get-formatted-date.mjs +34 -0
  310. package/esm/utils/get-formatted-date/get-formatted-date.mjs.map +1 -0
  311. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs +156 -0
  312. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs.map +1 -0
  313. package/esm/utils/to-date-string/to-date-string.mjs +12 -0
  314. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -0
  315. package/lib/components/Calendar/Calendar.d.ts +31 -33
  316. package/lib/components/CalendarHeader/CalendarHeader.d.ts +12 -12
  317. package/lib/components/DateInput/DateInput.d.ts +18 -20
  318. package/lib/components/DateInput/date-string-parser/date-string-parser.d.ts +2 -1
  319. package/lib/components/DateInput/is-date-valid/is-date-valid.d.ts +4 -3
  320. package/lib/components/DateInputMask/DateInputMask.d.ts +63 -0
  321. package/lib/components/DateInputMask/use-date-input-mask.d.ts +1 -0
  322. package/lib/components/DatePicker/DatePicker.d.ts +3 -3
  323. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  324. package/lib/components/DateTimePicker/DateTimePicker.d.ts +9 -11
  325. package/lib/components/DateTimePicker/get-min-max-time/get-min-max-time.d.ts +12 -0
  326. package/lib/components/DatesProvider/DatesProvider.d.ts +0 -1
  327. package/lib/components/DatesProvider/use-dates-context.d.ts +0 -2
  328. package/lib/components/Day/Day.d.ts +7 -5
  329. package/lib/components/Day/index.d.ts +1 -1
  330. package/lib/components/DecadeLevel/DecadeLevel.d.ts +6 -5
  331. package/lib/components/DecadeLevel/get-decade-range/get-decade-range.d.ts +2 -1
  332. package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts +6 -5
  333. package/lib/components/HiddenDatesInput/HiddenDatesInput.d.ts +2 -1
  334. package/lib/components/Month/Month.d.ts +25 -25
  335. package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +12 -1
  336. package/lib/components/Month/get-end-of-week/get-end-of-week.d.ts +2 -2
  337. package/lib/components/Month/get-month-days/get-month-days.d.ts +3 -3
  338. package/lib/components/Month/get-start-of-week/get-start-of-week.d.ts +2 -2
  339. package/lib/components/Month/get-week-number/get-week-number.d.ts +2 -1
  340. package/lib/components/Month/is-after-min-date/is-after-min-date.d.ts +2 -1
  341. package/lib/components/Month/is-before-max-date/is-before-max-date.d.ts +2 -1
  342. package/lib/components/MonthLevel/MonthLevel.d.ts +4 -3
  343. package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts +7 -6
  344. package/lib/components/MonthPicker/MonthPicker.d.ts +8 -8
  345. package/lib/components/MonthPickerInput/MonthPickerInput.d.ts +1 -1
  346. package/lib/components/MonthsList/MonthsList.d.ts +8 -8
  347. package/lib/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.d.ts +9 -1
  348. package/lib/components/MonthsList/get-months-data/get-months-data.d.ts +2 -1
  349. package/lib/components/MonthsList/is-month-disabled/is-month-disabled.d.ts +8 -1
  350. package/lib/components/PickerControl/PickerControl.d.ts +5 -5
  351. package/lib/components/PickerInputBase/PickerInputBase.d.ts +11 -8
  352. package/lib/components/SpinInput/SpinInput.d.ts +12 -0
  353. package/lib/components/SpinInput/index.d.ts +1 -0
  354. package/lib/components/TimeGrid/TimeGrid.context.d.ts +10 -0
  355. package/lib/components/TimeGrid/TimeGrid.d.ts +52 -0
  356. package/lib/components/TimeGrid/TimeGridControl.d.ts +10 -0
  357. package/lib/components/TimeGrid/compare-time.d.ts +2 -0
  358. package/lib/components/TimeGrid/index.d.ts +3 -0
  359. package/lib/components/TimeInput/TimeInput.d.ts +3 -3
  360. package/lib/components/TimePicker/AmPmInput/AmPmInput.d.ts +13 -0
  361. package/lib/components/TimePicker/TimeControlsList/AmPmControlsList.d.ts +13 -0
  362. package/lib/components/TimePicker/TimeControlsList/TimeControl.d.ts +10 -0
  363. package/lib/components/TimePicker/TimeControlsList/TimeControlsList.d.ts +12 -0
  364. package/lib/components/TimePicker/TimePicker.context.d.ts +12 -0
  365. package/lib/components/TimePicker/TimePicker.d.ts +98 -0
  366. package/lib/components/TimePicker/TimePicker.types.d.ts +22 -0
  367. package/lib/components/TimePicker/TimePresets/TimePresetControl.d.ts +14 -0
  368. package/lib/components/TimePicker/TimePresets/TimePresetGroup.d.ts +14 -0
  369. package/lib/components/TimePicker/TimePresets/TimePresets.d.ts +14 -0
  370. package/lib/components/TimePicker/index.d.ts +4 -0
  371. package/lib/components/TimePicker/use-time-picker.d.ts +40 -0
  372. package/lib/components/TimePicker/utils/clamp-time/clamp-time.d.ts +6 -0
  373. package/lib/components/TimePicker/utils/get-parsed-time/get-parsed-time.d.ts +35 -0
  374. package/lib/components/TimePicker/utils/get-time-range/get-time-range.d.ts +7 -0
  375. package/lib/components/TimePicker/utils/get-time-string/get-time-string.d.ts +15 -0
  376. package/lib/components/TimePicker/utils/is-same-time/is-same-time.d.ts +7 -0
  377. package/lib/components/TimePicker/utils/pad-time/pad-time.d.ts +1 -0
  378. package/lib/components/TimePicker/utils/split-time-string/split-time-string.d.ts +5 -0
  379. package/lib/components/TimePicker/utils/time-to-seconds/time-to-seconds.d.ts +7 -0
  380. package/lib/components/TimeValue/TimeValue.d.ts +15 -0
  381. package/lib/components/TimeValue/get-formatted-time/get-formatted-time.d.ts +8 -0
  382. package/lib/components/TimeValue/index.d.ts +2 -0
  383. package/lib/components/WeekdaysRow/WeekdaysRow.d.ts +7 -7
  384. package/lib/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.d.ts +2 -2
  385. package/lib/components/YearLevel/YearLevel.d.ts +6 -5
  386. package/lib/components/YearLevelGroup/YearLevelGroup.d.ts +6 -5
  387. package/lib/components/YearPicker/YearPicker.d.ts +2 -2
  388. package/lib/components/YearPickerInput/YearPickerInput.d.ts +1 -1
  389. package/lib/components/YearsList/YearsList.d.ts +7 -7
  390. package/lib/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.d.ts +9 -1
  391. package/lib/components/YearsList/get-years-data/get-years-data.d.ts +2 -1
  392. package/lib/components/YearsList/is-year-disabled/is-year-disabled.d.ts +8 -1
  393. package/lib/hooks/use-dates-state/is-in-range/is-in-range.d.ts +2 -1
  394. package/lib/hooks/use-dates-state/use-dates-state.d.ts +5 -6
  395. package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +5 -4
  396. package/lib/index.d.mts +3 -0
  397. package/lib/index.d.ts +3 -0
  398. package/lib/types/ControlsGroupSettings.d.ts +7 -7
  399. package/lib/types/DatePickerValue.d.ts +4 -3
  400. package/lib/types/GeneralTypes.d.ts +4 -1
  401. package/lib/types/PickerBaseProps.d.ts +2 -1
  402. package/lib/utils/assign-time/assign-time.d.ts +3 -1
  403. package/lib/utils/clamp-date/clamp-date.d.ts +2 -0
  404. package/lib/utils/get-default-clamped-date/get-default-clamped-date.d.ts +7 -0
  405. package/lib/utils/get-formatted-date/get-formatted-date.d.ts +15 -0
  406. package/lib/utils/handle-control-key-down/handle-control-key-down.d.ts +11 -0
  407. package/lib/utils/index.d.ts +6 -5
  408. package/lib/utils/to-date-string/to-date-string.d.ts +4 -0
  409. package/package.json +5 -5
  410. package/styles.css +241 -4
  411. package/styles.layer.css +241 -4
@@ -1,10 +1,11 @@
1
1
  import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
+ import { DateLabelFormat, DateStringValue } from '../../types';
2
3
  import { CalendarHeaderSettings, CalendarHeaderStylesNames } from '../CalendarHeader';
3
4
  import { MonthsListSettings, MonthsListStylesNames } from '../MonthsList';
4
5
  export type YearLevelStylesNames = MonthsListStylesNames | CalendarHeaderStylesNames;
5
6
  export interface YearLevelBaseSettings extends MonthsListSettings {
6
- /** Dayjs label format to display year label or a function that returns year label based on year value, defaults to "YYYY" */
7
- yearLabelFormat?: string | ((year: Date) => React.ReactNode);
7
+ /** dayjs label format to display year label or a function that returns year label based on year value, `"YYYY"` by default */
8
+ yearLabelFormat?: DateLabelFormat;
8
9
  }
9
10
  export interface YearLevelSettings extends YearLevelBaseSettings, CalendarHeaderSettings {
10
11
  }
@@ -12,9 +13,9 @@ export interface YearLevelProps extends BoxProps, YearLevelSettings, Omit<Styles
12
13
  classNames?: Partial<Record<string, string>>;
13
14
  styles?: Partial<Record<string, React.CSSProperties>>;
14
15
  __staticSelector?: string;
15
- /** Year that is currently displayed */
16
- year: Date;
17
- /** Aria-label for change level control */
16
+ /** Displayed year value in `YYYY-MM-DD` format */
17
+ year: DateStringValue;
18
+ /** `aria-label` for change level control */
18
19
  levelControlAriaLabel?: string;
19
20
  }
20
21
  export type YearLevelFactory = Factory<{
@@ -1,4 +1,5 @@
1
1
  import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
+ import { DateStringValue } from '../../types';
2
3
  import { LevelsGroupStylesNames } from '../LevelsGroup';
3
4
  import { YearLevelSettings, YearLevelStylesNames } from '../YearLevel';
4
5
  export type YearLevelGroupStylesNames = YearLevelStylesNames | LevelsGroupStylesNames;
@@ -6,12 +7,12 @@ export interface YearLevelGroupProps extends BoxProps, Omit<YearLevelSettings, '
6
7
  classNames?: Partial<Record<string, string>>;
7
8
  styles?: Partial<Record<string, React.CSSProperties>>;
8
9
  __staticSelector?: string;
9
- /** Number of columns to render next to each other */
10
+ /** Number of columns displayed next to each other */
10
11
  numberOfColumns?: number;
11
- /** Year that is currently displayed */
12
- year: Date;
13
- /** Function that returns level control aria-label based on year date */
14
- levelControlAriaLabel?: ((year: Date) => string) | string;
12
+ /** Displayed year */
13
+ year: DateStringValue;
14
+ /** Function that returns level control `aria-label` */
15
+ levelControlAriaLabel?: ((year: DateStringValue) => string) | string;
15
16
  }
16
17
  export type YearLevelGroupFactory = Factory<{
17
18
  props: YearLevelGroupProps;
@@ -1,5 +1,5 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineComponentStaticProperties, StylesApiProps } from '@mantine/core';
2
- import { DatePickerType, PickerBaseProps } from '../../types';
2
+ import { DatePickerType, DateStringValue, PickerBaseProps } from '../../types';
3
3
  import { CalendarBaseProps } from '../Calendar';
4
4
  import { DecadeLevelBaseSettings } from '../DecadeLevel';
5
5
  import { DecadeLevelGroupStylesNames } from '../DecadeLevelGroup';
@@ -8,7 +8,7 @@ export interface YearPickerBaseProps<Type extends DatePickerType = 'default'> ex
8
8
  }
9
9
  export interface YearPickerProps<Type extends DatePickerType = 'default'> extends BoxProps, YearPickerBaseProps<Type>, StylesApiProps<YearPickerFactory>, ElementProps<'div', 'onChange' | 'value' | 'defaultValue'> {
10
10
  /** Called when year is selected */
11
- onYearSelect?: (date: Date) => void;
11
+ onYearSelect?: (date: DateStringValue) => void;
12
12
  }
13
13
  export type YearPickerFactory = Factory<{
14
14
  props: YearPickerProps;
@@ -4,7 +4,7 @@ import { DateInputSharedProps } from '../PickerInputBase';
4
4
  import { YearPickerBaseProps, YearPickerStylesNames } from '../YearPicker';
5
5
  export type YearPickerInputStylesNames = __InputStylesNames | 'placeholder' | YearPickerStylesNames;
6
6
  export interface YearPickerInputProps<Type extends DatePickerType = 'default'> extends BoxProps, DateInputSharedProps, YearPickerBaseProps<Type>, StylesApiProps<YearPickerInputFactory> {
7
- /** Dayjs format to display input value, "YYYY" by default */
7
+ /** day format to display input value, `"YYYY"` by default */
8
8
  valueFormat?: string;
9
9
  }
10
10
  export type YearPickerInputFactory = Factory<{
@@ -1,5 +1,5 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineSize, StylesApiProps } from '@mantine/core';
2
- import { ControlsGroupSettings } from '../../types';
2
+ import { ControlsGroupSettings, DateStringValue } from '../../types';
3
3
  import { PickerControlProps } from '../PickerControl';
4
4
  export type YearsListStylesNames = 'yearsListControl' | 'yearsList' | 'yearsListCell' | 'yearsListRow';
5
5
  export interface YearsListSettings extends ControlsGroupSettings {
@@ -7,19 +7,19 @@ export interface YearsListSettings extends ControlsGroupSettings {
7
7
  __preventFocus?: boolean;
8
8
  /** Determines whether propagation for Escape key should be stopped */
9
9
  __stopPropagation?: boolean;
10
- /** Dayjs format for years list, `'YYYY'` by default */
10
+ /** dayjs format for years list, `'YYYY'` by default */
11
11
  yearsListFormat?: string;
12
- /** Adds props to year picker control based on date */
13
- getYearControlProps?: (date: Date) => Partial<PickerControlProps>;
12
+ /** Passes props down to year picker control based on date */
13
+ getYearControlProps?: (date: DateStringValue) => Partial<PickerControlProps>;
14
14
  /** Component size */
15
15
  size?: MantineSize;
16
- /** Determines whether controls should be separated by spacing, true by default */
16
+ /** Determines whether controls should be separated, `true` by default */
17
17
  withCellSpacing?: boolean;
18
18
  }
19
19
  export interface YearsListProps extends BoxProps, YearsListSettings, StylesApiProps<YearsListFactory>, ElementProps<'table'> {
20
20
  __staticSelector?: string;
21
- /** Decade for which years list should be displayed */
22
- decade: Date;
21
+ /** Decade value to display */
22
+ decade: DateStringValue;
23
23
  }
24
24
  export type YearsListFactory = Factory<{
25
25
  props: YearsListProps;
@@ -1,2 +1,10 @@
1
+ import { DateStringValue } from '../../../types';
1
2
  import { PickerControlProps } from '../../PickerControl';
2
- export declare function getYearInTabOrder(years: Date[][], minDate: Date | undefined, maxDate: Date | undefined, getYearControlProps: ((year: Date) => Partial<PickerControlProps>) | undefined): Date;
3
+ interface GetYearInTabOrderInput {
4
+ years: DateStringValue[][];
5
+ minDate: DateStringValue | Date | undefined;
6
+ maxDate: DateStringValue | Date | undefined;
7
+ getYearControlProps: ((year: DateStringValue) => Partial<PickerControlProps>) | undefined;
8
+ }
9
+ export declare function getYearInTabOrder({ years, minDate, maxDate, getYearControlProps, }: GetYearInTabOrderInput): string;
10
+ export {};
@@ -1 +1,2 @@
1
- export declare function getYearsData(decade: Date): Date[][];
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function getYearsData(decade: DateStringValue): string[][];
@@ -1 +1,8 @@
1
- export declare function isYearDisabled(year: Date, minDate: Date | null | undefined, maxDate: Date | null | undefined): boolean;
1
+ import { DateStringValue } from '../../../types';
2
+ interface IsYearDisabledInput {
3
+ year: DateStringValue;
4
+ minDate: DateStringValue | Date | undefined;
5
+ maxDate: DateStringValue | Date | undefined;
6
+ }
7
+ export declare function isYearDisabled({ year, minDate, maxDate }: IsYearDisabledInput): boolean;
8
+ export {};
@@ -1 +1,2 @@
1
- export declare function isInRange(date: Date, range: [Date, Date]): boolean;
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function isInRange(date: DateStringValue, range: [DateStringValue, DateStringValue]): boolean;
@@ -1,15 +1,14 @@
1
- import { DatePickerType, PickerBaseProps } from '../../types';
1
+ import { DatePickerType, DateStringValue, PickerBaseProps } from '../../types';
2
2
  interface UseDatesRangeInput<Type extends DatePickerType = 'default'> extends PickerBaseProps<Type> {
3
3
  level: 'year' | 'month' | 'day';
4
4
  type: Type;
5
5
  onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;
6
- applyTimezone?: boolean;
7
6
  }
8
- export declare function useDatesState<Type extends DatePickerType = 'default'>({ type, level, value, defaultValue, onChange, allowSingleDateInRange, allowDeselect, onMouseLeave, applyTimezone, }: UseDatesRangeInput<Type>): {
9
- onDateChange: (date: Date) => void;
7
+ export declare function useDatesState<Type extends DatePickerType = 'default'>({ type, level, value, defaultValue, onChange, allowSingleDateInRange, allowDeselect, onMouseLeave, }: UseDatesRangeInput<Type>): {
8
+ onDateChange: (date: DateStringValue) => void;
10
9
  onRootMouseLeave: ((event: React.MouseEvent<HTMLDivElement>) => void) | undefined;
11
- onHoveredDateChange: import("react").Dispatch<import("react").SetStateAction<Date | null>>;
12
- getControlProps: (date: Date) => {
10
+ onHoveredDateChange: import("react").Dispatch<import("react").SetStateAction<string | null>>;
11
+ getControlProps: (date: DateStringValue) => {
13
12
  selected: any;
14
13
  inRange: boolean;
15
14
  firstInRange: boolean;
@@ -1,10 +1,11 @@
1
- import { DatePickerType, DatePickerValue } from '../../types';
1
+ import { DatePickerType, DatePickerValue, DateStringValue } from '../../types';
2
2
  interface UseUncontrolledDates<Type extends DatePickerType = 'default'> {
3
3
  type: Type;
4
4
  value: DatePickerValue<Type> | undefined;
5
5
  defaultValue: DatePickerValue<Type> | undefined;
6
- onChange: ((value: DatePickerValue<Type>) => void) | undefined;
7
- applyTimezone?: boolean;
6
+ onChange: ((value: DatePickerValue<Type, DateStringValue>) => void) | undefined;
7
+ withTime?: boolean;
8
8
  }
9
- export declare function useUncontrolledDates<Type extends DatePickerType = 'default'>({ type, value, defaultValue, onChange, applyTimezone, }: UseUncontrolledDates<Type>): any[];
9
+ export declare const convertDatesValue: (value: any, withTime: boolean) => string | (string | null | undefined)[] | null | undefined;
10
+ export declare function useUncontrolledDates<Type extends DatePickerType = 'default'>({ type, value, defaultValue, onChange, withTime, }: UseUncontrolledDates<Type>): any[];
10
11
  export {};
package/lib/index.d.mts CHANGED
@@ -3,6 +3,8 @@ export * from './utils/index.js';
3
3
  export * from './components/DatesProvider/index.js';
4
4
  export * from './components/HiddenDatesInput/index.js';
5
5
  export * from './components/TimeInput/index.js';
6
+ export * from './components/TimePicker/index.js';
7
+ export * from './components/TimeValue/index.js';
6
8
  export * from './components/Day/index.js';
7
9
  export * from './components/WeekdaysRow/index.js';
8
10
  export * from './components/Month/index.js';
@@ -27,3 +29,4 @@ export * from './components/DateTimePicker/index.js';
27
29
  export * from './components/YearPickerInput/index.js';
28
30
  export * from './components/MonthPickerInput/index.js';
29
31
  export * from './components/DatePickerInput/index.js';
32
+ export * from './components/TimeGrid/index.js';
package/lib/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export * from './utils/index.js';
3
3
  export * from './components/DatesProvider/index.js';
4
4
  export * from './components/HiddenDatesInput/index.js';
5
5
  export * from './components/TimeInput/index.js';
6
+ export * from './components/TimePicker/index.js';
7
+ export * from './components/TimeValue/index.js';
6
8
  export * from './components/Day/index.js';
7
9
  export * from './components/WeekdaysRow/index.js';
8
10
  export * from './components/Month/index.js';
@@ -27,3 +29,4 @@ export * from './components/DateTimePicker/index.js';
27
29
  export * from './components/YearPickerInput/index.js';
28
30
  export * from './components/MonthPickerInput/index.js';
29
31
  export * from './components/DatePickerInput/index.js';
32
+ export * from './components/TimeGrid/index.js';
@@ -1,17 +1,17 @@
1
- import type { ControlKeydownPayload } from './GeneralTypes';
1
+ import type { ControlKeydownPayload, DateStringValue } from './GeneralTypes';
2
2
  export interface ControlsGroupSettings {
3
3
  /** Called when control is clicked with event and date */
4
- __onControlClick?: (event: React.MouseEvent<HTMLButtonElement>, date: Date) => void;
4
+ __onControlClick?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
5
5
  /** Called when mouse enters control with event and date, used for ranges */
6
- __onControlMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: Date) => void;
6
+ __onControlMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
7
7
  /** Called when any keydown event is registered on control, used for arrows navigation */
8
8
  __onControlKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, payload: ControlKeydownPayload) => void;
9
9
  /** Assigns ref of every control based on its position in the table, used for arrows navigation */
10
10
  __getControlRef?: (rowIndex: number, cellIndex: number, node: HTMLButtonElement) => void;
11
- /** Minimum possible date */
12
- minDate?: Date;
13
- /** Maximum possible date */
14
- maxDate?: Date;
11
+ /** Minimum possible date in `YYYY-MM-DD` format or Date object */
12
+ minDate?: DateStringValue | Date;
13
+ /** Maximum possible date in `YYYY-MM-DD` format or Date object */
14
+ maxDate?: DateStringValue | Date;
15
15
  /** Dayjs locale, defaults to value defined in DatesProvider */
16
16
  locale?: string;
17
17
  }
@@ -1,4 +1,5 @@
1
- export type DateValue = Date | null;
2
- export type DatesRangeValue = [DateValue, DateValue];
1
+ import { DateStringValue } from './GeneralTypes';
2
+ export type DateValue = DateStringValue | Date | null;
3
+ export type DatesRangeValue<ValueType = DateValue> = [ValueType, ValueType];
3
4
  export type DatePickerType = 'default' | 'multiple' | 'range';
4
- export type DatePickerValue<Type extends DatePickerType = 'default'> = Type extends 'range' ? DatesRangeValue : Type extends 'multiple' ? Date[] : DateValue;
5
+ export type DatePickerValue<Type extends DatePickerType = 'default', ValueType = DateValue> = Type extends 'range' ? DatesRangeValue<ValueType> : Type extends 'multiple' ? ValueType[] : ValueType;
@@ -1,7 +1,10 @@
1
+ /** Date value used by all Mantine components, format: `YYYY-MM-DD` */
2
+ export type DateStringValue = string;
1
3
  export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
2
4
  export type CalendarLevel = 'month' | 'year' | 'decade';
3
5
  export interface ControlKeydownPayload {
4
6
  cellIndex: number;
5
7
  rowIndex: number;
6
- date: Date;
8
+ date: DateStringValue;
7
9
  }
10
+ export type DateLabelFormat = string | ((date: DateStringValue) => React.ReactNode);
@@ -1,4 +1,5 @@
1
1
  import type { DatePickerType, DatePickerValue } from './DatePickerValue';
2
+ import { DateStringValue } from './GeneralTypes';
2
3
  export interface PickerBaseProps<Type extends DatePickerType = 'default'> {
3
4
  /** Picker type: range, multiple or default */
4
5
  type?: DatePickerType | Type;
@@ -7,7 +8,7 @@ export interface PickerBaseProps<Type extends DatePickerType = 'default'> {
7
8
  /** Default value for uncontrolled component */
8
9
  defaultValue?: DatePickerValue<Type>;
9
10
  /** Called when value changes */
10
- onChange?: (value: DatePickerValue<Type>) => void;
11
+ onChange?: (value: DatePickerValue<Type, DateStringValue>) => void;
11
12
  /** Determines whether user can deselect the date by clicking on selected item, applicable only when type="default" */
12
13
  allowDeselect?: Type extends 'default' ? boolean : never;
13
14
  /** Determines whether a single day can be selected as range, applicable only when type="range" */
@@ -1 +1,3 @@
1
- export declare function assignTime(originalDate: Date, resultDate: Date): Date;
1
+ import { DateStringValue } from '../../types';
2
+ export declare function assignTime(dateValue: DateStringValue | null, // Date to assign time to
3
+ timeString: string): DateStringValue | null;
@@ -0,0 +1,2 @@
1
+ import { DateStringValue } from '../../types';
2
+ export declare function clampDate(minDate: DateStringValue | Date | undefined, maxDate: DateStringValue | Date | undefined, date: DateStringValue | Date): DateStringValue;
@@ -0,0 +1,7 @@
1
+ import { DateStringValue } from '../../types';
2
+ interface GetDefaultClampedDate {
3
+ minDate: DateStringValue | Date | undefined;
4
+ maxDate: DateStringValue | Date | undefined;
5
+ }
6
+ export declare function getDefaultClampedDate({ minDate, maxDate, }: GetDefaultClampedDate): DateStringValue;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { DatePickerType, DatePickerValue } from '../../types';
2
+ interface DateFormatterInput {
3
+ type: DatePickerType;
4
+ date: DatePickerValue<DatePickerType>;
5
+ locale: string;
6
+ format: string;
7
+ labelSeparator: string;
8
+ }
9
+ export type DateFormatter = (input: DateFormatterInput) => string;
10
+ export declare function defaultDateFormatter({ type, date, locale, format, labelSeparator, }: DateFormatterInput): string;
11
+ interface GetFormattedDateInput extends DateFormatterInput {
12
+ formatter?: DateFormatter;
13
+ }
14
+ export declare function getFormattedDate({ formatter, ...others }: GetFormattedDateInput): string;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { RefObject } from 'react';
2
+ type ControlsRef = RefObject<HTMLButtonElement[][][]>;
3
+ interface HandleControlKeyDownInput {
4
+ controlsRef: ControlsRef;
5
+ levelIndex: number;
6
+ rowIndex: number;
7
+ cellIndex: number;
8
+ event: React.KeyboardEvent<HTMLButtonElement>;
9
+ }
10
+ export declare function handleControlKeyDown({ controlsRef, levelIndex, rowIndex, cellIndex, event, }: HandleControlKeyDownInput): void;
11
+ export {};
@@ -1,6 +1,7 @@
1
- export { getFormattedDate } from './get-formatted-date';
2
- export { handleControlKeyDown } from './handle-control-key-down';
1
+ export { getFormattedDate } from './get-formatted-date/get-formatted-date';
2
+ export { handleControlKeyDown } from './handle-control-key-down/handle-control-key-down';
3
3
  export { assignTime } from './assign-time/assign-time';
4
- export { getDefaultClampedDate } from './get-default-clamped-date';
5
- export { shiftTimezone } from './shift-timezone';
6
- export type { DateFormatter } from './get-formatted-date';
4
+ export { getDefaultClampedDate } from './get-default-clamped-date/get-default-clamped-date';
5
+ export { clampDate } from './clamp-date/clamp-date';
6
+ export { toDateString, toDateTimeString } from './to-date-string/to-date-string';
7
+ export type { DateFormatter } from './get-formatted-date/get-formatted-date';
@@ -0,0 +1,4 @@
1
+ import { Dayjs } from 'dayjs';
2
+ import { DateStringValue } from '../../types';
3
+ export declare function toDateString(value: string | number | Date | Dayjs | undefined | null): DateStringValue | undefined | null;
4
+ export declare function toDateTimeString(value: string | number | Date | Dayjs | undefined | null): DateStringValue | undefined | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/dates",
3
- "version": "7.16.3",
3
+ "version": "8.0.0-alpha.0",
4
4
  "description": "Calendars, date and time pickers based on Mantine components",
5
5
  "homepage": "https://mantine.dev/dates/getting-started/",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "directory": "packages/@mantine/dates"
46
46
  },
47
47
  "peerDependencies": {
48
- "@mantine/core": "7.16.3",
49
- "@mantine/hooks": "7.16.3",
48
+ "@mantine/core": "8.0.0-alpha.0",
49
+ "@mantine/hooks": "8.0.0-alpha.0",
50
50
  "dayjs": ">=1.0.0",
51
51
  "react": "^18.x || ^19.x",
52
52
  "react-dom": "^18.x || ^19.x"
@@ -59,7 +59,7 @@
59
59
  "@mantine-tests/dates": "workspace:*",
60
60
  "@mantine/core": "workspace:*",
61
61
  "@mantine/hooks": "workspace:*",
62
- "react": "^18.3.1",
63
- "react-dom": "^18.3.1"
62
+ "react": "19.0.0",
63
+ "react-dom": "19.0.0"
64
64
  }
65
65
  }