@skbkontur/react-ui 6.1.6-fe902.0 → 6.1.7-1c902.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 (372) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/components/Checkbox/Checkbox.d.ts +5 -0
  3. package/components/Checkbox/Checkbox.js +42 -21
  4. package/components/Checkbox/Checkbox.js.map +1 -1
  5. package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
  6. package/components/Checkbox/Checkbox.mixins.js +6 -0
  7. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  8. package/components/Checkbox/Checkbox.styles.d.ts +7 -0
  9. package/components/Checkbox/Checkbox.styles.js +23 -2
  10. package/components/Checkbox/Checkbox.styles.js.map +1 -1
  11. package/components/CurrencyInput/CurrencyHelper.d.ts +1 -2
  12. package/components/CurrencyInput/CurrencyHelper.js +32 -28
  13. package/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  14. package/components/CurrencyInput/CurrencyInputHelper.js +1 -1
  15. package/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  16. package/components/DateInput/DateInput.js +4 -1
  17. package/components/DateInput/DateInput.js.map +1 -1
  18. package/components/FileUploader/FileUploaderFile.d.ts +1 -1
  19. package/components/FileUploader/FileUploaderFile.js +1 -1
  20. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  21. package/components/FxInput/FxInput.d.ts +1 -1
  22. package/components/FxInput/FxInput.js.map +1 -1
  23. package/components/Group/Group.js +3 -2
  24. package/components/Group/Group.js.map +1 -1
  25. package/components/Input/Input.d.ts +1 -1
  26. package/components/Input/Input.js.map +1 -1
  27. package/components/MaskedInput/MaskedInput.d.ts +2 -6
  28. package/components/MaskedInput/MaskedInput.js +126 -10
  29. package/components/MaskedInput/MaskedInput.js.map +1 -1
  30. package/components/MaskedInput/index.d.ts +0 -1
  31. package/components/MaskedInput/index.js +0 -1
  32. package/components/MaskedInput/index.js.map +1 -1
  33. package/components/MenuItem/MenuItem.js +1 -0
  34. package/components/MenuItem/MenuItem.js.map +1 -1
  35. package/components/MenuItem/MenuItem.styles.d.ts +1 -0
  36. package/components/MenuItem/MenuItem.styles.js +10 -7
  37. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  38. package/components/MiniModal/MiniModal.d.ts +0 -9
  39. package/components/MiniModal/MiniModal.js +0 -9
  40. package/components/MiniModal/MiniModal.js.map +1 -1
  41. package/components/Modal/Modal.d.ts +0 -5
  42. package/components/Modal/Modal.js +0 -5
  43. package/components/Modal/Modal.js.map +1 -1
  44. package/components/Radio/Radio.d.ts +4 -0
  45. package/components/Radio/Radio.js +20 -1
  46. package/components/Radio/Radio.js.map +1 -1
  47. package/components/Radio/Radio.mixins.d.ts +2 -0
  48. package/components/Radio/Radio.mixins.js +6 -0
  49. package/components/Radio/Radio.mixins.js.map +1 -1
  50. package/components/Radio/Radio.styles.d.ts +6 -0
  51. package/components/Radio/Radio.styles.js +22 -4
  52. package/components/Radio/Radio.styles.js.map +1 -1
  53. package/components/Select/Select.d.ts +1 -0
  54. package/components/Select/Select.js +12 -2
  55. package/components/Select/Select.js.map +1 -1
  56. package/components/Switcher/Switcher.d.ts +3 -3
  57. package/components/Switcher/Switcher.js +1 -1
  58. package/components/Switcher/Switcher.js.map +1 -1
  59. package/components/Tabs/Tab.d.ts +4 -5
  60. package/components/Tabs/Tab.js +0 -1
  61. package/components/Tabs/Tab.js.map +1 -1
  62. package/components/Tabs/Tabs.d.ts +2 -2
  63. package/components/Tabs/Tabs.js +1 -1
  64. package/components/Tabs/Tabs.js.map +1 -1
  65. package/components/TimePicker/TimeClockIcon.d.ts +3 -0
  66. package/components/TimePicker/TimeClockIcon.js +11 -0
  67. package/components/TimePicker/TimeClockIcon.js.map +1 -0
  68. package/components/TimePicker/TimePicker.d.ts +137 -0
  69. package/components/TimePicker/TimePicker.js +648 -0
  70. package/components/TimePicker/TimePicker.js.map +1 -0
  71. package/components/TimePicker/TimePicker.styles.d.ts +11 -0
  72. package/components/TimePicker/TimePicker.styles.js +36 -0
  73. package/components/TimePicker/TimePicker.styles.js.map +1 -0
  74. package/components/TimePicker/TimePickerItems.d.ts +20 -0
  75. package/components/TimePicker/TimePickerItems.js +108 -0
  76. package/components/TimePicker/TimePickerItems.js.map +1 -0
  77. package/components/TimePicker/TimePickerMobilePopup.d.ts +45 -0
  78. package/components/TimePicker/TimePickerMobilePopup.js +45 -0
  79. package/components/TimePicker/TimePickerMobilePopup.js.map +1 -0
  80. package/components/TimePicker/TimePickerPopup.d.ts +23 -0
  81. package/components/TimePicker/TimePickerPopup.js +18 -0
  82. package/components/TimePicker/TimePickerPopup.js.map +1 -0
  83. package/components/TimePicker/helpers/TimePicker.constants.d.ts +24 -0
  84. package/components/TimePicker/helpers/TimePicker.constants.js +33 -0
  85. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -0
  86. package/components/TimePicker/helpers/TimePicker.editing.d.ts +23 -0
  87. package/components/TimePicker/helpers/TimePicker.editing.js +101 -0
  88. package/components/TimePicker/helpers/TimePicker.editing.js.map +1 -0
  89. package/components/TimePicker/helpers/TimePicker.layout.d.ts +6 -0
  90. package/components/TimePicker/helpers/TimePicker.layout.js +49 -0
  91. package/components/TimePicker/helpers/TimePicker.layout.js.map +1 -0
  92. package/components/TimePicker/helpers/TimePicker.selection.d.ts +5 -0
  93. package/components/TimePicker/helpers/TimePicker.selection.js +23 -0
  94. package/components/TimePicker/helpers/TimePicker.selection.js.map +1 -0
  95. package/components/TimePicker/helpers/TimePicker.shared.d.ts +82 -0
  96. package/components/TimePicker/helpers/TimePicker.shared.js +94 -0
  97. package/components/TimePicker/helpers/TimePicker.shared.js.map +1 -0
  98. package/components/TimePicker/helpers/TimePicker.value.d.ts +59 -0
  99. package/components/TimePicker/helpers/TimePicker.value.js +175 -0
  100. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -0
  101. package/components/TimePicker/helpers/scrollSelectedItemIntoView.d.ts +4 -0
  102. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js +24 -0
  103. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js.map +1 -0
  104. package/components/TimePicker/helpers/validateTimePicker.d.ts +8 -0
  105. package/components/TimePicker/helpers/validateTimePicker.js +17 -0
  106. package/components/TimePicker/helpers/validateTimePicker.js.map +1 -0
  107. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +18 -0
  108. package/components/TimePicker/hooks/useTimePickerDropdown.js +85 -0
  109. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +1 -0
  110. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +18 -0
  111. package/components/TimePicker/hooks/useTimePickerSelection.js +66 -0
  112. package/components/TimePicker/hooks/useTimePickerSelection.js.map +1 -0
  113. package/components/TimePicker/hooks/useTimePickerValue.d.ts +27 -0
  114. package/components/TimePicker/hooks/useTimePickerValue.js +76 -0
  115. package/components/TimePicker/hooks/useTimePickerValue.js.map +1 -0
  116. package/components/TimePicker/index.d.ts +2 -0
  117. package/components/TimePicker/index.js +2 -0
  118. package/components/TimePicker/index.js.map +1 -0
  119. package/components/TimePicker/locale/index.d.ts +4 -0
  120. package/components/TimePicker/locale/index.js +9 -0
  121. package/components/TimePicker/locale/index.js.map +1 -0
  122. package/components/TimePicker/locale/locales/en.d.ts +2 -0
  123. package/components/TimePicker/locale/locales/en.js +5 -0
  124. package/components/TimePicker/locale/locales/en.js.map +1 -0
  125. package/components/TimePicker/locale/locales/ru.d.ts +2 -0
  126. package/components/TimePicker/locale/locales/ru.js +5 -0
  127. package/components/TimePicker/locale/locales/ru.js.map +1 -0
  128. package/components/TimePicker/locale/types.d.ts +4 -0
  129. package/components/TimePicker/locale/types.js.map +1 -0
  130. package/components/Toggle/Toggle.d.ts +5 -0
  131. package/components/Toggle/Toggle.js +46 -22
  132. package/components/Toggle/Toggle.js.map +1 -1
  133. package/components/Toggle/Toggle.mixins.d.ts +2 -0
  134. package/components/Toggle/Toggle.mixins.js +6 -0
  135. package/components/Toggle/Toggle.mixins.js.map +1 -1
  136. package/components/Toggle/Toggle.styles.d.ts +9 -0
  137. package/components/Toggle/Toggle.styles.js +29 -2
  138. package/components/Toggle/Toggle.styles.js.map +1 -1
  139. package/components/Token/Token.d.ts +1 -1
  140. package/components/Token/Token.js +1 -1
  141. package/components/Token/Token.js.map +1 -1
  142. package/components/TokenInput/TokenInput.d.ts +1 -1
  143. package/components/TokenInput/TokenInput.js +1 -1
  144. package/components/TokenInput/TokenInput.js.map +1 -1
  145. package/index.d.ts +1 -0
  146. package/index.js +1 -0
  147. package/index.js.map +1 -1
  148. package/internal/Menu/Menu.d.ts +5 -0
  149. package/internal/Menu/Menu.js +21 -0
  150. package/internal/Menu/Menu.js.map +1 -1
  151. package/internal/NativeTimeInput/NativeTimeInput.d.ts +16 -0
  152. package/internal/NativeTimeInput/NativeTimeInput.js +25 -0
  153. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -0
  154. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
  155. package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
  156. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
  157. package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +7 -0
  158. package/internal/NativeTimeInput/NativeTimeInput.utils.js +28 -0
  159. package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +1 -0
  160. package/internal/NativeTimeInput/index.d.ts +1 -0
  161. package/internal/NativeTimeInput/index.js +2 -0
  162. package/internal/NativeTimeInput/index.js.map +1 -0
  163. package/internal/TimeInput/TimeFragments.d.ts +15 -0
  164. package/internal/TimeInput/TimeFragments.js +72 -0
  165. package/internal/TimeInput/TimeFragments.js.map +1 -0
  166. package/internal/TimeInput/TimeFragments.styles.d.ts +12 -0
  167. package/internal/TimeInput/TimeFragments.styles.js +43 -0
  168. package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
  169. package/internal/TimeInput/TimeInput.d.ts +22 -0
  170. package/internal/TimeInput/TimeInput.js +103 -0
  171. package/internal/TimeInput/TimeInput.js.map +1 -0
  172. package/{components/MaskedInputV2/MaskedInputV2.styles.d.ts → internal/TimeInput/TimeInput.styles.d.ts} +3 -4
  173. package/internal/TimeInput/TimeInput.styles.js +21 -0
  174. package/internal/TimeInput/TimeInput.styles.js.map +1 -0
  175. package/internal/TimeInput/index.d.ts +1 -0
  176. package/internal/TimeInput/index.js +2 -0
  177. package/internal/TimeInput/index.js.map +1 -0
  178. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +2 -0
  179. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +20 -0
  180. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +1 -0
  181. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +2 -0
  182. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +20 -0
  183. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +1 -0
  184. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +2 -0
  185. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +20 -0
  186. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +1 -0
  187. package/internal/themes/BasicTheme.d.ts +65 -0
  188. package/internal/themes/BasicTheme.js +253 -0
  189. package/internal/themes/BasicTheme.js.map +1 -1
  190. package/internal/themes/DarkTheme6_0.js +1 -0
  191. package/internal/themes/DarkTheme6_0.js.map +1 -1
  192. package/lib/events/keyboard/KeyboardEventCodes.d.ts +0 -2
  193. package/lib/events/keyboard/KeyboardEventCodes.js +0 -2
  194. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  195. package/lib/events/keyboard/KeyboardMapKeys.js +0 -2
  196. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  197. package/lib/events/keyboard/identifiers.d.ts +0 -2
  198. package/lib/events/keyboard/identifiers.js +0 -6
  199. package/lib/events/keyboard/identifiers.js.map +1 -1
  200. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +0 -1
  201. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +0 -1
  202. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  203. package/lib/locale/types.d.ts +2 -0
  204. package/lib/locale/types.js.map +1 -1
  205. package/lib/utils.d.ts +2 -0
  206. package/lib/utils.js +1 -0
  207. package/lib/utils.js.map +1 -1
  208. package/package.json +9 -4
  209. package/components/MaskedInput/MaskedInputLegacy.d.ts +0 -3
  210. package/components/MaskedInput/MaskedInputLegacy.js +0 -142
  211. package/components/MaskedInput/MaskedInputLegacy.js.map +0 -1
  212. package/components/MaskedInputV2/MaskedInputV2.d.ts +0 -62
  213. package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +0 -9
  214. package/components/MaskedInputV2/MaskedInputV2.helpers.js +0 -17
  215. package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +0 -1
  216. package/components/MaskedInputV2/MaskedInputV2.js +0 -307
  217. package/components/MaskedInputV2/MaskedInputV2.js.map +0 -1
  218. package/components/MaskedInputV2/MaskedInputV2.phone.d.ts +0 -28
  219. package/components/MaskedInputV2/MaskedInputV2.phone.js +0 -38
  220. package/components/MaskedInputV2/MaskedInputV2.phone.js.map +0 -1
  221. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
  222. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  223. package/components/MaskedInputV2/index.d.ts +0 -2
  224. package/components/MaskedInputV2/index.js +0 -3
  225. package/components/MaskedInputV2/index.js.map +0 -1
  226. package/components/MaskedInputV2/internal/MaskOverlay.d.ts +0 -19
  227. package/components/MaskedInputV2/internal/MaskOverlay.js +0 -54
  228. package/components/MaskedInputV2/internal/MaskOverlay.js.map +0 -1
  229. package/components/MaskedInputV2/internal/MaskedCore.d.ts +0 -8
  230. package/components/MaskedInputV2/internal/MaskedCore.js +0 -186
  231. package/components/MaskedInputV2/internal/MaskedCore.js.map +0 -1
  232. package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +0 -37
  233. package/components/MaskedInputV2/internal/MaskedCore.types.js +0 -2
  234. package/components/MaskedInputV2/internal/MaskedCore.types.js.map +0 -1
  235. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  236. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
  237. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  238. package/components/MaskedInputV2/internal/buildSlotMap.d.ts +0 -11
  239. package/components/MaskedInputV2/internal/buildSlotMap.js +0 -37
  240. package/components/MaskedInputV2/internal/buildSlotMap.js.map +0 -1
  241. package/components/MaskedInputV2/internal/computeMaskAlignPadding.d.ts +0 -6
  242. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js +0 -47
  243. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js.map +0 -1
  244. package/components/MaskedInputV2/internal/computePasteMaskedCursor.d.ts +0 -3
  245. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js +0 -11
  246. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js.map +0 -1
  247. package/components/MaskedInputV2/internal/extractRaw.d.ts +0 -10
  248. package/components/MaskedInputV2/internal/extractRaw.js +0 -16
  249. package/components/MaskedInputV2/internal/extractRaw.js.map +0 -1
  250. package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +0 -10
  251. package/components/MaskedInputV2/internal/findNearestRawLeft.js +0 -18
  252. package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +0 -1
  253. package/components/MaskedInputV2/internal/helpers.d.ts +0 -8
  254. package/components/MaskedInputV2/internal/helpers.js +0 -9
  255. package/components/MaskedInputV2/internal/helpers.js.map +0 -1
  256. package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +0 -37
  257. package/components/MaskedInputV2/internal/maskedCoreClipboard.js +0 -52
  258. package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +0 -1
  259. package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +0 -28
  260. package/components/MaskedInputV2/internal/maskedCoreDeletion.js +0 -70
  261. package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +0 -1
  262. package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +0 -38
  263. package/components/MaskedInputV2/internal/maskedCoreInputChange.js +0 -49
  264. package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +0 -1
  265. package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +0 -13
  266. package/components/MaskedInputV2/internal/maskedCoreNavigation.js +0 -79
  267. package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +0 -1
  268. package/components/MaskedInputV2/internal/measureInputTextWidth.d.ts +0 -2
  269. package/components/MaskedInputV2/internal/measureInputTextWidth.js +0 -30
  270. package/components/MaskedInputV2/internal/measureInputTextWidth.js.map +0 -1
  271. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.d.ts +0 -2
  272. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js +0 -25
  273. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js.map +0 -1
  274. package/components/MaskedInputV2/internal/showOverlay.d.ts +0 -3
  275. package/components/MaskedInputV2/internal/showOverlay.js +0 -16
  276. package/components/MaskedInputV2/internal/showOverlay.js.map +0 -1
  277. package/components/MaskedInputV2/internal/stripMaskChars.d.ts +0 -11
  278. package/components/MaskedInputV2/internal/stripMaskChars.js +0 -20
  279. package/components/MaskedInputV2/internal/stripMaskChars.js.map +0 -1
  280. package/components/MaskedInputV2/internal/types.d.ts +0 -74
  281. package/components/MaskedInputV2/internal/types.js.map +0 -1
  282. package/components/MaskedInputV2/internal/useInputOverflow.d.ts +0 -4
  283. package/components/MaskedInputV2/internal/useInputOverflow.js +0 -34
  284. package/components/MaskedInputV2/internal/useInputOverflow.js.map +0 -1
  285. package/components/MaskedInputV2/internal/useMaskAlignPadding.d.ts +0 -2
  286. package/components/MaskedInputV2/internal/useMaskAlignPadding.js +0 -33
  287. package/components/MaskedInputV2/internal/useMaskAlignPadding.js.map +0 -1
  288. package/components/MaskedInputV2/internal/useMaskEngine.d.ts +0 -42
  289. package/components/MaskedInputV2/internal/useMaskEngine.js +0 -84
  290. package/components/MaskedInputV2/internal/useMaskEngine.js.map +0 -1
  291. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +0 -34
  292. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +0 -335
  293. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +0 -1
  294. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +0 -16
  295. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +0 -59
  296. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +0 -1
  297. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +0 -20
  298. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +0 -106
  299. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +0 -1
  300. package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +0 -17
  301. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +0 -49
  302. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +0 -1
  303. package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +0 -95
  304. package/components/MaskedInputV2/react-imask/imask/controls/input.js +0 -420
  305. package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +0 -1
  306. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +0 -30
  307. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +0 -59
  308. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +0 -1
  309. package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +0 -30
  310. package/components/MaskedInputV2/react-imask/imask/core/action-details.js +0 -100
  311. package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +0 -1
  312. package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +0 -20
  313. package/components/MaskedInputV2/react-imask/imask/core/change-details.js +0 -46
  314. package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +0 -1
  315. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +0 -21
  316. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +0 -52
  317. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +0 -1
  318. package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +0 -34
  319. package/components/MaskedInputV2/react-imask/imask/core/holder.js +0 -38
  320. package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +0 -1
  321. package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +0 -20
  322. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +0 -2
  323. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +0 -1
  324. package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +0 -24
  325. package/components/MaskedInputV2/react-imask/imask/core/utils.js +0 -100
  326. package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +0 -1
  327. package/components/MaskedInputV2/react-imask/imask/imask.d.ts +0 -5
  328. package/components/MaskedInputV2/react-imask/imask/imask.js +0 -7
  329. package/components/MaskedInputV2/react-imask/imask/imask.js.map +0 -1
  330. package/components/MaskedInputV2/react-imask/imask/index.d.ts +0 -17
  331. package/components/MaskedInputV2/react-imask/imask/index.js +0 -16
  332. package/components/MaskedInputV2/react-imask/imask/index.js.map +0 -1
  333. package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +0 -114
  334. package/components/MaskedInputV2/react-imask/imask/masked/base.js +0 -411
  335. package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +0 -1
  336. package/components/MaskedInputV2/react-imask/imask/masked/create.d.ts +0 -14
  337. package/components/MaskedInputV2/react-imask/imask/masked/create.js +0 -11
  338. package/components/MaskedInputV2/react-imask/imask/masked/create.js.map +0 -1
  339. package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +0 -62
  340. package/components/MaskedInputV2/react-imask/imask/masked/factory.js +0 -107
  341. package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +0 -1
  342. package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +0 -101
  343. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +0 -549
  344. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +0 -1
  345. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +0 -30
  346. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +0 -2
  347. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +0 -1
  348. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +0 -20
  349. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +0 -182
  350. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +0 -1
  351. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +0 -31
  352. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +0 -163
  353. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +0 -1
  354. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +0 -42
  355. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +0 -158
  356. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +0 -1
  357. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +0 -56
  358. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +0 -185
  359. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +0 -1
  360. package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +0 -17
  361. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +0 -36
  362. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +0 -1
  363. package/components/MaskedInputV2/react-imask/index.d.ts +0 -3
  364. package/components/MaskedInputV2/react-imask/index.js +0 -4
  365. package/components/MaskedInputV2/react-imask/index.js.map +0 -1
  366. package/components/MaskedInputV2/react-imask/input.d.ts +0 -8
  367. package/components/MaskedInputV2/react-imask/input.js +0 -35
  368. package/components/MaskedInputV2/react-imask/input.js.map +0 -1
  369. package/components/MaskedInputV2/react-imask/mixin.d.ts +0 -31
  370. package/components/MaskedInputV2/react-imask/mixin.js +0 -246
  371. package/components/MaskedInputV2/react-imask/mixin.js.map +0 -1
  372. /package/components/{MaskedInputV2/internal → TimePicker/locale}/types.js +0 -0
