@ozen-ui/kit 0.60.0 → 0.62.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 (232) hide show
  1. package/__inner__/cjs/components/Autocomplete/helper.d.ts +7 -72
  2. package/__inner__/cjs/components/Autocomplete/types.d.ts +11 -17
  3. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.css +1 -1
  4. package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +7 -77
  5. package/__inner__/cjs/components/AutocompleteNext/types.d.ts +10 -16
  6. package/__inner__/cjs/components/Calendar/Calendar.js +2 -2
  7. package/__inner__/cjs/components/Calendar/CalendarContext.d.ts +2 -3
  8. package/__inner__/cjs/components/Calendar/components/CalendarGridItem/types.d.ts +2 -2
  9. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.d.ts +2 -2
  10. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +14 -18
  11. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/index.d.ts +0 -1
  12. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/index.js +0 -1
  13. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.d.ts +2 -2
  14. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +10 -18
  15. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/index.d.ts +0 -1
  16. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/index.js +0 -1
  17. package/__inner__/cjs/components/Calendar/components/Calendars/Calendars.d.ts +5 -0
  18. package/__inner__/cjs/components/Calendar/components/Calendars/Calendars.js +45 -0
  19. package/__inner__/cjs/components/Calendar/components/Calendars/index.d.ts +1 -0
  20. package/__inner__/cjs/components/Calendar/components/{CalendarModeSingle/components/CalendarConsumer → Calendars}/index.js +1 -1
  21. package/__inner__/cjs/components/Calendar/components/index.d.ts +1 -0
  22. package/__inner__/cjs/components/Calendar/components/index.js +1 -0
  23. package/__inner__/cjs/components/Calendar/constants.d.ts +1 -1
  24. package/__inner__/cjs/components/Calendar/constants.js +2 -2
  25. package/__inner__/cjs/components/Calendar/types.d.ts +60 -24
  26. package/__inner__/cjs/components/DataList/DataList.css +1 -1
  27. package/__inner__/cjs/components/DatePicker/DatePicker.css +12 -1
  28. package/__inner__/cjs/components/DatePicker/DatePicker.d.ts +2 -37
  29. package/__inner__/cjs/components/DatePicker/DatePicker.js +9 -143
  30. package/__inner__/cjs/components/DatePicker/components/DateInput/DateInput.js +1 -2
  31. package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +0 -1
  32. package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +1 -3
  33. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.d.ts +2 -0
  34. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +159 -0
  35. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/index.d.ts +1 -0
  36. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/index.js +4 -0
  37. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.d.ts +2 -0
  38. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +247 -0
  39. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/index.d.ts +1 -0
  40. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/index.js +4 -0
  41. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.d.ts +3 -0
  42. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.js +10 -0
  43. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.d.ts +1 -0
  44. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.js +4 -0
  45. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.d.ts +6 -0
  46. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.js +32 -0
  47. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.d.ts +1 -0
  48. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.js +4 -0
  49. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.d.ts +1 -0
  50. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.js +7 -0
  51. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.d.ts +1 -0
  52. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.js +4 -0
  53. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/index.d.ts +3 -0
  54. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/index.js +6 -0
  55. package/__inner__/cjs/components/DatePicker/components/index.d.ts +2 -0
  56. package/__inner__/cjs/components/DatePicker/components/index.js +2 -0
  57. package/__inner__/cjs/components/DatePicker/constants.d.ts +1 -0
  58. package/__inner__/cjs/components/DatePicker/constants.js +2 -1
  59. package/__inner__/cjs/components/DatePicker/types.d.ts +85 -26
  60. package/__inner__/cjs/components/DatePicker/types.js +2 -0
  61. package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +1 -2
  62. package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.d.ts +3 -0
  63. package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +16 -0
  64. package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/index.d.ts +1 -0
  65. package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/index.js +4 -0
  66. package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.d.ts +4 -0
  67. package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.js +13 -0
  68. package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/index.d.ts +1 -0
  69. package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/index.js +4 -0
  70. package/__inner__/cjs/components/DatePicker/utils/index.d.ts +4 -0
  71. package/__inner__/cjs/components/DatePicker/utils/index.js +4 -0
  72. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/index.d.ts +1 -0
  73. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/index.js +4 -0
  74. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +1 -0
  75. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.js +15 -0
  76. package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/index.d.ts +1 -0
  77. package/__inner__/cjs/components/{Select/components/SelectConsumer → DatePicker/utils/useCalendarKeyboard}/index.js +1 -1
  78. package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.d.ts +8 -0
  79. package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.js +47 -0
  80. package/__inner__/cjs/components/Menu/Menu.css +1 -1
  81. package/__inner__/cjs/components/Popover/Popover.js +2 -2
  82. package/__inner__/cjs/components/Popover/types.d.ts +2 -0
  83. package/__inner__/cjs/components/Segment/Segment.js +1 -1
  84. package/__inner__/cjs/components/Segment/components/SegmentItem/SegmentItem.js +1 -1
  85. package/__inner__/cjs/components/Select/Select.css +6 -0
  86. package/__inner__/cjs/components/Select/Select.js +41 -59
  87. package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +5 -6
  88. package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.d.ts +5 -0
  89. package/__inner__/cjs/components/Select/components/{SelectConsumer/SelectInputConsumer.js → SelectInputContextConsumer/SelectInputContextConsumer.js} +3 -3
  90. package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/index.d.ts +1 -0
  91. package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/index.js +4 -0
  92. package/__inner__/cjs/components/Select/helpers/types.d.ts +5 -8
  93. package/__inner__/cjs/components/Select/helpers/types.js +5 -1
  94. package/__inner__/cjs/components/Select/types.d.ts +43 -41
  95. package/__inner__/cjs/components/Skeleton/Skeleton.css +1 -1
  96. package/__inner__/cjs/components/Stack/types.d.ts +2 -2
  97. package/__inner__/cjs/hooks/useClickOutside/useClickOutside.d.ts +4 -4
  98. package/__inner__/cjs/hooks/useClickOutside/useClickOutside.js +7 -12
  99. package/__inner__/cjs/utils/date/index.d.ts +1 -0
  100. package/__inner__/cjs/utils/date/index.js +1 -0
  101. package/__inner__/cjs/utils/date/isValidDate/index.d.ts +1 -0
  102. package/__inner__/cjs/{components/Calendar/components/CalendarModeRange/components/CalendarConsumer → utils/date/isValidDate}/index.js +1 -1
  103. package/__inner__/cjs/utils/date/isValidDate/isValidDate.d.ts +1 -0
  104. package/__inner__/cjs/utils/date/isValidDate/isValidDate.js +7 -0
  105. package/__inner__/cjs/utils/date/monthDiff/monthDiff.d.ts +1 -1
  106. package/__inner__/cjs/utils/date/monthDiff/monthDiff.js +3 -0
  107. package/__inner__/esm/components/Autocomplete/helper.d.ts +7 -72
  108. package/__inner__/esm/components/Autocomplete/types.d.ts +11 -17
  109. package/__inner__/esm/components/AutocompleteNext/Autocomplete.css +1 -1
  110. package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +7 -77
  111. package/__inner__/esm/components/AutocompleteNext/types.d.ts +10 -16
  112. package/__inner__/esm/components/Calendar/Calendar.js +3 -3
  113. package/__inner__/esm/components/Calendar/CalendarContext.d.ts +2 -3
  114. package/__inner__/esm/components/Calendar/components/CalendarGridItem/types.d.ts +2 -2
  115. package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.d.ts +2 -2
  116. package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +15 -19
  117. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/index.d.ts +0 -1
  118. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/index.js +0 -1
  119. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.d.ts +2 -2
  120. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +11 -19
  121. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/index.d.ts +0 -1
  122. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/index.js +0 -1
  123. package/__inner__/esm/components/Calendar/components/Calendars/Calendars.d.ts +5 -0
  124. package/__inner__/esm/components/Calendar/components/Calendars/Calendars.js +41 -0
  125. package/__inner__/esm/components/Calendar/components/Calendars/index.d.ts +1 -0
  126. package/__inner__/esm/components/Calendar/components/Calendars/index.js +1 -0
  127. package/__inner__/esm/components/Calendar/components/index.d.ts +1 -0
  128. package/__inner__/esm/components/Calendar/components/index.js +1 -0
  129. package/__inner__/esm/components/Calendar/constants.d.ts +1 -1
  130. package/__inner__/esm/components/Calendar/constants.js +1 -1
  131. package/__inner__/esm/components/Calendar/types.d.ts +60 -24
  132. package/__inner__/esm/components/DataList/DataList.css +1 -1
  133. package/__inner__/esm/components/DatePicker/DatePicker.css +12 -1
  134. package/__inner__/esm/components/DatePicker/DatePicker.d.ts +2 -37
  135. package/__inner__/esm/components/DatePicker/DatePicker.js +13 -147
  136. package/__inner__/esm/components/DatePicker/components/DateInput/DateInput.js +1 -2
  137. package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +0 -1
  138. package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +0 -1
  139. package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.d.ts +2 -0
  140. package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +156 -0
  141. package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/index.d.ts +1 -0
  142. package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/index.js +1 -0
  143. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.d.ts +2 -0
  144. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +244 -0
  145. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/index.d.ts +1 -0
  146. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/index.js +1 -0
  147. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.d.ts +3 -0
  148. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.js +6 -0
  149. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.d.ts +1 -0
  150. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.js +1 -0
  151. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.d.ts +6 -0
  152. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.js +28 -0
  153. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.d.ts +1 -0
  154. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.js +1 -0
  155. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.d.ts +1 -0
  156. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.js +3 -0
  157. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.d.ts +1 -0
  158. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.js +1 -0
  159. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/index.d.ts +3 -0
  160. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/index.js +3 -0
  161. package/__inner__/esm/components/DatePicker/components/index.d.ts +2 -0
  162. package/__inner__/esm/components/DatePicker/components/index.js +2 -0
  163. package/__inner__/esm/components/DatePicker/constants.d.ts +1 -0
  164. package/__inner__/esm/components/DatePicker/constants.js +1 -0
  165. package/__inner__/esm/components/DatePicker/types.d.ts +85 -26
  166. package/__inner__/esm/components/DatePicker/types.js +1 -1
  167. package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +1 -2
  168. package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.d.ts +3 -0
  169. package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +12 -0
  170. package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/index.d.ts +1 -0
  171. package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/index.js +1 -0
  172. package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.d.ts +4 -0
  173. package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.js +9 -0
  174. package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/index.d.ts +1 -0
  175. package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/index.js +1 -0
  176. package/__inner__/esm/components/DatePicker/utils/index.d.ts +4 -0
  177. package/__inner__/esm/components/DatePicker/utils/index.js +4 -0
  178. package/__inner__/esm/components/DatePicker/utils/isValidDateString/index.d.ts +1 -0
  179. package/__inner__/esm/components/DatePicker/utils/isValidDateString/index.js +1 -0
  180. package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +1 -0
  181. package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.js +11 -0
  182. package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/index.d.ts +1 -0
  183. package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/index.js +1 -0
  184. package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.d.ts +8 -0
  185. package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.js +43 -0
  186. package/__inner__/esm/components/Menu/Menu.css +1 -1
  187. package/__inner__/esm/components/Popover/Popover.js +2 -2
  188. package/__inner__/esm/components/Popover/types.d.ts +2 -0
  189. package/__inner__/esm/components/Segment/Segment.js +1 -1
  190. package/__inner__/esm/components/Segment/components/SegmentItem/SegmentItem.js +1 -1
  191. package/__inner__/esm/components/Select/Select.css +6 -0
  192. package/__inner__/esm/components/Select/Select.js +42 -60
  193. package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +5 -6
  194. package/__inner__/esm/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.d.ts +5 -0
  195. package/__inner__/esm/components/Select/components/{SelectConsumer/SelectInputConsumer.js → SelectInputContextConsumer/SelectInputContextConsumer.js} +1 -1
  196. package/__inner__/esm/components/Select/components/SelectInputContextConsumer/index.d.ts +1 -0
  197. package/__inner__/esm/components/Select/components/SelectInputContextConsumer/index.js +1 -0
  198. package/__inner__/esm/components/Select/helpers/types.d.ts +5 -8
  199. package/__inner__/esm/components/Select/helpers/types.js +2 -0
  200. package/__inner__/esm/components/Select/types.d.ts +43 -41
  201. package/__inner__/esm/components/Skeleton/Skeleton.css +1 -1
  202. package/__inner__/esm/components/Stack/types.d.ts +2 -2
  203. package/__inner__/esm/hooks/useClickOutside/useClickOutside.d.ts +4 -4
  204. package/__inner__/esm/hooks/useClickOutside/useClickOutside.js +7 -12
  205. package/__inner__/esm/utils/date/index.d.ts +1 -0
  206. package/__inner__/esm/utils/date/index.js +1 -0
  207. package/__inner__/esm/utils/date/isValidDate/index.d.ts +1 -0
  208. package/__inner__/esm/utils/date/isValidDate/index.js +1 -0
  209. package/__inner__/esm/utils/date/isValidDate/isValidDate.d.ts +1 -0
  210. package/__inner__/esm/utils/date/isValidDate/isValidDate.js +3 -0
  211. package/__inner__/esm/utils/date/monthDiff/monthDiff.d.ts +1 -1
  212. package/__inner__/esm/utils/date/monthDiff/monthDiff.js +3 -0
  213. package/package.json +5 -5
  214. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
  215. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.js +0 -45
  216. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.d.ts +0 -1
  217. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
  218. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.js +0 -39
  219. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.d.ts +0 -1
  220. package/__inner__/cjs/components/Select/components/SelectConsumer/SelectInputConsumer.d.ts +0 -5
  221. package/__inner__/cjs/components/Select/components/SelectConsumer/index.d.ts +0 -1
  222. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
  223. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.js +0 -41
  224. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.d.ts +0 -1
  225. package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.js +0 -1
  226. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
  227. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.js +0 -35
  228. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.d.ts +0 -1
  229. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.js +0 -1
  230. package/__inner__/esm/components/Select/components/SelectConsumer/SelectInputConsumer.d.ts +0 -5
  231. package/__inner__/esm/components/Select/components/SelectConsumer/index.d.ts +0 -1
  232. package/__inner__/esm/components/Select/components/SelectConsumer/index.js +0 -1
