@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,43 @@
1
+ import { __read } from "tslib";
2
+ import { useBoolean } from '../../../../hooks/useBoolean';
3
+ import { useClickOutside } from '../../../../hooks/useClickOutside';
4
+ import { useEventListener } from '../../../../hooks/useEventListener';
5
+ import { getFocusableElements } from '../../../../utils/getFocusableElements';
6
+ import { isKey } from '../../../../utils/isKey';
7
+ export var useCalendarKeyboard = function (_a) {
8
+ var controlRef = _a.controlRef, calendarRef = _a.calendarRef, _b = _a.active, active = _b === void 0 ? false : _b;
9
+ var _c = __read(useBoolean(false), 2), focused = _c[0], _d = _c[1], on = _d.on, off = _d.off;
10
+ useClickOutside({
11
+ refs: [calendarRef],
12
+ active: focused,
13
+ handler: function () {
14
+ var _a;
15
+ (_a = controlRef.current) === null || _a === void 0 ? void 0 : _a.focus();
16
+ off();
17
+ },
18
+ });
19
+ useEventListener({
20
+ element: controlRef,
21
+ eventName: 'keydown',
22
+ handler: function (event) {
23
+ if (isKey(event, 'Tab') && calendarRef.current) {
24
+ event.preventDefault();
25
+ var _a = __read(getFocusableElements(calendarRef.current), 1), firstFocusableElements = _a[0];
26
+ firstFocusableElements === null || firstFocusableElements === void 0 ? void 0 : firstFocusableElements.focus();
27
+ on();
28
+ }
29
+ },
30
+ active: active && !focused,
31
+ });
32
+ useEventListener({
33
+ eventName: 'keydown',
34
+ handler: function (event) {
35
+ if (isKey(event, 'Escape') && controlRef.current) {
36
+ controlRef.current.focus();
37
+ off();
38
+ }
39
+ },
40
+ active: focused,
41
+ });
42
+ return focused;
43
+ };
@@ -28,5 +28,5 @@
28
28
  }
29
29
  .Menu {
30
30
  overflow: hidden auto;
31
- max-block-size: 40vb;
31
+ max-block-size: 40vh;
32
32
  }
@@ -20,7 +20,7 @@ import { PopoverContext } from './PopoverContext';
20
20
  export var cnPopover = cn('Popover');
21
21
  export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
22
22
  var props = useThemeProps({ props: inProps, name: 'Popover' });
23
- var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, _h = props.strategy, strategy = _h === void 0 ? POPOVER_DEFAULT_STRATEGY : _h, _j = props.disablePreventOverflow, disablePreventOverflow = _j === void 0 ? POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW : _j, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate, modifiersProp = props.modifiers, _k = props.as, as = _k === void 0 ? POPOVER_DEFAULT_TAG : _k, other = __rest(props, ["arrow", "open", "disableInteractive", "disableEnforceFocus", "disableReturnFocus", "disableClickOutside", "placement", "strategy", "disablePreventOverflow", "ignoreClickOutsideRefs", "arrowProps", "anchorRef", "equalAnchorWidth", "offset", "children", "transitionProps", "onClose", "onEnter", "onEntered", "onExit", "onExited", "className", "position", "style", "setUpdate", "modifiers", "as"]);
23
+ var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, _h = props.strategy, strategy = _h === void 0 ? POPOVER_DEFAULT_STRATEGY : _h, _j = props.disablePreventOverflow, disablePreventOverflow = _j === void 0 ? POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW : _j, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, disableEscapeKeyDown = props.disableEscapeKeyDown, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate, modifiersProp = props.modifiers, _k = props.as, as = _k === void 0 ? POPOVER_DEFAULT_TAG : _k, other = __rest(props, ["arrow", "open", "disableInteractive", "disableEnforceFocus", "disableReturnFocus", "disableClickOutside", "placement", "strategy", "disablePreventOverflow", "ignoreClickOutsideRefs", "disableEscapeKeyDown", "arrowProps", "anchorRef", "equalAnchorWidth", "offset", "children", "transitionProps", "onClose", "onEnter", "onEntered", "onExit", "onExited", "className", "position", "style", "setUpdate", "modifiers", "as"]);
24
24
  var Tag = useMemo(function () {
25
25
  // eslint-disable-next-line react/display-name
26
26
  return forwardRef(function (props, ref) { return (React.createElement(Paper, __assign({ radius: "l", shadow: "m", background: "main" }, props, { as: as, ref: ref }))); });
@@ -44,7 +44,7 @@ export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
44
44
  return;
45
45
  onClose === null || onClose === void 0 ? void 0 : onClose();
46
46
  },
47
- active: isTop,
47
+ active: isTop && !disableEscapeKeyDown,
48
48
  });