@@ -50,7 +50,6 @@ export var TabDataTids = {
50
50
  /**
51
51
  * Табы группируют контент и помогают в навигации.
52
52
  *
53
- * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).
54
53
  */
55
54
  var Tab = /** @class */ (function (_super) {
56
55
  __extends(Tab, _super);
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport invariant from 'invariant';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { ResizeDetector } from '../../internal/ResizeDetector/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isFunctionalComponent } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getHorizontalStyles, getStyles, getVerticalStyles, globalClasses } from './Tab.styles.js';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext.js';\nimport type { TabsContextType } from './TabsContext.js';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, CommonProps {\n /** Компонент или тег для рендера корневого элемента. */\n component?: React.ComponentType<any> | string;\n\n /** HTML-атрибут `href`. */\n href?: string;\n\n /** Уникальный идентификатор таба. По нему компонент `<Tabs />` определяет выбранный таб. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает таб недоступным. */\n disabled?: boolean;\n\n /** Переводит таб в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит таб в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n\n /** Переводит таб в состояние валидации \"Успех\". */\n success?: boolean;\n\n /** Задаёт визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Табы группируют контент и помогают в навигации.\n *\n * Для создания группы табов используйте специальный контейнер - компонент [Tabs](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tabs--docs).\n */\n@withRenderEnvironment\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private horizontalStyles!: ReturnType<typeof getHorizontalStyles>;\n private verticalStyles!: ReturnType<typeof getVerticalStyles>;\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n this.horizontalStyles = getHorizontalStyles(this.emotion);\n this.verticalStyles = getVerticalStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators(): TabIndicators {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode(): Nullable<React.ReactElement<Tab<T>>> {\n return this.tabComponent;\n }\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? this.verticalStyles : this.horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: this.context.size === 'small',\n [this.styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [this.styles.rootLarge(this.theme)]: this.context.size === 'large',\n [this.styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [this.styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [this.styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [this.styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [this.styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={this.cx(globalClasses.focus, {\n [this.styles.focusSmall(this.theme)]: this.context.size === 'small',\n [this.styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [this.styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed || this.keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport invariant from 'invariant';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { ResizeDetector } from '../../internal/ResizeDetector/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isFunctionalComponent } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getHorizontalStyles, getStyles, getVerticalStyles, globalClasses } from './Tab.styles.js';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext.js';\nimport type { TabsContextType } from './TabsContext.js';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, CommonProps {\n /** Компонент или тег для рендера корневого элемента. */\n component?: React.ComponentType<any> | string;\n\n /** HTML-атрибут `href`. */\n href?: string;\n\n /** Уникальный идентификатор таба. По нему компонент `<Tabs />` определяет выбранный таб. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает таб недоступным. */\n disabled?: boolean;\n\n /** Переводит таб в состояние ошибки. */\n error?: boolean;\n\n /** Переводит таб в состояние предупреждения. */\n warning?: boolean;\n\n /** Переводит таб в состояние успеха. */\n success?: boolean;\n\n /** Визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Табы группируют контент и помогают в навигации.\n *\n */\n@withRenderEnvironment\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private horizontalStyles!: ReturnType<typeof getHorizontalStyles>;\n private verticalStyles!: ReturnType<typeof getVerticalStyles>;\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n this.horizontalStyles = getHorizontalStyles(this.emotion);\n this.verticalStyles = getVerticalStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators(): TabIndicators {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode(): Nullable<React.ReactElement<Tab<T>>> {\n return this.tabComponent;\n }\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? this.verticalStyles : this.horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: this.context.size === 'small',\n [this.styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [this.styles.rootLarge(this.theme)]: this.context.size === 'large',\n [this.styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [this.styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [this.styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [this.styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [this.styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={this.cx(globalClasses.focus, {\n [this.styles.focusSmall(this.theme)]: this.context.size === 'small',\n [this.styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [this.styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed || this.keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
@@ -12,7 +12,7 @@ export interface TabsProps<T extends ValueBaseType = string> extends CommonProps
12
12
  size?: SizeProp;
13
13
  /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */
14
14
  value: T;
15
- /** Вызывается при смене активного таба. */
15
+ /** Событие смены активного таба. */
16
16
  onValueChange?: (value: T) => void;
17
17
  /** Располагает табы вертикально.
18
18
  * @default false */
@@ -28,7 +28,7 @@ export declare const TabsDataTids: {
28
28
  };
29
29
  type DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;
30
30
  /**
31
- * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.
31
+ * Табы группируют контент и помогают в навигации.
32
32
  */
33
33
  export declare class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {
34
34
  static __KONTUR_REACT_UI__: string;
@@ -47,7 +47,7 @@ export var TabsDataTids = {
47
47
  indicatorRoot: 'Indicator__root',
48
48
  };
49
49
  /**
50
- * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.
50
+ * Табы группируют контент и помогают в навигации.
51
51
  */
52
52
  var Tabs = /** @class */ (function (_super) {
53
53
  __extends(Tabs, _super);
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport { getRootNode } from '../../lib/rootNode/getRootNode.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { emptyHandler } from '../../lib/utils.js';\nimport { Indicator } from './Indicator.js';\nimport { Tab } from './Tab.js';\nimport { getStyles } from './Tabs.styles.js';\nimport { TabsContext } from './TabsContext.js';\nimport type { TabsContextType } from './TabsContext.js';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Кастомный класс для индикатора (подчёркивания) активного таба. */\n indicatorClassName?: string;\n\n /** Размер табов. */\n size?: SizeProp;\n\n /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */\n value: T;\n\n /** Вызывается при смене активного таба. */\n onValueChange?: (value: T) => void;\n\n /** Располагает табы вертикально.\n * @default false */\n vertical?: boolean;\n\n /** Ширина компонента. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.\n */\n@withRenderEnvironment\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: size === 'small',\n [this.styles.rootMedium(this.theme)]: size === 'medium',\n [this.styles.rootLarge(this.theme)]: size === 'large',\n [this.styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, this.globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"]}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isInstanceOf } from '../../lib/isInstanceOf.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport { getRootNode } from '../../lib/rootNode/getRootNode.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { emptyHandler } from '../../lib/utils.js';\nimport { Indicator } from './Indicator.js';\nimport { Tab } from './Tab.js';\nimport { getStyles } from './Tabs.styles.js';\nimport { TabsContext } from './TabsContext.js';\nimport type { TabsContextType } from './TabsContext.js';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Кастомный класс для индикатора (подчёркивания) активного таба. */\n indicatorClassName?: string;\n\n /** Размер табов. */\n size?: SizeProp;\n\n /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */\n value: T;\n\n /** Событие смены активного таба. */\n onValueChange?: (value: T) => void;\n\n /** Располагает табы вертикально.\n * @default false */\n vertical?: boolean;\n\n /** Ширина компонента. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Табы группируют контент и помогают в навигации.\n */\n@withRenderEnvironment\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: size === 'small',\n [this.styles.rootMedium(this.theme)]: size === 'medium',\n [this.styles.rootLarge(this.theme)]: size === 'large',\n [this.styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, this.globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const TimeClockIcon: import("../../lib/forwardRefAndName.js").ReactUIIconWithRef<SVGSVGElement, Omit<import("../../internal/icons2022/BaseIcon.js").IconProps, "size"> & {
2
+ size?: import("../../internal/icons2022/BaseIcon.js").IconProps["size"] | import("../../internal/icons2022/iconConstants.js").IconSizeAliases;
3
+ }>;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { iconSizer } from '../../internal/icons2022/iconSizer.js';
3
+ import { TimeClockIcon16Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js';
4
+ import { TimeClockIcon20Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js';
5
+ import { TimeClockIcon24Regular } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js';
6
+ export var TimeClockIcon = iconSizer({
7
+ small: function () { return React.createElement(TimeClockIcon16Light, null); },
8
+ medium: function () { return React.createElement(TimeClockIcon20Light, null); },
9
+ large: function () { return React.createElement(TimeClockIcon24Regular, null); },
10
+ }, 'TimeClockIcon');
11
+ //# sourceMappingURL=TimeClockIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeClockIcon.js","sourceRoot":"","sources":["TimeClockIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,MAAM,CAAC,IAAM,aAAa,GAAG,SAAS,CACpC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,oBAAoB,OAAG,EAAxB,CAAwB;IACrC,MAAM,EAAE,cAAM,OAAA,oBAAC,oBAAoB,OAAG,EAAxB,CAAwB;IACtC,KAAK,EAAE,cAAM,OAAA,oBAAC,sBAAsB,OAAG,EAA1B,CAA0B;CACxC,EACD,eAAe,CAChB,CAAC","sourcesContent":["import React from 'react';\n\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\nimport { TimeClockIcon16Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js';\nimport { TimeClockIcon20Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js';\nimport { TimeClockIcon24Regular } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js';\n\nexport const TimeClockIcon = iconSizer(\n {\n small: () => <TimeClockIcon16Light />,\n medium: () => <TimeClockIcon20Light />,\n large: () => <TimeClockIcon24Regular />,\n },\n 'TimeClockIcon',\n);\n"]}
@@ -0,0 +1,137 @@
1
+ import type { AriaAttributes, HTMLAttributes, ReactNode } from 'react';
2
+ import React from 'react';
3
+ import type { CommonProps } from '../../internal/CommonWrapper/index.js';
4
+ import type { SizeProp } from '../../lib/types/props.js';
5
+ import { type NoInfer } from '../../lib/utils.js';
6
+ import type { MenuItemState } from '../MenuItem/index.js';
7
+ import { type TimeFormat, type TimeItemValue, type TimePickerSource, type TimePickerValue, type TimePickerValueToItem } from './helpers/TimePicker.shared.js';
8
+ import { validateTimePicker } from './helpers/validateTimePicker.js';
9
+ export interface TimePickerProps<T extends TimeItemValue = string> extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'> {
10
+ /** Устанавливает формат времени @default HH:mm */
11
+ format?: TimeFormat;
12
+ /** Задает источник элементов выпадающего списка.
13
+ * Можно передать массив или функцию, которая получает текущий запрос и возвращает массив либо Promise с массивом.
14
+ * Элемент задается строкой со временем — `'09:00'` — или объектом `{ value, label?, disabled? }`
15
+ * с любыми дополнительными полями. Выбранный элемент приходит в `onValueChange` в той же форме.
16
+ * Кроме значений времени можно передать React-элементы или функции, возвращающие React-элемент:
17
+ * например, `MenuHeader`, `MenuFooter`, `MenuSeparator` или `MenuItem`.
18
+ * Такие элементы отображаются в меню, но не участвуют в фильтрации и выборе значения.
19
+ * Полученные элементы всегда фильтруются компонентом одинаково для массива и функции:
20
+ * введенные цифры сегмента сравниваются с началом соответствующего сегмента элемента.
21
+ * В выпадающем списке не может быть двух элементов с одинаковым временем:
22
+ * из элементов с одинаковым временем компонент оставляет первый.
23
+ * Пока Promise не разрешился и предыдущих результатов нет, в выпадающем меню показывается спиннер загрузки.
24
+ * Если предыдущие результаты есть, подходящие элементы остаются видимыми до прихода новых,
25
+ * а индикация загрузки показывается в правой иконке поля.
26
+ * Замена функции не перезапрашивает уже открытый список: актуальная функция используется при следующем запросе. */
27
+ source?: TimePickerSource<T>;
28
+ /** Отрисовывает значение времени в выпадающем списке. Не применяется к React-элементам из `source`. */
29
+ renderItem?: (item: T, state: MenuItemState) => ReactNode;
30
+ /** Задает нижнюю границу времени. Элементы за границей становятся заблокированными. */
31
+ minTime?: string;
32
+ /** Задает верхнюю границу времени. Элементы за границей становятся заблокированными. */
33
+ maxTime?: string;
34
+ /** Задает значение поля: элемент того же типа, что в `source`, либо строку в формате `HH:mm[:ss]`.
35
+ * Из элемента-объекта используется только время `value`, `label` в поле не отображается.
36
+ * Пустое значение можно передать как `''`, `null` или `undefined`. */
37
+ value?: TimePickerValue<T>;
38
+ /** Преобразует время в элемент.
39
+ * Применяется ко временам, которые пользователь не выбрал из `source`:
40
+ * ручной ввод, изменение стрелками, вставка из буфера, нативный пикер.
41
+ * По умолчанию компонент повторяет форму элементов `source` и `value`:
42
+ * для строк отдает строку, для объектов — `{ value }`.
43
+ * Задавайте этот проп, если элементы содержат поля, кроме `value`, `label` и `disabled`.
44
+ * @default (value) => value | ({ value }) */
45
+ valueToItem?: TimePickerValueToItem<T>;
46
+ /** Устанавливает фокус на поле ввода после окончания загрузки страницы @default false */
47
+ autoFocus?: boolean;
48
+ /** Делает компонент заблокированным. */
49
+ disabled?: boolean;
50
+ /** Переводит контрол в состояние валидации ошибки. */
51
+ error?: boolean;
52
+ /** Переводит контрол в состояние валидации предупреждения. */
53
+ warning?: boolean;
54
+ /** Включает нативный системный выбор времени на мобильных устройствах. */
55
+ useMobileNativeTimePicker?: boolean;
56
+ /** Расположение выпадающего меню. */
57
+ menuPos?: 'top' | 'bottom';
58
+ /** Выравнивание выпадающего меню. */
59
+ menuAlign?: 'left' | 'right';
60
+ /** Ширина выпадающего меню. По умолчанию — минимальная ширина поля ввода, расширяется по контенту. */
61
+ menuWidth?: string | number;
62
+ /** Задает ширину поля. */
63
+ width?: string | number;
64
+ /** Переопределяет иконку или скрывает, если передать `null`. */
65
+ rightIcon?: React.ReactNode | (() => React.ReactNode);
66
+ /** Устанавливает суффикс после значения и перед иконкой. */
67
+ suffix?: ReactNode;
68
+ /** Размер поля ввода и выпадающего меню. */
69
+ size?: SizeProp;
70
+ /** Устанавливает радиус скруглений углов.
71
+ * @ignore */
72
+ corners?: Partial<Pick<React.CSSProperties, 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'>>;
73
+ /** Задает функцию, которая вызывается при нажатии на контрол. */
74
+ onClick?(event: React.MouseEvent<HTMLElement>): void;
75
+ /**
76
+ * Событие изменения значения `value`.
77
+ * Вызывается при коммите значения: потере фокуса, нажатии Enter, выборе элемента из списка
78
+ * или изменении в нативном пикере.
79
+ * Первым аргументом приходит элемент в той же форме, в которой элементы переданы в `source`:
80
+ * при выборе из выпадающего списка — тот же элемент, в остальных случаях — результат `valueToItem`,
81
+ * а при пустом значении — `null`.
82
+ * Вторым аргументом приходит полностью нормализованное время в формате `HH:mm[:ss]` или пустая строка.
83
+ * Тип элемента выводится из `source` и `value`, но не из этого обработчика,
84
+ * иначе `onValueChange={setItem}` сузил бы его до `TimeItem`.
85
+ */
86
+ onValueChange?(item: NoInfer<T> | null, value: string): void;
87
+ /**
88
+ * Событие изменения значения в процессе ввода.
89
+ * Значение частично нормализуется по сегментам, например `1` => `01`, незаполненный хвост отбрасывается.
90
+ * Промежуточное значение может не соответствовать полной форме `HH:mm[:ss]`, поэтому тип — произвольная строка.
91
+ */
92
+ onInputValueChange?(value: string): void;
93
+ /**
94
+ * Событие некорректного ввода: пользователь ввел или вставил значение, которое не может быть временем.
95
+ * Вызывается с нажатой клавишей — например `а` или `,` — либо со значением из буфера,
96
+ * из которого не получилось собрать время.
97
+ * Значение вне диапазона `minTime`/`maxTime` некорректным вводом не считается,
98
+ * его можно проверить через `TimePicker.validate`.
99
+ * Вторым аргументом передается метод вспыхивания рамки поля.
100
+ * Если обработчик не задан, поле вспыхивает само.
101
+ */
102
+ onUnexpectedInput?(value: string, blink: () => void): void;
103
+ /** Событие потери фокуса. */
104
+ onBlur?(event: React.FocusEvent<HTMLElement>): void;
105
+ /** Событие получения фокуса. */
106
+ onFocus?(event: React.FocusEvent<HTMLElement>): void;
107
+ /** Событие нажатия клавиши. */
108
+ onKeyDown?(event: React.KeyboardEvent<HTMLElement>): void;
109
+ /** Событие вставки из буфера. */
110
+ onPaste?(event: React.ClipboardEvent<HTMLElement>): void;
111
+ }
112
+ export interface TimePickerRef {
113
+ /** Устанавливает фокус на поле ввода. */
114
+ focus(): void;
115
+ /** Снимает фокус с поля ввода. */
116
+ blur(): void;
117
+ /** Закрывает выпадающее меню. */
118
+ close(): void;
119
+ /** Запускает анимацию blink у поля ввода времени. */
120
+ blink(): void;
121
+ /** Возвращает корневой DOM-узел компонента. */
122
+ getRootNode(): HTMLElement | null;
123
+ }
124
+ export type TimePicker = TimePickerRef;
125
+ interface TimePickerComponent {
126
+ <T extends TimeItemValue = string>(props: TimePickerProps<T> & React.RefAttributes<TimePickerRef>): React.ReactElement | null;
127
+ displayName?: string;
128
+ __KONTUR_REACT_UI__: string;
129
+ /** Проверяет, что значение полностью заполнено, соответствует формату и попадает в диапазон `minTime`/`maxTime`. */
130
+ validate: typeof validateTimePicker;
131
+ }
132
+ /** Поле с временем помогает пользователю быстро и удобно указать время в правильном формате.
133
+ * В поле можно ввести время с клавиатуры либо выбрать из выпадающего списка,
134
+ * передав массив или функцию в проп `source`.
135
+ */
136
+ export declare const TimePicker: TimePickerComponent;
137
+ export {};