@@ -0,0 +1,244 @@
1
+ import { __assign, __read, __rest } from "tslib";
2
+ import React, { forwardRef, useCallback, useEffect, useRef, useState, } from 'react';
3
+ import { once } from '@ozen-ui/logger';
4
+ import { useBoolean } from '../../../../hooks/useBoolean';
5
+ import { useControlled } from '../../../../hooks/useControlled';
6
+ import { useMultiRef } from '../../../../hooks/useMultiRef';
7
+ import { useMutableRef } from '../../../../hooks/useMutableRef';
8
+ import { isKeys } from '../../../../utils/isKeys';
9
+ import { Calendar } from '../../../Calendar';
10
+ import { FieldHint } from '../../../FieldHint';
11
+ import { Popover } from '../../../Popover';
12
+ import { Stack } from '../../../Stack';
13
+ import { cnDatePicker } from '../../index';
14
+ import { formatDateToString, formatStringToDate, getCommonCalendarProps, getCommonPopoverProps, isValidDateString, useCalendarKeyboard, } from '../../utils';
15
+ import { DateInput, DatePickerRenderRight } from '../index';
16
+ import { formatDateForCalendar, getOffsetDateInRange, getValueForDoubleProp, } from './utils';
17
+ export var DatePickerModeDateRange =
18
+ // eslint-disable-next-line react/display-name
19
+ forwardRef(function (props, ref) {
20
+ var size = props.size, error = props.error, openProp = props.open, label = props.label, onKeyDown = props.onKeyDown, onInputChange = props.onInputChange, renderLeft = props.renderLeft, renderRight = props.renderRight, required = props.required, fullWidth = props.fullWidth, placeholder = props.placeholder, hint = props.hint, disableStroke = props.disableStroke, hintProps = props.hintProps, onChange = props.onChange, labelProps = props.labelProps, popoverPropsProp = props.popoverProps, calendarPropsProp = props.calendarProps, defaultOpen = props.defaultOpen, onCloseProp = props.onClose, defaultValue = props.defaultValue, valueProp = props.value, inputProps = props.inputProps, disabled = props.disabled, className = props.className, _a = props.calendars, calendars = _a === void 0 ? 2 : _a, onError = props.onError, clearText = props.clearText, disableCloseOnSelect = props.disableCloseOnSelect, disableClearButton = props.disableClearButton, onOpenProp = props.onOpen, fieldsProps = props.fieldsProps, other = __rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps"]);
21
+ var _b = __read(getValueForDoubleProp(label), 2), labelFrom = _b[0], labelTo = _b[1];
22
+ var _c = __read(getValueForDoubleProp(renderLeft), 2), renderLeftFrom = _c[0], renderLeftTo = _c[1];
23
+ var _d = __read(getValueForDoubleProp(renderRight), 2), renderRightFrom = _d[0], renderRightTo = _d[1];
24
+ var _e = __read(getValueForDoubleProp(placeholder), 2), placeholderFrom = _e[0], placeholderTo = _e[1];
25
+ var _f = __read(getValueForDoubleProp(inputProps), 2), inputPropsFrom = _f[0], inputPropsTo = _f[1];
26
+ var _g = __read(getValueForDoubleProp(labelProps), 2), labelPropsFrom = _g[0], labelPropsTo = _g[1];
27
+ var containerRef = useRef(null);
28
+ var anchorRef = useRef(null);
29
+ var calendarInnerRef = useRef(null);
30
+ var dateInputToRef = useRef(null);
31
+ var calendarRef = useMultiRef([calendarInnerRef, calendarPropsProp === null || calendarPropsProp === void 0 ? void 0 : calendarPropsProp.ref]);
32
+ var fieldsRef = useMultiRef([anchorRef, fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.ref]);
33
+ var rootRef = useMultiRef([ref, containerRef]);
34
+ var _h = __read(useState(null), 2), offsetDate = _h[0], setOffsetDate = _h[1];
35
+ var _j = __read(useState(null), 2), calendarPeriod = _j[0], setCalendarPeriod = _j[1];
36
+ var savedCalendarPeriod = useMutableRef(calendarPeriod);
37
+ var lastValidDate = useRef(['', '']);
38
+ var _k = __read(useBoolean(false), 2), focusInputFrom = _k[0], setFocusInputFrom = _k[1];
39
+ var _l = __read(useBoolean(false), 2), focusInputTo = _l[0], setFocusInputTo = _l[1];
40
+ var _m = __read(useControlled({
41
+ value: valueProp,
42
+ defaultValue: defaultValue,
43
+ name: 'DatePicker',
44
+ state: 'value',
45
+ }), 2), value = _m[0], setValue = _m[1];
46
+ var _o = __read(useControlled({
47
+ value: undefined,
48
+ defaultValue: [],
49
+ name: 'DatePicker',
50
+ state: 'inputValue',
51
+ }), 2), inputValue = _o[0], setInputValue = _o[1];
52
+ var _p = __read(value || [], 2), valueFrom = _p[0], valueTo = _p[1];
53
+ var _q = __read(inputValue || [], 2), _r = _q[0], inputValueFrom = _r === void 0 ? '' : _r, _s = _q[1], inputValueTo = _s === void 0 ? '' : _s;
54
+ var _t = __read(useControlled({
55
+ value: openProp,
56
+ defaultValue: defaultOpen,
57
+ name: 'DatePicker',
58
+ state: 'open',
59
+ }), 2), open = _t[0], setOpen = _t[1];
60
+ var popoverProps = getCommonPopoverProps(__assign(__assign({}, props), { popoverProps: popoverPropsProp }));
61
+ var calendarProps = getCommonCalendarProps(__assign(__assign({}, props), { calendarProps: calendarPropsProp, ref: calendarRef }));
62
+ var onOffsetDateChange = function (date) {
63
+ setOffsetDate(date);
64
+ };
65
+ var onCalendarsChange = useCallback(function (date) {
66
+ setCalendarPeriod(date);
67
+ }, []);
68
+ /** Enables calendar keyboard interaction */
69
+ var enableEnforceFocusTo = useCalendarKeyboard({
70
+ controlRef: dateInputToRef,
71
+ calendarRef: calendarInnerRef,
72
+ active: open,
73
+ });
74
+ var disableEnforceFocus = !enableEnforceFocusTo;
75
+ /** Эффект — синхронизируем значение текстового поля со значением в списке */
76
+ useEffect(function () {
77
+ var formattedDateFrom = formatDateToString(valueFrom);
78
+ var formattedDateTo = formatDateToString(valueTo);
79
+ if (formattedDateFrom !== inputValueFrom ||
80
+ formattedDateTo !== inputValueTo) {
81
+ setInputValue([formattedDateFrom, formattedDateTo]);
82
+ onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(null, [formattedDateFrom, formattedDateTo]);
83
+ lastValidDate.current = [formattedDateFrom, formattedDateTo];
84
+ }
85
+ }, [valueFrom, valueTo]);
86
+ /** Error handling */
87
+ useEffect(function () {
88
+ if (onError) {
89
+ once.error('Обработка ошибок в режиме date-range на данный момент не поддерживается.');
90
+ }
91
+ }, [onError]);
92
+ /** Calendar offset when interacting with inputs */
93
+ useEffect(function () {
94
+ if (!isValidDateString(inputValueFrom) ||
95
+ !isValidDateString(inputValueTo) ||
96
+ !savedCalendarPeriod.current)
97
+ return;
98
+ if ((focusInputFrom || focusInputTo) && open && (calendarPeriod === null || calendarPeriod === void 0 ? void 0 : calendarPeriod.length)) {
99
+ var firstDate = formatStringToDate(inputValueFrom);
100
+ var secondDate = formatStringToDate(inputValueTo);
101
+ var offset = getOffsetDateInRange(__assign(__assign({}, (focusInputTo && { type: 'end' })), { calendarPeriod: savedCalendarPeriod.current, value: [firstDate || undefined, secondDate || undefined] }));
102
+ setOffsetDate(offset);
103
+ }
104
+ }, [
105
+ open,
106
+ focusInputTo,
107
+ inputValueTo,
108
+ inputValueFrom,
109
+ focusInputFrom,
110
+ calendarPeriod === null || calendarPeriod === void 0 ? void 0 : calendarPeriod.length,
111
+ ]);
112
+ /** Закрытие */
113
+ var handleClose = function () {
114
+ setOpen(false);
115
+ onCloseProp === null || onCloseProp === void 0 ? void 0 : onCloseProp();
116
+ };
117
+ /** Открытие */
118
+ var handleOpen = function () {
119
+ if (disabled || open)
120
+ return;
121
+ setOpen(true);
122
+ onOpenProp === null || onOpenProp === void 0 ? void 0 : onOpenProp();
123
+ };
124
+ var callOnChange = function (value) {
125
+ var _a = __read(value || [], 2), dateFrom = _a[0], dateTo = _a[1];
126
+ var formattedDateFrom = formatStringToDate(dateFrom) || undefined;
127
+ var formattedDateTo = formatStringToDate(dateTo) || undefined;
128
+ if (formattedDateTo &&
129
+ formattedDateFrom &&
130
+ (formattedDateFrom === null || formattedDateFrom === void 0 ? void 0 : formattedDateFrom.getTime()) > (formattedDateTo === null || formattedDateTo === void 0 ? void 0 : formattedDateTo.getTime())) {
131
+ formattedDateTo = undefined;
132
+ }
133
+ var res = [formattedDateFrom, formattedDateTo];
134
+ setValue(res);
135
+ onChange === null || onChange === void 0 ? void 0 : onChange(res);
136
+ lastValidDate.current = value;
137
+ };
138
+ var changeInputValue = function (e, value) {
139
+ setInputValue(value);
140
+ onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(e, value);
141
+ var _a = __read(value || [], 2), valueFrom = _a[0], valueTo = _a[1];
142
+ if (isValidDateString(valueFrom) && isValidDateString(valueTo))
143
+ callOnChange([valueFrom, valueTo]);
144
+ };
145
+ var handleExited = function () {
146
+ var _a;
147
+ onOffsetDateChange(null);
148
+ setCalendarPeriod(null);
149
+ (_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.onExited) === null || _a === void 0 ? void 0 : _a.call(popoverProps);
150
+ };
151
+ /** Событие ввода значения в текстовом поле */
152
+ var handleChangeInputFrom = function (e) {
153
+ var _a;
154
+ var value = e.target.value;
155
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, e);
156
+ changeInputValue(e, [value, inputValueTo]);
157
+ };
158
+ /** Очистка поля */
159
+ var handleClear = function (type) { return function () {
160
+ changeInputValue(null, type === 'from' ? ['', inputValueTo] : [inputValueFrom, '']);
161
+ }; };
162
+ var handleFocusInputFrom = function (e) {
163
+ var _a;
164
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onFocus) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, e);
165
+ setFocusInputFrom.on();
166
+ };
167
+ var handleFocusInputTo = function (e) {
168
+ var _a;
169
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onFocus) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, e);
170
+ setFocusInputTo.on();
171
+ };
172
+ var handleBlurInputFrom = function (e) {
173
+ var _a;
174
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, e);
175
+ setFocusInputFrom.off();
176
+ if (!inputValue)
177
+ return;
178
+ if (!isValidDateString(inputValueFrom)) {
179
+ changeInputValue(null, lastValidDate.current);
180
+ }
181
+ };
182
+ var handleBlurInputTo = function (e) {
183
+ var _a;
184
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, e);
185
+ setFocusInputTo.off();
186
+ if (!inputValue)
187
+ return;
188
+ if (!isValidDateString(inputValueTo))
189
+ changeInputValue(null, lastValidDate.current);
190
+ };
191
+ /** Событие ввода значения в текстовом поле */
192
+ var handleChangeInputTo = function (e) {
193
+ var _a;
194
+ var value = e.target.value;
195
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, e);
196
+ changeInputValue(e, [inputValueFrom, value]);
197
+ };
198
+ /** Открытие списка по клику на текстовом поле */
199
+ var handleClickOnInputFrom = function (e) {
200
+ var _a;
201
+ handleOpen();
202
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onClick) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, e);
203
+ };
204
+ /** Открытие списка по клику на текстовом поле */
205
+ var handleClickOnInputTo = function (e) {
206
+ var _a;
207
+ handleOpen();
208
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onClick) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, e);
209
+ };
210
+ /** Управление элементом контроля через клавиатуру */
211
+ var handleKeyDown = function (event) {
212
+ if (isKeys(event, ['ArrowDown', 'ArrowUp'])) {
213
+ event.preventDefault();
214
+ handleOpen();
215
+ }
216
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
217
+ };
218
+ /** Событие выбора значения из календаря */
219
+ var handleChangeCalendar = function (date) {
220
+ var _a = __read(date || [], 2), dateFrom = _a[0], dateTo = _a[1];
221
+ var formattedDate = [
222
+ formatDateToString(dateFrom),
223
+ formatDateToString(dateTo),
224
+ ];
225
+ changeInputValue(null, formattedDate);
226
+ if (!disableCloseOnSelect && dateFrom && dateTo)
227
+ handleClose();
228
+ };
229
+ return (React.createElement("div", __assign({ className: cnDatePicker({
230
+ mode: 'date-range',
231
+ size: size,
232
+ error: error,
233
+ required: required,
234
+ disabled: disabled,
235
+ fullWidth: fullWidth,
236
+ disableStroke: disableStroke,
237
+ }, [className]) }, other, { ref: rootRef }),
238
+ React.createElement(Stack, __assign({ gap: "l", className: cnDatePicker('Fields', [fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.className]) }, fieldsProps, { ref: fieldsRef }),
239
+ React.createElement(DateInput, { size: size, error: error, label: labelFrom, required: required, disabled: disabled, value: inputValueFrom, onKeyDown: handleKeyDown, renderLeft: renderLeftFrom, labelProps: labelPropsFrom, disableStroke: disableStroke, placeholder: placeholderFrom, renderRight: React.createElement(DatePickerRenderRight, { size: size, open: open, hasValue: !!valueFrom, clearText: clearText, renderRight: renderRightFrom, onClear: handleClear('from'), disableClearButton: disableClearButton }), inputProps: __assign(__assign({ autoComplete: 'off' }, inputPropsFrom), { onBlur: handleBlurInputFrom, onFocus: handleFocusInputFrom, onClick: handleClickOnInputFrom, onChange: handleChangeInputFrom }), "data-testid": "date-input-from", bodyProps: { 'aria-expanded': open } }),
240
+ React.createElement(DateInput, { size: size, error: error, label: labelTo, required: required, disabled: disabled, value: inputValueTo, onKeyDown: handleKeyDown, renderLeft: renderLeftTo, labelProps: labelPropsTo, placeholder: placeholderTo, disableStroke: disableStroke, renderRight: React.createElement(DatePickerRenderRight, { size: size, open: open, hasValue: !!valueTo, clearText: clearText, renderRight: renderRightTo, onClear: handleClear('to'), disableClearButton: disableClearButton }), inputProps: __assign(__assign({ autoComplete: 'off' }, inputPropsTo), { onBlur: handleBlurInputTo, onFocus: handleFocusInputTo, onClick: handleClickOnInputTo, onChange: handleChangeInputTo }), "data-testid": "date-input-to", bodyProps: { ref: dateInputToRef, 'aria-expanded': open } })),
241
+ React.createElement(FieldHint, __assign({ size: size, error: error, disabled: disabled }, hintProps), hint),
242
+ React.createElement(Popover, __assign({ open: open, anchorRef: anchorRef, onClose: handleClose }, popoverProps, { onExited: handleExited, ignoreClickOutsideRefs: [containerRef], disableEnforceFocus: disableEnforceFocus }),
243
+ React.createElement(Calendar, __assign({ calendars: calendars }, calendarProps, { mode: "range", offsetDate: offsetDate, onChange: handleChangeCalendar, value: formatDateForCalendar(value), onCalendarsChange: onCalendarsChange, onOffsetDateChange: onOffsetDateChange })))));
244
+ });
@@ -0,0 +1 @@
1
+ export * from './DatePickerModeDateRange';
@@ -0,0 +1 @@
1
+ export * from './DatePickerModeDateRange';
@@ -0,0 +1,3 @@
1
+ import type { CalendarPropValue } from '../../../../../Calendar';
2
+ import type { DatePickerPropValue } from '../../../../types';
3
+ export declare const formatDateForCalendar: (date?: DatePickerPropValue<"date-range">) => CalendarPropValue<"range">;
@@ -0,0 +1,6 @@
1
+ export var formatDateForCalendar = function (date) {
2
+ if (!date)
3
+ return null;
4
+ var d = date.filter(function (date) { return date !== undefined; });
5
+ return d[0] && d[1] && d[0].getTime() > d[1].getTime() ? [d[0]] : d;
6
+ };
@@ -0,0 +1,6 @@
1
+ export type GetOffsetDateInRange = {
2
+ calendarPeriod: Date[];
3
+ value: [Date?, Date?];
4
+ type?: 'start' | 'end';
5
+ };
6
+ export declare const getOffsetDateInRange: ({ type, value, calendarPeriod, }: GetOffsetDateInRange) => Date | null;
@@ -0,0 +1,28 @@
1
+ import { __read } from "tslib";
2
+ import { monthDiff } from '../../../../../../utils/date';
3
+ import { isOutOfRange as isOutOfRangeFn } from '../../../../utils';
4
+ export var getOffsetDateInRange = function (_a) {
5
+ var _b = _a.type, type = _b === void 0 ? 'start' : _b, value = _a.value, calendarPeriod = _a.calendarPeriod;
6
+ var _c = __read(value || [], 2), valueFrom = _c[0], valueTo = _c[1];
7
+ var _d = __read(calendarPeriod || [], 2), calendarPeriodFrom = _d[0], calendarPeriodTo = _d[1];
8
+ if (!valueFrom || !valueTo)
9
+ return valueFrom || valueTo || null;
10
+ var isOutOfRange = isOutOfRangeFn({
11
+ minDate: calendarPeriodFrom,
12
+ maxDate: calendarPeriodTo,
13
+ value: type === 'start' ? valueFrom : valueTo,
14
+ });
15
+ if (calendarPeriodFrom && calendarPeriodTo && !isOutOfRange)
16
+ return calendarPeriodFrom;
17
+ if (type === 'start')
18
+ return valueFrom;
19
+ if (monthDiff(valueFrom, valueTo) === 0)
20
+ return valueTo;
21
+ if (monthDiff(valueFrom, valueTo) > 0) {
22
+ var d = new Date(valueTo);
23
+ d.setDate(1);
24
+ d.setMonth(d.getMonth() - monthDiff(calendarPeriodFrom, calendarPeriodTo));
25
+ return d;
26
+ }
27
+ return null;
28
+ };
@@ -0,0 +1 @@
1
+ export declare const getValueForDoubleProp: <T>(value: [T?, T?] | T) => [(T | undefined)?, (T | undefined)?] | T[];
@@ -0,0 +1,3 @@
1
+ export var getValueForDoubleProp = function (value) {
2
+ return Array.isArray(value) ? value : [value, value];
3
+ };
@@ -0,0 +1,3 @@
1
+ export * from './getOffsetDateInRange';
2
+ export * from './getValueForDoubleProp';
3
+ export * from './formatDateForCalendar';
@@ -0,0 +1,3 @@
1
+ export * from './getOffsetDateInRange';
2
+ export * from './getValueForDoubleProp';
3
+ export * from './formatDateForCalendar';
@@ -1,2 +1,4 @@
1
1
  export * from './DateInput';
