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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  2. package/cjs/components/Calendar/Calendar.cjs +250 -344
  3. package/cjs/components/Calendar/Calendar.cjs.map +1 -1
  4. package/cjs/components/Calendar/clamp-level/clamp-level.cjs +11 -19
  5. package/cjs/components/Calendar/clamp-level/clamp-level.cjs.map +1 -1
  6. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs +64 -130
  7. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs.map +1 -1
  8. package/cjs/components/CalendarHeader/CalendarHeader.cjs +100 -145
  9. package/cjs/components/CalendarHeader/CalendarHeader.cjs.map +1 -1
  10. package/cjs/components/CalendarHeader/CalendarHeader.module.cjs +12 -0
  11. package/cjs/components/CalendarHeader/CalendarHeader.module.cjs.map +1 -0
  12. package/cjs/components/DateInput/DateInput.cjs +188 -242
  13. package/cjs/components/DateInput/DateInput.cjs.map +1 -1
  14. package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs +12 -19
  15. package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs.map +1 -1
  16. package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs +13 -24
  17. package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs.map +1 -1
  18. package/cjs/components/DatePicker/DatePicker.cjs +121 -154
  19. package/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  20. package/cjs/components/DatePicker/DatePicker.module.cjs +11 -0
  21. package/cjs/components/DatePicker/DatePicker.module.cjs.map +1 -0
  22. package/cjs/components/DatePickerInput/DatePickerInput.cjs +85 -123
  23. package/cjs/components/DatePickerInput/DatePickerInput.cjs.map +1 -1
  24. package/cjs/components/DateTimePicker/DateTimePicker.cjs +187 -233
  25. package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  26. package/cjs/components/DateTimePicker/DateTimePicker.module.cjs +10 -0
  27. package/cjs/components/DateTimePicker/DateTimePicker.module.cjs.map +1 -0
  28. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs +12 -15
  29. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs.map +1 -1
  30. package/cjs/components/DatesProvider/DatesProvider.cjs +21 -15
  31. package/cjs/components/DatesProvider/DatesProvider.cjs.map +1 -1
  32. package/cjs/components/DatesProvider/use-dates-context.cjs +20 -29
  33. package/cjs/components/DatesProvider/use-dates-context.cjs.map +1 -1
  34. package/cjs/components/Day/Day.cjs +49 -83
  35. package/cjs/components/Day/Day.cjs.map +1 -1
  36. package/cjs/components/Day/Day.module.cjs +7 -0
  37. package/cjs/components/Day/Day.module.cjs.map +1 -0
  38. package/cjs/components/DecadeLevel/DecadeLevel.cjs +75 -124
  39. package/cjs/components/DecadeLevel/DecadeLevel.cjs.map +1 -1
  40. package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs +8 -9
  41. package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs.map +1 -1
  42. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs +81 -131
  43. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs.map +1 -1
  44. package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs +30 -36
  45. package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs.map +1 -1
  46. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs +281 -340
  47. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs.map +1 -1
  48. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.cjs +13 -0
  49. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.cjs.map +1 -0
  50. package/cjs/components/LevelsGroup/LevelsGroup.cjs +30 -38
  51. package/cjs/components/LevelsGroup/LevelsGroup.cjs.map +1 -1
  52. package/cjs/components/LevelsGroup/LevelsGroup.module.cjs +7 -0
  53. package/cjs/components/LevelsGroup/LevelsGroup.module.cjs.map +1 -0
  54. package/cjs/components/MiniCalendar/MiniCalendar.cjs +124 -153
  55. package/cjs/components/MiniCalendar/MiniCalendar.cjs.map +1 -1
  56. package/cjs/components/MiniCalendar/MiniCalendar.module.cjs +14 -0
  57. package/cjs/components/MiniCalendar/MiniCalendar.module.cjs.map +1 -0
  58. package/cjs/components/Month/Month.cjs +152 -200
  59. package/cjs/components/Month/Month.cjs.map +1 -1
  60. package/cjs/components/Month/Month.module.cjs +11 -0
  61. package/cjs/components/Month/Month.module.cjs.map +1 -0
  62. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs +18 -35
  63. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs.map +1 -1
  64. package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs +13 -20
  65. package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs.map +1 -1
  66. package/cjs/components/Month/get-month-days/get-month-days.cjs +38 -47
  67. package/cjs/components/Month/get-month-days/get-month-days.cjs.map +1 -1
  68. package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs +11 -16
  69. package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs.map +1 -1
  70. package/cjs/components/Month/get-week-number/get-week-number.cjs +12 -16
  71. package/cjs/components/Month/get-week-number/get-week-number.cjs.map +1 -1
  72. package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs +9 -12
  73. package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs.map +1 -1
  74. package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs +9 -12
  75. package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs.map +1 -1
  76. package/cjs/components/Month/is-same-month/is-same-month.cjs +9 -12
  77. package/cjs/components/Month/is-same-month/is-same-month.cjs.map +1 -1
  78. package/cjs/components/MonthLevel/MonthLevel.cjs +83 -141
  79. package/cjs/components/MonthLevel/MonthLevel.cjs.map +1 -1
  80. package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs +92 -154
  81. package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs.map +1 -1
  82. package/cjs/components/MonthPicker/MonthPicker.cjs +49 -75
  83. package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -1
  84. package/cjs/components/MonthPicker/MonthPicker.module.cjs +11 -0
  85. package/cjs/components/MonthPicker/MonthPicker.module.cjs.map +1 -0
  86. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +86 -119
  87. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -1
  88. package/cjs/components/MonthsList/MonthsList.cjs +105 -139
  89. package/cjs/components/MonthsList/MonthsList.cjs.map +1 -1
  90. package/cjs/components/MonthsList/MonthsList.module.cjs +10 -0
  91. package/cjs/components/MonthsList/MonthsList.module.cjs.map +1 -0
  92. package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs +20 -30
  93. package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs.map +1 -1
  94. package/cjs/components/MonthsList/get-months-data/get-months-data.cjs +21 -21
  95. package/cjs/components/MonthsList/get-months-data/get-months-data.cjs.map +1 -1
  96. package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs +12 -21
  97. package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs.map +1 -1
  98. package/cjs/components/PickerControl/PickerControl.cjs +43 -65
  99. package/cjs/components/PickerControl/PickerControl.cjs.map +1 -1
  100. package/cjs/components/PickerControl/PickerControl.module.cjs +7 -0
  101. package/cjs/components/PickerControl/PickerControl.module.cjs.map +1 -0
  102. package/cjs/components/PickerInputBase/PickerInputBase.cjs +95 -127
  103. package/cjs/components/PickerInputBase/PickerInputBase.cjs.map +1 -1
  104. package/cjs/components/PickerInputBase/PickerInputBase.module.cjs +7 -0
  105. package/cjs/components/PickerInputBase/PickerInputBase.module.cjs.map +1 -0
  106. package/cjs/components/SpinInput/SpinInput.cjs +83 -111
  107. package/cjs/components/SpinInput/SpinInput.cjs.map +1 -1
  108. package/cjs/components/TimeGrid/TimeGrid.cjs +94 -101
  109. package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -1
  110. package/cjs/components/TimeGrid/TimeGrid.context.cjs +7 -10
  111. package/cjs/components/TimeGrid/TimeGrid.context.cjs.map +1 -1
  112. package/cjs/components/TimeGrid/TimeGrid.module.cjs +7 -0
  113. package/cjs/components/TimeGrid/TimeGrid.module.cjs.map +1 -0
  114. package/cjs/components/TimeGrid/TimeGridControl.cjs +26 -35
  115. package/cjs/components/TimeGrid/TimeGridControl.cjs.map +1 -1
  116. package/cjs/components/TimeGrid/compare-time.cjs +8 -9
  117. package/cjs/components/TimeGrid/compare-time.cjs.map +1 -1
  118. package/cjs/components/TimeInput/TimeInput.cjs +71 -88
  119. package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
  120. package/cjs/components/TimeInput/TimeInput.module.cjs +7 -0
  121. package/cjs/components/TimeInput/TimeInput.module.cjs.map +1 -0
  122. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs +93 -101
  123. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs.map +1 -1
  124. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs +19 -12
  125. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs.map +1 -1
  126. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs +20 -23
  127. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs.map +1 -1
  128. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +47 -57
  129. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -1
  130. package/cjs/components/TimePicker/TimePicker.cjs +325 -420
  131. package/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
  132. package/cjs/components/TimePicker/TimePicker.context.cjs +7 -10
  133. package/cjs/components/TimePicker/TimePicker.context.cjs.map +1 -1
  134. package/cjs/components/TimePicker/TimePicker.module.cjs +18 -0
  135. package/cjs/components/TimePicker/TimePicker.module.cjs.map +1 -0
  136. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs +23 -28
  137. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs.map +1 -1
  138. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs +36 -36
  139. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs.map +1 -1
  140. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs +61 -70
  141. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs.map +1 -1
  142. package/cjs/components/TimePicker/use-time-picker.cjs +201 -193
  143. package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -1
  144. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs +10 -12
  145. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs.map +1 -1
  146. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs +40 -34
  147. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs.map +1 -1
  148. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs +12 -15
  149. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs.map +1 -1
  150. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs +39 -48
  151. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs.map +1 -1
  152. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs +10 -13
  153. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs.map +1 -1
  154. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs +6 -6
  155. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs.map +1 -1
  156. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs +11 -7
  157. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs.map +1 -1
  158. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs +17 -18
  159. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs.map +1 -1
  160. package/cjs/components/TimeValue/TimeValue.cjs +18 -15
  161. package/cjs/components/TimeValue/TimeValue.cjs.map +1 -1
  162. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs +14 -27
  163. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs.map +1 -1
  164. package/cjs/components/WeekdaysRow/WeekdaysRow.cjs +51 -61
  165. package/cjs/components/WeekdaysRow/WeekdaysRow.cjs.map +1 -1
  166. package/cjs/components/WeekdaysRow/WeekdaysRow.module.cjs +7 -0
  167. package/cjs/components/WeekdaysRow/WeekdaysRow.module.cjs.map +1 -0
  168. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs +14 -26
  169. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  170. package/cjs/components/YearLevel/YearLevel.cjs +73 -121
  171. package/cjs/components/YearLevel/YearLevel.cjs.map +1 -1
  172. package/cjs/components/YearLevelGroup/YearLevelGroup.cjs +83 -135
  173. package/cjs/components/YearLevelGroup/YearLevelGroup.cjs.map +1 -1
  174. package/cjs/components/YearPicker/YearPicker.cjs +48 -73
  175. package/cjs/components/YearPicker/YearPicker.cjs.map +1 -1
  176. package/cjs/components/YearPicker/YearPicker.module.cjs +11 -0
  177. package/cjs/components/YearPicker/YearPicker.module.cjs.map +1 -0
  178. package/cjs/components/YearPickerInput/YearPickerInput.cjs +86 -119
  179. package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -1
  180. package/cjs/components/YearsList/YearsList.cjs +103 -133
  181. package/cjs/components/YearsList/YearsList.cjs.map +1 -1
  182. package/cjs/components/YearsList/YearsList.module.cjs +10 -0
  183. package/cjs/components/YearsList/YearsList.module.cjs.map +1 -0
  184. package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs +20 -30
  185. package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs.map +1 -1
  186. package/cjs/components/YearsList/get-years-data/get-years-data.cjs +25 -23
  187. package/cjs/components/YearsList/get-years-data/get-years-data.cjs.map +1 -1
  188. package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs +12 -21
  189. package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs.map +1 -1
  190. package/cjs/hooks/use-dates-input/use-dates-input.cjs +47 -70
  191. package/cjs/hooks/use-dates-input/use-dates-input.cjs.map +1 -1
  192. package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs +10 -13
  193. package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs.map +1 -1
  194. package/cjs/hooks/use-dates-state/use-dates-state.cjs +113 -154
  195. package/cjs/hooks/use-dates-state/use-dates-state.cjs.map +1 -1
  196. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs +32 -36
  197. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs.map +1 -1
  198. package/cjs/index.cjs +94 -99
  199. package/cjs/utils/assign-time/assign-time.cjs +16 -21
  200. package/cjs/utils/assign-time/assign-time.cjs.map +1 -1
  201. package/cjs/utils/clamp-date/clamp-date.cjs +13 -22
  202. package/cjs/utils/clamp-date/clamp-date.cjs.map +1 -1
  203. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs +15 -27
  204. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs.map +1 -1
  205. package/cjs/utils/get-formatted-date/get-formatted-date.cjs +19 -37
  206. package/cjs/utils/get-formatted-date/get-formatted-date.cjs.map +1 -1
  207. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs +114 -149
  208. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs.map +1 -1
  209. package/cjs/utils/to-date-string/to-date-string.cjs +10 -13
  210. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  211. package/esm/components/Calendar/Calendar.mjs +247 -337
  212. package/esm/components/Calendar/Calendar.mjs.map +1 -1
  213. package/esm/components/Calendar/clamp-level/clamp-level.mjs +10 -17
  214. package/esm/components/Calendar/clamp-level/clamp-level.mjs.map +1 -1
  215. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs +64 -128
  216. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs.map +1 -1
  217. package/esm/components/CalendarHeader/CalendarHeader.mjs +98 -142
  218. package/esm/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
  219. package/esm/components/CalendarHeader/CalendarHeader.module.mjs +12 -0
  220. package/esm/components/CalendarHeader/CalendarHeader.module.mjs.map +1 -0
  221. package/esm/components/DateInput/DateInput.mjs +185 -235
  222. package/esm/components/DateInput/DateInput.mjs.map +1 -1
  223. package/esm/components/DateInput/date-string-parser/date-string-parser.mjs +10 -13
  224. package/esm/components/DateInput/date-string-parser/date-string-parser.mjs.map +1 -1
  225. package/esm/components/DateInput/is-date-valid/is-date-valid.mjs +11 -18
  226. package/esm/components/DateInput/is-date-valid/is-date-valid.mjs.map +1 -1
  227. package/esm/components/DatePicker/DatePicker.mjs +117 -146
  228. package/esm/components/DatePicker/DatePicker.mjs.map +1 -1
  229. package/esm/components/DatePicker/DatePicker.module.mjs +11 -0
  230. package/esm/components/DatePicker/DatePicker.module.mjs.map +1 -0
  231. package/esm/components/DatePickerInput/DatePickerInput.mjs +84 -121
  232. package/esm/components/DatePickerInput/DatePickerInput.mjs.map +1 -1
  233. package/esm/components/DateTimePicker/DateTimePicker.mjs +184 -226
  234. package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
  235. package/esm/components/DateTimePicker/DateTimePicker.module.mjs +10 -0
  236. package/esm/components/DateTimePicker/DateTimePicker.module.mjs.map +1 -0
  237. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs +10 -9
  238. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs.map +1 -1
  239. package/esm/components/DatesProvider/DatesProvider.mjs +19 -12
  240. package/esm/components/DatesProvider/DatesProvider.mjs.map +1 -1
  241. package/esm/components/DatesProvider/use-dates-context.mjs +19 -27
  242. package/esm/components/DatesProvider/use-dates-context.mjs.map +1 -1
  243. package/esm/components/Day/Day.mjs +46 -76
  244. package/esm/components/Day/Day.mjs.map +1 -1
  245. package/esm/components/Day/Day.module.mjs +7 -0
  246. package/esm/components/Day/Day.module.mjs.map +1 -0
  247. package/esm/components/DecadeLevel/DecadeLevel.mjs +72 -117
  248. package/esm/components/DecadeLevel/DecadeLevel.mjs.map +1 -1
  249. package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs +8 -7
  250. package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs.map +1 -1
  251. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs +78 -124
  252. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs.map +1 -1
  253. package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs +29 -34
  254. package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs.map +1 -1
  255. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs +278 -333
  256. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs.map +1 -1
  257. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.mjs +13 -0
  258. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.mjs.map +1 -0
  259. package/esm/components/LevelsGroup/LevelsGroup.mjs +28 -35
  260. package/esm/components/LevelsGroup/LevelsGroup.mjs.map +1 -1
  261. package/esm/components/LevelsGroup/LevelsGroup.module.mjs +7 -0
  262. package/esm/components/LevelsGroup/LevelsGroup.module.mjs.map +1 -0
  263. package/esm/components/MiniCalendar/MiniCalendar.mjs +121 -146
  264. package/esm/components/MiniCalendar/MiniCalendar.mjs.map +1 -1
  265. package/esm/components/MiniCalendar/MiniCalendar.module.mjs +14 -0
  266. package/esm/components/MiniCalendar/MiniCalendar.module.mjs.map +1 -0
  267. package/esm/components/Month/Month.mjs +149 -193
  268. package/esm/components/Month/Month.mjs.map +1 -1
  269. package/esm/components/Month/Month.module.mjs +11 -0
  270. package/esm/components/Month/Month.module.mjs.map +1 -0
  271. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs +16 -29
  272. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs.map +1 -1
  273. package/esm/components/Month/get-end-of-week/get-end-of-week.mjs +11 -14
  274. package/esm/components/Month/get-end-of-week/get-end-of-week.mjs.map +1 -1
  275. package/esm/components/Month/get-month-days/get-month-days.mjs +36 -41
  276. package/esm/components/Month/get-month-days/get-month-days.mjs.map +1 -1
  277. package/esm/components/Month/get-start-of-week/get-start-of-week.mjs +9 -10
  278. package/esm/components/Month/get-start-of-week/get-start-of-week.mjs.map +1 -1
  279. package/esm/components/Month/get-week-number/get-week-number.mjs +8 -8
  280. package/esm/components/Month/get-week-number/get-week-number.mjs.map +1 -1
  281. package/esm/components/Month/is-after-min-date/is-after-min-date.mjs +7 -6
  282. package/esm/components/Month/is-after-min-date/is-after-min-date.mjs.map +1 -1
  283. package/esm/components/Month/is-before-max-date/is-before-max-date.mjs +7 -6
  284. package/esm/components/Month/is-before-max-date/is-before-max-date.mjs.map +1 -1
  285. package/esm/components/Month/is-same-month/is-same-month.mjs +7 -6
  286. package/esm/components/Month/is-same-month/is-same-month.mjs.map +1 -1
  287. package/esm/components/MonthLevel/MonthLevel.mjs +80 -134
  288. package/esm/components/MonthLevel/MonthLevel.mjs.map +1 -1
  289. package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs +89 -147
  290. package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs.map +1 -1
  291. package/esm/components/MonthPicker/MonthPicker.mjs +46 -71
  292. package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -1
  293. package/esm/components/MonthPicker/MonthPicker.module.mjs +11 -0
  294. package/esm/components/MonthPicker/MonthPicker.module.mjs.map +1 -0
  295. package/esm/components/MonthPickerInput/MonthPickerInput.mjs +85 -117
  296. package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -1
  297. package/esm/components/MonthsList/MonthsList.mjs +102 -132
  298. package/esm/components/MonthsList/MonthsList.mjs.map +1 -1
  299. package/esm/components/MonthsList/MonthsList.module.mjs +10 -0
  300. package/esm/components/MonthsList/MonthsList.module.mjs.map +1 -0
  301. package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs +18 -24
  302. package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs.map +1 -1
  303. package/esm/components/MonthsList/get-months-data/get-months-data.mjs +19 -15
  304. package/esm/components/MonthsList/get-months-data/get-months-data.mjs.map +1 -1
  305. package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs +10 -15
  306. package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs.map +1 -1
  307. package/esm/components/PickerControl/PickerControl.mjs +41 -62
  308. package/esm/components/PickerControl/PickerControl.mjs.map +1 -1
  309. package/esm/components/PickerControl/PickerControl.module.mjs +7 -0
  310. package/esm/components/PickerControl/PickerControl.module.mjs.map +1 -0
  311. package/esm/components/PickerInputBase/PickerInputBase.mjs +92 -120
  312. package/esm/components/PickerInputBase/PickerInputBase.mjs.map +1 -1
  313. package/esm/components/PickerInputBase/PickerInputBase.module.mjs +7 -0
  314. package/esm/components/PickerInputBase/PickerInputBase.module.mjs.map +1 -0
  315. package/esm/components/SpinInput/SpinInput.mjs +82 -109
  316. package/esm/components/SpinInput/SpinInput.mjs.map +1 -1
  317. package/esm/components/TimeGrid/TimeGrid.context.mjs +7 -8
  318. package/esm/components/TimeGrid/TimeGrid.context.mjs.map +1 -1
  319. package/esm/components/TimeGrid/TimeGrid.mjs +92 -98
  320. package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -1
  321. package/esm/components/TimeGrid/TimeGrid.module.mjs +7 -0
  322. package/esm/components/TimeGrid/TimeGrid.module.mjs.map +1 -0
  323. package/esm/components/TimeGrid/TimeGridControl.mjs +24 -29
  324. package/esm/components/TimeGrid/TimeGridControl.mjs.map +1 -1
  325. package/esm/components/TimeGrid/compare-time.mjs +8 -7
  326. package/esm/components/TimeGrid/compare-time.mjs.map +1 -1
  327. package/esm/components/TimeInput/TimeInput.mjs +67 -80
  328. package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
  329. package/esm/components/TimeInput/TimeInput.module.mjs +7 -0
  330. package/esm/components/TimeInput/TimeInput.module.mjs.map +1 -0
  331. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs +92 -99
  332. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs.map +1 -1
  333. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs +18 -10
  334. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs.map +1 -1
  335. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs +19 -21
  336. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs.map +1 -1
  337. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +46 -55
  338. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -1
  339. package/esm/components/TimePicker/TimePicker.context.mjs +7 -8
  340. package/esm/components/TimePicker/TimePicker.context.mjs.map +1 -1
  341. package/esm/components/TimePicker/TimePicker.mjs +323 -417
  342. package/esm/components/TimePicker/TimePicker.mjs.map +1 -1
  343. package/esm/components/TimePicker/TimePicker.module.mjs +18 -0
  344. package/esm/components/TimePicker/TimePicker.module.mjs.map +1 -0
  345. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs +22 -26
  346. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs.map +1 -1
  347. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs +35 -34
  348. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs.map +1 -1
  349. package/esm/components/TimePicker/TimePresets/TimePresets.mjs +60 -68
  350. package/esm/components/TimePicker/TimePresets/TimePresets.mjs.map +1 -1
  351. package/esm/components/TimePicker/use-time-picker.mjs +200 -191
  352. package/esm/components/TimePicker/use-time-picker.mjs.map +1 -1
  353. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs +10 -10
  354. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs.map +1 -1
  355. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs +40 -31
  356. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs.map +1 -1
  357. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs +12 -13
  358. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs.map +1 -1
  359. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs +39 -46
  360. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs.map +1 -1
  361. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs +10 -11
  362. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs.map +1 -1
  363. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs +6 -4
  364. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs.map +1 -1
  365. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs +11 -5
  366. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs.map +1 -1
  367. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs +17 -16
  368. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs.map +1 -1
  369. package/esm/components/TimeValue/TimeValue.mjs +17 -13
  370. package/esm/components/TimeValue/TimeValue.mjs.map +1 -1
  371. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs +14 -25
  372. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs.map +1 -1
  373. package/esm/components/WeekdaysRow/WeekdaysRow.mjs +49 -58
  374. package/esm/components/WeekdaysRow/WeekdaysRow.mjs.map +1 -1
  375. package/esm/components/WeekdaysRow/WeekdaysRow.module.mjs +7 -0
  376. package/esm/components/WeekdaysRow/WeekdaysRow.module.mjs.map +1 -0
  377. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs +12 -20
  378. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  379. package/esm/components/YearLevel/YearLevel.mjs +70 -114
  380. package/esm/components/YearLevel/YearLevel.mjs.map +1 -1
  381. package/esm/components/YearLevelGroup/YearLevelGroup.mjs +80 -128
  382. package/esm/components/YearLevelGroup/YearLevelGroup.mjs.map +1 -1
  383. package/esm/components/YearPicker/YearPicker.mjs +45 -69
  384. package/esm/components/YearPicker/YearPicker.mjs.map +1 -1
  385. package/esm/components/YearPicker/YearPicker.module.mjs +11 -0
  386. package/esm/components/YearPicker/YearPicker.module.mjs.map +1 -0
  387. package/esm/components/YearPickerInput/YearPickerInput.mjs +85 -117
  388. package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -1
  389. package/esm/components/YearsList/YearsList.mjs +100 -126
  390. package/esm/components/YearsList/YearsList.mjs.map +1 -1
  391. package/esm/components/YearsList/YearsList.module.mjs +10 -0
  392. package/esm/components/YearsList/YearsList.module.mjs.map +1 -0
  393. package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs +18 -24
  394. package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs.map +1 -1
  395. package/esm/components/YearsList/get-years-data/get-years-data.mjs +23 -17
  396. package/esm/components/YearsList/get-years-data/get-years-data.mjs.map +1 -1
  397. package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs +10 -15
  398. package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs.map +1 -1
  399. package/esm/hooks/use-dates-input/use-dates-input.mjs +45 -64
  400. package/esm/hooks/use-dates-input/use-dates-input.mjs.map +1 -1
  401. package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs +8 -7
  402. package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs.map +1 -1
  403. package/esm/hooks/use-dates-state/use-dates-state.mjs +111 -148
  404. package/esm/hooks/use-dates-state/use-dates-state.mjs.map +1 -1
  405. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs +31 -33
  406. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs.map +1 -1
  407. package/esm/index.mjs +46 -46
  408. package/esm/utils/assign-time/assign-time.mjs +14 -15
  409. package/esm/utils/assign-time/assign-time.mjs.map +1 -1
  410. package/esm/utils/clamp-date/clamp-date.mjs +11 -16
  411. package/esm/utils/clamp-date/clamp-date.mjs.map +1 -1
  412. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs +13 -21
  413. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs.map +1 -1
  414. package/esm/utils/get-formatted-date/get-formatted-date.mjs +17 -30
  415. package/esm/utils/get-formatted-date/get-formatted-date.mjs.map +1 -1
  416. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs +114 -147
  417. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs.map +1 -1
  418. package/esm/utils/to-date-string/to-date-string.mjs +8 -7
  419. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  420. package/package.json +3 -3
  421. package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs +0 -7
  422. package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs.map +0 -1
  423. package/cjs/components/DatePicker/DatePicker.module.css.cjs +0 -7
  424. package/cjs/components/DatePicker/DatePicker.module.css.cjs.map +0 -1
  425. package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs +0 -7
  426. package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs.map +0 -1
  427. package/cjs/components/Day/Day.module.css.cjs +0 -7
  428. package/cjs/components/Day/Day.module.css.cjs.map +0 -1
  429. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs +0 -7
  430. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs.map +0 -1
  431. package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs +0 -7
  432. package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs.map +0 -1
  433. package/cjs/components/MiniCalendar/MiniCalendar.module.css.cjs +0 -7
  434. package/cjs/components/MiniCalendar/MiniCalendar.module.css.cjs.map +0 -1
  435. package/cjs/components/Month/Month.module.css.cjs +0 -7
  436. package/cjs/components/Month/Month.module.css.cjs.map +0 -1
  437. package/cjs/components/MonthPicker/MonthPicker.module.css.cjs +0 -7
  438. package/cjs/components/MonthPicker/MonthPicker.module.css.cjs.map +0 -1
  439. package/cjs/components/MonthsList/MonthsList.module.css.cjs +0 -7
  440. package/cjs/components/MonthsList/MonthsList.module.css.cjs.map +0 -1
  441. package/cjs/components/PickerControl/PickerControl.module.css.cjs +0 -7
  442. package/cjs/components/PickerControl/PickerControl.module.css.cjs.map +0 -1
  443. package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs +0 -7
  444. package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs.map +0 -1
  445. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs +0 -7
  446. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs.map +0 -1
  447. package/cjs/components/TimeInput/TimeInput.module.css.cjs +0 -7
  448. package/cjs/components/TimeInput/TimeInput.module.css.cjs.map +0 -1
  449. package/cjs/components/TimePicker/TimePicker.module.css.cjs +0 -7
  450. package/cjs/components/TimePicker/TimePicker.module.css.cjs.map +0 -1
  451. package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs +0 -7
  452. package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs.map +0 -1
  453. package/cjs/components/YearPicker/YearPicker.module.css.cjs +0 -7
  454. package/cjs/components/YearPicker/YearPicker.module.css.cjs.map +0 -1
  455. package/cjs/components/YearsList/YearsList.module.css.cjs +0 -7
  456. package/cjs/components/YearsList/YearsList.module.css.cjs.map +0 -1
  457. package/cjs/index.cjs.map +0 -1
  458. package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs +0 -5
  459. package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs.map +0 -1
  460. package/esm/components/DatePicker/DatePicker.module.css.mjs +0 -5
  461. package/esm/components/DatePicker/DatePicker.module.css.mjs.map +0 -1
  462. package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs +0 -5
  463. package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs.map +0 -1
  464. package/esm/components/Day/Day.module.css.mjs +0 -5
  465. package/esm/components/Day/Day.module.css.mjs.map +0 -1
  466. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs +0 -5
  467. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs.map +0 -1
  468. package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs +0 -5
  469. package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs.map +0 -1
  470. package/esm/components/MiniCalendar/MiniCalendar.module.css.mjs +0 -5
  471. package/esm/components/MiniCalendar/MiniCalendar.module.css.mjs.map +0 -1
  472. package/esm/components/Month/Month.module.css.mjs +0 -5
  473. package/esm/components/Month/Month.module.css.mjs.map +0 -1
  474. package/esm/components/MonthPicker/MonthPicker.module.css.mjs +0 -5
  475. package/esm/components/MonthPicker/MonthPicker.module.css.mjs.map +0 -1
  476. package/esm/components/MonthsList/MonthsList.module.css.mjs +0 -5
  477. package/esm/components/MonthsList/MonthsList.module.css.mjs.map +0 -1
  478. package/esm/components/PickerControl/PickerControl.module.css.mjs +0 -5
  479. package/esm/components/PickerControl/PickerControl.module.css.mjs.map +0 -1
  480. package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs +0 -5
  481. package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs.map +0 -1
  482. package/esm/components/TimeGrid/TimeGrid.module.css.mjs +0 -5
  483. package/esm/components/TimeGrid/TimeGrid.module.css.mjs.map +0 -1
  484. package/esm/components/TimeInput/TimeInput.module.css.mjs +0 -5
  485. package/esm/components/TimeInput/TimeInput.module.css.mjs.map +0 -1
  486. package/esm/components/TimePicker/TimePicker.module.css.mjs +0 -5
  487. package/esm/components/TimePicker/TimePicker.module.css.mjs.map +0 -1
  488. package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs +0 -5
  489. package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs.map +0 -1
  490. package/esm/components/YearPicker/YearPicker.module.css.mjs +0 -5
  491. package/esm/components/YearPicker/YearPicker.module.css.mjs.map +0 -1
  492. package/esm/components/YearsList/YearsList.module.css.mjs +0 -5
  493. package/esm/components/YearsList/YearsList.module.css.mjs.map +0 -1
  494. package/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TimePresets.mjs","sources":["../../../../src/components/TimePicker/TimePresets/TimePresets.tsx"],"sourcesContent":["import { ScrollArea, SimpleGrid } from '@mantine/core';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPresetGroup,\n TimePickerPresets,\n} from '../TimePicker.types';\nimport { isSameTime } from '../utils/is-same-time/is-same-time';\nimport { TimePresetControl } from './TimePresetControl';\nimport { TimePresetGroup } from './TimePresetGroup';\n\ninterface TimePresetsProps {\n presets: TimePickerPresets;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n value: string;\n withSeconds: boolean;\n onChange: (value: string) => void;\n}\n\nexport function TimePresets({\n presets,\n format,\n amPmLabels,\n withSeconds,\n value,\n onChange,\n}: TimePresetsProps) {\n const ctx = useTimePickerContext();\n\n if (presets.length === 0) {\n return null;\n }\n\n if (typeof presets[0] === 'string') {\n const items = (presets as string[]).map((item) => (\n <TimePresetControl\n key={item}\n value={item}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n active={isSameTime({ time: item, compare: value, withSeconds })}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>\n <SimpleGrid cols={withSeconds ? 2 : 3} spacing={4}>\n {items}\n </SimpleGrid>\n </div>\n </ScrollArea.Autosize>\n );\n }\n\n const groups = (presets as TimePickerPresetGroup[]).map((group, index) => (\n <TimePresetGroup\n key={index}\n data={group}\n value={value}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>{groups}</div>\n </ScrollArea.Autosize>\n );\n}\n\nTimePresets.displayName = '@mantine/dates/TimePresets';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimePresets.mjs","names":[],"sources":["../../../../src/components/TimePicker/TimePresets/TimePresets.tsx"],"sourcesContent":["import { ScrollArea, SimpleGrid } from '@mantine/core';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPresetGroup,\n TimePickerPresets,\n} from '../TimePicker.types';\nimport { isSameTime } from '../utils/is-same-time/is-same-time';\nimport { TimePresetControl } from './TimePresetControl';\nimport { TimePresetGroup } from './TimePresetGroup';\n\ninterface TimePresetsProps {\n presets: TimePickerPresets;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n value: string;\n withSeconds: boolean;\n onChange: (value: string) => void;\n}\n\nexport function TimePresets({\n presets,\n format,\n amPmLabels,\n withSeconds,\n value,\n onChange,\n}: TimePresetsProps) {\n const ctx = useTimePickerContext();\n\n if (presets.length === 0) {\n return null;\n }\n\n if (typeof presets[0] === 'string') {\n const items = (presets as string[]).map((item) => (\n <TimePresetControl\n key={item}\n value={item}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n active={isSameTime({ time: item, compare: value, withSeconds })}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>\n <SimpleGrid cols={withSeconds ? 2 : 3} spacing={4}>\n {items}\n </SimpleGrid>\n </div>\n </ScrollArea.Autosize>\n );\n }\n\n const groups = (presets as TimePickerPresetGroup[]).map((group, index) => (\n <TimePresetGroup\n key={index}\n data={group}\n value={value}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>{groups}</div>\n </ScrollArea.Autosize>\n );\n}\n\nTimePresets.displayName = '@mantine/dates/TimePresets';\n"],"mappings":";;;;;;;;AAqBA,SAAgB,YAAY,EAC1B,SACA,QACA,YACA,aACA,OACA,YACmB;CACnB,MAAM,MAAM,sBAAsB;AAElC,KAAI,QAAQ,WAAW,EACrB,QAAO;AAGT,KAAI,OAAO,QAAQ,OAAO,UAAU;EAClC,MAAM,QAAS,QAAqB,KAAK,SACvC,oBAAC,mBAAD;GAEE,OAAO;GACC;GACI;GACC;GACb,QAAQ,WAAW;IAAE,MAAM;IAAM,SAAS;IAAO;IAAa,CAAC;GACrD;GACV,EAPK,KAOL,CACF;AAEF,SACE,oBAAC,WAAW,UAAZ;GACE,KAAK,IAAI;GACT,MAAK;GACL,GAAI,IAAI,UAAU,aAAa;GAC/B,GAAI,IAAI;aAER,oBAAC,OAAD;IAAK,GAAI,IAAI,UAAU,cAAc;cACnC,oBAAC,YAAD;KAAY,MAAM,cAAc,IAAI;KAAG,SAAS;eAC7C;KACU,CAAA;IACT,CAAA;GACc,CAAA;;CAI1B,MAAM,SAAU,QAAoC,KAAK,OAAO,UAC9D,oBAAC,iBAAD;EAEE,MAAM;EACC;EACC;EACI;EACC;EACH;EACV,EAPK,MAOL,CACF;AAEF,QACE,oBAAC,WAAW,UAAZ;EACE,KAAK,IAAI;EACT,MAAK;EACL,GAAI,IAAI,UAAU,aAAa;EAC/B,GAAI,IAAI;YAER,oBAAC,OAAD;GAAK,GAAI,IAAI,UAAU,cAAc;aAAG;GAAa,CAAA;EACjC,CAAA;;AAI1B,YAAY,cAAc"}
@@ -1,193 +1,202 @@
1
- 'use client';
2
- import { useRef, useState } from 'react';
3
- import { useDidUpdate } from '@mantine/hooks';
4
- import { clampTime } from './utils/clamp-time/clamp-time.mjs';
5
- import { getParsedTime } from './utils/get-parsed-time/get-parsed-time.mjs';
6
- import { getTimeString } from './utils/get-time-string/get-time-string.mjs';
7
-
8
- function useTimePicker({
9
- value,
10
- defaultValue,
11
- onChange,
12
- format,
13
- amPmLabels,
14
- withSeconds = false,
15
- min,
16
- max,
17
- clearable,
18
- readOnly,
19
- disabled,
20
- pasteSplit
21
- }) {
22
- const parsedTime = getParsedTime({
23
- time: value || defaultValue || "",
24
- amPmLabels,
25
- format
26
- });
27
- const initialTimeString = getTimeString({
28
- hours: parsedTime.hours,
29
- minutes: parsedTime.minutes,
30
- seconds: parsedTime.seconds,
31
- format,
32
- withSeconds,
33
- amPm: parsedTime.amPm,
34
- amPmLabels
35
- });
36
- const acceptChange = useRef(true);
37
- const wasInvalidBefore = useRef(!initialTimeString.valid);
38
- const [hours, setHours] = useState(parsedTime.hours);
39
- const [minutes, setMinutes] = useState(parsedTime.minutes);
40
- const [seconds, setSeconds] = useState(parsedTime.seconds);
41
- const [amPm, setAmPm] = useState(parsedTime.amPm);
42
- const isClearable = clearable && !readOnly && !disabled && (hours !== null || minutes !== null || seconds !== null || amPm !== null);
43
- const hoursRef = useRef(null);
44
- const minutesRef = useRef(null);
45
- const secondsRef = useRef(null);
46
- const amPmRef = useRef(null);
47
- const focus = (field) => {
48
- if (field === "hours") {
49
- hoursRef.current?.focus();
50
- }
51
- if (field === "minutes") {
52
- minutesRef.current?.focus();
53
- }
54
- if (field === "seconds") {
55
- secondsRef.current?.focus();
56
- }
57
- if (field === "amPm") {
58
- amPmRef.current?.focus();
59
- }
60
- };
61
- const handleTimeChange = (field, val) => {
62
- const computedValue = { hours, minutes, seconds, amPm, [field]: val };
63
- const timeString = getTimeString({ ...computedValue, format, withSeconds, amPmLabels });
64
- if (timeString.valid) {
65
- acceptChange.current = false;
66
- wasInvalidBefore.current = false;
67
- if (field === "hours") {
68
- setHours(val);
69
- }
70
- if (field === "minutes") {
71
- setMinutes(val);
72
- }
73
- if (field === "seconds") {
74
- setSeconds(val);
75
- }
76
- if (field === "amPm") {
77
- setAmPm(val);
78
- }
79
- onChange?.(timeString.value);
80
- } else {
81
- acceptChange.current = false;
82
- if (!wasInvalidBefore.current) {
83
- onChange?.("");
84
- wasInvalidBefore.current = true;
85
- }
86
- }
87
- };
88
- const setTimeString = (timeString) => {
89
- acceptChange.current = false;
90
- const parsedTime2 = getParsedTime({ time: timeString, amPmLabels, format });
91
- setHours(parsedTime2.hours);
92
- setMinutes(parsedTime2.minutes);
93
- setSeconds(parsedTime2.seconds);
94
- setAmPm(parsedTime2.amPm);
95
- const next = getTimeString({ ...parsedTime2, format, withSeconds, amPmLabels });
96
- wasInvalidBefore.current = !next.valid;
97
- onChange?.(timeString);
98
- };
99
- const onHoursChange = (value2) => {
100
- let adjustedValue = value2;
101
- if (format === "12h" && typeof value2 === "number" && value2 > 12) {
102
- adjustedValue = (value2 - 1) % 12 + 1;
103
- }
104
- setHours(adjustedValue);
105
- handleTimeChange("hours", adjustedValue);
106
- focus("hours");
107
- };
108
- const onMinutesChange = (value2) => {
109
- setMinutes(value2);
110
- handleTimeChange("minutes", value2);
111
- focus("minutes");
112
- };
113
- const onSecondsChange = (value2) => {
114
- setSeconds(value2);
115
- handleTimeChange("seconds", value2);
116
- focus("seconds");
117
- };
118
- const onAmPmChange = (value2) => {
119
- setAmPm(value2);
120
- handleTimeChange("amPm", value2);
121
- focus("amPm");
122
- };
123
- const clear = () => {
124
- acceptChange.current = false;
125
- setHours(null);
126
- setMinutes(null);
127
- setSeconds(null);
128
- setAmPm(null);
129
- onChange?.("");
130
- wasInvalidBefore.current = true;
131
- focus("hours");
132
- };
133
- const onPaste = (event) => {
134
- event.preventDefault();
135
- const pastedValue = event.clipboardData.getData("text");
136
- const parsedTime2 = (pasteSplit || getParsedTime)({ time: pastedValue, format, amPmLabels });
137
- const timeString = getTimeString({ ...parsedTime2, format, withSeconds, amPmLabels });
138
- if (timeString.valid) {
139
- acceptChange.current = false;
140
- const clamped = clampTime(timeString.value, min || "00:00:00", max || "23:59:59");
141
- onChange?.(clamped.timeString);
142
- setHours(parsedTime2.hours);
143
- setMinutes(parsedTime2.minutes);
144
- setSeconds(parsedTime2.seconds);
145
- setAmPm(parsedTime2.amPm);
146
- }
147
- };
148
- const hiddenInputValue = getTimeString({
149
- hours,
150
- minutes,
151
- seconds,
152
- format,
153
- withSeconds,
154
- amPm,
155
- amPmLabels
156
- });
157
- useDidUpdate(() => {
158
- if (value === "") {
159
- acceptChange.current = false;
160
- setHours(null);
161
- setMinutes(null);
162
- setSeconds(null);
163
- setAmPm(null);
164
- acceptChange.current = true;
165
- return;
166
- }
167
- if (acceptChange.current && typeof value === "string") {
168
- const parsedTime2 = getParsedTime({ time: value || "", amPmLabels, format });
169
- setHours(parsedTime2.hours);
170
- setMinutes(parsedTime2.minutes);
171
- setSeconds(parsedTime2.seconds);
172
- setAmPm(parsedTime2.amPm);
173
- }
174
- acceptChange.current = true;
175
- }, [value]);
176
- return {
177
- refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },
178
- values: { hours, minutes, seconds, amPm },
179
- setHours: onHoursChange,
180
- setMinutes: onMinutesChange,
181
- setSeconds: onSecondsChange,
182
- setAmPm: onAmPmChange,
183
- focus,
184
- clear,
185
- onPaste,
186
- setTimeString,
187
- isClearable,
188
- hiddenInputValue: hiddenInputValue.value
189
- };
1
+ "use client";
2
+ import { clampTime } from "./utils/clamp-time/clamp-time.mjs";
3
+ import { getParsedTime } from "./utils/get-parsed-time/get-parsed-time.mjs";
4
+ import { getTimeString } from "./utils/get-time-string/get-time-string.mjs";
5
+ import { useRef, useState } from "react";
6
+ import { useDidUpdate } from "@mantine/hooks";
7
+ //#region packages/@mantine/dates/src/components/TimePicker/use-time-picker.ts
8
+ function useTimePicker({ value, defaultValue, onChange, format, amPmLabels, withSeconds = false, min, max, clearable, readOnly, disabled, pasteSplit }) {
9
+ const parsedTime = getParsedTime({
10
+ time: value || defaultValue || "",
11
+ amPmLabels,
12
+ format
13
+ });
14
+ const initialTimeString = getTimeString({
15
+ hours: parsedTime.hours,
16
+ minutes: parsedTime.minutes,
17
+ seconds: parsedTime.seconds,
18
+ format,
19
+ withSeconds,
20
+ amPm: parsedTime.amPm,
21
+ amPmLabels
22
+ });
23
+ const acceptChange = useRef(true);
24
+ const wasInvalidBefore = useRef(!initialTimeString.valid);
25
+ const [hours, setHours] = useState(parsedTime.hours);
26
+ const [minutes, setMinutes] = useState(parsedTime.minutes);
27
+ const [seconds, setSeconds] = useState(parsedTime.seconds);
28
+ const [amPm, setAmPm] = useState(parsedTime.amPm);
29
+ const isClearable = clearable && !readOnly && !disabled && (hours !== null || minutes !== null || seconds !== null || amPm !== null);
30
+ const hoursRef = useRef(null);
31
+ const minutesRef = useRef(null);
32
+ const secondsRef = useRef(null);
33
+ const amPmRef = useRef(null);
34
+ const focus = (field) => {
35
+ if (field === "hours") hoursRef.current?.focus();
36
+ if (field === "minutes") minutesRef.current?.focus();
37
+ if (field === "seconds") secondsRef.current?.focus();
38
+ if (field === "amPm") amPmRef.current?.focus();
39
+ };
40
+ const handleTimeChange = (field, val) => {
41
+ const timeString = getTimeString({
42
+ hours,
43
+ minutes,
44
+ seconds,
45
+ amPm,
46
+ [field]: val,
47
+ format,
48
+ withSeconds,
49
+ amPmLabels
50
+ });
51
+ if (timeString.valid) {
52
+ acceptChange.current = false;
53
+ wasInvalidBefore.current = false;
54
+ if (field === "hours") setHours(val);
55
+ if (field === "minutes") setMinutes(val);
56
+ if (field === "seconds") setSeconds(val);
57
+ if (field === "amPm") setAmPm(val);
58
+ onChange?.(timeString.value);
59
+ } else {
60
+ acceptChange.current = false;
61
+ if (!wasInvalidBefore.current) {
62
+ onChange?.("");
63
+ wasInvalidBefore.current = true;
64
+ }
65
+ }
66
+ };
67
+ const setTimeString = (timeString) => {
68
+ acceptChange.current = false;
69
+ const parsedTime = getParsedTime({
70
+ time: timeString,
71
+ amPmLabels,
72
+ format
73
+ });
74
+ setHours(parsedTime.hours);
75
+ setMinutes(parsedTime.minutes);
76
+ setSeconds(parsedTime.seconds);
77
+ setAmPm(parsedTime.amPm);
78
+ wasInvalidBefore.current = !getTimeString({
79
+ ...parsedTime,
80
+ format,
81
+ withSeconds,
82
+ amPmLabels
83
+ }).valid;
84
+ onChange?.(timeString);
85
+ };
86
+ const onHoursChange = (value) => {
87
+ let adjustedValue = value;
88
+ if (format === "12h" && typeof value === "number" && value > 12) adjustedValue = (value - 1) % 12 + 1;
89
+ setHours(adjustedValue);
90
+ handleTimeChange("hours", adjustedValue);
91
+ focus("hours");
92
+ };
93
+ const onMinutesChange = (value) => {
94
+ setMinutes(value);
95
+ handleTimeChange("minutes", value);
96
+ focus("minutes");
97
+ };
98
+ const onSecondsChange = (value) => {
99
+ setSeconds(value);
100
+ handleTimeChange("seconds", value);
101
+ focus("seconds");
102
+ };
103
+ const onAmPmChange = (value) => {
104
+ setAmPm(value);
105
+ handleTimeChange("amPm", value);
106
+ focus("amPm");
107
+ };
108
+ const clear = () => {
109
+ acceptChange.current = false;
110
+ setHours(null);
111
+ setMinutes(null);
112
+ setSeconds(null);
113
+ setAmPm(null);
114
+ onChange?.("");
115
+ wasInvalidBefore.current = true;
116
+ focus("hours");
117
+ };
118
+ const onPaste = (event) => {
119
+ event.preventDefault();
120
+ const pastedValue = event.clipboardData.getData("text");
121
+ const parsedTime = (pasteSplit || getParsedTime)({
122
+ time: pastedValue,
123
+ format,
124
+ amPmLabels
125
+ });
126
+ const timeString = getTimeString({
127
+ ...parsedTime,
128
+ format,
129
+ withSeconds,
130
+ amPmLabels
131
+ });
132
+ if (timeString.valid) {
133
+ acceptChange.current = false;
134
+ const clamped = clampTime(timeString.value, min || "00:00:00", max || "23:59:59");
135
+ onChange?.(clamped.timeString);
136
+ setHours(parsedTime.hours);
137
+ setMinutes(parsedTime.minutes);
138
+ setSeconds(parsedTime.seconds);
139
+ setAmPm(parsedTime.amPm);
140
+ }
141
+ };
142
+ const hiddenInputValue = getTimeString({
143
+ hours,
144
+ minutes,
145
+ seconds,
146
+ format,
147
+ withSeconds,
148
+ amPm,
149
+ amPmLabels
150
+ });
151
+ useDidUpdate(() => {
152
+ if (value === "") {
153
+ acceptChange.current = false;
154
+ setHours(null);
155
+ setMinutes(null);
156
+ setSeconds(null);
157
+ setAmPm(null);
158
+ acceptChange.current = true;
159
+ return;
160
+ }
161
+ if (acceptChange.current && typeof value === "string") {
162
+ const parsedTime = getParsedTime({
163
+ time: value || "",
164
+ amPmLabels,
165
+ format
166
+ });
167
+ setHours(parsedTime.hours);
168
+ setMinutes(parsedTime.minutes);
169
+ setSeconds(parsedTime.seconds);
170
+ setAmPm(parsedTime.amPm);
171
+ }
172
+ acceptChange.current = true;
173
+ }, [value]);
174
+ return {
175
+ refs: {
176
+ hours: hoursRef,
177
+ minutes: minutesRef,
178
+ seconds: secondsRef,
179
+ amPm: amPmRef
180
+ },
181
+ values: {
182
+ hours,
183
+ minutes,
184
+ seconds,
185
+ amPm
186
+ },
187
+ setHours: onHoursChange,
188
+ setMinutes: onMinutesChange,
189
+ setSeconds: onSecondsChange,
190
+ setAmPm: onAmPmChange,
191
+ focus,
192
+ clear,
193
+ onPaste,
194
+ setTimeString,
195
+ isClearable,
196
+ hiddenInputValue: hiddenInputValue.value
197
+ };
190
198
  }
191
-
199
+ //#endregion
192
200
  export { useTimePicker };
193
- //# sourceMappingURL=use-time-picker.mjs.map
201
+
202
+ //# sourceMappingURL=use-time-picker.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-time-picker.mjs","sources":["../../../src/components/TimePicker/use-time-picker.ts"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport type {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPasteSplit,\n} from './TimePicker.types';\nimport { clampTime } from './utils/clamp-time/clamp-time';\nimport { getParsedTime } from './utils/get-parsed-time/get-parsed-time';\nimport { getTimeString } from './utils/get-time-string/get-time-string';\n\ninterface UseTimePickerInput {\n value: string | undefined;\n defaultValue: string | undefined;\n onChange: ((value: string) => void) | undefined;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean | undefined;\n min: string | undefined;\n max: string | undefined;\n readOnly: boolean | undefined;\n disabled: boolean | undefined;\n clearable: boolean | undefined;\n pasteSplit: TimePickerPasteSplit | undefined;\n}\n\nexport function useTimePicker({\n value,\n defaultValue,\n onChange,\n format,\n amPmLabels,\n withSeconds = false,\n min,\n max,\n clearable,\n readOnly,\n disabled,\n pasteSplit,\n}: UseTimePickerInput) {\n const parsedTime = getParsedTime({\n time: value || defaultValue || '',\n amPmLabels,\n format,\n });\n\n const initialTimeString = getTimeString({\n hours: parsedTime.hours,\n minutes: parsedTime.minutes,\n seconds: parsedTime.seconds,\n format,\n withSeconds,\n amPm: parsedTime.amPm,\n amPmLabels,\n });\n\n const acceptChange = useRef(true);\n const wasInvalidBefore = useRef(!initialTimeString.valid);\n\n const [hours, setHours] = useState<number | null>(parsedTime.hours);\n const [minutes, setMinutes] = useState<number | null>(parsedTime.minutes);\n const [seconds, setSeconds] = useState<number | null>(parsedTime.seconds);\n const [amPm, setAmPm] = useState<string | null>(parsedTime.amPm);\n\n const isClearable =\n clearable &&\n !readOnly &&\n !disabled &&\n (hours !== null || minutes !== null || seconds !== null || amPm !== null);\n\n const hoursRef = useRef<HTMLInputElement>(null);\n const minutesRef = useRef<HTMLInputElement>(null);\n const secondsRef = useRef<HTMLInputElement>(null);\n const amPmRef = useRef<HTMLSelectElement>(null);\n\n const focus = (field: 'hours' | 'minutes' | 'seconds' | 'amPm') => {\n if (field === 'hours') {\n hoursRef.current?.focus();\n }\n\n if (field === 'minutes') {\n minutesRef.current?.focus();\n }\n\n if (field === 'seconds') {\n secondsRef.current?.focus();\n }\n\n if (field === 'amPm') {\n amPmRef.current?.focus();\n }\n };\n\n const handleTimeChange = (field: 'hours' | 'minutes' | 'seconds' | 'amPm', val: any) => {\n const computedValue = { hours, minutes, seconds, amPm, [field]: val };\n\n const timeString = getTimeString({ ...computedValue, format, withSeconds, amPmLabels });\n\n if (timeString.valid) {\n acceptChange.current = false;\n wasInvalidBefore.current = false;\n if (field === 'hours') {\n setHours(val);\n }\n if (field === 'minutes') {\n setMinutes(val);\n }\n if (field === 'seconds') {\n setSeconds(val);\n }\n if (field === 'amPm') {\n setAmPm(val);\n }\n\n onChange?.(timeString.value);\n } else {\n acceptChange.current = false;\n if (!wasInvalidBefore.current) {\n onChange?.('');\n wasInvalidBefore.current = true;\n }\n }\n };\n\n const setTimeString = (timeString: string) => {\n acceptChange.current = false;\n\n const parsedTime = getParsedTime({ time: timeString, amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n\n const next = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n wasInvalidBefore.current = !next.valid;\n onChange?.(timeString);\n };\n\n const onHoursChange = (value: number | null) => {\n let adjustedValue = value;\n if (format === '12h' && typeof value === 'number' && value > 12) {\n adjustedValue = ((value - 1) % 12) + 1;\n }\n\n setHours(adjustedValue);\n handleTimeChange('hours', adjustedValue);\n focus('hours');\n };\n\n const onMinutesChange = (value: number | null) => {\n setMinutes(value);\n handleTimeChange('minutes', value);\n focus('minutes');\n };\n\n const onSecondsChange = (value: number | null) => {\n setSeconds(value);\n handleTimeChange('seconds', value);\n focus('seconds');\n };\n\n const onAmPmChange = (value: string | null) => {\n setAmPm(value);\n handleTimeChange('amPm', value);\n focus('amPm');\n };\n\n const clear = () => {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n onChange?.('');\n wasInvalidBefore.current = true;\n focus('hours');\n };\n\n const onPaste = (event: React.ClipboardEvent<any>) => {\n event.preventDefault();\n const pastedValue = event.clipboardData.getData('text');\n const parsedTime = (pasteSplit || getParsedTime)({ time: pastedValue, format, amPmLabels });\n const timeString = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n if (timeString.valid) {\n acceptChange.current = false;\n const clamped = clampTime(timeString.value, min || '00:00:00', max || '23:59:59');\n onChange?.(clamped.timeString);\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n };\n\n const hiddenInputValue = getTimeString({\n hours,\n minutes,\n seconds,\n format,\n withSeconds,\n amPm,\n amPmLabels: amPmLabels!,\n });\n\n useDidUpdate(() => {\n if (value === '') {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n acceptChange.current = true;\n return;\n }\n\n if (acceptChange.current && typeof value === 'string') {\n const parsedTime = getParsedTime({ time: value || '', amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n acceptChange.current = true;\n }, [value]);\n\n return {\n refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },\n values: { hours, minutes, seconds, amPm },\n setHours: onHoursChange,\n setMinutes: onMinutesChange,\n setSeconds: onSecondsChange,\n setAmPm: onAmPmChange,\n focus,\n clear,\n onPaste,\n setTimeString,\n isClearable,\n hiddenInputValue: hiddenInputValue.value,\n };\n}\n"],"names":["parsedTime","value"],"mappings":"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"}
1
+ {"version":3,"file":"use-time-picker.mjs","names":[],"sources":["../../../src/components/TimePicker/use-time-picker.ts"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport type {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPasteSplit,\n} from './TimePicker.types';\nimport { clampTime } from './utils/clamp-time/clamp-time';\nimport { getParsedTime } from './utils/get-parsed-time/get-parsed-time';\nimport { getTimeString } from './utils/get-time-string/get-time-string';\n\ninterface UseTimePickerInput {\n value: string | undefined;\n defaultValue: string | undefined;\n onChange: ((value: string) => void) | undefined;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean | undefined;\n min: string | undefined;\n max: string | undefined;\n readOnly: boolean | undefined;\n disabled: boolean | undefined;\n clearable: boolean | undefined;\n pasteSplit: TimePickerPasteSplit | undefined;\n}\n\nexport function useTimePicker({\n value,\n defaultValue,\n onChange,\n format,\n amPmLabels,\n withSeconds = false,\n min,\n max,\n clearable,\n readOnly,\n disabled,\n pasteSplit,\n}: UseTimePickerInput) {\n const parsedTime = getParsedTime({\n time: value || defaultValue || '',\n amPmLabels,\n format,\n });\n\n const initialTimeString = getTimeString({\n hours: parsedTime.hours,\n minutes: parsedTime.minutes,\n seconds: parsedTime.seconds,\n format,\n withSeconds,\n amPm: parsedTime.amPm,\n amPmLabels,\n });\n\n const acceptChange = useRef(true);\n const wasInvalidBefore = useRef(!initialTimeString.valid);\n\n const [hours, setHours] = useState<number | null>(parsedTime.hours);\n const [minutes, setMinutes] = useState<number | null>(parsedTime.minutes);\n const [seconds, setSeconds] = useState<number | null>(parsedTime.seconds);\n const [amPm, setAmPm] = useState<string | null>(parsedTime.amPm);\n\n const isClearable =\n clearable &&\n !readOnly &&\n !disabled &&\n (hours !== null || minutes !== null || seconds !== null || amPm !== null);\n\n const hoursRef = useRef<HTMLInputElement>(null);\n const minutesRef = useRef<HTMLInputElement>(null);\n const secondsRef = useRef<HTMLInputElement>(null);\n const amPmRef = useRef<HTMLSelectElement>(null);\n\n const focus = (field: 'hours' | 'minutes' | 'seconds' | 'amPm') => {\n if (field === 'hours') {\n hoursRef.current?.focus();\n }\n\n if (field === 'minutes') {\n minutesRef.current?.focus();\n }\n\n if (field === 'seconds') {\n secondsRef.current?.focus();\n }\n\n if (field === 'amPm') {\n amPmRef.current?.focus();\n }\n };\n\n const handleTimeChange = (field: 'hours' | 'minutes' | 'seconds' | 'amPm', val: any) => {\n const computedValue = { hours, minutes, seconds, amPm, [field]: val };\n\n const timeString = getTimeString({ ...computedValue, format, withSeconds, amPmLabels });\n\n if (timeString.valid) {\n acceptChange.current = false;\n wasInvalidBefore.current = false;\n if (field === 'hours') {\n setHours(val);\n }\n if (field === 'minutes') {\n setMinutes(val);\n }\n if (field === 'seconds') {\n setSeconds(val);\n }\n if (field === 'amPm') {\n setAmPm(val);\n }\n\n onChange?.(timeString.value);\n } else {\n acceptChange.current = false;\n if (!wasInvalidBefore.current) {\n onChange?.('');\n wasInvalidBefore.current = true;\n }\n }\n };\n\n const setTimeString = (timeString: string) => {\n acceptChange.current = false;\n\n const parsedTime = getParsedTime({ time: timeString, amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n\n const next = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n wasInvalidBefore.current = !next.valid;\n onChange?.(timeString);\n };\n\n const onHoursChange = (value: number | null) => {\n let adjustedValue = value;\n if (format === '12h' && typeof value === 'number' && value > 12) {\n adjustedValue = ((value - 1) % 12) + 1;\n }\n\n setHours(adjustedValue);\n handleTimeChange('hours', adjustedValue);\n focus('hours');\n };\n\n const onMinutesChange = (value: number | null) => {\n setMinutes(value);\n handleTimeChange('minutes', value);\n focus('minutes');\n };\n\n const onSecondsChange = (value: number | null) => {\n setSeconds(value);\n handleTimeChange('seconds', value);\n focus('seconds');\n };\n\n const onAmPmChange = (value: string | null) => {\n setAmPm(value);\n handleTimeChange('amPm', value);\n focus('amPm');\n };\n\n const clear = () => {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n onChange?.('');\n wasInvalidBefore.current = true;\n focus('hours');\n };\n\n const onPaste = (event: React.ClipboardEvent<any>) => {\n event.preventDefault();\n const pastedValue = event.clipboardData.getData('text');\n const parsedTime = (pasteSplit || getParsedTime)({ time: pastedValue, format, amPmLabels });\n const timeString = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n if (timeString.valid) {\n acceptChange.current = false;\n const clamped = clampTime(timeString.value, min || '00:00:00', max || '23:59:59');\n onChange?.(clamped.timeString);\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n };\n\n const hiddenInputValue = getTimeString({\n hours,\n minutes,\n seconds,\n format,\n withSeconds,\n amPm,\n amPmLabels: amPmLabels!,\n });\n\n useDidUpdate(() => {\n if (value === '') {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n acceptChange.current = true;\n return;\n }\n\n if (acceptChange.current && typeof value === 'string') {\n const parsedTime = getParsedTime({ time: value || '', amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n acceptChange.current = true;\n }, [value]);\n\n return {\n refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },\n values: { hours, minutes, seconds, amPm },\n setHours: onHoursChange,\n setMinutes: onMinutesChange,\n setSeconds: onSecondsChange,\n setAmPm: onAmPmChange,\n focus,\n clear,\n onPaste,\n setTimeString,\n isClearable,\n hiddenInputValue: hiddenInputValue.value,\n };\n}\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- 'use client';
2
- import { timeToSeconds, secondsToTime } from '../time-to-seconds/time-to-seconds.mjs';
3
-
1
+ "use client";
2
+ import { secondsToTime, timeToSeconds } from "../time-to-seconds/time-to-seconds.mjs";
3
+ //#region packages/@mantine/dates/src/components/TimePicker/utils/clamp-time/clamp-time.ts
4
4
  function clampTime(time, min, max) {
5
- const timeInSeconds = timeToSeconds(time);
6
- const minInSeconds = min ? timeToSeconds(min) : -Infinity;
7
- const maxInSeconds = max ? timeToSeconds(max) : Infinity;
8
- const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));
9
- return secondsToTime(clampedSeconds);
5
+ const timeInSeconds = timeToSeconds(time);
6
+ const minInSeconds = min ? timeToSeconds(min) : -Infinity;
7
+ const maxInSeconds = max ? timeToSeconds(max) : Infinity;
8
+ return secondsToTime(Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds)));
10
9
  }
11
-
10
+ //#endregion
12
11
  export { clampTime };
13
- //# sourceMappingURL=clamp-time.mjs.map
12
+
13
+ //# sourceMappingURL=clamp-time.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"clamp-time.mjs","sources":["../../../../../src/components/TimePicker/utils/clamp-time/clamp-time.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\nexport function clampTime(time: string, min: string | undefined, max: string | undefined) {\n const timeInSeconds = timeToSeconds(time);\n const minInSeconds = min ? timeToSeconds(min) : -Infinity;\n const maxInSeconds = max ? timeToSeconds(max) : Infinity;\n\n const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));\n return secondsToTime(clampedSeconds);\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAyB,GAAA,CAAA,CAAyB,CAAA;AACxF,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,IAAI,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,aAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEhD,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,EAAK,GAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAI,aAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA;AACrC,CAAA;;"}
1
+ {"version":3,"file":"clamp-time.mjs","names":[],"sources":["../../../../../src/components/TimePicker/utils/clamp-time/clamp-time.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\nexport function clampTime(time: string, min: string | undefined, max: string | undefined) {\n const timeInSeconds = timeToSeconds(time);\n const minInSeconds = min ? timeToSeconds(min) : -Infinity;\n const maxInSeconds = max ? timeToSeconds(max) : Infinity;\n\n const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));\n return secondsToTime(clampedSeconds);\n}\n"],"mappings":";;;AAEA,SAAgB,UAAU,MAAc,KAAyB,KAAyB;CACxF,MAAM,gBAAgB,cAAc,KAAK;CACzC,MAAM,eAAe,MAAM,cAAc,IAAI,GAAG;CAChD,MAAM,eAAe,MAAM,cAAc,IAAI,GAAG;AAGhD,QAAO,cADgB,KAAK,IAAI,cAAc,KAAK,IAAI,eAAe,aAAa,CAAC,CAChD"}