49
49
  useClickOutside({
50
50
  refs: __spreadArray(__spreadArray(__spreadArray([
@@ -65,6 +65,8 @@ export type PopoverBaseProps = {
65
65
  disableReturnFocus?: boolean;
66
66
  /** Если `true` отключает закрытие окна при клике за его пределами */
67
67
  disableClickOutside?: boolean;
68
+ /** Если `true` отключает закрытие окна при нажатии на клавишу ESC */
69
+ disableEscapeKeyDown?: boolean;
68
70
  /** Идентификатор компонента для тестов */
69
71
  'data-testid'?: string;
70
72
  /** Функция обратного вызова для получения метода по перерасчету расположения компонента Popover */
@@ -29,7 +29,7 @@ export var Segment = forwardRef(function (inProps, ref) {
29
29
  selected: valueState,
30
30
  onChange: handleChange,
31
31
  }); }, [name, disabled, iconSize, selectedColor, valueState, handleChange]);
32
- return (React.createElement("fieldset", __assign({ ref: ref, disabled: disabled, className: cnSegment('', {
32
+ return (React.createElement("fieldset", __assign({ ref: ref, disabled: disabled, className: cnSegment({
33
33
  size: size,
34
34
  variant: variant,
35
35
  disabled: disabled,
@@ -12,7 +12,7 @@ export var SegmentItem = forwardRef(function (_a, ref) {
12
12
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
13
13
  onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event);
14
14
  };
15
- return (React.createElement("label", __assign({ ref: ref, className: cnSegmentItem('', __assign({ disabled: disabled, selected: selected }, (selected && { selectedColor: selectedColor })), [className]), "data-testid": dataTestId }, labelProps),
15
+ return (React.createElement("label", __assign({ ref: ref, className: cnSegmentItem(__assign({ disabled: disabled, selected: selected }, (selected && { selectedColor: selectedColor })), [className]), "data-testid": dataTestId }, labelProps),
16
16
  Icon && (React.createElement(Icon, { className: cnSegmentItem('Icon'), ref: iconRef, size: iconSize })),
17
17
  children,
18
18
  React.createElement("input", __assign({ disabled: disabled, type: "radio", name: nameProp || name, className: cnSegmentItem('Radio'), onChange: handleChange, checked: selected, value: value, "data-testid": inputTestId }, other, { ref: inputRef })),
@@ -57,6 +57,12 @@
57
57
  color: var(--textfield-placeholder-color);
58
58
  }
59
59
 
60
+ .Select-HiddenLabel {
61
+ visibility: hidden;
62
+ block-size: 0;
63
+ opacity: 0;
64
+ }
65
+
60
66
  .Select_multiline .Select-FieldContainer {
61
67
  overflow: auto;
62
68
  }
@@ -7,10 +7,11 @@ import { useMultiRef } from '../../hooks/useMultiRef';
7
7
  import { useThemeProps } from '../../hooks/useThemeProps';
8
8
  import { cn } from '../../utils/classname';
9
9
  import { isKeys } from '../../utils/isKeys';
10
+ import { isString } from '../../utils/isString';
10
11
  import { DataList, DataListOption } from '../DataList';
11
12
  import { SelectInput } from './components';
12
13
  import { SELECT_DEFAULT_AUTO_FOCUS, SELECT_DEFAULT_DEFAULT_OPEN, SELECT_DEFAULT_DISABLED, SELECT_DEFAULT_FULL_WIDTH, SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_REQUIRED, SELECT_DEFAULT_SIZE, } from './constants';
13
- import { isMultipleParams, isNotMultipleParams } from './helpers';
14
+ import { isMultipleLabel, isMultipleParams, isNotMultipleLabel, isNotMultipleParams, } from './helpers';
14
15
  export var cnSelect = cn('Select');
15
16
  var SelectRender = function (inProps, ref) {
16
17
  var props = useThemeProps({
@@ -19,21 +20,20 @@ var SelectRender = function (inProps, ref) {
19
20
  });
20
21
  var _a = props.size, size = _a === void 0 ? SELECT_DEFAULT_SIZE : _a, _b = props.autoFocus, autoFocus = _b === void 0 ? SELECT_DEFAULT_AUTO_FOCUS : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? SELECT_DEFAULT_FULL_WIDTH : _c, _d = props.disabled, disabled = _d === void 0 ? SELECT_DEFAULT_DISABLED : _d, _e = props.required, required = _e === void 0 ? SELECT_DEFAULT_REQUIRED : _e, _f = props.multiline, multiline = _f === void 0 ? SELECT_DEFAULT_MULTILINE : _f, _g = props.defaultOpen, defaultOpen = _g === void 0 ? SELECT_DEFAULT_DEFAULT_OPEN : _g, valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, renderValueProp = props.renderValue, children = props.children, onClick = props.onClick, onKeyDown = props.onKeyDown, menuProps = props.menuProps, dataListPropsProp = props.dataListProps, bodyProps = props.bodyProps, bodeRefProp = props.bodyRef, onCloseProp = props.onClose, onOpenProp = props.onOpen, openProp = props.open, multiple = props.multiple, other = __rest(props, ["size", "autoFocus", "fullWidth", "disabled", "required", "multiline", "defaultOpen", "value", "defaultValue", "onChange", "renderValue", "children", "onClick", "onKeyDown", "menuProps", "dataListProps", "bodyProps", "bodyRef", "onClose", "onOpen", "open", "multiple"]);
21
22
  var bodyInnerRef = useRef(null);
22
- /** @deprecated props */
23
- var bodyRef = (bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref) || bodeRefProp;
23
+ var bodyRef = useMultiRef([(bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref) || bodeRefProp, bodyInnerRef]);
24
24
  var dataListProps = dataListPropsProp || menuProps;
25
25
  var _h = __read(useControlled({
26
26
  value: valueProp,
27
27
  defaultValue: defaultValue,
28
28
  name: 'Select',
29
29
  state: 'value',
30
- }), 3), valueState = _h[0], setValueState = _h[1], isValueControlled = _h[2];
30
+ }), 2), valueState = _h[0], setValueState = _h[1];
31
31
  var _j = __read(useControlled({
32
32
  value: openProp,
33
33
  defaultValue: defaultOpen,
34
34
  name: 'Select',
35
35
  state: 'open',
36
- }), 3), open = _j[0], setOpen = _j[1], isOpenControlled = _j[2];
36
+ }), 2), open = _j[0], setOpen = _j[1];
37
37
  var currentLabel;
38
38
  var isNotSelectOption = function (child) { return !isValidElement(child) || child.type !== DataListOption; };
39
39
  var resolvedChildren = isFragment(children)
@@ -42,27 +42,23 @@ var SelectRender = function (inProps, ref) {
42
42
  Children.forEach(resolvedChildren, function (child) {
43
43
  var _a, _b;
44
44
  if (!isNotSelectOption(child)) {
45
- var label = typeof child.props.children === 'string'
45
+ var label = isString(child.props.children)
46
46
  ? (_a = child.props.label) !== null && _a !== void 0 ? _a : child.props.children
47
47
  : child.props.label;
48
- var params = {
49
- multiple: multiple,
50
- label: currentLabel,
51
- value: valueState,
52
- };
53
- if (isMultipleParams(params)) {
48
+ var params = __assign(__assign({}, inProps), { multiple: multiple, value: valueState });
49
+ if (isMultipleParams(params) &&
50
+ isMultipleLabel(currentLabel, multiple)) {
54
51
  var selected = (_b = params.value) === null || _b === void 0 ? void 0 : _b.includes(child.props.value);
55
- if (selected) {
56
- currentLabel = __spreadArray(__spreadArray([], __read((params.label || [])), false), [
52
+ if (selected)
53
+ currentLabel = __spreadArray(__spreadArray([], __read((currentLabel || [])), false), [
57
54
  label,
58
55
  ], false);
59
- }
60
56
  }
61
- if (isNotMultipleParams(params)) {
57
+ if (isNotMultipleParams(params) &&
58
+ isNotMultipleLabel(currentLabel, multiple)) {
62
59
  var selected = params.value === child.props.value;
63
- if (selected) {
60
+ if (selected)
64
61
  currentLabel = label;
65
- }
66
62
  }
67
63
  }
68
64
  });
@@ -77,52 +73,40 @@ var SelectRender = function (inProps, ref) {
77
73
  var handleToggle = function () {
78
74
  if (disabled)
79
75
  return;
80
- if (open) {
76
+ if (open)
81
77
  handleClose();
82
- }
83
- else {
78
+ else
84
79
  handleOpen();
85
- }
86
80
  };
87
- var handleClick = function (event) {
88
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
81
+ var handleClick = function (e) {
82
+ onClick === null || onClick === void 0 ? void 0 : onClick(e);
89
83
  handleToggle();
90
84
  };
91
85
  /** Управление элементом контроля через клавиатуру */
92
- var handleKeyDown = function (event) {
93
- if (isKeys(event, ['Space', 'ArrowDown', 'ArrowUp']) && !open) {
94
- event.preventDefault();
86
+ var handleKeyDown = function (e) {
87
+ if (isKeys(e, ['Space', 'ArrowDown', 'ArrowUp']) && !open) {
88
+ e.preventDefault();
95
89
  handleToggle();
96
90
  }
97
- onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
91
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
98
92
  };
99
93
  /** Событие выбора значения из раскрывающегося списка */
100
- var handleChange = function (event, _a) {
94
+ var handleChange = function (e, _a) {
101
95
  var value = _a.value;
102
- if (!isValueControlled || onChange) {
103
- setValueState(value);
104
- }
105
- onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
96
+ setValueState(value);
97
+ onChange === null || onChange === void 0 ? void 0 : onChange(value, e);
106
98
  if (!multiple)
107
99
  handleClose();
108
100
  };
109
101
  /** Представление значение элемента контроля по умолчанию */
110
102
  var renderDefaultValue = function (option) {
111
103
  var _a = option.label, label = _a === void 0 ? '' : _a, _b = option.value, value = _b === void 0 ? '' : _b;
112
- if (!value && value !== 0) {
104
+ if (!value && value !== 0)
113
105
  return null;
114
- }
115
- var params = {
116
- multiple: multiple,
117
- label: label,
118
- value: value,
119
- };
120
- if (isMultipleParams(params)) {
121
- return React.createElement("span", null, __spreadArray([], __read(params.label), false).join(', '));
122
- }
123
- if (isNotMultipleParams(params)) {
124
- return React.createElement("span", null, params.label);
125
- }
106
+ if (isMultipleLabel(label, multiple))
107
+ return React.createElement("span", null, __spreadArray([], __read(label), false).join(', '));
108
+ if (isNotMultipleLabel(label, multiple))
109
+ return React.createElement("span", null, label);
126
110
  return null;
127
111
  };
128
112
  /** Значение для текстового поля компонента */
@@ -132,12 +116,10 @@ var SelectRender = function (inProps, ref) {
132
116
  multiple: multiple,
133
117
  value: valueState,
134
118
  };
135
- if (isMultipleParams(params)) {
136
- return (_a = params.value) === null || _a === void 0 ? void 0 : _a.join(',');
137
- }
138
- if (isNotMultipleParams(params)) {
139
- return params.value;
140
- }
119
+ if (isMultipleParams(params))
120
+ return ((_a = params.value) === null || _a === void 0 ? void 0 : _a.join(',')) || '';
121
+ if (isNotMultipleParams(params))
122
+ return (params === null || params === void 0 ? void 0 : params.value) || '';
141
123
  return '';
142
124
  };
143
125
  /** Представление значение элемента контроля */
@@ -147,22 +129,22 @@ var SelectRender = function (inProps, ref) {
147
129
  /** Устанавливает фокус на элементе контроля
148
130
  * если компонент по умолчанию открыт — defaultOpen={true}
149
131
  * и является неконтролируемым */
150
- if (defaultOpen && !isOpenControlled) {
132
+ if (defaultOpen)
151
133
  (_a = bodyInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
152
- }
153
- }, [open]);
134
+ }, []);
154
135
  useEffect(function () {
155
136
  var _a;
156
137
  /** Автофокус на элементе контроля */
157
- if (autoFocus) {
138
+ if (autoFocus)
158
139
  (_a = bodyInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
159
- }
160
140
  }, [autoFocus]);
161
141
  return (React.createElement(React.Fragment, null,
162
- React.createElement(SelectInput, __assign({ size: size, disabled: disabled, required: required, multiline: multiline, fullWidth: fullWidth }, other, { open: open, onClick: handleClick, onKeyDown: handleKeyDown, value: inputValue(), renderedValue: renderValue({
142
+ React.createElement(SelectInput, __assign({ size: size, disabled: disabled, required: required, multiline: multiline, fullWidth: fullWidth }, other, { open: open, value: inputValue(), onClick: handleClick, onKeyDown: handleKeyDown, renderedValue: renderValue({
163
143
  label: currentLabel,
164
144
  value: valueState,
165
- }), bodyProps: __assign(__assign({}, bodyProps), { ref: useMultiRef([bodyRef, bodyInnerRef]) }), ref: ref })),
166
- React.createElement(DataList, __assign({ equalAnchorWidth: true }, dataListProps, { listProps: __assign({ size: size, role: 'listbox' }, dataListProps === null || dataListProps === void 0 ? void 0 : dataListProps.listProps), open: open, multiple: multiple, selected: (valueState || ''), onSelect: handleChange, anchorRef: bodyInnerRef, onClose: handleClose }), children)));
145
+ }), bodyProps: __assign(__assign({}, bodyProps), { ref: bodyRef }), ref: ref })),
146
+ React.createElement(DataList, __assign({ equalAnchorWidth: true }, dataListProps, { listProps: __assign({ size: size, role: 'listbox' }, dataListProps === null || dataListProps === void 0 ? void 0 : dataListProps.listProps), open: open, multiple: multiple, onClose: handleClose, onSelect: handleChange, anchorRef: bodyInnerRef,
147
+ // TODO: add `null` to `DataListSelected`
148
+ selected: (valueState || null) }), children)));
167
149
  };
168
150
  export var Select = forwardRef(SelectRender);
@@ -11,7 +11,7 @@ import { FieldLabel } from '../../../FieldLabel';
11
11
  import { Fieldset } from '../../../Fieldset';
12
12
  import { SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_SIZE } from '../../constants';
13
13
  import { cnSelect } from '../../index';
14
- import { SelectInputConsumer } from '../SelectConsumer';
14
+ import { SelectInputContextConsumer } from '../SelectInputContextConsumer';
15
15
  export var SelectInput = forwardRef(function (_a, ref) {
16
16
  var _b = _a.size, size = _b === void 0 ? SELECT_DEFAULT_SIZE : _b, _c = _a.multiline, multiline = _c === void 0 ? SELECT_DEFAULT_MULTILINE : _c, open = _a.open, label = _a.label, error = _a.error, id = _a.id, name = _a.name, renderLeft = _a.renderLeft, renderRight = _a.renderRight, renderedValue = _a.renderedValue, fullWidth = _a.fullWidth, disabled = _a.disabled, hint = _a.hint, required = _a.required, className = _a.className, inputProps = _a.inputProps, valueProp = _a.value, placeholderProp = _a.placeholder, defaultValue = _a.defaultValue, onFocus = _a.onFocus, onBlur = _a.onBlur, onClick = _a.onClick, onKeyDown = _a.onKeyDown, labelProps = _a.labelProps, fieldProps = _a.fieldProps, hintProps = _a.hintProps, labelRef = _a.labelRef, inputRef = _a.inputRef, fieldRef = _a.fieldRef, bodyProps = _a.bodyProps, other = __rest(_a, ["size", "multiline", "open", "label", "error", "id", "name", "renderLeft", "renderRight", "renderedValue", "fullWidth", "disabled", "hint", "required", "className", "inputProps", "value", "placeholder", "defaultValue", "onFocus", "onBlur", "onClick", "onKeyDown", "labelProps", "fieldProps", "hintProps", "labelRef", "inputRef", "fieldRef", "bodyProps"]);
17
17
  var _d = __read(useBoolean(), 2), focused = _d[0], _e = _d[1], on = _e.on, off = _e.off;
@@ -24,14 +24,13 @@ export var SelectInput = forwardRef(function (_a, ref) {
24
24
  off();
25
25
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
26
26
  }, [onBlur]);
27
- return (React.createElement(FieldControl, __assign({ error: error, size: size, filled: filled, focused: focused, disabled: disabled, fullWidth: fullWidth, required: required }, other, { className: cnSelect({
28
- multiline: multiline,
29
- }, [className]), ref: ref }),
30
- React.createElement("div", __assign({ role: "button", "aria-haspopup": "listbox", "aria-expanded": open }, bodyProps, { onClick: onClick, onKeyDown: onKeyDown, tabIndex: disabled ? -1 : 0, onFocus: handleFocus, onBlur: handleBlur, className: cnSelect('Body', [bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.className]) }),
27
+ return (React.createElement(FieldControl, __assign({ size: size, error: error, filled: filled, focused: focused, disabled: disabled, required: required, fullWidth: fullWidth }, other, { ref: ref, className: cnSelect({ multiline: multiline }, [className]) }),
28
+ React.createElement("div", __assign({ role: "button", "aria-expanded": open, "aria-haspopup": "listbox" }, bodyProps, { onClick: onClick, onBlur: handleBlur, onKeyDown: onKeyDown, onFocus: handleFocus, tabIndex: disabled ? -1 : 0, className: cnSelect('Body', [bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.className]) }),
31
29
  React.createElement(FieldIcon, { icon: renderLeft, className: cnSelect('RenderLeft') }),
32
30
  React.createElement("div", { className: cnSelect('FieldContainer') },
31
+ React.createElement("div", { className: cnSelect('HiddenLabel'), "aria-hidden": true }, label),
33
32
  React.createElement(FieldLabel, __assign({}, labelProps, { className: cnSelect('Label', [labelProps === null || labelProps === void 0 ? void 0 : labelProps.className]), ref: (labelProps === null || labelProps === void 0 ? void 0 : labelProps.ref) || labelRef }), label),
34
- React.createElement(SelectInputConsumer, { id: id, name: name, value: valueProp, defaultValue: defaultValue, placeholder: placeholderProp, fieldProps: fieldProps, inputProps: inputProps, fieldRef: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.ref) || fieldRef, inputRef: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref) || inputRef, renderedValue: renderedValue })),
33
+ React.createElement(SelectInputContextConsumer, { id: id, name: name, value: valueProp, fieldProps: fieldProps, inputProps: inputProps, defaultValue: defaultValue, renderedValue: renderedValue, placeholder: placeholderProp, fieldRef: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.ref) || fieldRef, inputRef: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref) || inputRef })),
35
34
  React.createElement(FieldIcon, { icon: renderRight, className: cnSelect('RenderRight') }),
36
35
  React.createElement(FieldIcon, { icon: ChevronDownIcon, className: classnames(cnSelect('RenderRight'), cnSelect('DropDownIcon', { open: open })) }),
37
36
  React.createElement(Fieldset, { className: cnSelect('Fieldset') })),
@@ -0,0 +1,5 @@
1
+ import type { FC } from 'react';
2
+ import type { SelectInputProps } from '../SelectInput';
3
+ type SelectInputContextConsumerProps = Pick<SelectInputProps, 'value' | 'placeholder' | 'defaultValue' | 'id' | 'name' | 'fieldProps' | 'fieldRef' | 'inputProps' | 'inputRef' | 'renderedValue'>;
4
+ export declare const SelectInputContextConsumer: FC<SelectInputContextConsumerProps>;
5
+ export {};
@@ -2,7 +2,7 @@ import { __assign, __read } from "tslib";
2
2
  import React from 'react';
3
3
  import { useFieldControl } from '../../../FieldControl';
4
4
  import { cnSelect } from '../../index';
5
- export var SelectInputConsumer = function (_a) {
5
+ export var SelectInputContextConsumer = function (_a) {
6
6
  var id = _a.id, name = _a.name, _b = _a.value, valueProp = _b === void 0 ? '' : _b, placeholderProp = _a.placeholder, defaultValue = _a.defaultValue, inputProps = _a.inputProps, inputRef = _a.inputRef, fieldRef = _a.fieldRef, fieldProps = _a.fieldProps, renderedValue = _a.renderedValue;
7
7
  var context = useFieldControl();
8
8
  var _c = __read(context, 1), fieldControl = _c[0];
@@ -0,0 +1 @@
1
+ export * from './SelectInputContextConsumer';
@@ -0,0 +1 @@
1
+ export * from './SelectInputContextConsumer';
@@ -1,8 +1,5 @@
1
- import type { SelectPropLabel, SelectProps, SelectPropValue } from '../types';
2
- export type SelectedParams<MULTIPLE extends boolean = false> = {
3
- multiple: SelectProps<MULTIPLE>['multiple'];
4
- value?: SelectPropValue<MULTIPLE>;
5
- label?: SelectPropLabel<MULTIPLE>;
6
- };
7
- export declare const isMultipleParams: (params: SelectedParams<boolean>) => params is SelectedParams<true>;
8
- export declare const isNotMultipleParams: (params: SelectedParams<boolean>) => params is SelectedParams<false>;
1
+ import type { SelectProps, SelectLabel } from '../types';
2
+ export declare const isMultipleParams: (params: SelectProps<boolean>) => params is SelectProps<true>;
3
+ export declare const isNotMultipleParams: (params: SelectProps<boolean>) => params is SelectProps<false>;
4
+ export declare const isMultipleLabel: (_label: SelectLabel<boolean>, multiple?: boolean) => _label is SelectLabel<true>;
5
+ export declare const isNotMultipleLabel: (_label: SelectLabel<boolean>, multiple?: boolean) => _label is SelectLabel<false>;
@@ -1,2 +1,4 @@
1
1
  export var isMultipleParams = function (params) { return !!params.multiple; };
2
2
  export var isNotMultipleParams = function (params) { return !params.multiple; };
3
+ export var isMultipleLabel = function (_label, multiple) { return !!multiple; };
4
+ export var isNotMultipleLabel = function (_label, multiple) { return !multiple; };
@@ -1,45 +1,37 @@
1
1
  import type { ReactElement, ReactNode, SyntheticEvent } from 'react';
2
2
  import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
3
3
  import type { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
4
- import type { DataListBaseProps, DataListSelected } from '../DataList';
4
+ import type { DataListBaseProps, DataListOptionProps, DataListSelected } from '../DataList';
5
5
  import type { SelectInputProps, SelectInputRef } from './components';
6
- export type SelectSizeVariant = FormElementSizeVariant;
7
- export type SelectLabel = string | number | undefined;
8
- export type SelectPropLabel<MULTIPLE extends boolean> = (MULTIPLE extends true ? SelectLabel[] : SelectLabel) | undefined;
9
- export type SelectPropValue<MULTIPLE extends boolean> = DataListSelected<MULTIPLE>;
10
- export type SelectedOptionProp<MULTIPLE extends boolean> = {
11
- label?: SelectPropLabel<MULTIPLE>;
6
+ export type SelectPropSize = FormElementSizeVariant;
7
+ export type SelectLabel<MULTIPLE extends boolean = false> = (MULTIPLE extends true ? DataListOptionProps['label'][] : DataListOptionProps['label']) | undefined;
8
+ export type SelectPropValue<MULTIPLE extends boolean = false> = DataListSelected<MULTIPLE>;
9
+ export type SelectPropOnChange<MULTIPLE extends boolean = false> = (value: SelectPropValue<MULTIPLE>, e: SyntheticEvent | KeyboardEvent) => void;
10
+ export type SelectedOption<MULTIPLE extends boolean = false> = {
11
+ label?: SelectLabel<MULTIPLE>;
12
12
  value?: SelectPropValue<MULTIPLE>;
13
13
  };
14
- export type SelectRenderValue<MULTIPLE extends boolean> = (option: SelectedOptionProp<MULTIPLE>) => ReactNode | null;
15
- type SelectOpenControlledProps = {
16
- /** Текущее состояние списка. Если `true`, список отображается. */
17
- open?: boolean;
18
- /** Состояние открытие по умолчанию (неконтролируемый компонент) */
19
- defaultOpen?: never;
20
- };
21
- type SelectOpenUncontrolledProps = {
22
- /** Текущее состояние списка. Если `true`, список отображается. */
23
- open?: never;
24
- /** Состояние открытие по умолчанию (неконтролируемый компонент) */
25
- defaultOpen: boolean;
26
- };
27
- type SelectControlledProps<MULTIPLE extends boolean = false> = {
28
- /** Выбранное значение */
29
- value?: SelectPropValue<MULTIPLE>;
30
- /** Обработчик события на изменение выбранного значения */
31
- onChange?: (value: SelectPropValue<MULTIPLE>, e: SyntheticEvent | KeyboardEvent) => void;
32
- /** Значение поля по умолчанию (неконтролируемый компонент) */
33
- defaultValue?: never;
34
- };
35
- type SelectUncontrolledProps<MULTIPLE extends boolean = false> = {
36
- /** Значение поля по умолчанию (неконтролируемый компонент) */
37
- defaultValue: SelectPropValue<MULTIPLE>;
38
- /** Выбранное значение */
39
- value?: never;
40
- /** Обработчик события на изменение выбранного значения */
41
- onChange?: never;
42
- };
14
+ export type SelectPropRenderValue<MULTIPLE extends boolean = false> = (option: SelectedOption<MULTIPLE>) => ReactNode | null;
15
+ /**
16
+ * @deprecated
17
+ * Use the `SelectRenderValueProp` type to replace it.
18
+ * */
19
+ export type SelectRenderValue<MULTIPLE extends boolean = false> = SelectPropRenderValue<MULTIPLE>;
20
+ /**
21
+ * @deprecated
22
+ * Use the `SelectLabel` type to replace it.
23
+ * */
24
+ export type SelectPropLabel<MULTIPLE extends boolean = false> = SelectLabel<MULTIPLE>;
25
+ /**
26
+ * @deprecated
27
+ * Use the `SelectSizeProp` type to replace it.
28
+ * */
29
+ export type SelectSizeVariant = SelectPropSize;
30
+ /**
31
+ * @deprecated
32
+ * Use the `SelectedPropOption` type to replace it.
33
+ * */
34
+ export type SelectedOptionProp<MULTIPLE extends boolean = false> = SelectedOption<MULTIPLE>;
43
35
  type SelectPropsDeprecated<MULTIPLE extends boolean = false> = {
44
36
  /**
45
37
  * Свойства компонента Menu
@@ -52,21 +44,31 @@ export type SelectProps<MULTIPLE extends boolean = false> = ExtendableComponentP
52
44
  /** Если `true` устанавливает автофокус */
53
45
  autoFocus?: boolean;
54
46
  /** Размер компонента */
55
- size?: SelectSizeVariant;
47
+ size?: SelectPropSize;
48
+ /** Текущее состояние списка. Если `true`, список отображается. */
49
+ open?: boolean;
50
+ /** Состояние открытие по умолчанию (неконтролируемый компонент) */
51
+ defaultOpen?: boolean;
52
+ /** Выбранное значение */
53
+ value?: SelectPropValue<MULTIPLE>;
54
+ /** Обработчик события на изменение выбранного значения */
55
+ onChange?: SelectPropOnChange<MULTIPLE>;
56
+ /** Значение поля по умолчанию (неконтролируемый компонент) */
57
+ defaultValue?: SelectPropValue<MULTIPLE>;
56
58
  /** Рендер-функция для выбранного значения */
57
- renderValue?: SelectRenderValue<MULTIPLE>;
59
+ renderValue?: SelectPropRenderValue<MULTIPLE>;
58
60
  /** Содержимое компонента */
59
61
  children?: ReactNode;
60
62
  /** Свойства компонента DataList */
61
63
  dataListProps?: Partial<Omit<DataListBaseProps<MULTIPLE>, 'onClose' | 'open' | 'anchorRef' | 'multiple' | 'selected' | 'onSelect'>>;
62
64
  /** Функция обратного вызова, которая будет вызвана когда компонент запрашивает закрытие */
63
- onClose?: () => void;
65
+ onClose?(): void;
64
66
  /** Функция обратного вызова, которая будет вызвана когда компонент запрашивает открытие */
65
- onOpen?: () => void;
67
+ onOpen?(): void;
66
68
  /** Если `true` из списка можно выбрать несколько вариантов */
67
69
  multiple?: MULTIPLE;
68
70
  /** Идентификатор компонента для тестов */
69
71
  'data-testid'?: string;
70
- } & Pick<SelectInputProps, 'id' | 'name' | 'label' | 'placeholder' | 'disabled' | 'required' | 'disableStroke' | 'error' | 'hint' | 'fullWidth' | 'renderLeft' | 'renderRight' | 'multiline' | 'inputProps' | 'labelProps' | 'hintProps' | 'bodyProps' | 'inputRef' | 'labelRef' | 'bodyRef'> & SelectPropsDeprecated<MULTIPLE> & (SelectControlledProps<MULTIPLE> | SelectUncontrolledProps<MULTIPLE>) & (SelectOpenControlledProps | SelectOpenUncontrolledProps), 'div'>;
72
+ } & Pick<SelectInputProps, 'id' | 'name' | 'label' | 'placeholder' | 'disabled' | 'required' | 'disableStroke' | 'error' | 'hint' | 'fullWidth' | 'renderLeft' | 'renderRight' | 'multiline' | 'inputProps' | 'labelProps' | 'hintProps' | 'bodyProps' | 'inputRef' | 'labelRef' | 'bodyRef'> & SelectPropsDeprecated<MULTIPLE>, 'div'>;
71
73
  export type SelectComponent = <MULTIPLE extends boolean = false>(props: SelectProps<MULTIPLE>) => ReactElement | null;
72
74
  export {};
@@ -38,6 +38,6 @@
38
38
  }
39
39
 
40
40
  100% {
41
- background-position: 100vi;
41
+ background-position: 100vw;
42
42
  }
43
43
  }
@@ -1,6 +1,6 @@
1
1
  import type { ElementType, ReactElement } from 'react';
2
2
  import type { ResponsiveValue } from '../../types/ResponsiveValue';
3
- import type { PolymorphicComponentPropsWithoutRef } from '../../utils/polymorphicComponentWithRef';
3
+ import type { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
4
4
  export declare const stackGapVariant: readonly ["0", "xs", "s", "m", "l", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "8xl"];
5
5
  export declare const stackDirectionVariant: readonly ["row", "column", "rowReverse", "columnReverse"];
6
6
  export declare const stackAlignVariant: readonly ["center", "start", "end", "baseline"];
@@ -27,4 +27,4 @@ export type StackBaseProps = {
27
27
  /** React-элемент для разделителя между дочерними компонентами стека */
28
28
  divider?: ReactElement;
29
29
  };
30
- export type StackProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithoutRef<StackBaseProps, As>;
30
+ export type StackProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithRef<StackBaseProps, As>;
@@ -3,13 +3,13 @@ export interface UseClickOutside {
3
3
  /** Массив refs для которых необходимо игнорировать внешние клики */
4
4
  refs?: ReadonlyArray<RefObject<HTMLElement>>;
5
5
  /** Функция обратного вызова которая будет вызвана при внешнем клике */
6
- handler?: () => void;
6
+ handler?(event: MouseEvent): void;
7
7
  /** Событие клика */
8
8
  eventName?: 'mousedown' | 'mouseup' | 'click';
9
- /** вкл. / выкл */
9
+ /** вкл. / выкл. */
10
10
  active?: boolean;
11
11
  /** Опции для метода addEventListener (третий аргумент) */
12
12
  options?: AddEventListenerOptions;
13
13
  }
14
- /** Хук отслеживающий клики за пределами указанных dom-элементов */
15
- export declare function useClickOutside({ refs, handler, active, eventName, options, }: UseClickOutside): void;
14
+ /** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */
15
+ export declare function useClickOutside({ refs, handler, options, active, eventName, }: UseClickOutside): void;
@@ -1,21 +1,16 @@
1
- import { useRef, useEffect } from 'react';
2
1
  import { useEventListener } from '../useEventListener';
3
- /** Хук отслеживающий клики за пределами указанных dom-элементов */
2
+ import { useMutableRef } from '../useMutableRef';
3
+ /** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */
4
4
  export function useClickOutside(_a) {
5
- var refs = _a.refs, handler = _a.handler, _b = _a.active, active = _b === void 0 ? true : _b, _c = _a.eventName, eventName = _c === void 0 ? 'mousedown' : _c, options = _a.options;
6
- var savedRefs = useRef(refs);
7
- useEffect(function () {
8
- savedRefs.current = refs;
9
- }, [refs]);
5
+ var refs = _a.refs, handler = _a.handler, options = _a.options, _b = _a.active, active = _b === void 0 ? true : _b, _c = _a.eventName, eventName = _c === void 0 ? 'mousedown' : _c;
6
+ var savedRefs = useMutableRef(refs);
10
7
  useEventListener({
11
8
  eventName: eventName,
12
9
  handler: function (event) {
13
10
  var _a;
14
- var target = event.target;
15
- var isClickOutsideRefs = (_a = savedRefs.current) === null || _a === void 0 ? void 0 : _a.every(function (ref) { var _a; return !((_a = ref.current) === null || _a === void 0 ? void 0 : _a.contains(target)); });
16
- if (isClickOutsideRefs && handler) {
17
- handler();
18
- }
11
+ var isClickOutsideRefs = (_a = savedRefs.current) === null || _a === void 0 ? void 0 : _a.every(function (ref) { return ref.current && !event.composedPath().includes(ref.current); });
12
+ if (isClickOutsideRefs)
13
+ handler === null || handler === void 0 ? void 0 : handler(event);
19
14
  },
20
15
  active: active,
21
16
  options: options,
@@ -1 +1,2 @@
1
1
  export * from './monthDiff';
2
+ export * from './isValidDate';
@@ -1 +1,2 @@
1
1
  export * from './monthDiff';
2
+ export * from './isValidDate';
@@ -0,0 +1 @@
1
+ export * from './isValidDate';
@@ -0,0 +1 @@
1
+ export * from './isValidDate';
@@ -0,0 +1 @@
1
+ export declare const isValidDate: (dateString: string) => boolean;
@@ -0,0 +1,3 @@
1
+ export var isValidDate = function (dateString) {
2
+ return !Number.isNaN(Date.parse(dateString));
3
+ };
@@ -1 +1 @@
1
- export declare const monthDiff: (d1: Date, d2: Date) => number;
1
+ export declare const monthDiff: (d1?: Date, d2?: Date) => number;