2
2
  export * from './DatePickerRenderRight';
3
+ export * from './DatePickerModeDate';
4
+ export * from './DatePickerModeDateRange';
@@ -1,2 +1,4 @@
1
1
  export * from './DateInput';
2
2
  export * from './DatePickerRenderRight';
3
+ export * from './DatePickerModeDate';
4
+ export * from './DatePickerModeDateRange';
@@ -1 +1,2 @@
1
1
  export declare const DATE_PICKER_DEFAULT_SIZE = "m";
2
+ export declare const DATE_PICKER_DEFAULT_MODE = "date";
@@ -1 +1,2 @@
1
1
  export var DATE_PICKER_DEFAULT_SIZE = 'm';
2
+ export var DATE_PICKER_DEFAULT_MODE = 'date';
@@ -1,11 +1,31 @@
1
- import type { ChangeEvent, ComponentRef } from 'react';
1
+ import type { ChangeEvent, ComponentRef, ReactNode } from 'react';
2
2
  import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
3
- import type { CalendarProps, CalendarOnChange } from '../Calendar';
4
- import type { FIELD_CONTROL_DEFAULT_TAG } from '../FieldControl';
5
- import type { InputProps } from '../Input';
3
+ import type { CalendarProps } from '../Calendar';
4
+ import type { FieldHintProps } from '../FieldHint';
5
+ import type { FieldInputProps } from '../FieldInput';
6
+ import type { FieldLabelProps } from '../FieldLabel';
7
+ import type { InputProps, InputSizeVariant } from '../Input';
6
8
  import type { PopoverBaseProps } from '../Popover';
