@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
@@ -0,0 +1,63 @@
1
+ import { BoxProps, CloseButtonProps, DataAttributes, ElementProps, Factory, PopoverProps, StylesApiProps } from '@mantine/core';
2
+ export type DateInputMaskStylesNames = 'fieldsRoot';
3
+ export type DateInputMaskVariant = string;
4
+ export interface DateInputMaskProps extends BoxProps, StylesApiProps<DateInputMaskFactory>, ElementProps<'div', 'onChange' | 'value' | 'defaultValue'> {
5
+ /** Controlled component value */
6
+ value?: Date | null;
7
+ /** Uncontrolled component default value */
8
+ defaultValue?: Date | null;
9
+ /** Called when the value changes */
10
+ onChange?: (value: Date | null) => void;
11
+ /** Determines whether the clear button should be displayed, `false` by default */
12
+ clearable?: boolean;
13
+ /** Called once when one of the inputs is focused, not called when focused is shifted between hours, minutes, seconds and am/pm inputs */
14
+ onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
15
+ /** Called once when the focus is no longer on any of the inputs */
16
+ onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
17
+ /** If set, the value cannot be updated */
18
+ readOnly?: boolean;
19
+ /** If set, the component becomes disabled */
20
+ disabled?: boolean;
21
+ /** `name` prop passed down to the hidden input */
22
+ name?: string;
23
+ /** `form` prop passed down to the hidden input */
24
+ form?: string;
25
+ /** Props passed down to the hidden input */
26
+ hiddenInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
27
+ /** `aria-label` of days input */
28
+ daysInputLabel?: string;
29
+ /** `aria-label` of months input */
30
+ monthsInputLabel?: string;
31
+ /** `aria-label` of years input */
32
+ yearsInputLabel?: string;
33
+ /** Determines whether the dropdown with calendar should be visible when the input has focus, `false` by default */
34
+ withDropdown?: boolean;
35
+ /** Props passed down to `Popover` component */
36
+ popoverProps?: PopoverProps;
37
+ /** Props passed down to clear button */
38
+ clearButtonProps?: CloseButtonProps & ElementProps<'button'> & DataAttributes;
39
+ /** Props passed down to days input */
40
+ daysInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
41
+ /** Props passed down to months input */
42
+ monthsInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
43
+ /** Props passed down to years input */
44
+ yearsInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
45
+ /** A ref object to get node reference of the days input */
46
+ daysRef?: React.Ref<HTMLInputElement>;
47
+ /** A ref object to get node reference of the months input */
48
+ monthsRef?: React.Ref<HTMLInputElement>;
49
+ /** A ref object to get node reference of the years input */
50
+ yearsRef?: React.Ref<HTMLInputElement>;
51
+ }
52
+ export type DateInputMaskFactory = Factory<{
53
+ props: DateInputMaskProps;
54
+ ref: HTMLDivElement;
55
+ stylesNames: DateInputMaskStylesNames;
56
+ variant: DateInputMaskVariant;
57
+ }>;
58
+ export declare const DateInputMask: import("@mantine/core").MantineComponent<{
59
+ props: DateInputMaskProps;
60
+ ref: HTMLDivElement;
61
+ stylesNames: DateInputMaskStylesNames;
62
+ variant: DateInputMaskVariant;
63
+ }>;
@@ -0,0 +1 @@
1
+ export declare function useDateInputMask(): void;
@@ -6,11 +6,11 @@ import { MonthLevelBaseSettings } from '../MonthLevel';
6
6
  import { YearLevelBaseSettings } from '../YearLevel';
7
7
  export type DatePickerStylesNames = CalendarStylesNames;
