@gravity-ui/date-components 2.11.0-beta.0 → 2.12.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 (665) hide show
  1. package/dist/cjs/components/Calendar/Calendar.d.ts +4 -4
  2. package/dist/cjs/components/Calendar/Calendar.js +5 -6
  3. package/dist/cjs/components/Calendar/Calendar.js.map +1 -0
  4. package/dist/cjs/components/Calendar/index.d.ts +8 -8
  5. package/dist/cjs/components/Calendar/index.js +9 -21
  6. package/dist/cjs/components/Calendar/index.js.map +1 -0
  7. package/dist/cjs/components/CalendarView/Calendar.css +2 -1
  8. package/dist/cjs/components/CalendarView/Calendar.css.map +1 -0
  9. package/dist/cjs/components/CalendarView/CalendarView.d.ts +4 -4
  10. package/dist/cjs/components/CalendarView/CalendarView.js +11 -12
  11. package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -0
  12. package/dist/cjs/components/CalendarView/hooks/types.d.ts +1 -1
  13. package/dist/cjs/components/CalendarView/hooks/types.js +1 -0
  14. package/dist/cjs/components/CalendarView/hooks/types.js.map +1 -0
  15. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
  16. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +4 -5
  17. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
  18. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
  19. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
  20. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
  21. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
  22. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +5 -6
  23. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
  24. package/dist/cjs/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
  25. package/dist/cjs/components/CalendarView/hooks/useCalendarState.js +6 -7
  26. package/dist/cjs/components/CalendarView/hooks/useCalendarState.js.map +1 -0
  27. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
  28. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
  29. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
  30. package/dist/cjs/components/CalendarView/i18n/index.js +5 -6
  31. package/dist/cjs/components/CalendarView/i18n/index.js.map +1 -0
  32. package/dist/cjs/components/CalendarView/utils.d.ts +3 -3
  33. package/dist/cjs/components/CalendarView/utils.js +8 -6
  34. package/dist/cjs/components/CalendarView/utils.js.map +1 -0
  35. package/dist/cjs/components/DateField/DateField.css +2 -1
  36. package/dist/cjs/components/DateField/DateField.css.map +1 -0
  37. package/dist/cjs/components/DateField/DateField.d.ts +2 -2
  38. package/dist/cjs/components/DateField/DateField.js +5 -4
  39. package/dist/cjs/components/DateField/DateField.js.map +1 -0
  40. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
  41. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js +11 -21
  42. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
  43. package/dist/cjs/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
  44. package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +4 -5
  45. package/dist/cjs/components/DateField/hooks/useDateFieldProps.js.map +1 -0
  46. package/dist/cjs/components/DateField/hooks/useDateFieldState.d.ts +2 -2
  47. package/dist/cjs/components/DateField/hooks/useDateFieldState.js +14 -22
  48. package/dist/cjs/components/DateField/hooks/useDateFieldState.js.map +1 -0
  49. package/dist/cjs/components/DateField/i18n/en.json +1 -0
  50. package/dist/cjs/components/DateField/i18n/index.d.ts +1 -1
  51. package/dist/cjs/components/DateField/i18n/index.js +5 -6
  52. package/dist/cjs/components/DateField/i18n/index.js.map +1 -0
  53. package/dist/cjs/components/DateField/i18n/ru.json +1 -0
  54. package/dist/cjs/components/DateField/index.d.ts +4 -4
  55. package/dist/cjs/components/DateField/index.js +6 -18
  56. package/dist/cjs/components/DateField/index.js.map +1 -0
  57. package/dist/cjs/components/DateField/types.d.ts +9 -1
  58. package/dist/cjs/components/DateField/types.js +1 -0
  59. package/dist/cjs/components/DateField/types.js.map +1 -0
  60. package/dist/cjs/components/DateField/utils.d.ts +22 -6
  61. package/dist/cjs/components/DateField/utils.js +90 -8
  62. package/dist/cjs/components/DateField/utils.js.map +1 -0
  63. package/dist/cjs/components/DatePicker/DatePicker.css +2 -1
  64. package/dist/cjs/components/DatePicker/DatePicker.css.map +1 -0
  65. package/dist/cjs/components/DatePicker/DatePicker.d.ts +4 -4
  66. package/dist/cjs/components/DatePicker/DatePicker.js +11 -10
  67. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -0
  68. package/dist/cjs/components/DatePicker/MobileCalendar.css +2 -1
  69. package/dist/cjs/components/DatePicker/MobileCalendar.css.map +1 -0
  70. package/dist/cjs/components/DatePicker/MobileCalendar.d.ts +3 -3
  71. package/dist/cjs/components/DatePicker/MobileCalendar.js +7 -6
  72. package/dist/cjs/components/DatePicker/MobileCalendar.js.map +1 -0
  73. package/dist/cjs/components/DatePicker/StubButton.css +2 -1
  74. package/dist/cjs/components/DatePicker/StubButton.css.map +1 -0
  75. package/dist/cjs/components/DatePicker/StubButton.d.ts +1 -1
  76. package/dist/cjs/components/DatePicker/StubButton.js +2 -1
  77. package/dist/cjs/components/DatePicker/StubButton.js.map +1 -0
  78. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
  79. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js +21 -20
  80. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
  81. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
  82. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +10 -7
  83. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
  84. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
  85. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js +8 -5
  86. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
  87. package/dist/cjs/components/DatePicker/i18n/index.js +5 -6
  88. package/dist/cjs/components/DatePicker/i18n/index.js.map +1 -0
  89. package/dist/cjs/components/DatePicker/index.d.ts +3 -3
  90. package/dist/cjs/components/DatePicker/index.js +5 -17
  91. package/dist/cjs/components/DatePicker/index.js.map +1 -0
  92. package/dist/cjs/components/DatePicker/utils/cn.js +2 -1
  93. package/dist/cjs/components/DatePicker/utils/cn.js.map +1 -0
  94. package/dist/cjs/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
  95. package/dist/cjs/components/DatePicker/utils/getCalendarModes.js +21 -0
  96. package/dist/cjs/components/DatePicker/utils/getCalendarModes.js.map +1 -0
  97. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
  98. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js +1 -0
  99. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
  100. package/dist/cjs/components/DatePicker/utils/index.d.ts +3 -2
  101. package/dist/cjs/components/DatePicker/utils/index.js +5 -16
  102. package/dist/cjs/components/DatePicker/utils/index.js.map +1 -0
  103. package/dist/cjs/components/HiddenInput/HiddenInput.js +3 -4
  104. package/dist/cjs/components/HiddenInput/HiddenInput.js.map +1 -0
  105. package/dist/cjs/components/RangeCalendar/RangeCalendar.d.ts +4 -4
  106. package/dist/cjs/components/RangeCalendar/RangeCalendar.js +5 -6
  107. package/dist/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -0
  108. package/dist/cjs/components/RangeCalendar/index.d.ts +1 -1
  109. package/dist/cjs/components/RangeCalendar/index.js +3 -15
  110. package/dist/cjs/components/RangeCalendar/index.js.map +1 -0
  111. package/dist/cjs/components/RangeDateField/RangeDateField.css +2 -1
  112. package/dist/cjs/components/RangeDateField/RangeDateField.css.map +1 -0
  113. package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +3 -3
  114. package/dist/cjs/components/RangeDateField/RangeDateField.js +5 -4
  115. package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -0
  116. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
  117. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +19 -29
  118. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
  119. package/dist/cjs/components/RangeDateField/index.d.ts +2 -2
  120. package/dist/cjs/components/RangeDateField/index.js +4 -16
  121. package/dist/cjs/components/RangeDateField/index.js.map +1 -0
  122. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
  123. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
  124. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
  125. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
  126. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
  127. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
  128. package/dist/cjs/components/RangeDateField/utils/index.d.ts +3 -3
  129. package/dist/cjs/components/RangeDateField/utils/index.js +5 -17
  130. package/dist/cjs/components/RangeDateField/utils/index.js.map +1 -0
  131. package/dist/cjs/components/RangeDateField/utils/isValidRange.d.ts +1 -1
  132. package/dist/cjs/components/RangeDateField/utils/isValidRange.js +2 -2
  133. package/dist/cjs/components/RangeDateField/utils/isValidRange.js.map +1 -0
  134. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css +2 -1
  135. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
  136. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
  137. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js +10 -9
  138. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
  139. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
  140. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js +15 -7
  141. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
  142. package/dist/cjs/components/RangeDatePicker/index.d.ts +2 -2
  143. package/dist/cjs/components/RangeDatePicker/index.js +4 -16
  144. package/dist/cjs/components/RangeDatePicker/index.js.map +1 -0
  145. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css +2 -1
  146. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
  147. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
  148. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +9 -10
  149. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
  150. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
  151. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
  152. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
  153. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js +6 -8
  154. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
  155. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
  156. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js +12 -13
  157. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
  158. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
  159. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
  160. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
  161. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +5 -6
  162. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
  163. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
  164. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
  165. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
  166. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +6 -5
  167. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
  168. package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
  169. package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
  170. package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
  171. package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
  172. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
  173. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
  174. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
  175. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js +7 -8
  176. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
  177. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
  178. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +6 -7
  179. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
  180. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
  181. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js +3 -2
  182. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
  183. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
  184. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +7 -8
  185. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
  186. package/dist/cjs/components/RangeDateSelection/i18n/index.js +5 -6
  187. package/dist/cjs/components/RangeDateSelection/i18n/index.js.map +1 -0
  188. package/dist/cjs/components/RangeDateSelection/index.d.ts +3 -3
  189. package/dist/cjs/components/RangeDateSelection/index.js +4 -16
  190. package/dist/cjs/components/RangeDateSelection/index.js.map +1 -0
  191. package/dist/cjs/components/RangeDateSelection/utils/date.js +2 -1
  192. package/dist/cjs/components/RangeDateSelection/utils/date.js.map +1 -0
  193. package/dist/cjs/components/RangeDateSelection/utils/span.js +1 -0
  194. package/dist/cjs/components/RangeDateSelection/utils/span.js.map +1 -0
  195. package/dist/cjs/components/RelativeDateField/RelativeDateField.css +2 -1
  196. package/dist/cjs/components/RelativeDateField/RelativeDateField.css.map +1 -0
  197. package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +3 -3
  198. package/dist/cjs/components/RelativeDateField/RelativeDateField.js +9 -10
  199. package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -0
  200. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
  201. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +3 -4
  202. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
  203. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
  204. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +4 -5
  205. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
  206. package/dist/cjs/components/RelativeDateField/index.d.ts +3 -3
  207. package/dist/cjs/components/RelativeDateField/index.js +5 -17
  208. package/dist/cjs/components/RelativeDateField/index.js.map +1 -0
  209. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
  210. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
  211. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
  212. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +13 -14
  213. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
  214. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
  215. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
  216. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
  217. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
  218. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +16 -9
  219. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
  220. package/dist/cjs/components/RelativeDatePicker/i18n/index.js +5 -6
  221. package/dist/cjs/components/RelativeDatePicker/i18n/index.js.map +1 -0
  222. package/dist/cjs/components/RelativeDatePicker/index.d.ts +3 -3
  223. package/dist/cjs/components/RelativeDatePicker/index.js +5 -17
  224. package/dist/cjs/components/RelativeDatePicker/index.js.map +1 -0
  225. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
  226. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
  227. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
  228. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +8 -9
  229. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
  230. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
  231. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
  232. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
  233. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +7 -8
  234. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
  235. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js +5 -6
  236. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
  237. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
  238. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
  239. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
  240. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +10 -9
  241. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
  242. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +5 -6
  243. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
  244. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
  245. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +5 -6
  246. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
  247. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
  248. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
  249. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
  250. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +6 -7
  251. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
  252. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
  253. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
  254. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
  255. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +6 -7
  256. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
  257. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
  258. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
  259. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +5 -6
  260. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
  261. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
  262. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
  263. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
  264. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
  265. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
  266. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
  267. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +4 -3
  268. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
  269. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +5 -6
  270. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
  271. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
  272. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -6
  273. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
  274. package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js +5 -6
  275. package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
  276. package/dist/cjs/components/RelativeRangeDatePicker/index.d.ts +9 -9
  277. package/dist/cjs/components/RelativeRangeDatePicker/index.js +8 -20
  278. package/dist/cjs/components/RelativeRangeDatePicker/index.js.map +1 -0
  279. package/dist/cjs/components/RelativeRangeDatePicker/types.d.ts +5 -5
  280. package/dist/cjs/components/RelativeRangeDatePicker/types.js +1 -0
  281. package/dist/cjs/components/RelativeRangeDatePicker/types.js.map +1 -0
  282. package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +3 -3
  283. package/dist/cjs/components/RelativeRangeDatePicker/utils.js +2 -1
  284. package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -0
  285. package/dist/cjs/components/index.d.ts +11 -11
  286. package/dist/cjs/components/index.js +12 -24
  287. package/dist/cjs/components/index.js.map +1 -0
  288. package/dist/cjs/components/mixins.css +2 -0
  289. package/dist/cjs/components/mixins.css.map +1 -0
  290. package/dist/cjs/components/types/datePicker.d.ts +1 -1
  291. package/dist/cjs/components/types/datePicker.js +1 -0
  292. package/dist/cjs/components/types/datePicker.js.map +1 -0
  293. package/dist/cjs/components/types/events.js +1 -0
  294. package/dist/cjs/components/types/events.js.map +1 -0
  295. package/dist/cjs/components/types/index.d.ts +4 -4
  296. package/dist/cjs/components/types/index.js +1 -0
  297. package/dist/cjs/components/types/index.js.map +1 -0
  298. package/dist/cjs/components/types/inputs.js +1 -0
  299. package/dist/cjs/components/types/inputs.js.map +1 -0
  300. package/dist/cjs/components/types/style.js +1 -0
  301. package/dist/cjs/components/types/style.js.map +1 -0
  302. package/dist/cjs/components/utils/constants.js +1 -0
  303. package/dist/cjs/components/utils/constants.js.map +1 -0
  304. package/dist/cjs/components/utils/dates.js +2 -1
  305. package/dist/cjs/components/utils/dates.js.map +1 -0
  306. package/dist/cjs/components/utils/filterDOMProps.d.ts +1 -1
  307. package/dist/cjs/components/utils/filterDOMProps.js +1 -0
  308. package/dist/cjs/components/utils/filterDOMProps.js.map +1 -0
  309. package/dist/cjs/components/utils/getButtonSizeForInput.js +1 -0
  310. package/dist/cjs/components/utils/getButtonSizeForInput.js.map +1 -0
  311. package/dist/cjs/components/utils/mergeProps.js +1 -0
  312. package/dist/cjs/components/utils/mergeProps.js.map +1 -0
  313. package/dist/cjs/components/utils/useDefaultTimeZone.js +3 -4
  314. package/dist/cjs/components/utils/useDefaultTimeZone.js.map +1 -0
  315. package/dist/cjs/components/utils/validation/datePicker.js +2 -1
  316. package/dist/cjs/components/utils/validation/datePicker.js.map +1 -0
  317. package/dist/cjs/components/utils/validation/i18n/index.js +5 -6
  318. package/dist/cjs/components/utils/validation/i18n/index.js.map +1 -0
  319. package/dist/cjs/components/variables.css +2 -0
  320. package/dist/cjs/components/variables.css.map +1 -0
  321. package/dist/cjs/hooks/useEventHandler.js +3 -4
  322. package/dist/cjs/hooks/useEventHandler.js.map +1 -0
  323. package/dist/cjs/hooks/useMove.js +4 -5
  324. package/dist/cjs/hooks/useMove.js.map +1 -0
  325. package/dist/cjs/hooks/useResizeObserver.js +3 -4
  326. package/dist/cjs/hooks/useResizeObserver.js.map +1 -0
  327. package/dist/cjs/index.d.ts +1 -1
  328. package/dist/cjs/index.js +3 -15
  329. package/dist/cjs/index.js.map +1 -0
  330. package/dist/cjs/package.json +1 -0
  331. package/dist/cjs/utils/cn.js +1 -0
  332. package/dist/cjs/utils/cn.js.map +1 -0
  333. package/dist/esm/components/Calendar/Calendar.d.ts +4 -4
  334. package/dist/esm/components/Calendar/Calendar.js +4 -3
  335. package/dist/esm/components/Calendar/Calendar.js.map +1 -0
  336. package/dist/esm/components/Calendar/index.d.ts +8 -8
  337. package/dist/esm/components/Calendar/index.js +8 -7
  338. package/dist/esm/components/Calendar/index.js.map +1 -0
  339. package/dist/esm/components/CalendarView/Calendar.css +2 -1
  340. package/dist/esm/components/CalendarView/Calendar.css.map +1 -0
  341. package/dist/esm/components/CalendarView/CalendarView.d.ts +4 -4
  342. package/dist/esm/components/CalendarView/CalendarView.js +10 -9
  343. package/dist/esm/components/CalendarView/CalendarView.js.map +1 -0
  344. package/dist/esm/components/CalendarView/hooks/types.d.ts +1 -1
  345. package/dist/esm/components/CalendarView/hooks/types.js +1 -0
  346. package/dist/esm/components/CalendarView/hooks/types.js.map +1 -0
  347. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
  348. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +2 -1
  349. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
  350. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
  351. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
  352. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
  353. package/dist/esm/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
  354. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +3 -2
  355. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
  356. package/dist/esm/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
  357. package/dist/esm/components/CalendarView/hooks/useCalendarState.js +4 -3
  358. package/dist/esm/components/CalendarView/hooks/useCalendarState.js.map +1 -0
  359. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
  360. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
  361. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
  362. package/dist/esm/components/CalendarView/i18n/index.js +4 -3
  363. package/dist/esm/components/CalendarView/i18n/index.js.map +1 -0
  364. package/dist/esm/components/CalendarView/utils.d.ts +3 -3
  365. package/dist/esm/components/CalendarView/utils.js +8 -6
  366. package/dist/esm/components/CalendarView/utils.js.map +1 -0
  367. package/dist/esm/components/DateField/DateField.css +2 -1
  368. package/dist/esm/components/DateField/DateField.css.map +1 -0
  369. package/dist/esm/components/DateField/DateField.d.ts +2 -2
  370. package/dist/esm/components/DateField/DateField.js +6 -5
  371. package/dist/esm/components/DateField/DateField.js.map +1 -0
  372. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
  373. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js +9 -17
  374. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
  375. package/dist/esm/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
  376. package/dist/esm/components/DateField/hooks/useDateFieldProps.js +2 -1
  377. package/dist/esm/components/DateField/hooks/useDateFieldProps.js.map +1 -0
  378. package/dist/esm/components/DateField/hooks/useDateFieldState.d.ts +2 -2
  379. package/dist/esm/components/DateField/hooks/useDateFieldState.js +12 -18
  380. package/dist/esm/components/DateField/hooks/useDateFieldState.js.map +1 -0
  381. package/dist/esm/components/DateField/i18n/en.json +1 -0
  382. package/dist/esm/components/DateField/i18n/index.d.ts +1 -1
  383. package/dist/esm/components/DateField/i18n/index.js +4 -3
  384. package/dist/esm/components/DateField/i18n/index.js.map +1 -0
  385. package/dist/esm/components/DateField/i18n/ru.json +1 -0
  386. package/dist/esm/components/DateField/index.d.ts +4 -4
  387. package/dist/esm/components/DateField/index.js +5 -4
  388. package/dist/esm/components/DateField/index.js.map +1 -0
  389. package/dist/esm/components/DateField/types.d.ts +9 -1
  390. package/dist/esm/components/DateField/types.js +1 -0
  391. package/dist/esm/components/DateField/types.js.map +1 -0
  392. package/dist/esm/components/DateField/utils.d.ts +22 -6
  393. package/dist/esm/components/DateField/utils.js +86 -5
  394. package/dist/esm/components/DateField/utils.js.map +1 -0
  395. package/dist/esm/components/DatePicker/DatePicker.css +2 -1
  396. package/dist/esm/components/DatePicker/DatePicker.css.map +1 -0
  397. package/dist/esm/components/DatePicker/DatePicker.d.ts +4 -4
  398. package/dist/esm/components/DatePicker/DatePicker.js +12 -11
  399. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  400. package/dist/esm/components/DatePicker/MobileCalendar.css +2 -1
  401. package/dist/esm/components/DatePicker/MobileCalendar.css.map +1 -0
  402. package/dist/esm/components/DatePicker/MobileCalendar.d.ts +3 -3
  403. package/dist/esm/components/DatePicker/MobileCalendar.js +8 -7
  404. package/dist/esm/components/DatePicker/MobileCalendar.js.map +1 -0
  405. package/dist/esm/components/DatePicker/StubButton.css +2 -1
  406. package/dist/esm/components/DatePicker/StubButton.css.map +1 -0
  407. package/dist/esm/components/DatePicker/StubButton.d.ts +1 -1
  408. package/dist/esm/components/DatePicker/StubButton.js +3 -2
  409. package/dist/esm/components/DatePicker/StubButton.js.map +1 -0
  410. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
  411. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js +19 -16
  412. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
  413. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
  414. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +10 -7
  415. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
  416. package/dist/esm/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
  417. package/dist/esm/components/DatePicker/hooks/useDatePickerState.js +7 -4
  418. package/dist/esm/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
  419. package/dist/esm/components/DatePicker/i18n/index.js +4 -3
  420. package/dist/esm/components/DatePicker/i18n/index.js.map +1 -0
  421. package/dist/esm/components/DatePicker/index.d.ts +3 -3
  422. package/dist/esm/components/DatePicker/index.js +4 -3
  423. package/dist/esm/components/DatePicker/index.js.map +1 -0
  424. package/dist/esm/components/DatePicker/utils/cn.js +2 -1
  425. package/dist/esm/components/DatePicker/utils/cn.js.map +1 -0
  426. package/dist/esm/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
  427. package/dist/esm/components/DatePicker/utils/getCalendarModes.js +18 -0
  428. package/dist/esm/components/DatePicker/utils/getCalendarModes.js.map +1 -0
  429. package/dist/esm/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
  430. package/dist/esm/components/DatePicker/utils/getDateTimeValue.js +1 -0
  431. package/dist/esm/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
  432. package/dist/esm/components/DatePicker/utils/index.d.ts +3 -2
  433. package/dist/esm/components/DatePicker/utils/index.js +4 -2
  434. package/dist/esm/components/DatePicker/utils/index.js.map +1 -0
  435. package/dist/esm/components/HiddenInput/HiddenInput.js +1 -0
  436. package/dist/esm/components/HiddenInput/HiddenInput.js.map +1 -0
  437. package/dist/esm/components/RangeCalendar/RangeCalendar.d.ts +4 -4
  438. package/dist/esm/components/RangeCalendar/RangeCalendar.js +4 -3
  439. package/dist/esm/components/RangeCalendar/RangeCalendar.js.map +1 -0
  440. package/dist/esm/components/RangeCalendar/index.d.ts +1 -1
  441. package/dist/esm/components/RangeCalendar/index.js +2 -1
  442. package/dist/esm/components/RangeCalendar/index.js.map +1 -0
  443. package/dist/esm/components/RangeDateField/RangeDateField.css +2 -1
  444. package/dist/esm/components/RangeDateField/RangeDateField.css.map +1 -0
  445. package/dist/esm/components/RangeDateField/RangeDateField.d.ts +3 -3
  446. package/dist/esm/components/RangeDateField/RangeDateField.js +6 -5
  447. package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -0
  448. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
  449. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +17 -25
  450. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
  451. package/dist/esm/components/RangeDateField/index.d.ts +2 -2
  452. package/dist/esm/components/RangeDateField/index.js +3 -2
  453. package/dist/esm/components/RangeDateField/index.js.map +1 -0
  454. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
  455. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
  456. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
  457. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
  458. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
  459. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
  460. package/dist/esm/components/RangeDateField/utils/index.d.ts +3 -3
  461. package/dist/esm/components/RangeDateField/utils/index.js +4 -3
  462. package/dist/esm/components/RangeDateField/utils/index.js.map +1 -0
  463. package/dist/esm/components/RangeDateField/utils/isValidRange.d.ts +1 -1
  464. package/dist/esm/components/RangeDateField/utils/isValidRange.js +2 -2
  465. package/dist/esm/components/RangeDateField/utils/isValidRange.js.map +1 -0
  466. package/dist/esm/components/RangeDatePicker/RangeDatePicker.css +2 -1
  467. package/dist/esm/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
  468. package/dist/esm/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
  469. package/dist/esm/components/RangeDatePicker/RangeDatePicker.js +11 -10
  470. package/dist/esm/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
  471. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
  472. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js +14 -6
  473. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
  474. package/dist/esm/components/RangeDatePicker/index.d.ts +2 -2
  475. package/dist/esm/components/RangeDatePicker/index.js +3 -2
  476. package/dist/esm/components/RangeDatePicker/index.js.map +1 -0
  477. package/dist/esm/components/RangeDateSelection/RangeDateSelection.css +2 -1
  478. package/dist/esm/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
  479. package/dist/esm/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
  480. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +8 -7
  481. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
  482. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
  483. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
  484. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
  485. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js +5 -5
  486. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
  487. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
  488. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js +9 -8
  489. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
  490. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
  491. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
  492. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
  493. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +4 -3
  494. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
  495. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
  496. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
  497. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
  498. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +7 -6
  499. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
  500. package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
  501. package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
  502. package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
  503. package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
  504. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
  505. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
  506. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
  507. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js +6 -5
  508. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
  509. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
  510. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +5 -4
  511. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
  512. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
  513. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js +3 -2
  514. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
  515. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
  516. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +5 -4
  517. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
  518. package/dist/esm/components/RangeDateSelection/i18n/index.js +4 -3
  519. package/dist/esm/components/RangeDateSelection/i18n/index.js.map +1 -0
  520. package/dist/esm/components/RangeDateSelection/index.d.ts +3 -3
  521. package/dist/esm/components/RangeDateSelection/index.js +3 -2
  522. package/dist/esm/components/RangeDateSelection/index.js.map +1 -0
  523. package/dist/esm/components/RangeDateSelection/utils/date.js +2 -1
  524. package/dist/esm/components/RangeDateSelection/utils/date.js.map +1 -0
  525. package/dist/esm/components/RangeDateSelection/utils/span.js +1 -0
  526. package/dist/esm/components/RangeDateSelection/utils/span.js.map +1 -0
  527. package/dist/esm/components/RelativeDateField/RelativeDateField.css +2 -1
  528. package/dist/esm/components/RelativeDateField/RelativeDateField.css.map +1 -0
  529. package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +3 -3
  530. package/dist/esm/components/RelativeDateField/RelativeDateField.js +8 -7
  531. package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -0
  532. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
  533. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +1 -0
  534. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
  535. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
  536. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +3 -2
  537. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
  538. package/dist/esm/components/RelativeDateField/index.d.ts +3 -3
  539. package/dist/esm/components/RelativeDateField/index.js +4 -3
  540. package/dist/esm/components/RelativeDateField/index.js.map +1 -0
  541. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
  542. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
  543. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
  544. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +12 -11
  545. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
  546. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
  547. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
  548. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
  549. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
  550. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +14 -5
  551. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
  552. package/dist/esm/components/RelativeDatePicker/i18n/index.js +4 -3
  553. package/dist/esm/components/RelativeDatePicker/i18n/index.js.map +1 -0
  554. package/dist/esm/components/RelativeDatePicker/index.d.ts +3 -3
  555. package/dist/esm/components/RelativeDatePicker/index.js +4 -3
  556. package/dist/esm/components/RelativeDatePicker/index.js.map +1 -0
  557. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
  558. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
  559. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
  560. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +7 -6
  561. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
  562. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
  563. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
  564. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
  565. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +6 -5
  566. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
  567. package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js +4 -3
  568. package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
  569. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
  570. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
  571. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
  572. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +11 -10
  573. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
  574. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +4 -3
  575. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
  576. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
  577. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +3 -2
  578. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
  579. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
  580. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
  581. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
  582. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +5 -4
  583. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
  584. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
  585. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
  586. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
  587. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +5 -4
  588. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
  589. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
  590. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
  591. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +4 -3
  592. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
  593. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
  594. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
  595. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
  596. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
  597. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
  598. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
  599. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +5 -4
  600. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
  601. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +4 -3
  602. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
  603. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
  604. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +3 -2
  605. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
  606. package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js +4 -3
  607. package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
  608. package/dist/esm/components/RelativeRangeDatePicker/index.d.ts +9 -9
  609. package/dist/esm/components/RelativeRangeDatePicker/index.js +7 -6
  610. package/dist/esm/components/RelativeRangeDatePicker/index.js.map +1 -0
  611. package/dist/esm/components/RelativeRangeDatePicker/types.d.ts +5 -5
  612. package/dist/esm/components/RelativeRangeDatePicker/types.js +1 -0
  613. package/dist/esm/components/RelativeRangeDatePicker/types.js.map +1 -0
  614. package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +3 -3
  615. package/dist/esm/components/RelativeRangeDatePicker/utils.js +2 -1
  616. package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -0
  617. package/dist/esm/components/index.d.ts +11 -11
  618. package/dist/esm/components/index.js +11 -10
  619. package/dist/esm/components/index.js.map +1 -0
  620. package/dist/esm/components/mixins.css +2 -0
  621. package/dist/esm/components/mixins.css.map +1 -0
  622. package/dist/esm/components/types/datePicker.d.ts +1 -1
  623. package/dist/esm/components/types/datePicker.js +1 -0
  624. package/dist/esm/components/types/datePicker.js.map +1 -0
  625. package/dist/esm/components/types/events.js +1 -0
  626. package/dist/esm/components/types/events.js.map +1 -0
  627. package/dist/esm/components/types/index.d.ts +4 -4
  628. package/dist/esm/components/types/index.js +1 -0
  629. package/dist/esm/components/types/index.js.map +1 -0
  630. package/dist/esm/components/types/inputs.js +1 -0
  631. package/dist/esm/components/types/inputs.js.map +1 -0
  632. package/dist/esm/components/types/style.js +1 -0
  633. package/dist/esm/components/types/style.js.map +1 -0
  634. package/dist/esm/components/utils/constants.js +1 -0
  635. package/dist/esm/components/utils/constants.js.map +1 -0
  636. package/dist/esm/components/utils/dates.js +2 -1
  637. package/dist/esm/components/utils/dates.js.map +1 -0
  638. package/dist/esm/components/utils/filterDOMProps.d.ts +1 -1
  639. package/dist/esm/components/utils/filterDOMProps.js +1 -0
  640. package/dist/esm/components/utils/filterDOMProps.js.map +1 -0
  641. package/dist/esm/components/utils/getButtonSizeForInput.js +1 -0
  642. package/dist/esm/components/utils/getButtonSizeForInput.js.map +1 -0
  643. package/dist/esm/components/utils/mergeProps.js +1 -0
  644. package/dist/esm/components/utils/mergeProps.js.map +1 -0
  645. package/dist/esm/components/utils/useDefaultTimeZone.js +1 -0
  646. package/dist/esm/components/utils/useDefaultTimeZone.js.map +1 -0
  647. package/dist/esm/components/utils/validation/datePicker.js +2 -1
  648. package/dist/esm/components/utils/validation/datePicker.js.map +1 -0
  649. package/dist/esm/components/utils/validation/i18n/index.js +4 -3
  650. package/dist/esm/components/utils/validation/i18n/index.js.map +1 -0
  651. package/dist/esm/components/variables.css +2 -0
  652. package/dist/esm/components/variables.css.map +1 -0
  653. package/dist/esm/hooks/useEventHandler.js +1 -0
  654. package/dist/esm/hooks/useEventHandler.js.map +1 -0
  655. package/dist/esm/hooks/useMove.js +2 -1
  656. package/dist/esm/hooks/useMove.js.map +1 -0
  657. package/dist/esm/hooks/useResizeObserver.js +1 -0
  658. package/dist/esm/hooks/useResizeObserver.js.map +1 -0
  659. package/dist/esm/index.d.ts +1 -1
  660. package/dist/esm/index.js +2 -1
  661. package/dist/esm/index.js.map +1 -0
  662. package/dist/esm/package.json +1 -0
  663. package/dist/esm/utils/cn.js +1 -0
  664. package/dist/esm/utils/cn.js.map +1 -0
  665. package/package.json +38 -34
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePickerStateFactory.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/hooks/datePickerStateFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useControlledState} from '@gravity-ui/uikit';\n\nimport type {DateFieldState} from '../../DateField';\nimport type {FormatInfo} from '../../DateField/types';\nimport type {DateFieldBase, PopupTriggerProps} from '../../types';\nimport {useDefaultTimeZone} from '../../utils/useDefaultTimeZone';\n\ntype OpenChangeReason =\n | 'EscapeKeyDown'\n | 'FocusOut'\n | 'ClickOutside'\n | 'ValueSelected'\n | 'TriggerButtonClick'\n | 'ShortcutKeyDown';\n\nexport interface DatePickerState<T = DateTime> {\n /** The currently selected date. */\n value: T | null;\n /** Sets the selected date. */\n setValue: (value: T | null) => void;\n /**\n * The date portion of the value. This may be set prior to `value` if the user has\n * selected a date but has not yet selected a time.\n */\n dateValue: T | null;\n /** Sets the date portion of the value. */\n setDateValue: (value: T) => void;\n /**\n * The time portion of the value. This may be set prior to `value` if the user has\n * selected a time but has not yet selected a date.\n */\n timeValue: T | null;\n /** Sets the time portion of the value. */\n setTimeValue: (value: T | null) => void;\n /** Whether the field is read only. */\n readOnly?: boolean;\n /** Whether the field is disabled. */\n disabled?: boolean;\n /** Format of the date when rendered in the input. */\n format: string;\n /** Format info */\n formatInfo: FormatInfo;\n /**\n * @deprecated use formatInfo.hasDate instead\n * Whether the date picker supports selecting a date.\n */\n hasDate: boolean;\n /**\n * @deprecated use formatInfo.hasTime instead\n * Whether the date picker supports selecting a time.\n */\n hasTime: boolean;\n /** Format of the time when rendered in the input. */\n timeFormat?: string;\n timeZone: string;\n /** Whether the calendar popover is currently open. */\n isOpen: boolean;\n /** Sets whether the calendar popover is open. */\n setOpen: (isOpen: boolean, reason: OpenChangeReason) => void;\n dateFieldState: DateFieldState<T>;\n}\n\nexport interface DatePickerStateFactoryOptions<T, O extends DateFieldBase<T>> {\n getPlaceholderTime: (placeholderValue: DateTime | undefined, timeZone?: string) => T;\n mergeDateTime: (date: T, time: T) => T;\n setTimezone: (date: T, timeZone: string) => T;\n getDateTime: (date: T | null | undefined) => DateTime | undefined;\n useDateFieldState: (props: O) => DateFieldState<T>;\n adjustDateToFormat: (date: T, info: FormatInfo) => T;\n}\n\nexport interface DatePickerStateOptions<T>\n extends DateFieldBase<T>,\n PopupTriggerProps<[OpenChangeReason]> {}\n\nexport function datePickerStateFactory<T, O extends DatePickerStateOptions<T>>({\n getPlaceholderTime,\n mergeDateTime,\n setTimezone,\n getDateTime,\n useDateFieldState,\n adjustDateToFormat,\n}: DatePickerStateFactoryOptions<T, O>) {\n return function useDatePickerState(props: O): DatePickerState<T> {\n const {disabled, readOnly} = props;\n const [isOpen, _setOpen] = useControlledState(\n props.open,\n props.defaultOpen ?? false,\n props.onOpenChange,\n );\n\n const setOpen: NonNullable<typeof props.onOpenChange> = _setOpen;\n\n const [value, setValue] = useControlledState(\n props.value as never,\n props.defaultValue ?? null,\n props.onUpdate,\n );\n const [selectedDateInner, setSelectedDate] = React.useState<T | null>(null);\n const [selectedTimeInner, setSelectedTime] = React.useState<T | null>(null);\n\n const inputTimeZone = useDefaultTimeZone(\n getDateTime(props.value) || getDateTime(props.defaultValue) || props.placeholderValue,\n );\n const timeZone = props.timeZone || inputTimeZone;\n\n let selectedDate = selectedDateInner;\n let selectedTime = selectedTimeInner;\n\n const format = props.format || 'L';\n\n const commitValue = (date: T, time: T) => {\n if (disabled || readOnly) {\n return;\n }\n\n setValue(setTimezone(mergeDateTime(date, time), inputTimeZone));\n setSelectedDate(null);\n setSelectedTime(null);\n };\n\n const dateFieldState = useDateFieldState({\n ...props,\n value,\n onUpdate(date: T | null) {\n if (date) {\n commitValue(date, date);\n } else {\n setValue(null);\n }\n },\n disabled,\n readOnly,\n validationState: props.validationState,\n minValue: props.minValue,\n maxValue: props.maxValue,\n isDateUnavailable: props.isDateUnavailable,\n format,\n placeholderValue: props.placeholderValue,\n timeZone,\n });\n\n const timeFormat = React.useMemo(() => {\n if (!dateFieldState.formatInfo.hasTime) {\n return undefined;\n }\n const timeFormatParts: string[] = [];\n const hours = dateFieldState.sections.find((s) => s.type === 'hour');\n if (hours) {\n timeFormatParts.push(hours.format);\n }\n const minutes = dateFieldState.sections.find((s) => s.type === 'minute');\n if (minutes) {\n timeFormatParts.push(minutes.format);\n }\n const seconds = dateFieldState.sections.find((s) => s.type === 'second');\n if (seconds) {\n timeFormatParts.push(seconds.format);\n }\n const dayPeriod = dateFieldState.sections.find((s) => s.type === 'dayPeriod');\n return timeFormatParts.join(':') + (dayPeriod ? ` ${dayPeriod.format}` : '');\n }, [dateFieldState.formatInfo.hasTime, dateFieldState.sections]);\n\n if (value) {\n selectedDate = setTimezone(value, timeZone);\n if (dateFieldState.formatInfo.hasTime) {\n selectedTime = selectedDate;\n }\n }\n\n // Intercept setValue to make sure the Time section is not changed by date selection in Calendar\n const selectDate = (newValue: T) => {\n if (disabled || readOnly) {\n return;\n }\n\n const newDate = adjustDateToFormat(newValue, dateFieldState.formatInfo);\n const shouldClose = !dateFieldState.formatInfo.hasTime;\n if (dateFieldState.formatInfo.hasTime) {\n if (selectedTime || shouldClose) {\n commitValue(newDate, selectedTime || newDate);\n } else {\n setSelectedDate(newDate);\n }\n } else {\n commitValue(newDate, newDate);\n }\n\n if (shouldClose) {\n setOpen(false, 'ValueSelected');\n }\n };\n\n const selectTime = (newValue: T | null) => {\n if (disabled || readOnly) {\n return;\n }\n\n const newTime = adjustDateToFormat(\n newValue ?? getPlaceholderTime(props.placeholderValue, timeZone),\n dateFieldState.formatInfo,\n );\n\n if (selectedDate) {\n commitValue(selectedDate, newTime);\n } else {\n setSelectedTime(newTime);\n }\n };\n\n if (dateFieldState.formatInfo.hasTime && !selectedTime) {\n selectedTime = dateFieldState.displayValue;\n }\n\n return {\n value,\n setValue(newDate: T | null) {\n if (props.readOnly || props.disabled) {\n return;\n }\n\n if (newDate) {\n setValue(setTimezone(newDate, inputTimeZone));\n } else {\n setValue(null);\n }\n },\n dateValue: selectedDate,\n timeValue: selectedTime,\n setDateValue: selectDate,\n setTimeValue: selectTime,\n disabled,\n readOnly,\n format,\n formatInfo: dateFieldState.formatInfo,\n hasDate: dateFieldState.formatInfo.hasDate,\n hasTime: dateFieldState.formatInfo.hasTime,\n timeFormat,\n timeZone,\n isOpen,\n setOpen(newIsOpen, reason) {\n if (!newIsOpen && !value && selectedDate && dateFieldState.formatInfo.hasTime) {\n commitValue(\n selectedDate,\n selectedTime || getPlaceholderTime(props.placeholderValue, props.timeZone),\n );\n }\n\n setOpen(newIsOpen, reason);\n },\n dateFieldState,\n };\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import type { DateTime } from '@gravity-ui/date-utils';
3
3
  import type { ButtonProps, PopupProps, TextInputProps } from '@gravity-ui/uikit';
4
- import type { CalendarInstance, CalendarProps } from '../../Calendar';
5
- import type { DateFieldProps } from '../../DateField';
6
- import type { RangeValue } from '../../types';
7
- import type { DatePickerProps } from '../DatePicker';
8
- import type { DatePickerState } from './useDatePickerState';
4
+ import type { CalendarInstance, CalendarProps } from "../../Calendar/index.js";
5
+ import type { DateFieldProps } from "../../DateField/index.js";
6
+ import type { RangeValue } from "../../types/index.js";
7
+ import type { DatePickerProps } from "../DatePicker.js";
8
+ import type { DatePickerState } from "./useDatePickerState.js";
9
9
  interface InnerDatePickerProps<T = DateTime> {
10
10
  groupProps: React.HTMLAttributes<unknown> & {
11
11
  ref: React.Ref<any>;
@@ -2,11 +2,11 @@ import { __rest } from "tslib";
2
2
  import React from 'react';
3
3
  import { isDateTime } from '@gravity-ui/date-utils';
4
4
  import { useFocusWithin, useForkRef } from '@gravity-ui/uikit';
5
- import { useDateFieldProps } from '../../DateField';
6
- import { getButtonSizeForInput } from '../../utils/getButtonSizeForInput';
7
- import { mergeProps } from '../../utils/mergeProps';
8
- import { i18n } from '../i18n';
9
- import { getDateTimeValue } from '../utils';
5
+ import { useDateFieldProps } from "../../DateField/index.js";
6
+ import { getButtonSizeForInput } from "../../utils/getButtonSizeForInput.js";
7
+ import { mergeProps } from "../../utils/mergeProps.js";
8
+ import { i18n } from "../i18n/index.js";
9
+ import { getCalendarModes, getDateTimeValue } from "../utils/index.js";
10
10
  export function useDatePickerProps(state, _a) {
11
11
  var { onFocus, onBlur } = _a, props = __rest(_a, ["onFocus", "onBlur"]);
12
12
  const [isActive, setActive] = React.useState(false);
@@ -50,7 +50,8 @@ export function useDatePickerProps(state, _a) {
50
50
  (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });
51
51
  });
52
52
  }
53
- const onlyTime = state.hasTime && !state.hasDate;
53
+ const onlyTime = state.formatInfo.hasTime && !state.formatInfo.hasDate;
54
+ const calendarModes = getCalendarModes(state.formatInfo);
54
55
  return {
55
56
  groupProps: Object.assign(Object.assign({ ref: groupRef, tabIndex: -1, role: 'group' }, focusWithinProps), { style: props.style, 'aria-disabled': state.disabled || undefined, onKeyDown: (e) => {
56
57
  if (!onlyTime && e.altKey && (e.key === 'ArrowDown' || e.key === 'ArrowUp')) {
@@ -111,7 +112,7 @@ export function useDatePickerProps(state, _a) {
111
112
  readOnly: props.readOnly,
112
113
  onUpdate: (d) => {
113
114
  state.setDateValue(d);
114
- if (!state.hasTime) {
115
+ if (!state.formatInfo.hasTime) {
115
116
  focusInput();
116
117
  }
117
118
  },
@@ -122,6 +123,7 @@ export function useDatePickerProps(state, _a) {
122
123
  timeZone: state.timeZone,
123
124
  focusedValue: focusedDate,
124
125
  onFocusUpdate: setFocusedDate,
126
+ modes: calendarModes,
125
127
  },
126
128
  timeInputProps: {
127
129
  value: state.timeValue,
@@ -136,3 +138,4 @@ export function useDatePickerProps(state, _a) {
136
138
  },
137
139
  };
138
140
  }
141
+ //# sourceMappingURL=useDatePickerProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatePickerProps.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/hooks/useDatePickerProps.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAI7D,OAAO,EAAC,iBAAiB,EAAC,iCAAwB;AAGlD,OAAO,EAAC,qBAAqB,EAAC,6CAA0C;AACxE,OAAO,EAAC,UAAU,EAAC,kCAA+B;AAElD,OAAO,EAAC,IAAI,EAAC,yBAAgB;AAC7B,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,0BAAiB;AAc5D,MAAM,UAAU,kBAAkB,CAC9B,KAAyB,EACzB,EAA+C;QAA/C,EAAC,OAAO,EAAE,MAAM,OAA+B,EAA1B,KAAK,cAA1B,qBAA2B,CAAD;IAE1B,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChD,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY;QACnC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAChD,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpD,KAAK,CAAC,cAAc,CAAC,YAAY,CACpC,CAAC;IAEF,IAAI,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;YAClE,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YACpD,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACrF,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpD,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACjF,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpD,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,EAAC,gBAAgB,EAAC,GAAG,cAAc,CAAC;QACtC,aAAa,EAAE,OAAO;QACtB,YAAY,EAAE,MAAM;QACpB,mBAAmB,CAAC,aAAa;YAC7B,SAAS,CAAC,aAAa,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,EAAC,UAAU,EAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAc,IAAI,CAAC,CAAC;IAEjD,SAAS,UAAU;QACf,UAAU,CAAC,GAAG,EAAE;;YACZ,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;IACvE,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzD,OAAO;QACH,UAAU,gCACN,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAE,OAAO,IACV,gBAAgB,KACnB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,eAAe,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS,EAC5C,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;oBAC1E,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC,GACJ;QACD,UAAU,EAAE,UAAU,CAClB,UAAU,EACV,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW;YAC1D,CAAC,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC;YACb,CAAC,CAAC,SAAS,EACf;YACI,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAC;SAClE,CACJ;QACD,mBAAmB,EAAE;YACjB,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE;gBACR,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC;gBAC9B,eAAe,EAAE,QAAQ;gBACzB,eAAe,EAAE,KAAK,CAAC,MAAM;aAChC;YACD,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,GAAG,EAAE;gBACV,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YACvD,CAAC;SACJ;QACD,UAAU,EAAE;YACR,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,eAAe,EAAE,GAAG,EAAE;gBAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBACtC,UAAU,EAAE,CAAC;YACjB,CAAC;YACD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;;gBAClB,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBACzC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,CAAC,MAAM,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,CAAA,EAAE,CAAC;oBAC3D,UAAU,EAAE,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,kBAAkB,EAAE,GAAG,EAAE;gBACrB,cAAc,CACV,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;oBACzC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY;oBACnC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAChD,CAAC;YACN,CAAC;YACD,SAAS,EAAE,CAAC,KAAK,CAAC,gBAAgB;YAClC,aAAa,EAAE,KAAK,CAAC,aAAa;SACrC;QACD,aAAa,EAAE;YACX,GAAG,EAAE,WAAW;YAChB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;YAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACZ,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC5B,UAAU,EAAE,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE,aAAa;SACvB;QACD,cAAc,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;YACrE,QAAQ,EAAE,KAAK,CAAC,YAAY;YAC5B,MAAM,EAAE,KAAK,CAAC,UAAU;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;SACnB;KACJ,CAAC;AACN,CAAC","sourcesContent":["import React from 'react';\n\nimport {isDateTime} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useFocusWithin, useForkRef} from '@gravity-ui/uikit';\nimport type {ButtonProps, PopupProps, TextInputProps} from '@gravity-ui/uikit';\n\nimport type {CalendarInstance, CalendarProps} from '../../Calendar';\nimport {useDateFieldProps} from '../../DateField';\nimport type {DateFieldProps} from '../../DateField';\nimport type {RangeValue} from '../../types';\nimport {getButtonSizeForInput} from '../../utils/getButtonSizeForInput';\nimport {mergeProps} from '../../utils/mergeProps';\nimport type {DatePickerProps} from '../DatePicker';\nimport {i18n} from '../i18n';\nimport {getCalendarModes, getDateTimeValue} from '../utils';\n\nimport type {DatePickerState} from './useDatePickerState';\n\ninterface InnerDatePickerProps<T = DateTime> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupProps: React.HTMLAttributes<unknown> & {ref: React.Ref<any>};\n fieldProps: TextInputProps;\n calendarButtonProps: ButtonProps & {ref: React.Ref<HTMLButtonElement>};\n popupProps: PopupProps;\n calendarProps: CalendarProps<T> & {ref: React.Ref<CalendarInstance>};\n timeInputProps: DateFieldProps<T>;\n}\n\nexport function useDatePickerProps<T extends DateTime | RangeValue<DateTime>>(\n state: DatePickerState<T>,\n {onFocus, onBlur, ...props}: DatePickerProps<T>,\n): InnerDatePickerProps<T> {\n const [isActive, setActive] = React.useState(false);\n\n const [focusedDate, setFocusedDate] = React.useState(\n isDateTime(state.dateFieldState.displayValue)\n ? state.dateFieldState.displayValue\n : state.dateFieldState.displayValue.start,\n );\n const [prevDateValue, setPrevDateValue] = React.useState<any>(\n state.dateFieldState.displayValue,\n );\n\n if (isDateTime(state.dateFieldState.displayValue)) {\n if (!state.dateFieldState.displayValue.isSame(prevDateValue, 'day')) {\n setPrevDateValue(state.dateFieldState.displayValue);\n setFocusedDate(state.dateFieldState.displayValue);\n }\n } else if (!state.dateFieldState.displayValue.start.isSame(prevDateValue.start, 'day')) {\n setPrevDateValue(state.dateFieldState.displayValue);\n setFocusedDate(state.dateFieldState.displayValue.start);\n } else if (!state.dateFieldState.displayValue.end.isSame(prevDateValue.end, 'day')) {\n setPrevDateValue(state.dateFieldState.displayValue);\n setFocusedDate(state.dateFieldState.displayValue.end);\n }\n\n const {focusWithinProps} = useFocusWithin({\n onFocusWithin: onFocus,\n onBlurWithin: onBlur,\n onFocusWithinChange(isFocusWithin) {\n setActive(isFocusWithin);\n if (!isFocusWithin) {\n state.setOpen(false, 'FocusOut');\n }\n },\n });\n\n const {inputProps} = useDateFieldProps(state.dateFieldState, props);\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleRef = useForkRef(inputRef, inputProps.controlRef);\n\n const calendarRef = React.useRef<CalendarInstance>(null);\n const calendarButtonRef = React.useRef<HTMLButtonElement>(null);\n const groupRef = React.useRef<HTMLElement>(null);\n\n function focusInput() {\n setTimeout(() => {\n inputRef.current?.focus({preventScroll: true});\n });\n }\n\n const onlyTime = state.formatInfo.hasTime && !state.formatInfo.hasDate;\n const calendarModes = getCalendarModes(state.formatInfo);\n\n return {\n groupProps: {\n ref: groupRef,\n tabIndex: -1,\n role: 'group',\n ...focusWithinProps,\n style: props.style,\n 'aria-disabled': state.disabled || undefined,\n onKeyDown: (e) => {\n if (!onlyTime && e.altKey && (e.key === 'ArrowDown' || e.key === 'ArrowUp')) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true, 'ShortcutKeyDown');\n }\n },\n },\n fieldProps: mergeProps(\n inputProps,\n state.dateFieldState.isEmpty && !isActive && props.placeholder\n ? {value: ''}\n : undefined,\n {\n controlRef: handleRef,\n controlProps: {role: 'combobox', 'aria-expanded': state.isOpen},\n },\n ),\n calendarButtonProps: {\n ref: calendarButtonRef,\n size: getButtonSizeForInput(props.size),\n disabled: state.disabled,\n extraProps: {\n 'aria-label': i18n('Calendar'),\n 'aria-haspopup': 'dialog',\n 'aria-expanded': state.isOpen,\n },\n view: 'flat-secondary',\n onClick: () => {\n setActive(true);\n state.setOpen(!state.isOpen, 'TriggerButtonClick');\n },\n },\n popupProps: {\n open: state.isOpen,\n onEscapeKeyDown: () => {\n state.setOpen(false, 'EscapeKeyDown');\n focusInput();\n },\n onOutsideClick: (e) => {\n if (e.target !== calendarButtonRef.current) {\n state.setOpen(false, 'ClickOutside');\n }\n if (e.target && groupRef.current?.contains(e.target as Node)) {\n focusInput();\n }\n },\n onTransitionExited: () => {\n setFocusedDate(\n isDateTime(state.dateFieldState.displayValue)\n ? state.dateFieldState.displayValue\n : state.dateFieldState.displayValue.start,\n );\n },\n focusTrap: !props.disableFocusTrap,\n disablePortal: props.disablePortal,\n },\n calendarProps: {\n ref: calendarRef,\n autoFocus: true,\n size: props.size === 's' ? 'm' : props.size,\n disabled: props.disabled,\n readOnly: props.readOnly,\n onUpdate: (d) => {\n state.setDateValue(d);\n if (!state.formatInfo.hasTime) {\n focusInput();\n }\n },\n value: state.dateFieldState.displayValue,\n minValue: props.minValue,\n maxValue: props.maxValue,\n isDateUnavailable: props.isDateUnavailable,\n timeZone: state.timeZone,\n focusedValue: focusedDate,\n onFocusUpdate: setFocusedDate,\n modes: calendarModes,\n },\n timeInputProps: {\n value: state.timeValue,\n placeholderValue: getDateTimeValue(state.dateFieldState.displayValue),\n onUpdate: state.setTimeValue,\n format: state.timeFormat,\n readOnly: state.readOnly,\n disabled: state.disabled,\n timeZone: state.timeZone,\n hasClear: props.hasClear,\n size: props.size,\n },\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { DateTime } from '@gravity-ui/date-utils';
2
- import type { DateFieldBase } from '../../types';
3
- export type { DatePickerState } from './datePickerStateFactory';
2
+ import type { DateFieldBase } from "../../types/index.js";
3
+ export type { DatePickerState } from "./datePickerStateFactory.js";
4
4
  export interface DatePickerStateOptions extends DateFieldBase {
5
5
  }
6
- export declare const useDatePickerState: (props: import("../../DateField").DateFieldStateOptions) => import("./datePickerStateFactory").DatePickerState<DateTime>;
6
+ export declare const useDatePickerState: (props: import("../../index.js").DateFieldStateOptions) => import("./datePickerStateFactory.js").DatePickerState<DateTime>;
@@ -1,14 +1,17 @@
1
- import { useDateFieldState } from '../../DateField';
2
- import { createPlaceholderValue, mergeDateTime } from '../../utils/dates';
3
- import { getDateTimeValue } from '../utils';
4
- import { datePickerStateFactory } from './datePickerStateFactory';
1
+ import { useDateFieldState } from "../../DateField/index.js";
2
+ import { adjustDateToFormat } from "../../DateField/utils.js";
3
+ import { createPlaceholderValue, mergeDateTime } from "../../utils/dates.js";
4
+ import { getDateTimeValue } from "../utils/index.js";
5
+ import { datePickerStateFactory } from "./datePickerStateFactory.js";
5
6
  export const useDatePickerState = datePickerStateFactory({
6
7
  getPlaceholderTime,
7
8
  mergeDateTime,
8
9
  setTimezone: (date, timeZone) => date.timeZone(timeZone),
9
10
  getDateTime: getDateTimeValue,
10
11
  useDateFieldState,
12
+ adjustDateToFormat,
11
13
  });
12
14
  function getPlaceholderTime(placeholderValue, timeZone) {
13
15
  return createPlaceholderValue({ placeholderValue, timeZone });
14
16
  }
17
+ //# sourceMappingURL=useDatePickerState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/hooks/useDatePickerState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,iCAAwB;AAClD,OAAO,EAAC,kBAAkB,EAAC,iCAA8B;AAEzD,OAAO,EAAC,sBAAsB,EAAE,aAAa,EAAC,6BAA0B;AACxE,OAAO,EAAC,gBAAgB,EAAC,0BAAiB;AAE1C,OAAO,EAAC,sBAAsB,EAAC,oCAAiC;AAMhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;IACrD,kBAAkB;IAClB,aAAa;IACb,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACxD,WAAW,EAAE,gBAAgB;IAC7B,iBAAiB;IACjB,kBAAkB;CACrB,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,gBAAsC,EAAE,QAAiB;IACjF,OAAO,sBAAsB,CAAC,EAAC,gBAAgB,EAAE,QAAQ,EAAC,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport {useDateFieldState} from '../../DateField';\nimport {adjustDateToFormat} from '../../DateField/utils';\nimport type {DateFieldBase} from '../../types';\nimport {createPlaceholderValue, mergeDateTime} from '../../utils/dates';\nimport {getDateTimeValue} from '../utils';\n\nimport {datePickerStateFactory} from './datePickerStateFactory';\n\nexport type {DatePickerState} from './datePickerStateFactory';\n\nexport interface DatePickerStateOptions extends DateFieldBase {}\n\nexport const useDatePickerState = datePickerStateFactory({\n getPlaceholderTime,\n mergeDateTime,\n setTimezone: (date, timeZone) => date.timeZone(timeZone),\n getDateTime: getDateTimeValue,\n useDateFieldState,\n adjustDateToFormat,\n});\n\nfunction getPlaceholderTime(placeholderValue: DateTime | undefined, timeZone?: string) {\n return createPlaceholderValue({placeholderValue, timeZone});\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
2
- import { NAMESPACE } from '../../../utils/cn';
3
- import en from './en.json';
4
- import ru from './ru.json';
2
+ import { NAMESPACE } from "../../../utils/cn.js";
3
+ import en from "./en.json";
4
+ import ru from "./ru.json";
5
5
  export const i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}date-picker`);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAC,SAAS,EAAC,6BAA0B;AAE5C,OAAO,EAAE,kBAAkB;AAC3B,OAAO,EAAE,kBAAkB;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,GAAG,SAAS,aAAa,CAAC,CAAC","sourcesContent":["import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport const i18n = addComponentKeysets({en, ru}, `${NAMESPACE}date-picker`);\n"]}
@@ -1,3 +1,3 @@
1
- export * from './DatePicker';
2
- export * from './hooks/useDatePickerState';
3
- export * from './hooks/useDatePickerProps';
1
+ export * from "./DatePicker.js";
2
+ export * from "./hooks/useDatePickerState.js";
3
+ export * from "./hooks/useDatePickerProps.js";
@@ -1,3 +1,4 @@
1
- export * from './DatePicker';
2
- export * from './hooks/useDatePickerState';
3
- export * from './hooks/useDatePickerProps';
1
+ export * from "./DatePicker.js";
2
+ export * from "./hooks/useDatePickerState.js";
3
+ export * from "./hooks/useDatePickerProps.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/DatePicker/index.ts"],"names":[],"mappings":"AAAA,gCAA6B;AAE7B,8CAA2C;AAC3C,8CAA2C","sourcesContent":["export * from './DatePicker';\n\nexport * from './hooks/useDatePickerState';\nexport * from './hooks/useDatePickerProps';\n"]}
@@ -1,2 +1,3 @@
1
- import { block } from '../../../utils/cn';
1
+ import { block } from "../../../utils/cn.js";
2
2
  export const b = block('date-picker');
3
+ //# sourceMappingURL=cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,6BAA0B;AAExC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import {block} from '../../../utils/cn';\n\nexport const b = block('date-picker');\n"]}
@@ -0,0 +1,5 @@
1
+ import type { CalendarLayout } from "../../CalendarView/hooks/types.js";
2
+ import type { FormatInfo } from "../../DateField/types.js";
3
+ type LayoutModes = Partial<Record<CalendarLayout, boolean>>;
4
+ export declare function getCalendarModes(formatInfo: FormatInfo): LayoutModes | undefined;
5
+ export {};
@@ -0,0 +1,18 @@
1
+ export function getCalendarModes(formatInfo) {
2
+ if (!formatInfo.hasDate) {
3
+ return undefined;
4
+ }
5
+ const modes = { years: true };
6
+ if (formatInfo.availableUnits.day) {
7
+ modes.days = true;
8
+ modes.months = true;
9
+ }
10
+ if (formatInfo.availableUnits.month) {
11
+ modes.months = true;
12
+ }
13
+ if (formatInfo.availableUnits.quarter && !modes.months) {
14
+ modes.quarters = true;
15
+ }
16
+ return modes;
17
+ }
18
+ //# sourceMappingURL=getCalendarModes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCalendarModes.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/utils/getCalendarModes.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,gBAAgB,CAAC,UAAsB;IACnD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAgB,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;IACzC,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import type {CalendarLayout} from '../../CalendarView/hooks/types';\nimport type {FormatInfo} from '../../DateField/types';\n\ntype LayoutModes = Partial<Record<CalendarLayout, boolean>>;\n\nexport function getCalendarModes(formatInfo: FormatInfo): LayoutModes | undefined {\n if (!formatInfo.hasDate) {\n return undefined;\n }\n\n const modes: LayoutModes = {years: true};\n if (formatInfo.availableUnits.day) {\n modes.days = true;\n modes.months = true;\n }\n\n if (formatInfo.availableUnits.month) {\n modes.months = true;\n }\n\n if (formatInfo.availableUnits.quarter && !modes.months) {\n modes.quarters = true;\n }\n\n return modes;\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import type { DateTime } from '@gravity-ui/date-utils';
2
- import type { RangeValue } from '../../types';
2
+ import type { RangeValue } from "../../types/index.js";
3
3
  export declare function getDateTimeValue(value: DateTime | RangeValue<DateTime> | null | undefined): DateTime | undefined;
@@ -4,3 +4,4 @@ export function getDateTimeValue(value) {
4
4
  }
5
5
  return 'start' in value && 'end' in value ? value.start : value;
6
6
  }
7
+ //# sourceMappingURL=getDateTimeValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDateTimeValue.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/utils/getDateTimeValue.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,gBAAgB,CAC5B,KAAyD;IAEzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {RangeValue} from '../../types';\n\nexport function getDateTimeValue(\n value: DateTime | RangeValue<DateTime> | null | undefined,\n): DateTime | undefined {\n if (!value) {\n return undefined;\n }\n\n return 'start' in value && 'end' in value ? value.start : value;\n}\n"]}
@@ -1,2 +1,3 @@
1
- export * from './cn';
2
- export * from './getDateTimeValue';
1
+ export * from "./cn.js";
2
+ export * from "./getDateTimeValue.js";
3
+ export * from "./getCalendarModes.js";
@@ -1,2 +1,4 @@
1
- export * from './cn';
2
- export * from './getDateTimeValue';
1
+ export * from "./cn.js";
2
+ export * from "./getDateTimeValue.js";
3
+ export * from "./getCalendarModes.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["components/DatePicker/utils/index.ts"],"names":[],"mappings":"AAAA,wBAAqB;AACrB,sCAAmC;AACnC,sCAAmC","sourcesContent":["export * from './cn';\nexport * from './getDateTimeValue';\nexport * from './getCalendarModes';\n"]}
@@ -29,3 +29,4 @@ export function useFormResetHandler({ initialValue, onReset, }) {
29
29
  }, []);
30
30
  return ref;
31
31
  }
32
+ //# sourceMappingURL=HiddenInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenInput.js","sourceRoot":"../../../../src","sources":["components/HiddenInput/HiddenInput.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,UAAU,WAAW,CAAI,EAC3B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,GACK;IAClB,MAAM,GAAG,GAAG,mBAAmB,CAAI,EAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC;IAEnE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,CAAC;IAClE,OAAO,gBAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,EACnC,YAAY,EACZ,OAAO,GAIV;IACG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAyB,IAAI,CAAC,CAAC;IAEnF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE;YACR,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CACzB,CAAC,IAAuE,EAAE,EAAE;;QACxE,cAAc,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;IACvC,CAAC,EACD,EAAE,CACL,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC","sourcesContent":["import React from 'react';\n\ninterface HiddenInputProps<T> {\n value: T;\n onReset?: (value: T) => void;\n toStringValue?: (value: T) => string;\n name?: string;\n disabled?: boolean;\n form?: string;\n}\nexport function HiddenInput<T>({\n name,\n value,\n onReset,\n form,\n disabled,\n toStringValue,\n}: HiddenInputProps<T>) {\n const ref = useFormResetHandler<T>({initialValue: value, onReset});\n\n if (!name) {\n return null;\n }\n\n const v = toStringValue ? toStringValue(value) : `${value ?? ''}`;\n return <input ref={ref} type=\"hidden\" name={name} value={v} disabled={disabled} form={form} />;\n}\n\nexport function useFormResetHandler<T>({\n initialValue,\n onReset,\n}: {\n initialValue: T;\n onReset?: (value: T) => void;\n}) {\n const [formElement, setFormElement] = React.useState<HTMLFormElement | null>(null);\n\n const resetValue = React.useRef(initialValue);\n\n React.useEffect(() => {\n if (!formElement || !onReset) {\n return undefined;\n }\n\n const handleReset = () => {\n onReset(resetValue.current);\n };\n\n formElement.addEventListener('reset', handleReset);\n return () => {\n formElement.removeEventListener('reset', handleReset);\n };\n }, [formElement, onReset]);\n\n const ref = React.useCallback(\n (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => {\n setFormElement(node?.form ?? null);\n },\n [],\n );\n\n return ref;\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { DateTime } from '@gravity-ui/date-utils';
3
- import type { CalendarProps } from '../Calendar/Calendar';
4
- import type { CalendarInstance } from '../CalendarView/CalendarView';
5
- import type { RangeValue } from '../types';
6
- import '../CalendarView/Calendar.css';
3
+ import type { CalendarProps } from "../Calendar/Calendar.js";
4
+ import type { CalendarInstance } from "../CalendarView/CalendarView.js";
5
+ import type { RangeValue } from "../types/index.js";
6
+ import "../CalendarView/Calendar.css";
7
7
  export type RangeCalendarProps = CalendarProps<RangeValue<DateTime>>;
8
8
  export declare const RangeCalendar: React.ForwardRefExoticComponent<RangeCalendarProps & React.RefAttributes<CalendarInstance>>;
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React from 'react';
4
- import { CalendarView } from '../CalendarView/CalendarView';
5
- import { useRangeCalendarState } from '../CalendarView/hooks/useRangeCalendarState';
6
- import '../CalendarView/Calendar.css';
4
+ import { CalendarView } from "../CalendarView/CalendarView.js";
5
+ import { useRangeCalendarState } from "../CalendarView/hooks/useRangeCalendarState.js";
6
+ import "../CalendarView/Calendar.css";
7
7
  export const RangeCalendar = React.forwardRef(function Calendar(props, ref) {
8
8
  const state = useRangeCalendarState(props);
9
9
  const handleBlur = (e) => {
@@ -15,3 +15,4 @@ export const RangeCalendar = React.forwardRef(function Calendar(props, ref) {
15
15
  };
16
16
  return _jsx(CalendarView, Object.assign({ ref: ref }, props, { state: state, onBlur: handleBlur }));
17
17
  });
18
+ //# sourceMappingURL=RangeCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangeCalendar.js","sourceRoot":"../../../../src","sources":["components/RangeCalendar/RangeCalendar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAC,YAAY,EAAC,wCAAqC;AAE1D,OAAO,EAAC,qBAAqB,EAAC,uDAAoD;AAGlF,sCAAuC;AAIvC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CACzC,SAAS,QAAQ,CAAC,KAAyB,EAAE,GAAG;IAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,CAAC,CAAmB,EAAE,EAAE;;QACvC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC9B,CAAC;QACD,MAAA,KAAK,CAAC,MAAM,sDAAG,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,OAAO,KAAC,YAAY,kBAAC,GAAG,EAAE,GAAG,IAAM,KAAK,IAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC;AACnF,CAAC,CACJ,CAAC","sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {CalendarProps} from '../Calendar/Calendar';\nimport {CalendarView} from '../CalendarView/CalendarView';\nimport type {CalendarInstance} from '../CalendarView/CalendarView';\nimport {useRangeCalendarState} from '../CalendarView/hooks/useRangeCalendarState';\nimport type {RangeValue} from '../types';\n\nimport '../CalendarView/Calendar.scss';\n\nexport type RangeCalendarProps = CalendarProps<RangeValue<DateTime>>;\n\nexport const RangeCalendar = React.forwardRef<CalendarInstance, RangeCalendarProps>(\n function Calendar(props: RangeCalendarProps, ref) {\n const state = useRangeCalendarState(props);\n\n const handleBlur = (e: React.FocusEvent) => {\n if (state.anchorDate) {\n state.selectFocusedDate();\n }\n props.onBlur?.(e);\n };\n return <CalendarView ref={ref} {...props} state={state} onBlur={handleBlur} />;\n },\n);\n"]}
@@ -1 +1 @@
1
- export * from './RangeCalendar';
1
+ export * from "./RangeCalendar.js";
@@ -1 +1,2 @@
1
- export * from './RangeCalendar';
1
+ export * from "./RangeCalendar.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/RangeCalendar/index.ts"],"names":[],"mappings":"AAAA,mCAAgC","sourcesContent":["export * from './RangeCalendar';\n"]}
@@ -1,4 +1,5 @@
1
1
  .g-date-range-date-field {
2
2
  display: inline-block;
3
3
  width: auto;
4
- }
4
+ }
5
+ /*# sourceMappingURL=RangeDateField.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/RangeDateField/data:;charset=utf-8,@use%20'../variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Drange-date-field';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20display:%20inline-block;%0A%0A%20%20%20%20width:%20auto;%0A%7D%0A"],"names":[],"mappings":"AAIA;EACI;EAEA","sourcesContent":["@use '../variables';\n\n$block: '.#{variables.$ns}range-date-field';\n\n#{$block} {\n display: inline-block;\n\n width: auto;\n}\n"],"file":"RangeDateField.css"}
@@ -1,7 +1,7 @@
1
1
  import type { DateTime } from '@gravity-ui/date-utils';
2
- import type { DateFieldProps } from '../DateField/hooks/useDateFieldProps';
3
- import type { RangeValue } from '../types';
4
- import './RangeDateField.css';
2
+ import type { DateFieldProps } from "../DateField/hooks/useDateFieldProps.js";
3
+ import type { RangeValue } from "../types/index.js";
4
+ import "./RangeDateField.css";
5
5
  export type RangeDateFieldProps = DateFieldProps<RangeValue<DateTime>> & {
6
6
  /**
7
7
  * Delimiter separating the start and end parts of the range.
@@ -3,11 +3,11 @@ import { __rest } from "tslib";
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import React from 'react';
5
5
  import { TextInput, useFocusWithin } from '@gravity-ui/uikit';
6
- import { block } from '../../utils/cn';
7
- import { useDateFieldProps } from '../DateField/hooks/useDateFieldProps';
8
- import { HiddenInput } from '../HiddenInput/HiddenInput';
9
- import { useRangeDateFieldState } from './hooks/useRangeDateFieldState';
10
- import './RangeDateField.css';
6
+ import { block } from "../../utils/cn.js";
7
+ import { useDateFieldProps } from "../DateField/hooks/useDateFieldProps.js";
8
+ import { HiddenInput } from "../HiddenInput/HiddenInput.js";
9
+ import { useRangeDateFieldState } from "./hooks/useRangeDateFieldState.js";
10
+ import "./RangeDateField.css";
11
11
  const b = block('range-date-field');
12
12
  export function RangeDateField(_a) {
13
13
  var _b, _c;
@@ -24,3 +24,4 @@ export function RangeDateField(_a) {
24
24
  state.setDate(v);
25
25
  }, value: (_b = state.value) !== null && _b !== void 0 ? _b : null, toStringValue: (v) => (v ? v.start.toISOString() : ''), disabled: state.disabled }), _jsx(HiddenInput, { name: props.name, form: props.form, value: (_c = state.value) !== null && _c !== void 0 ? _c : null, toStringValue: (v) => (v ? v.end.toISOString() : ''), disabled: state.disabled })] })));
26
26
  }
27
+ //# sourceMappingURL=RangeDateField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangeDateField.js","sourceRoot":"../../../../src","sources":["components/RangeDateField/RangeDateField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,KAAK,EAAC,0BAAuB;AACrC,OAAO,EAAC,iBAAiB,EAAC,gDAA6C;AAEvE,OAAO,EAAC,WAAW,EAAC,sCAAmC;AAGvD,OAAO,EAAC,sBAAsB,EAAC,0CAAuC;AAEtE,8BAA+B;AAE/B,MAAM,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAUpC,MAAM,UAAU,cAAc,CAAC,EAA0C;;QAA1C,EAAC,SAAS,OAAgC,EAA3B,KAAK,cAApB,aAAqB,CAAD;IAC/C,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,EAAC,UAAU,EAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,EAAC,gBAAgB,EAAC,GAAG,cAAc,CAAC;QACtC,mBAAmB,CAAC,aAAa;YAC7B,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAM,gBAAgB,eACxE,KAAC,SAAS,oBACF,UAAU,IACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAChF,EACF,KAAC,WAAW,IACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACX,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC,EACD,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,IAAI,EAC1B,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAC1B,EACF,KAAC,WAAW,IACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,IAAI,EAC1B,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAC1B,KACA,CACT,CAAC;AACN,CAAC","sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {TextInput, useFocusWithin} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {useDateFieldProps} from '../DateField/hooks/useDateFieldProps';\nimport type {DateFieldProps} from '../DateField/hooks/useDateFieldProps';\nimport {HiddenInput} from '../HiddenInput/HiddenInput';\nimport type {RangeValue} from '../types';\n\nimport {useRangeDateFieldState} from './hooks/useRangeDateFieldState';\n\nimport './RangeDateField.scss';\n\nconst b = block('range-date-field');\n\nexport type RangeDateFieldProps = DateFieldProps<RangeValue<DateTime>> & {\n /**\n * Delimiter separating the start and end parts of the range.\n * @default ' — '\n * */\n delimiter?: string;\n};\n\nexport function RangeDateField({className, ...props}: RangeDateFieldProps) {\n const state = useRangeDateFieldState(props);\n\n const {inputProps} = useDateFieldProps(state, props);\n\n const [isActive, setActive] = React.useState(false);\n const {focusWithinProps} = useFocusWithin({\n onFocusWithinChange(isFocusWithin) {\n setActive(isFocusWithin);\n },\n });\n\n return (\n <div className={b(null, className)} style={props.style} {...focusWithinProps}>\n <TextInput\n {...inputProps}\n value={state.isEmpty && !isActive && props.placeholder ? '' : inputProps.value}\n />\n <HiddenInput\n name={props.name}\n form={props.form}\n onReset={(v) => {\n state.setDate(v);\n }}\n value={state.value ?? null}\n toStringValue={(v) => (v ? v.start.toISOString() : '')}\n disabled={state.disabled}\n />\n <HiddenInput\n name={props.name}\n form={props.form}\n value={state.value ?? null}\n toStringValue={(v) => (v ? v.end.toISOString() : '')}\n disabled={state.disabled}\n />\n </div>\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { DateTime } from '@gravity-ui/date-utils';
2
- import type { DateFieldState } from '../../DateField';
3
- import type { DateFieldBase } from '../../types/datePicker';
4
- import type { RangeValue } from '../../types/inputs';
2
+ import type { DateFieldState } from "../../DateField/index.js";
3
+ import type { DateFieldBase } from "../../types/datePicker.js";
4
+ import type { RangeValue } from "../../types/inputs.js";
5
5
  export interface RangeDateFieldStateOptions extends DateFieldBase<RangeValue<DateTime>> {
6
6
  delimiter?: string;
7
7
  }
@@ -1,12 +1,11 @@
1
1
  /* eslint-disable complexity */
2
2
  import React from 'react';
3
- import { isValid } from '@gravity-ui/date-utils';
4
3
  import { useControlledState } from '@gravity-ui/uikit';
5
- import { useBaseDateFieldState } from '../../DateField';
6
- import { EDITABLE_SEGMENTS, addSegment, isAllSegmentsValid, parseDateFromString, setSegment, useFormatSections, } from '../../DateField/utils';
7
- import { isInvalid } from '../../utils/dates';
8
- import { useDefaultTimeZone } from '../../utils/useDefaultTimeZone';
9
- import { createPlaceholderRangeValue, getRangeEditableSections, isValidRange } from '../utils';
4
+ import { useBaseDateFieldState } from "../../DateField/index.js";
5
+ import { EDITABLE_SEGMENTS, addSegment, adjustDateToFormat, getFormatInfo, isAllSegmentsValid, markValidSection, parseDateFromString, setSegment, useFormatSections, } from "../../DateField/utils.js";
6
+ import { isInvalid } from "../../utils/dates.js";
7
+ import { useDefaultTimeZone } from "../../utils/useDefaultTimeZone.js";
8
+ import { createPlaceholderRangeValue, getRangeEditableSections, isValidRange } from "../utils/index.js";
10
9
  const RANGE_FORMAT_DELIMITER = ' — ';
11
10
  export function useRangeDateFieldState(props) {
12
11
  var _a, _b, _c, _d, _e;
@@ -25,11 +24,8 @@ export function useRangeDateFieldState(props) {
25
24
  const format = props.format || 'L';
26
25
  const delimiter = (_c = props.delimiter) !== null && _c !== void 0 ? _c : RANGE_FORMAT_DELIMITER;
27
26
  const sections = useFormatSections(format);
28
- const allSegments = React.useMemo(() => {
29
- return sections
30
- .filter((seg) => EDITABLE_SEGMENTS[seg.type])
31
- .reduce((p, seg) => (Object.assign(Object.assign({}, p), { [seg.type]: true })), {});
32
- }, [sections]);
27
+ const formatInfo = React.useMemo(() => getFormatInfo(sections), [sections]);
28
+ const allSegments = formatInfo.availableUnits;
33
29
  // eslint-disable-next-line prefer-const
34
30
  let [validSegments, setValidSegments] = React.useState(() => (value ? { start: Object.assign({}, allSegments), end: Object.assign({}, allSegments) } : { start: {}, end: {} }));
35
31
  if (value &&
@@ -51,8 +47,8 @@ export function useRangeDateFieldState(props) {
51
47
  }));
52
48
  }
53
49
  const displayValue = value &&
54
- isValid(value.start) &&
55
- isValid(value.end) &&
50
+ value.start.isValid() &&
51
+ value.end.isValid() &&
56
52
  Object.keys(validSegments.start).length >= Object.keys(allSegments).length &&
57
53
  Object.keys(validSegments.end).length >= Object.keys(allSegments).length
58
54
  ? { start: value.start.timeZone(timeZone), end: value.end.timeZone(timeZone) }
@@ -88,7 +84,10 @@ export function useRangeDateFieldState(props) {
88
84
  if (isAllSegmentsValid(allSegments, validSegments.start) &&
89
85
  isAllSegmentsValid(allSegments, validSegments.end)) {
90
86
  if (!value || !(newValue.start.isSame(value.start) && newValue.end.isSame(value.end))) {
91
- handleUpdateRange(newValue);
87
+ handleUpdateRange({
88
+ start: adjustDateToFormat(newValue.start, formatInfo, 'startOf'),
89
+ end: adjustDateToFormat(newValue.end, formatInfo, 'endOf'),
90
+ });
92
91
  }
93
92
  }
94
93
  else {
@@ -99,16 +98,7 @@ export function useRangeDateFieldState(props) {
99
98
  }
100
99
  }
101
100
  function markValid(portion, part) {
102
- validSegments[portion][part] = true;
103
- if (validSegments[portion].day &&
104
- validSegments[portion].month &&
105
- validSegments[portion].year &&
106
- allSegments.weekday) {
107
- validSegments[portion].weekday = true;
108
- }
109
- if (validSegments[portion].hour && allSegments.dayPeriod) {
110
- validSegments[portion].dayPeriod = true;
111
- }
101
+ validSegments[portion] = markValidSection(allSegments, validSegments[portion], part);
112
102
  setValidSegments(Object.assign(Object.assign({}, validSegments), { [portion]: Object.assign({}, validSegments[portion]) }));
113
103
  }
114
104
  function setSection(sectionIndex, amount) {
@@ -159,7 +149,7 @@ export function useRangeDateFieldState(props) {
159
149
  const start = parseDateFromString((_a = list === null || list === void 0 ? void 0 : list[0]) === null || _a === void 0 ? void 0 : _a.trim(), format, timeZone);
160
150
  const end = parseDateFromString((_b = list === null || list === void 0 ? void 0 : list[1]) === null || _b === void 0 ? void 0 : _b.trim(), format, timeZone);
161
151
  const range = { start, end };
162
- if (isValid(range.start) && isValid(range.end)) {
152
+ if (range.start.isValid() && range.end.isValid()) {
163
153
  handleUpdateRange(range);
164
154
  return true;
165
155
  }
@@ -178,6 +168,7 @@ export function useRangeDateFieldState(props) {
178
168
  timeZone,
179
169
  validationState,
180
170
  editableSections: sectionsState.editableSections,
171
+ formatInfo,
181
172
  readOnly: props.readOnly,
182
173
  disabled: props.disabled,
183
174
  selectedSectionIndexes,
@@ -221,3 +212,4 @@ function useSectionsState(sections, value, validSegments, delimiter) {
221
212
  }
222
213
  return state;
223
214
  }
215
+ //# sourceMappingURL=useRangeDateFieldState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRangeDateFieldState.js","sourceRoot":"../../../../../src","sources":["components/RangeDateField/hooks/useRangeDateFieldState.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable complexity */\nimport React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useControlledState} from '@gravity-ui/uikit';\n\nimport {useBaseDateFieldState} from '../../DateField';\nimport type {DateFieldState} from '../../DateField';\nimport type {DateFieldSectionType, DateFieldSectionWithoutPosition} from '../../DateField/types';\nimport {\n EDITABLE_SEGMENTS,\n addSegment,\n adjustDateToFormat,\n getFormatInfo,\n isAllSegmentsValid,\n markValidSection,\n parseDateFromString,\n setSegment,\n useFormatSections,\n} from '../../DateField/utils';\nimport type {DateFieldBase} from '../../types/datePicker';\nimport type {RangeValue} from '../../types/inputs';\nimport {isInvalid} from '../../utils/dates';\nimport {useDefaultTimeZone} from '../../utils/useDefaultTimeZone';\nimport {createPlaceholderRangeValue, getRangeEditableSections, isValidRange} from '../utils';\n\nexport interface RangeDateFieldStateOptions extends DateFieldBase<RangeValue<DateTime>> {\n delimiter?: string;\n}\n\nconst RANGE_FORMAT_DELIMITER = ' — ';\n\nexport type RangeDateFieldState = DateFieldState<RangeValue<DateTime>>;\n\nexport function useRangeDateFieldState(props: RangeDateFieldStateOptions): RangeDateFieldState {\n const [value, setRange] = useControlledState(\n props.value,\n props.defaultValue || null,\n props.onUpdate,\n );\n\n const inputTimeZone = useDefaultTimeZone(\n props.value?.start || props.defaultValue?.start || props.placeholderValue,\n );\n const timeZone = props.timeZone || inputTimeZone;\n\n const handleUpdateRange = (v: RangeValue<DateTime> | null) => {\n setRange(\n v ? {start: v.start.timeZone(inputTimeZone), end: v.end.timeZone(inputTimeZone)} : v,\n );\n };\n\n const [placeholderDate, setPlaceholderDate] = React.useState<RangeValue<DateTime>>(() => {\n return createPlaceholderRangeValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n });\n });\n\n const format = props.format || 'L';\n const delimiter = props.delimiter ?? RANGE_FORMAT_DELIMITER;\n const sections = useFormatSections(format);\n const formatInfo = React.useMemo(() => getFormatInfo(sections), [sections]);\n\n const allSegments = formatInfo.availableUnits;\n\n // eslint-disable-next-line prefer-const\n let [validSegments, setValidSegments] = React.useState<RangeValue<typeof EDITABLE_SEGMENTS>>(\n () => (value ? {start: {...allSegments}, end: {...allSegments}} : {start: {}, end: {}}),\n );\n\n if (\n value &&\n (!isAllSegmentsValid(allSegments, validSegments.start) ||\n !isAllSegmentsValid(allSegments, validSegments.end))\n ) {\n setValidSegments({start: {...allSegments}, end: {...allSegments}});\n }\n\n if (\n !value &&\n Object.keys(allSegments).length > 0 &&\n isAllSegmentsValid(allSegments, validSegments.start) &&\n Object.keys(validSegments.start).length === Object.keys(allSegments).length &&\n isAllSegmentsValid(allSegments, validSegments.end) &&\n Object.keys(validSegments.end).length === Object.keys(allSegments).length\n ) {\n validSegments = {start: {}, end: {}};\n setValidSegments(validSegments);\n setPlaceholderDate(\n createPlaceholderRangeValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n }),\n );\n }\n\n const displayValue =\n value &&\n value.start.isValid() &&\n value.end.isValid() &&\n Object.keys(validSegments.start).length >= Object.keys(allSegments).length &&\n Object.keys(validSegments.end).length >= Object.keys(allSegments).length\n ? {start: value.start.timeZone(timeZone), end: value.end.timeZone(timeZone)}\n : {\n start: placeholderDate.start.timeZone(timeZone),\n end: placeholderDate.end.timeZone(timeZone),\n };\n const sectionsState = useSectionsState(sections, displayValue, validSegments, delimiter);\n\n const [selectedSections, setSelectedSections] = React.useState<number | 'all'>(-1);\n\n const selectedSectionIndexes = React.useMemo<{\n startIndex: number;\n endIndex: number;\n } | null>(() => {\n if (selectedSections === -1) {\n return null;\n }\n\n if (selectedSections === 'all') {\n return {\n startIndex: 0,\n endIndex: sectionsState.editableSections.length - 1,\n };\n }\n\n if (typeof selectedSections === 'number') {\n return {startIndex: selectedSections, endIndex: selectedSections};\n }\n\n if (typeof selectedSections === 'string') {\n const selectedSectionIndex = sectionsState.editableSections.findIndex(\n (section) => section.type === selectedSections,\n );\n\n return {startIndex: selectedSectionIndex, endIndex: selectedSectionIndex};\n }\n\n return selectedSections;\n }, [selectedSections, sectionsState.editableSections]);\n\n function setValue(newValue: RangeValue<DateTime>) {\n if (props.disabled || props.readOnly) {\n return;\n }\n\n if (\n isAllSegmentsValid(allSegments, validSegments.start) &&\n isAllSegmentsValid(allSegments, validSegments.end)\n ) {\n if (!value || !(newValue.start.isSame(value.start) && newValue.end.isSame(value.end))) {\n handleUpdateRange({\n start: adjustDateToFormat(newValue.start, formatInfo, 'startOf'),\n end: adjustDateToFormat(newValue.end, formatInfo, 'endOf'),\n });\n }\n } else {\n if (value) {\n handleUpdateRange(null);\n }\n setPlaceholderDate(newValue);\n }\n }\n\n function markValid(portion: 'start' | 'end', part: DateFieldSectionType) {\n validSegments[portion] = markValidSection(allSegments, validSegments[portion], part);\n setValidSegments({...validSegments, [portion]: {...validSegments[portion]}});\n }\n\n function setSection(sectionIndex: number, amount: number) {\n const portion = sectionIndex <= sections.length ? 'start' : 'end';\n const section = sectionsState.editableSections[sectionIndex];\n markValid(portion, section.type);\n setValue({\n ...displayValue,\n [portion]: setSegment(section, displayValue[portion], amount),\n });\n }\n\n function adjustSection(sectionIndex: number, amount: number) {\n const section = sectionsState.editableSections[sectionIndex];\n const portion = sectionIndex <= sections.length ? 'start' : 'end';\n if (validSegments[portion][section.type]) {\n setValue({\n ...displayValue,\n [portion]: addSegment(section, displayValue[portion], amount),\n });\n } else {\n markValid(portion, section.type);\n if (Object.keys(validSegments[portion]).length >= Object.keys(allSegments).length) {\n setValue(displayValue);\n }\n }\n }\n\n function flushValidSection(sectionIndex: number) {\n const portion = sectionIndex <= sections.length ? 'start' : 'end';\n delete validSegments[portion][sectionsState.editableSections[sectionIndex].type];\n setValidSegments({...validSegments, [portion]: {...validSegments[portion]}});\n }\n\n function flushAllValidSections() {\n validSegments = {start: {}, end: {}};\n setValidSegments({start: {}, end: {}});\n }\n\n function getSectionValue(sectionIndex: number) {\n const portion = sectionIndex <= sections.length ? 'start' : 'end';\n return displayValue[portion];\n }\n\n function setSectionValue(sectionIndex: number, currentValue: DateTime) {\n const portion = sectionIndex <= sections.length ? 'start' : 'end';\n setValue({...displayValue, [portion]: currentValue});\n }\n\n function createPlaceholder() {\n return createPlaceholderRangeValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n });\n }\n\n function setValueFromString(str: string) {\n const list = str.split(delimiter);\n const start = parseDateFromString(list?.[0]?.trim(), format, timeZone);\n const end = parseDateFromString(list?.[1]?.trim(), format, timeZone);\n const range = {start, end};\n if (range.start.isValid() && range.end.isValid()) {\n handleUpdateRange(range);\n return true;\n }\n return false;\n }\n\n const validationState =\n props.validationState ||\n (isInvalid(value?.start, props.minValue, props.maxValue) ? 'invalid' : undefined) ||\n (isInvalid(value?.end, props.minValue, props.maxValue) ? 'invalid' : undefined) ||\n (value && !isValidRange(value) ? 'invalid' : undefined) ||\n (value && props.isDateUnavailable?.(value.start) ? 'invalid' : undefined) ||\n (value && props.isDateUnavailable?.(value.end) ? 'invalid' : undefined);\n\n return useBaseDateFieldState({\n value,\n displayValue,\n placeholderValue: props.placeholderValue,\n timeZone,\n validationState,\n editableSections: sectionsState.editableSections,\n formatInfo,\n readOnly: props.readOnly,\n disabled: props.disabled,\n selectedSectionIndexes,\n selectedSections,\n isEmpty:\n Object.keys(validSegments.start).length === 0 &&\n Object.keys(validSegments.end).length === 0,\n flushAllValidSections,\n flushValidSection,\n setSelectedSections,\n setValue,\n setDate: handleUpdateRange,\n adjustSection,\n setSection,\n getSectionValue,\n setSectionValue,\n createPlaceholder,\n setValueFromString,\n });\n}\n\nfunction useSectionsState(\n sections: DateFieldSectionWithoutPosition[],\n value: RangeValue<DateTime>,\n validSegments: RangeValue<typeof EDITABLE_SEGMENTS>,\n delimiter: string,\n) {\n const [state, setState] = React.useState(() => {\n return {\n value,\n sections,\n validSegments,\n delimiter,\n editableSections: getRangeEditableSections(sections, value, validSegments, delimiter),\n };\n });\n\n if (\n sections !== state.sections ||\n validSegments !== state.validSegments ||\n !(value.start.isSame(state.value.start) && value.end.isSame(state.value.end)) ||\n delimiter !== state.delimiter\n ) {\n setState({\n value,\n sections,\n validSegments,\n delimiter,\n editableSections: getRangeEditableSections(sections, value, validSegments, delimiter),\n });\n }\n\n return state;\n}\n"]}
@@ -1,2 +1,2 @@
1
- export * from './RangeDateField';
2
- export * from './hooks/useRangeDateFieldState';
1
+ export * from "./RangeDateField.js";
2
+ export * from "./hooks/useRangeDateFieldState.js";
@@ -1,2 +1,3 @@
1
- export * from './RangeDateField';
2
- export * from './hooks/useRangeDateFieldState';
1
+ export * from "./RangeDateField.js";
2
+ export * from "./hooks/useRangeDateFieldState.js";
3
+ //# sourceMappingURL=index.js.map