7
- export type DatePickerOnChange = CalendarOnChange<'single'>;
8
- export type DatePickerOnInputChange = (e: ChangeEvent<HTMLInputElement> | null, value: string) => void;
9
+ import type { StackProps } from '../Stack';
10
+ import type { DATE_PICKER_DEFAULT_MODE } from './constants';
11
+ export declare const datePickerModeVariant: readonly ["date", "date-range"];
12
+ type Range = 'date-range';
13
+ export type DatePickerModeVariant = (typeof datePickerModeVariant)[number];
14
+ export type DatePickerPropInputValue<MODE extends DatePickerModeVariant> = (MODE extends Range ? [string, string] : string) | null;
15
+ export type DatePickerPropOnInputChange<MODE extends DatePickerModeVariant> = (e: ChangeEvent<HTMLInputElement> | null, value: DatePickerPropInputValue<MODE>) => void;
16
+ export type DatePickerPropValue<MODE extends DatePickerModeVariant> = (MODE extends Range ? [Date?, Date?] : Date) | null;
17
+ export type DatePickerPropOnChange<MODE extends DatePickerModeVariant> = (date: DatePickerPropValue<MODE>) => void;
18
+ type InputPropLabel = InputProps['label'];
19
+ type InputPropRenderLeft = InputProps['renderLeft'];
20
+ type InputPropRenderRight = InputProps['renderRight'];
21
+ type InputPropPlaceholder = InputProps['placeholder'];
22
+ export type DatePickerPropLabel<MODE> = MODE extends Range ? [InputPropLabel?, InputPropLabel?] | InputPropLabel : InputPropLabel;
23
+ export type DatePickerPropRenderLeft<MODE> = MODE extends Range ? [InputPropRenderLeft?, InputPropRenderLeft?] | InputPropRenderLeft : InputPropRenderLeft;
24
+ export type DatePickerPropRenderRight<MODE> = MODE extends Range ? [InputPropRenderRight?, InputPropRenderRight?] | InputPropRenderRight : InputPropRenderRight;
25
+ export type DatePickerPropPlaceholder<MODE> = MODE extends Range ? [InputPropPlaceholder?, InputPropPlaceholder?] | InputPropPlaceholder : InputPropPlaceholder;
26
+ export type DatePickerPropInputProps<MODE> = MODE extends Range ? [FieldInputProps?, FieldInputProps?] | FieldInputProps : FieldInputProps;
27
+ export type DatePickerPropLabelProps<MODE> = MODE extends Range ? [FieldLabelProps?, FieldLabelProps?] | FieldLabelProps : FieldLabelProps;
28
+ export type DatePickerPropFieldsProps<MODE> = MODE extends Range ? StackProps : never;
9
29
  export type DatePickerPropOnError = (props: {
10
30
  type: 'outOfRange';
11
31
  inputValue?: string;
@@ -15,32 +35,35 @@ export type DatePickerPropOnError = (props: {
15
35
  inputValue?: string;
16
36
  value?: Date | null;
17
37
  }) => void;
18
- type DatePickerOpenControlledProps = {
38
+ export type DatePickerRef = ComponentRef<'div'>;
39
+ /**
40
+ * @deprecated
41
+ * Use the `DatePickerPropOnInputChange` type to replace it.
42
+ * */
43
+ export type DatePickerOnChange<MODE extends DatePickerModeVariant> = DatePickerPropOnInputChange<MODE>;
44
+ /**
45
+ * @deprecated
46
+ * Use the `DatePickerPropOnInputChange` type to replace it.
47
+ * */
48
+ export type DatePickerOnInputChange<MODE extends DatePickerModeVariant> = DatePickerPropOnInputChange<MODE>;
49
+ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PICKER_DEFAULT_MODE> = ExtendableComponentPropsWithRef<{
50
+ mode?: MODE;
51
+ /** Выбранная дата */
52
+ value?: DatePickerPropValue<MODE>;
53
+ /** Выбранная дата по умолчанию (неконтролируемое состояние) */
54
+ defaultValue?: DatePickerPropValue<MODE>;
19
55
  /** Текущее состояние списка. Если `true`, список отображается. */
20
56
  open?: boolean;
21
57
  /** Состояние открытие по умолчанию (неконтролируемый компонент) */
22
- defaultOpen?: never;
23
- };
24
- type DatePickerOpenUncontrolledProps = {
25
- /** Текущее состояние списка. Если `true`, список отображается. */
26
- open?: never;
27
- /** Состояние открытие по умолчанию (неконтролируемый компонент) */
28
58
  defaultOpen?: boolean;
29
- };
30
- export type DatePickerRef = ComponentRef<typeof FIELD_CONTROL_DEFAULT_TAG>;
31
- export type DatePickerProps = ExtendableComponentPropsWithRef<{
32
- /** Выбранная дата */
33
- value?: Date | null;
34
- /** Выбранная дата по умолчанию (неконтролируемое состояние) */
35
- defaultValue?: Date | null;
36
59
  /** Функция обратного вызова, которая будет вызвана при выборе значения */
37
- onChange?: DatePickerOnChange;
38
- /** Введённое значение в текстовом поле */
39
- onInputChange?: DatePickerOnInputChange;
60
+ onChange?: DatePickerPropOnChange<MODE>;
61
+ /** Введённое значение в текстовом поле (полях) */
62
+ onInputChange?: DatePickerPropOnInputChange<MODE>;
40
63
  /** Функция обратного вызова, которая будет вызвана когда компонент запрашивает закрытие */
41
- onClose?: () => void;
64
+ onClose?(): void;
42
65
  /** Функция обратного вызова, которая будет вызвана когда компонент запрашивает открытие */
43
- onOpen?: () => void;
66
+ onOpen?(): void;
44
67
  /** Свойства компонента Calendar */
45
68
  calendarProps?: CalendarProps;
46
69
  /** Свойства компонента Popover */
@@ -51,5 +74,41 @@ export type DatePickerProps = ExtendableComponentPropsWithRef<{
51
74
  disableClearButton?: boolean;
52
75
  /** Функция обратно вызова, которая сработает если пользователь ввёл дату с ошибкой */
53
76
  onError?: DatePickerPropOnError;
54
- } & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude' | 'offsetDate'> & Pick<InputProps, 'label' | 'hint' | 'onKeyDown' | 'size' | 'error' | 'required' | 'fullWidth' | 'disableStroke' | 'disabled' | 'renderLeft' | 'renderRight' | 'placeholder' | 'inputProps' | 'hintProps'> & (DatePickerOpenControlledProps | DatePickerOpenUncontrolledProps), typeof FIELD_CONTROL_DEFAULT_TAG>;
77
+ /** Лейбл */
78
+ label?: DatePickerPropLabel<MODE>;
79
+ /** Текст или иконка слева */
80
+ renderLeft?: DatePickerPropRenderLeft<MODE>;
81
+ /** Текст или иконка справа */
82
+ renderRight?: DatePickerPropRenderRight<MODE>;
83
+ /** Подсказка. Отображается, когда вариант не выбран */
84
+ placeholder?: DatePickerPropPlaceholder<MODE>;
85
+ /** Свойства элемента input */
86
+ inputProps?: DatePickerPropInputProps<MODE>;
87
+ /** Свойства FieldLabel */
88
+ labelProps?: DatePickerPropLabelProps<MODE>;
89
+ /** Если `true` не закрывает выпадающий список при выборе опции */
90
+ disableCloseOnSelect?: boolean;
91
+ /** Если `true` делает элемент неактивным */
92
+ disabled?: boolean;
93
+ /** Дополнительное описание к полю */
94
+ hint?: string | null | undefined;
95
+ /** Cвойства FieldHint */
96
+ hintProps?: Omit<FieldHintProps, 'children'>;
97
+ /** Размер компонента */
98
+ size?: InputSizeVariant;
99
+ /** Если `true` растягивает поле на всю ширину */
100
+ fullWidth?: boolean;
101
+ /** Если `true` делает элемент обязательным к заполнению */
102
+ required?: boolean;
103
+ /** Если `true` отключает обводку */
104
+ disableStroke?: boolean;
105
+ /** Если `true` переводит поле в состояние ошибки */
106
+ error?: boolean;
107
+ /** Свойства обертки для текстовых полей. Принимает свойства компонента [Stack](https://ozen-ui.netlify.app/?path=/docs/components-stack--docs) */
108
+ fieldsProps?: DatePickerPropFieldsProps<MODE>;
109
+ /** Количество отображаемых календарей в компоненте: один или два */
110
+ calendars?: 1 | 2;
111
+ } & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude'> & Pick<InputProps, 'onKeyDown'>, 'div'>;
112
+ export type DatePickerComponent = <MODE extends DatePickerModeVariant = typeof DATE_PICKER_DEFAULT_MODE>(props: DatePickerProps<MODE>) => ReactNode;
113
+ export type DatePickerModeComponent<MODE extends DatePickerModeVariant> = (props: Omit<DatePickerProps<MODE>, 'mode'>) => ReactNode;
55
114
  export {};
@@ -1 +1 @@
1
- export {};
1
+ export var datePickerModeVariant = ['date', 'date-range'];
@@ -1,8 +1,7 @@
1
1
  import { __read } from "tslib";
2
- import { isCompleted } from '../../components/DateInput/utils';
3
2
  export var formatStringToDate = function (value) {
4
3
  var _a = __read(value.split('.'), 3), date = _a[0], month = _a[1], year = _a[2];
5
- if (!(date && month && year) || !isCompleted(value)) {
4
+ if (!(date && month && year)) {
6
5
  return null;
7
6
  }
8
7
  return new Date(+year, +month - 1, +date);
@@ -0,0 +1,3 @@
1
+ import type { CalendarProps } from '../../../Calendar';
2
+ import type { DatePickerModeVariant, DatePickerProps } from '../../index';
3
+ export declare const getCommonCalendarProps: <MODE extends DatePickerModeVariant>(props: Omit<DatePickerProps<MODE>, "mode">) => CalendarProps;
@@ -0,0 +1,12 @@
1
+ import { __assign } from "tslib";
2
+ import { getCalendarSizeToFormElement } from '../getCalendarSizeToFormElement';
3
+ export var getCommonCalendarProps = function (props) {
4
+ var minDate = props.minDate, maxDate = props.maxDate, exclude = props.exclude, _a = props.size, size = _a === void 0 ? 'm' : _a, ref = props.ref, calendarProps = props.calendarProps;
5
+ /** Соотношение размера календаря к размеру элемента контроля */
6
+ var calendarSize = getCalendarSizeToFormElement(size);
7
+ /** Предотвращаем переход фокуса с текстового поля на интерактивные элементы календаря */
8
+ var handleMouseDownCalendar = function (e) {
9
+ e.preventDefault();
10
+ };
11
+ return __assign(__assign({ minDate: minDate, maxDate: maxDate, exclude: exclude, size: calendarSize }, calendarProps), { ref: ref, onMouseDown: handleMouseDownCalendar });
12
+ };
@@ -0,0 +1 @@
1
+ export * from './getCommonCalendarProps';
@@ -0,0 +1 @@
1
+ export * from './getCommonCalendarProps';
@@ -0,0 +1,4 @@
1
+ import { Paper } from '../../../Paper';
2
+ import type { PopoverProps } from '../../../Popover';
3
+ import type { DatePickerModeVariant, DatePickerProps } from '../../index';
4
+ export declare const getCommonPopoverProps: <MODE extends DatePickerModeVariant>(props: Omit<DatePickerProps<MODE>, "mode">) => PopoverProps<typeof Paper>;
@@ -0,0 +1,9 @@
1
+ import { __assign } from "tslib";
2
+ import { getPaperSizeToFormElement } from '../../../../utils/getPaperSizeToFormElement';
3
+ import { Paper } from '../../../Paper';
4
+ export var getCommonPopoverProps = function (props) {
5
+ var _a = props.size, size = _a === void 0 ? 'm' : _a, popoverProps = props.popoverProps;
6
+ /** Вычисление border-radius по размеру компонента */
7
+ var radius = getPaperSizeToFormElement(size);
8
+ return __assign({ radius: radius, as: Paper, offset: [0, 4], disableReturnFocus: true, disableEnforceFocus: true, placement: 'bottom-start' }, popoverProps);
9
+ };
@@ -0,0 +1 @@
1
+ export * from './getCommonPopoverProps';
@@ -0,0 +1 @@
1
+ export * from './getCommonPopoverProps';
@@ -3,3 +3,7 @@ export * from './formatDateToString';
3
3
  export * from './formatStringToDate';
4
4
  export * from './isOutOfRange';
5
5
  export * from './isInExclude';
6
+ export * from './getCommonPopoverProps';
7
+ export * from './getCommonCalendarProps';
8
+ export * from './isValidDateString';
9
+ export * from './useCalendarKeyboard';
@@ -3,3 +3,7 @@ export * from './formatDateToString';
3
3
  export * from './formatStringToDate';
4
4
  export * from './isOutOfRange';
5
5
  export * from './isInExclude';
6
+ export * from './getCommonPopoverProps';
7
+ export * from './getCommonCalendarProps';
8
+ export * from './isValidDateString';
9
+ export * from './useCalendarKeyboard';
@@ -0,0 +1 @@
1
+ export * from './isValidDateString';
@@ -0,0 +1 @@
1
+ export * from './isValidDateString';
@@ -0,0 +1 @@
1
+ export declare const isValidDateString: (value: string | null | undefined) => boolean;
@@ -0,0 +1,11 @@
1
+ import { __read } from "tslib";
2
+ import { isValidDate } from '../../../../utils/date';
3
+ import { isNotNil } from '../../../../utils/isNotNil';
4
+ export var isValidDateString = function (value) {
5
+ if (!isNotNil(value)) {
6
+ return false;
7
+ }
8
+ var _a = __read(value.split('.'), 3), date = _a[0], month = _a[1], year = _a[2];
9
+ return (value === '' ||
10
+ (value.length === 10 && isValidDate("".concat(year, "-").concat(month, "-").concat(date))));
11
+ };
@@ -0,0 +1 @@
1
+ export * from './useCalendarKeyboard';
@@ -0,0 +1 @@
1
+ export * from './useCalendarKeyboard';
@@ -0,0 +1,8 @@
1
+ import type { RefObject } from 'react';
2
+ type UseCalendarKeyboardProps = {
3
+ controlRef: RefObject<HTMLElement>;
4
+ calendarRef: RefObject<HTMLElement>;
5
+ active?: boolean;
6
+ };
7
+ export declare const useCalendarKeyboard: ({ controlRef, calendarRef, active, }: UseCalendarKeyboardProps) => boolean;
8
+ export {};