8
8
  export interface DatePickerBaseProps<Type extends DatePickerType = 'default'> extends PickerBaseProps<Type>, DecadeLevelBaseSettings, YearLevelBaseSettings, MonthLevelBaseSettings, CalendarBaseProps, Omit<CalendarSettings, 'hasNextLevel'> {
9
- /** Max level that user can go up to (decade, year, month), defaults to decade */
9
+ /** Max level that user can go up to, `'decade'` by default */
10
10
  maxLevel?: CalendarLevel;
11
- /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */
11
+ /** Initial displayed level (uncontrolled) */
12
12
  defaultLevel?: CalendarLevel;
13
- /** Current level displayed to the user (decade, year, month), used for controlled component */
13
+ /** Current displayed level (controlled) */
14
14
  level?: CalendarLevel;
15
15
  /** Called when level changes */
16
16
  onLevelChange?: (level: CalendarLevel) => void;
@@ -5,7 +5,7 @@ import { DatePickerBaseProps } from '../DatePicker';
5
5
  import { DateInputSharedProps } from '../PickerInputBase';
6
6
  export type DatePickerInputStylesNames = __InputStylesNames | 'placeholder' | CalendarStylesNames;
7
7
  export interface DatePickerInputProps<Type extends DatePickerType = 'default'> extends BoxProps, DateInputSharedProps, DatePickerBaseProps<Type>, StylesApiProps<DatePickerInputFactory> {
8
- /** Dayjs format to display input value, "MMMM D, YYYY" by default */
8
+ /** dayjs format for input value, `"MMMM D, YYYY"` by default */
9
9
  valueFormat?: string;
10
10
  }
11
11
  export type DatePickerInputFactory = Factory<{
@@ -1,27 +1,25 @@
1
1
  import { ActionIconProps, BoxProps, Factory, InputVariant, StylesApiProps } from '@mantine/core';
2
- import { CalendarLevel, DateValue } from '../../types';
2
+ import { CalendarLevel, DateStringValue, DateValue } from '../../types';
3
3
  import { CalendarBaseProps, CalendarSettings, CalendarStylesNames } from '../Calendar';
4
4
  import { DateInputSharedProps, PickerInputBaseStylesNames } from '../PickerInputBase';
5
- import { TimeInputProps } from '../TimeInput';
5
+ import { TimePickerProps } from '../TimePicker/TimePicker';
6
6
  export type DateTimePickerStylesNames = 'timeWrapper' | 'timeInput' | 'submitButton' | PickerInputBaseStylesNames | CalendarStylesNames;
7
7
  export interface DateTimePickerProps extends BoxProps, Omit<DateInputSharedProps, 'classNames' | 'styles' | 'closeOnChange' | 'size' | 'valueFormatter'>, Omit<CalendarBaseProps, 'defaultDate'>, Omit<CalendarSettings, 'onYearMouseEnter' | 'onMonthMouseEnter' | 'hasNextLevel'>, StylesApiProps<DateTimePickerFactory> {
8
- /** Dayjs format to display input value, "DD/MM/YYYY HH:mm" by default */
8
+ /** dayjs format for input value, `"DD/MM/YYYY HH:mm"` by default */
9
9
  valueFormat?: string;
10
10
  /** Controlled component value */
11
11
  value?: DateValue;
12
- /** Default value for uncontrolled component */
12
+ /** Uncontrolled component default value */
13
13
  defaultValue?: DateValue;
14
14
  /** Called when value changes */
15
- onChange?: (value: DateValue) => void;
16
- /** TimeInput component props */
17
- timeInputProps?: Omit<TimeInputProps, 'defaultValue' | 'value'> & {
18
- ref?: React.ComponentPropsWithRef<'input'>['ref'];
19
- };
15
+ onChange?: (value: DateStringValue) => void;
16
+ /** Props passed down to `TimePicker` component */
17
+ timePickerProps?: Omit<TimePickerProps, 'defaultValue' | 'value'>;
20
18
  /** Props passed down to the submit button */
21
19
  submitButtonProps?: ActionIconProps & React.ComponentPropsWithoutRef<'button'>;
22
- /** Determines whether seconds input should be rendered */
20
+ /** Determines whether the seconds input should be displayed, `false` by default */
23
21
  withSeconds?: boolean;
24
- /** Max level that user can go up to (decade, year, month), defaults to decade */
22
+ /** Max level that user can go up to, `'decade'` by default */
25
23
  maxLevel?: CalendarLevel;
26
24
  }
27
25
  export type DateTimePickerFactory = Factory<{
@@ -0,0 +1,12 @@
1
+ import { DateStringValue } from '../../../types';
2
+ interface GetMinTimeInput {
3
+ minDate: DateStringValue | Date | undefined;
4
+ value: DateStringValue | null;
5
+ }
6
+ export declare function getMinTime({ minDate, value }: GetMinTimeInput): string | undefined;
7
+ interface GetMaxTimeInput {
8
+ maxDate: DateStringValue | Date | undefined;
9
+ value: DateStringValue | null;
10
+ }
11
+ export declare function getMaxTime({ maxDate, value }: GetMaxTimeInput): string | undefined;
12
+ export {};
@@ -1,7 +1,6 @@
1
1
  import { DayOfWeek } from '../../types';
2
2
  export interface DatesProviderValue {
3
3
  locale: string;
4
- timezone: string | null;
5
4
  firstDayOfWeek: DayOfWeek;
6
5
  weekendDays: DayOfWeek[];
7
6
  labelSeparator: string;
@@ -1,12 +1,10 @@
1
1
  import { DayOfWeek } from '../../types';
2
2
  export declare function useDatesContext(): {
3
3
  getLocale: (input?: string) => string;
4
- getTimezone: (input?: string) => string | undefined;
5
4
  getFirstDayOfWeek: (input?: DayOfWeek) => DayOfWeek;
6
5
  getWeekendDays: (input?: DayOfWeek[]) => DayOfWeek[];
7
6
  getLabelSeparator: (input?: string) => string;
8
7
  locale: string;
9
- timezone: string | null;
10
8
  firstDayOfWeek: DayOfWeek;
11
9
  weekendDays: DayOfWeek[];
12
10
  labelSeparator: string;
@@ -1,17 +1,19 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineSize, StylesApiProps } from '@mantine/core';
2
+ import { DateStringValue } from '../../types';
3
+ export type RenderDay = (date: DateStringValue) => React.ReactNode;
2
4
  export type DayStylesNames = 'day';
3
5
  export type DayCssVariables = {
4
6
  day: '--day-size';
5
7
  };
6
8
  export interface DayProps extends BoxProps, StylesApiProps<DayFactory>, ElementProps<'button'> {
7
9
  __staticSelector?: string;
8
- /** Determines which element should be used as root, `'button'` by default, `'div'` if static prop is set */
10
+ /** Determines which element is used as root, `'button'` by default, `'div'` if static prop is set */
9
11
  static?: boolean;
10
- /** Date that should be displayed */
11
- date: Date;
12
+ /** Date that is displayed in `YYYY-MM-DD` format */
13
+ date: DateStringValue;
12
14
  /** Control width and height of the day, `'sm'` by default */
13
15
  size?: MantineSize;
14
- /** Determines whether the day should be considered to be a weekend, `false` by default */
16
+ /** Determines whether the day is considered to be a weekend, `false` by default */
15
17
  weekend?: boolean;
16
18
  /** Determines whether the day is outside of the current month, `false` by default */
17
19
  outside?: boolean;
@@ -26,7 +28,7 @@ export interface DayProps extends BoxProps, StylesApiProps<DayFactory>, ElementP
26
28
  /** Determines whether the day is last in range selection, `false` by default */
27
29
  lastInRange?: boolean;
28
30
  /** Controls day value rendering */
29
- renderDay?: (date: Date) => React.ReactNode;
31
+ renderDay?: RenderDay;
30
32
  /** Determines whether today should be highlighted with a border, `false` by default */
31
33
  highlightToday?: boolean;
32
34
  }
@@ -1,2 +1,2 @@
1
1
  export { Day } from './Day';
2
- export type { DayCssVariables, DayFactory, DayProps, DayStylesNames } from './Day';
2
+ export type { DayCssVariables, DayFactory, DayProps, DayStylesNames, RenderDay } from './Day';
@@ -1,10 +1,11 @@
1
1
  import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
+ import { DateStringValue } from '../../types';
2
3
  import { CalendarHeaderSettings, CalendarHeaderStylesNames } from '../CalendarHeader';
3
4
  import { YearsListSettings, YearsListStylesNames } from '../YearsList';
4
5
  export type DecadeLevelStylesNames = YearsListStylesNames | CalendarHeaderStylesNames;
5
6
  export interface DecadeLevelBaseSettings extends YearsListSettings {
6
- /** Dayjs label format to display decade label or a function that returns decade label based on date value, defaults to "YYYY" */
7
- decadeLabelFormat?: string | ((startOfDecade: Date, endOfDecade: Date) => React.ReactNode);
7
+ /** dayjs format for decade label or a function that returns decade label based on the date value, `"YYYY"` by default */
8
+ decadeLabelFormat?: string | ((startOfDecade: DateStringValue, endOfDecade: DateStringValue) => React.ReactNode);
8
9
  }
9
10
  export interface DecadeLevelSettings extends DecadeLevelBaseSettings, Omit<CalendarHeaderSettings, 'onLevelClick' | 'hasNextLevel'> {
10
11
  }
@@ -12,9 +13,9 @@ export interface DecadeLevelProps extends BoxProps, DecadeLevelSettings, Omit<St
12
13
  classNames?: Partial<Record<string, string>>;
13
14
  styles?: Partial<Record<string, React.CSSProperties>>;
14
15
  __staticSelector?: string;
15
- /** Decade that is currently displayed */
16
- decade: Date;
17
- /** Aria-label for change level control */
16
+ /** Displayed decade */
17
+ decade: DateStringValue;
18
+ /** Level control `aria-label` */
18
19
  levelControlAriaLabel?: string;
19
20
  }
20
21
  export type DecadeLevelFactory = Factory<{
@@ -1 +1,2 @@
1
- export declare function getDecadeRange(decade: Date): readonly [Date, Date];
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function getDecadeRange(decade: DateStringValue): readonly [string, string];
@@ -1,4 +1,5 @@
1
1
  import { BoxProps, ElementProps, Factory, StylesApiProps } from '@mantine/core';
2
+ import { DateStringValue } from '../../types';
2
3
  import { DecadeLevelSettings, DecadeLevelStylesNames } from '../DecadeLevel';
3
4
  import { LevelsGroupStylesNames } from '../LevelsGroup';
4
5
  export type DecadeLevelGroupStylesNames = LevelsGroupStylesNames | DecadeLevelStylesNames;
@@ -6,12 +7,12 @@ export interface DecadeLevelGroupProps extends BoxProps, Omit<StylesApiProps<Dec
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 to display next to each other */
10
11
  numberOfColumns?: number;
11
- /** Decade that is currently displayed */
12
- decade: Date;
13
- /** Function that returns level control aria-label based on year date */
14
- levelControlAriaLabel?: ((decade: Date) => string) | string;
12
+ /** Displayed decade */
13
+ decade: DateStringValue;
14
+ /** Function that returns level control `aria-label` based on year date */
15
+ levelControlAriaLabel?: ((decade: DateStringValue) => string) | string;
15
16
  }
16
17
  export type DecadeLevelGroupFactory = Factory<{
17
18
  props: DecadeLevelGroupProps;
@@ -5,8 +5,9 @@ export interface HiddenDatesInputProps {
5
5
  type: DatePickerType;
6
6
  name: string | undefined;
7
7
  form: string | undefined;
8
+ withTime?: boolean;
8
9
  }
9
- export declare function HiddenDatesInput({ value, type, name, form }: HiddenDatesInputProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function HiddenDatesInput({ value, type, name, form, withTime, }: HiddenDatesInputProps): import("react/jsx-runtime").JSX.Element;
10
11
  export declare namespace HiddenDatesInput {
11
12
  var displayName: string;
12
13
  }
@@ -1,6 +1,6 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineSize, StylesApiProps } from '@mantine/core';
2
- import { ControlKeydownPayload, DayOfWeek } from '../../types';
3
- import { DayProps, DayStylesNames } from '../Day';
2
+ import { ControlKeydownPayload, DateLabelFormat, DateStringValue, DayOfWeek } from '../../types';
3
+ import { DayProps, DayStylesNames, RenderDay } from '../Day';
4
4
  export type MonthStylesNames = 'month' | 'weekday' | 'weekdaysRow' | 'monthRow' | 'month' | 'monthThead' | 'monthTbody' | 'monthCell' | 'weekNumber' | DayStylesNames;
5
5
  export interface MonthSettings {
6
6
  /** Determines whether propagation for Escape key should be stopped */
@@ -8,50 +8,50 @@ export interface MonthSettings {
8
8
  /** Prevents focus shift when buttons are clicked */
9
9
  __preventFocus?: boolean;
10
10
  /** Called when day is clicked with click event and date */
11
- __onDayClick?: (event: React.MouseEvent<HTMLButtonElement>, date: Date) => void;
11
+ __onDayClick?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
12
12
  /** Called when mouse enters day */
13
- __onDayMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: Date) => void;
13
+ __onDayMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, date: DateStringValue) => void;
14
14
  /** Called when any keydown event is registered on day, used for arrows navigation */
15
15
  __onDayKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, payload: ControlKeydownPayload) => void;
16
16
  /** Assigns ref of every day based on its position in the table, used for arrows navigation */
17
17
  __getDayRef?: (rowIndex: number, cellIndex: number, node: HTMLButtonElement) => void;
18
- /** Dayjs locale, defaults to value defined in DatesProvider */
18
+ /** dayjs locale, the default value is defined by `DatesProvider` */
19
19
  locale?: string;
20
- /** Number 0-6, 0 – Sunday, 6 – Saturday, defaults to 1 – Monday */
20
+ /** Number 0-6, where 0 – Sunday and 6 – Saturday. 1 – Monday by default */
21
21
  firstDayOfWeek?: DayOfWeek;
22
- /** Dayjs format for weekdays names, defaults to "dd" */
23
- weekdayFormat?: string | ((date: Date) => React.ReactNode);
24
- /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday, defaults to value defined in DatesProvider */
22
+ /** dayjs format for weekdays names, `'dd'` by default */
23
+ weekdayFormat?: DateLabelFormat;
24
+ /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider` */
25
25
  weekendDays?: DayOfWeek[];
26
- /** Adds props to Day component based on date */
27
- getDayProps?: (date: Date) => Omit<Partial<DayProps>, 'classNames' | 'styles' | 'vars'>;
26
+ /** Passes props down to `Day` components */
27
+ getDayProps?: (date: DateStringValue) => Omit<Partial<DayProps>, 'classNames' | 'styles' | 'vars'>;
28
28
  /** Callback function to determine whether the day should be disabled */
29
- excludeDate?: (date: Date) => boolean;
30
- /** Minimum possible date */
31
- minDate?: Date;
32
- /** Maximum possible date */
33
- maxDate?: Date;
29
+ excludeDate?: (date: DateStringValue) => boolean;
30
+ /** Minimum possible date, in `YYYY-MM-DD` format */
31
+ minDate?: DateStringValue | Date;
32
+ /** Maximum possible date, in `YYYY-MM-DD` format */
33
+ maxDate?: DateStringValue | Date;
34
34
  /** Controls day value rendering */
35
- renderDay?: (date: Date) => React.ReactNode;
36
- /** Determines whether outside dates should be hidden, defaults to false */
35
+ renderDay?: RenderDay;
36
+ /** Determines whether outside dates should be hidden, `false` by default */
37
37
  hideOutsideDates?: boolean;
38
- /** Determines whether weekdays row should be hidden, defaults to false */
38
+ /** Determines whether weekdays row should be hidden, `false` by default */
39
39
  hideWeekdays?: boolean;
40
- /** Assigns aria-label to days based on date */
41
- getDayAriaLabel?: (date: Date) => string;
40
+ /** Assigns `aria-label` to `Day` components based on date */
41
+ getDayAriaLabel?: (date: DateStringValue) => string;
42
42
  /** Controls size */
43
43
  size?: MantineSize;
44
- /** Determines whether controls should be separated by spacing, true by default */
44
+ /** Determines whether controls should be separated by space, `true` by default */
45
45
  withCellSpacing?: boolean;
46
46
  /** Determines whether today should be highlighted with a border, `false` by default */
47
47
  highlightToday?: boolean;
48
- /** Determines whether week numbers should be displayed */
48
+ /** Determines whether week numbers should be displayed, `false` by default */
49
49
  withWeekNumbers?: boolean;
50
50
  }
51
51
  export interface MonthProps extends BoxProps, MonthSettings, StylesApiProps<MonthFactory>, ElementProps<'div'> {
52
52
  __staticSelector?: string;
53
- /** Month to display */
54
- month: Date;
53
+ /** Month to display, value `YYYY-MM-DD` */
54
+ month: DateStringValue;
55
55
  /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */
56
56
  static?: boolean;
57
57
  }
@@ -1,2 +1,13 @@
1
+ import { DateStringValue } from '../../../types';
1
2
  import { DayProps } from '../../Day/Day';
2
- export declare function getDateInTabOrder(dates: Date[][], minDate: Date | undefined, maxDate: Date | undefined, getDateControlProps: ((date: Date) => Partial<DayProps>) | undefined, excludeDate: ((date: Date) => boolean) | undefined, hideOutsideDates: boolean | undefined, month: Date): Date;
3
+ interface GetDateInTabOrderInput {
4
+ dates: DateStringValue[][];
5
+ minDate: DateStringValue | undefined;
6
+ maxDate: DateStringValue | undefined;
7
+ getDayProps: ((date: DateStringValue) => Partial<DayProps>) | undefined;
8
+ excludeDate: ((date: DateStringValue) => boolean) | undefined;
9
+ hideOutsideDates: boolean | undefined;
10
+ month: DateStringValue;
11
+ }
12
+ export declare function getDateInTabOrder({ dates, minDate, maxDate, getDayProps, excludeDate, hideOutsideDates, month, }: GetDateInTabOrderInput): string;
13
+ export {};
@@ -1,2 +1,2 @@
1
- import type { DayOfWeek } from '../../../types';
2
- export declare function getEndOfWeek(date: Date, firstDayOfWeek?: DayOfWeek): Date;
1
+ import type { DateStringValue, DayOfWeek } from '../../../types';
2
+ export declare function getEndOfWeek(date: DateStringValue, firstDayOfWeek?: DayOfWeek): string;
@@ -1,8 +1,8 @@
1
- import { DayOfWeek } from '../../../types';
1
+ import { DateStringValue, DayOfWeek } from '../../../types';
2
2
  interface GetMonthDaysInput {
3
- month: Date;
3
+ month: DateStringValue;
4
4
  firstDayOfWeek: DayOfWeek | undefined;
5
5
  consistentWeeks: boolean | undefined;
6
6
  }
7
- export declare function getMonthDays({ month, firstDayOfWeek, consistentWeeks, }: GetMonthDaysInput): Date[][];
7
+ export declare function getMonthDays({ month, firstDayOfWeek, consistentWeeks, }: GetMonthDaysInput): DateStringValue[][];
8
8
  export {};
@@ -1,2 +1,2 @@
1
- import type { DayOfWeek } from '../../../types';
2
- export declare function getStartOfWeek(date: Date, firstDayOfWeek?: DayOfWeek): Date;
1
+ import type { DateStringValue, DayOfWeek } from '../../../types';
2
+ export declare function getStartOfWeek(date: DateStringValue, firstDayOfWeek?: DayOfWeek): string;
@@ -1 +1,2 @@
1
- export declare function getWeekNumber(week: Date[]): number;
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function getWeekNumber(week: DateStringValue[]): number;
@@ -1 +1,2 @@
1
- export declare function isAfterMinDate(date: Date, minDate?: Date): boolean;
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function isAfterMinDate(date: DateStringValue, minDate: DateStringValue | undefined): boolean;
@@ -1 +1,2 @@
1
- export declare function isBeforeMaxDate(date: Date, maxDate?: Date): boolean;
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function isBeforeMaxDate(date: DateStringValue, maxDate: DateStringValue | undefined): boolean;
@@ -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 { MonthSettings, MonthStylesNames } from '../Month';
4
5
  export type MonthLevelStylesNames = MonthStylesNames | CalendarHeaderStylesNames;
5
6
  export interface MonthLevelBaseSettings extends MonthSettings {
6
- /** Dayjs label format to display month label or a function that returns month label based on month value, defaults to "MMMM YYYY" */
7
- monthLabelFormat?: string | ((month: Date) => React.ReactNode);
7
+ /** dayjs label format to display month label or a function that returns month label based on month value, `"MMMM YYYY"` */
8
+ monthLabelFormat?: DateLabelFormat;
8
9
  }
9
10
  export interface MonthLevelSettings extends MonthLevelBaseSettings, CalendarHeaderSettings {
10
11
  }
@@ -13,7 +14,7 @@ export interface MonthLevelProps extends BoxProps, MonthLevelSettings, Omit<Styl
13
14
  styles?: Partial<Record<string, React.CSSProperties>>;
14
15
  __staticSelector?: string;
15
16
  /** Month that is currently displayed */
16
- month: Date;
17
+ month: DateStringValue;
17
18
  /** Aria-label for change level control */
18
19
  levelControlAriaLabel?: string;
19
20
  /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */
@@ -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 { MonthLevelSettings, MonthLevelStylesNames } from '../MonthLevel';
4
5
  export type MonthLevelGroupStylesNames = MonthLevelStylesNames | LevelsGroupStylesNames;
@@ -6,13 +7,13 @@ export interface MonthLevelGroupProps extends BoxProps, Omit<MonthLevelSettings,
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 to display next to each other */
10
11
  numberOfColumns?: number;
11
- /** Month that is currently displayed */
12
- month: Date;
13
- /** Function that returns level control aria-label based on month date */
14
- levelControlAriaLabel?: ((month: Date) => string) | string;
15
- /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */
12
+ /** Month to display */
13
+ month: DateStringValue;
14
+ /** Function that returns level control `aria-label` based on month date */
15
+ levelControlAriaLabel?: ((month: DateStringValue) => string) | string;
16
+ /** Passed as `isStatic` prop to `Month` component */
16
17
  static?: boolean;
17
18
  }
18
19
  export type MonthLevelGroupFactory = Factory<{
@@ -1,5 +1,5 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineComponentStaticProperties, StylesApiProps } from '@mantine/core';
2
- import { CalendarLevel, DatePickerType, PickerBaseProps } from '../../types';
2
+ import { CalendarLevel, DatePickerType, DateStringValue, PickerBaseProps } from '../../types';
3
3
  import { CalendarBaseProps } from '../Calendar';
4
4
  import { DecadeLevelBaseSettings } from '../DecadeLevel';
5
5
  import { DecadeLevelGroupStylesNames } from '../DecadeLevelGroup';
@@ -8,18 +8,18 @@ import { YearLevelGroupStylesNames } from '../YearLevelGroup';
8
8
  export type MonthPickerStylesNames = DecadeLevelGroupStylesNames | YearLevelGroupStylesNames;
9
9
  type MonthPickerLevel = Exclude<CalendarLevel, 'month'>;
10
10
  export interface MonthPickerBaseProps<Type extends DatePickerType = 'default'> extends PickerBaseProps<Type>, DecadeLevelBaseSettings, YearLevelBaseSettings, Omit<CalendarBaseProps, 'onNextMonth' | 'onPreviousMonth' | 'hasNextLevel'> {
11
- /** Max level that user can go up to (decade, year), defaults to decade */
12
- maxLevel?: MonthPickerLevel;
13
- /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */
14
- defaultLevel?: MonthPickerLevel;
15
- /** Current level displayed to the user (decade, year, month), used for controlled component */
16
- level?: MonthPickerLevel;
11
+ /** Max level that user can go up to, `'decade'` by default */
12
+ maxLevel?: CalendarLevel;
13
+ /** Initial displayed level (uncontrolled) */
14
+ defaultLevel?: CalendarLevel;
15
+ /** Current displayed level (controlled) */
16
+ level?: CalendarLevel;
17
17
  /** Called when level changes */
18
18
  onLevelChange?: (level: MonthPickerLevel) => void;
19
19
  }
20
20
  export interface MonthPickerProps<Type extends DatePickerType = 'default'> extends BoxProps, MonthPickerBaseProps<Type>, StylesApiProps<MonthPickerFactory>, ElementProps<'div', 'onChange' | 'value' | 'defaultValue'> {
21
21
  /** Called when month is selected */
22
- onMonthSelect?: (date: Date) => void;
22
+ onMonthSelect?: (date: DateStringValue) => void;
23
23
  }
24
24
  export type MonthPickerFactory = Factory<{
25
25
  props: MonthPickerProps;
@@ -4,7 +4,7 @@ import { MonthPickerBaseProps, MonthPickerStylesNames } from '../MonthPicker';
4
4
  import { DateInputSharedProps } from '../PickerInputBase';
5
5
  export type MonthPickerInputStylesNames = __InputStylesNames | 'placeholder' | MonthPickerStylesNames;
6
6
  export interface MonthPickerInputProps<Type extends DatePickerType = 'default'> extends BoxProps, DateInputSharedProps, MonthPickerBaseProps<Type>, StylesApiProps<MonthPickerInputFactory> {
7
- /** Dayjs format to display input value, "MMMM YYYY" by default */
7
+ /** dayjs format for input value, `"MMMM YYYY"` by default */
8
8
  valueFormat?: string;
9
9
  }
10
10
  export type MonthPickerInputFactory = Factory<{
@@ -1,23 +1,23 @@
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 MonthsListStylesNames = 'monthsList' | 'monthsListCell' | 'monthsListRow' | 'monthsListControl';
5
5
  export interface MonthsListSettings extends ControlsGroupSettings {
6
- /** Dayjs format for months list */
6
+ /** dayjs format for months list */
7
7
  monthsListFormat?: string;
8
- /** Adds props to month picker control based on date */
9
- getMonthControlProps?: (date: Date) => Partial<PickerControlProps>;
10
- /** Determines whether propagation for Escape key should be stopped */
11
- __stopPropagation?: boolean;
12
- /** Determines whether controls should be separated by spacing, true by default */
8
+ /** Passes props down month picker control */
9
+ getMonthControlProps?: (date: DateStringValue) => Partial<PickerControlProps>;
10
+ /** Determines whether controls should be separated, `true` by default */
13
11
  withCellSpacing?: boolean;
14
12
  }
15
13
  export interface MonthsListProps extends BoxProps, MonthsListSettings, StylesApiProps<MonthsListFactory>, ElementProps<'table'> {
16
14
  __staticSelector?: string;
17
15
  /** Prevents focus shift when buttons are clicked */
18
16
  __preventFocus?: boolean;
17
+ /** Determines whether propagation for Escape key should be stopped */
18
+ __stopPropagation?: boolean;
19
19
  /** Year for which months list should be displayed */
20
- year: Date;
20
+ year: DateStringValue;
21
21
  /** Component size */
22
22
  size?: MantineSize;
23
23
  }
@@ -1,2 +1,10 @@
1
+ import { DateStringValue } from '../../../types';
1
2
  import { PickerControlProps } from '../../PickerControl';
2
- export declare function getMonthInTabOrder(months: Date[][], minDate: Date | undefined, maxDate: Date | undefined, getMonthControlProps: ((month: Date) => Partial<PickerControlProps>) | undefined): Date;
3
+ interface GetMonthInTabOrderInput {
4
+ months: DateStringValue[][];
5
+ minDate: DateStringValue | undefined;
6
+ maxDate: DateStringValue | undefined;
7
+ getMonthControlProps: ((month: DateStringValue) => Partial<PickerControlProps>) | undefined;
8
+ }
9
+ export declare function getMonthInTabOrder({ months, minDate, maxDate, getMonthControlProps, }: GetMonthInTabOrderInput): string;
10
+ export {};
@@ -1 +1,2 @@
1
- export declare function getMonthsData(year: Date): Date[][];
1
+ import { DateStringValue } from '../../../types';
2
+ export declare function getMonthsData(year: DateStringValue): string[][];
@@ -1 +1,8 @@
1
- export declare function isMonthDisabled(month: Date, minDate: Date | null | undefined, maxDate: Date | null | undefined): boolean;
1
+ import { DateStringValue } from '../../../types';
2
+ interface IsMonthDisabledInput {
3
+ month: DateStringValue;
4
+ minDate: DateStringValue | undefined;
5
+ maxDate: DateStringValue | undefined;
6
+ }
7
+ export declare function isMonthDisabled({ month, minDate, maxDate }: IsMonthDisabledInput): boolean;
8
+ export {};
@@ -7,15 +7,15 @@ export interface PickerControlProps extends BoxProps, StylesApiProps<PickerContr
7
7
  __staticSelector?: string;
8
8
  /** Control children */
9
9
  children?: React.ReactNode;
10
- /** Determines whether control should be disabled */
10
+ /** Disables control */
11
11
  disabled?: boolean;
12
- /** Determines whether control should have selected styles */
12
+ /** Assigns selected styles */
13
13
  selected?: boolean;
14
- /** Determines whether control is selected in range */
14
+ /** Assigns in range styles */
15
15
  inRange?: boolean;
16
- /** Determines whether control is first in range selection */
16
+ /** Assigns first in range styles */
17
17
  firstInRange?: boolean;
18
- /** Determines whether control is last in range selection */
18
+ /** Assigns last in range styles */
19
19
  lastInRange?: boolean;
20
20
  /** Component size */
21
21
  size?: MantineSize;