@skbkontur/react-ui 6.0.7-eab55.0 → 6.0.8

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 (283) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components/Autocomplete/Autocomplete.js +4 -15
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Calendar/Calendar.d.ts +14 -14
  5. package/components/Calendar/Calendar.js +2 -2
  6. package/components/Calendar/Calendar.js.map +1 -1
  7. package/components/Calendar/CalendarDay.d.ts +2 -2
  8. package/components/Calendar/CalendarDay.js +1 -4
  9. package/components/Calendar/CalendarDay.js.map +1 -1
  10. package/components/Calendar/DayCellView.styles.d.ts +0 -1
  11. package/components/Calendar/DayCellView.styles.js +3 -6
  12. package/components/Calendar/DayCellView.styles.js.map +1 -1
  13. package/components/Center/Center.d.ts +3 -3
  14. package/components/Center/Center.js +2 -2
  15. package/components/Center/Center.js.map +1 -1
  16. package/components/Checkbox/Checkbox.d.ts +11 -14
  17. package/components/Checkbox/Checkbox.js +3 -6
  18. package/components/Checkbox/Checkbox.js.map +1 -1
  19. package/components/ComboBox/ComboBox.d.ts +3 -3
  20. package/components/ComboBox/ComboBox.js.map +1 -1
  21. package/components/DateInput/DateInput.d.ts +15 -15
  22. package/components/DateInput/DateInput.js +1 -1
  23. package/components/DateInput/DateInput.js.map +1 -1
  24. package/components/DatePicker/DatePicker.d.ts +14 -16
  25. package/components/DatePicker/DatePicker.js +4 -5
  26. package/components/DatePicker/DatePicker.js.map +1 -1
  27. package/components/DatePicker/MobilePicker.js +1 -1
  28. package/components/DatePicker/MobilePicker.js.map +1 -1
  29. package/components/DateRangePicker/DateRangePicker.d.ts +4 -3
  30. package/components/DateRangePicker/DateRangePicker.js +6 -4
  31. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  32. package/components/DateRangePicker/DateRangePickerInput.js +9 -6
  33. package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  34. package/components/Dropdown/Dropdown.d.ts +8 -15
  35. package/components/Dropdown/Dropdown.js +1 -8
  36. package/components/Dropdown/Dropdown.js.map +1 -1
  37. package/components/DropdownMenu/DropdownMenu.d.ts +2 -1
  38. package/components/DropdownMenu/DropdownMenu.js +2 -1
  39. package/components/DropdownMenu/DropdownMenu.js.map +1 -1
  40. package/components/FileUploader/FileUploader.d.ts +4 -6
  41. package/components/FileUploader/FileUploader.js +1 -3
  42. package/components/FileUploader/FileUploader.js.map +1 -1
  43. package/components/FileUploader/FileUploaderFile.d.ts +3 -3
  44. package/components/FileUploader/FileUploaderFile.js +1 -1
  45. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  46. package/components/Hint/Hint.js +10 -3
  47. package/components/Hint/Hint.js.map +1 -1
  48. package/components/Input/Input.d.ts +2 -2
  49. package/components/Input/Input.js.map +1 -1
  50. package/components/Loader/Loader.d.ts +4 -12
  51. package/components/Loader/Loader.js +7 -18
  52. package/components/Loader/Loader.js.map +1 -1
  53. package/components/MenuFooter/MenuFooter.d.ts +1 -1
  54. package/components/MenuFooter/MenuFooter.js +1 -1
  55. package/components/MenuFooter/MenuFooter.js.map +1 -1
  56. package/components/MenuHeader/MenuHeader.d.ts +2 -2
  57. package/components/MenuHeader/MenuHeader.js +1 -1
  58. package/components/MenuHeader/MenuHeader.js.map +1 -1
  59. package/components/MenuItem/MenuItem.d.ts +1 -1
  60. package/components/MenuItem/MenuItem.js +16 -24
  61. package/components/MenuItem/MenuItem.js.map +1 -1
  62. package/components/MenuItem/MenuItem.styles.d.ts +0 -3
  63. package/components/MenuItem/MenuItem.styles.js +16 -25
  64. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  65. package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  66. package/components/MenuSeparator/MenuSeparator.js +1 -1
  67. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  68. package/components/MiniModal/MiniModal.d.ts +1 -1
  69. package/components/MiniModal/MiniModal.js +1 -1
  70. package/components/MiniModal/MiniModal.js.map +1 -1
  71. package/components/MiniModal/MiniModalBody.d.ts +1 -1
  72. package/components/MiniModal/MiniModalBody.js +1 -1
  73. package/components/MiniModal/MiniModalBody.js.map +1 -1
  74. package/components/MiniModal/MiniModalFooter.d.ts +1 -1
  75. package/components/MiniModal/MiniModalFooter.js +1 -1
  76. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  77. package/components/MiniModal/MiniModalHeader.d.ts +1 -1
  78. package/components/MiniModal/MiniModalHeader.js +1 -1
  79. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  80. package/components/Paging/Paging.d.ts +2 -2
  81. package/components/Paging/Paging.js.map +1 -1
  82. package/components/Radio/Radio.d.ts +7 -7
  83. package/components/Radio/Radio.js.map +1 -1
  84. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  85. package/components/RadioGroup/RadioGroup.js.map +1 -1
  86. package/components/Select/Select.d.ts +4 -4
  87. package/components/Select/Select.js +1 -11
  88. package/components/Select/Select.js.map +1 -1
  89. package/components/SingleToast/SingleToast.d.ts +7 -10
  90. package/components/SingleToast/SingleToast.js +7 -10
  91. package/components/SingleToast/SingleToast.js.map +1 -1
  92. package/components/Spinner/Spinner.d.ts +33 -23
  93. package/components/Spinner/Spinner.js +19 -23
  94. package/components/Spinner/Spinner.js.map +1 -1
  95. package/components/Spinner/Spinner.styles.d.ts +3 -0
  96. package/components/Spinner/Spinner.styles.js +15 -6
  97. package/components/Spinner/Spinner.styles.js.map +1 -1
  98. package/components/Sticky/Sticky.d.ts +0 -4
  99. package/components/Sticky/Sticky.js +0 -4
  100. package/components/Sticky/Sticky.js.map +1 -1
  101. package/components/Switcher/Switcher.d.ts +8 -10
  102. package/components/Switcher/Switcher.js +1 -3
  103. package/components/Switcher/Switcher.js.map +1 -1
  104. package/components/Textarea/Textarea.js +1 -1
  105. package/components/Textarea/Textarea.js.map +1 -1
  106. package/components/Textarea/Textarea.styles.d.ts +0 -1
  107. package/components/Textarea/Textarea.styles.js +4 -7
  108. package/components/Textarea/Textarea.styles.js.map +1 -1
  109. package/components/Textarea/TextareaCounter.d.ts +0 -2
  110. package/components/Textarea/TextareaCounter.js +4 -22
  111. package/components/Textarea/TextareaCounter.js.map +1 -1
  112. package/components/Toast/Toast.d.ts +14 -13
  113. package/components/Toast/Toast.js +3 -3
  114. package/components/Toast/Toast.js.map +1 -1
  115. package/components/Toast/ToastView.d.ts +5 -8
  116. package/components/Toast/ToastView.js +8 -28
  117. package/components/Toast/ToastView.js.map +1 -1
  118. package/components/Toast/ToastView.styles.d.ts +0 -7
  119. package/components/Toast/ToastView.styles.js +8 -30
  120. package/components/Toast/ToastView.styles.js.map +1 -1
  121. package/components/Tooltip/Tooltip.d.ts +4 -4
  122. package/components/Tooltip/Tooltip.js.map +1 -1
  123. package/index.d.ts +0 -1
  124. package/index.js +0 -1
  125. package/index.js.map +1 -1
  126. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  127. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  128. package/internal/CommonWrapper/CommonWrapper.js +0 -5
  129. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  130. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  131. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  132. package/internal/CustomComboBox/ComboBoxView.js +2 -13
  133. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  134. package/internal/Menu/Menu.js +0 -3
  135. package/internal/Menu/Menu.js.map +1 -1
  136. package/internal/Menu/Menu.styles.d.ts +0 -1
  137. package/internal/Menu/Menu.styles.js +10 -13
  138. package/internal/Menu/Menu.styles.js.map +1 -1
  139. package/internal/MenuMessage/MenuMessage.js +1 -17
  140. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  141. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -3
  142. package/internal/MenuMessage/MenuMessage.styles.js +4 -13
  143. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  144. package/internal/MobilePopup/MobilePopup.d.ts +0 -8
  145. package/internal/MobilePopup/MobilePopup.js +11 -34
  146. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  147. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -7
  148. package/internal/MobilePopup/MobilePopup.styles.js +10 -34
  149. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  150. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -8
  151. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -18
  152. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  153. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -3
  154. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +4 -14
  155. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  156. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +0 -4
  157. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +11 -48
  158. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  159. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -6
  160. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +8 -28
  161. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  162. package/internal/Popup/Popup.d.ts +4 -6
  163. package/internal/Popup/Popup.js +13 -38
  164. package/internal/Popup/Popup.js.map +1 -1
  165. package/internal/Popup/PopupHelper.d.ts +4 -0
  166. package/internal/Popup/PopupHelper.js +31 -0
  167. package/internal/Popup/PopupHelper.js.map +1 -1
  168. package/internal/PopupMenu/PopupMenu.d.ts +2 -1
  169. package/internal/PopupMenu/PopupMenu.js +21 -18
  170. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  171. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  172. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  173. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  174. package/internal/icons2022/LoadingIcon.js +1 -1
  175. package/internal/icons2022/LoadingIcon.js.map +1 -1
  176. package/internal/themes/BasicTheme.d.ts +4 -51
  177. package/internal/themes/BasicTheme.js +6 -173
  178. package/internal/themes/BasicTheme.js.map +1 -1
  179. package/lib/getMenuPositions.js +11 -11
  180. package/lib/getMenuPositions.js.map +1 -1
  181. package/lib/theming/themes/DarkTheme.d.ts +0 -1
  182. package/lib/theming/themes/DarkTheme.js +1 -3
  183. package/lib/theming/themes/DarkTheme.js.map +1 -1
  184. package/lib/theming/themes/LightTheme.d.ts +0 -1
  185. package/lib/theming/themes/LightTheme.js +1 -3
  186. package/lib/theming/themes/LightTheme.js.map +1 -1
  187. package/package.json +1 -5
  188. package/components/TimePicker/TimeClockIcon.d.ts +0 -3
  189. package/components/TimePicker/TimeClockIcon.js +0 -11
  190. package/components/TimePicker/TimeClockIcon.js.map +0 -1
  191. package/components/TimePicker/TimeFragmentsView.d.ts +0 -15
  192. package/components/TimePicker/TimeFragmentsView.js +0 -72
  193. package/components/TimePicker/TimeFragmentsView.js.map +0 -1
  194. package/components/TimePicker/TimeFragmentsView.styles.d.ts +0 -12
  195. package/components/TimePicker/TimeFragmentsView.styles.js +0 -43
  196. package/components/TimePicker/TimeFragmentsView.styles.js.map +0 -1
  197. package/components/TimePicker/TimeInput.d.ts +0 -21
  198. package/components/TimePicker/TimeInput.js +0 -98
  199. package/components/TimePicker/TimeInput.js.map +0 -1
  200. package/components/TimePicker/TimePicker.d.ts +0 -59
  201. package/components/TimePicker/TimePicker.js +0 -478
  202. package/components/TimePicker/TimePicker.js.map +0 -1
  203. package/components/TimePicker/TimePicker.styles.d.ts +0 -11
  204. package/components/TimePicker/TimePicker.styles.js +0 -36
  205. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  206. package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -31
  207. package/components/TimePicker/TimePickerMobilePopup.js +0 -21
  208. package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
  209. package/components/TimePicker/TimePickerPopup.d.ts +0 -19
  210. package/components/TimePicker/TimePickerPopup.js +0 -18
  211. package/components/TimePicker/TimePickerPopup.js.map +0 -1
  212. package/components/TimePicker/TimePickerSlots.d.ts +0 -16
  213. package/components/TimePicker/TimePickerSlots.js +0 -67
  214. package/components/TimePicker/TimePickerSlots.js.map +0 -1
  215. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -18
  216. package/components/TimePicker/helpers/TimePicker.constants.js +0 -41
  217. package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
  218. package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -6
  219. package/components/TimePicker/helpers/TimePicker.editing.js +0 -86
  220. package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
  221. package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -7
  222. package/components/TimePicker/helpers/TimePicker.layout.js +0 -17
  223. package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
  224. package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -7
  225. package/components/TimePicker/helpers/TimePicker.selection.js +0 -51
  226. package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
  227. package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -23
  228. package/components/TimePicker/helpers/TimePicker.shared.js +0 -50
  229. package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
  230. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -8
  231. package/components/TimePicker/helpers/TimePicker.value.js +0 -61
  232. package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
  233. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.d.ts +0 -1
  234. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js +0 -21
  235. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js.map +0 -1
  236. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
  237. package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
  238. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
  239. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -15
  240. package/components/TimePicker/hooks/useTimePickerSelection.js +0 -43
  241. package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
  242. package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
  243. package/components/TimePicker/hooks/useTimePickerValue.js +0 -48
  244. package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
  245. package/components/TimePicker/index.d.ts +0 -2
  246. package/components/TimePicker/index.js +0 -2
  247. package/components/TimePicker/index.js.map +0 -1
  248. package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
  249. package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
  250. package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
  251. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  252. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  253. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  254. package/internal/NativeTimeInput/index.d.ts +0 -1
  255. package/internal/NativeTimeInput/index.js +0 -2
  256. package/internal/NativeTimeInput/index.js.map +0 -1
  257. package/internal/NativeTimeInput/utils.d.ts +0 -7
  258. package/internal/NativeTimeInput/utils.js +0 -28
  259. package/internal/NativeTimeInput/utils.js.map +0 -1
  260. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +0 -2
  261. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +0 -21
  262. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +0 -1
  263. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +0 -2
  264. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +0 -21
  265. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +0 -1
  266. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +0 -2
  267. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +0 -21
  268. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +0 -1
  269. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
  270. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
  271. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
  272. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
  273. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
  274. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
  275. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
  276. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
  277. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
  278. package/internal/themes/DarkTheme6_1.d.ts +0 -1
  279. package/internal/themes/DarkTheme6_1.js +0 -164
  280. package/internal/themes/DarkTheme6_1.js.map +0 -1
  281. package/internal/themes/LightTheme6_1.d.ts +0 -1
  282. package/internal/themes/LightTheme6_1.js +0 -164
  283. package/internal/themes/LightTheme6_1.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DayCellView.styles.js","sourceRoot":"","sources":["../../../components/Calendar/DayCellView.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,oBACI,EAAmB,mBACrB,EAAoB,SAC/B,KAFa,CAAC,CAAC,iBAAiB,EACrB,CAAC,CAAC,kBAAkB,EAC9B;QACJ,CAAC;QACD,GAAG,YAAC,CAAQ;YACV,OAAO,GAAG,89BAAA,UACN,EAAa,kEAID,EAAgB,4DAEjB,EAAsB,2HAKpB,EAAwB,0BACtB,EAA0B,6YAiBnB,EAA0B,sBACrC,EAAwB,yLAU1B,EAA8B,kBAE1C,KA1CG,WAAW,EAAE,EAID,CAAC,CAAC,cAAc,EAEjB,CAAC,CAAC,oBAAoB,EAKpB,CAAC,CAAC,sBAAsB,EACtB,CAAC,CAAC,wBAAwB,EAiBnB,CAAC,CAAC,wBAAwB,EACrC,CAAC,CAAC,sBAAsB,EAU1B,CAAC,CAAC,4BAA4B,EAEzC;QACJ,CAAC;QAED,QAAQ,YAAC,CAAQ;YACf,OAAO,GAAG,8HAAA,4BACY,EAA6B,kBACxC,EAA+B,SACzC,KAFqB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EACxC;QACJ,CAAC;QAED,YAAY,YAAC,CAAQ;YACnB,OAAO,GAAG,4MAAA,kFAGgB,EAA6B,sBACxC,EAA+B,6BAG7C,KAJyB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EAG5C;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+FAAA,iBACC,EAA0B,SACpC,KADU,CAAC,CAAC,wBAAwB,EACnC;QACJ,CAAC;QAED,YAAY,YAAC,CAAQ;YACnB,OAAO,GAAG,mIAAA,qDAES,EAAyB,SAC3C,KADkB,CAAC,CAAC,uBAAuB,EAC1C;QACJ,CAAC;KACF,CAAC;AApF8D,CAoF9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n selected_6_1(t: Theme) {\n return css`\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n }\n }\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"DayCellView.styles.js","sourceRoot":"","sources":["../../../components/Calendar/DayCellView.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,oBACI,EAAmB,mBACrB,EAAoB,SAC/B,KAFa,CAAC,CAAC,iBAAiB,EACrB,CAAC,CAAC,kBAAkB,EAC9B;QACJ,CAAC;QACD,GAAG,YAAC,CAAQ;YACV,OAAO,GAAG,89BAAA,UACN,EAAa,kEAID,EAAgB,4DAEjB,EAAsB,2HAKpB,EAAwB,0BACtB,EAA0B,6YAiBnB,EAA0B,sBACrC,EAAwB,yLAU1B,EAA8B,kBAE1C,KA1CG,WAAW,EAAE,EAID,CAAC,CAAC,cAAc,EAEjB,CAAC,CAAC,oBAAoB,EAKpB,CAAC,CAAC,sBAAsB,EACtB,CAAC,CAAC,wBAAwB,EAiBnB,CAAC,CAAC,wBAAwB,EACrC,CAAC,CAAC,sBAAsB,EAU1B,CAAC,CAAC,4BAA4B,EAEzC;QACJ,CAAC;QAED,QAAQ,YAAC,CAAQ;YACf,OAAO,GAAG,8HAAA,4BACY,EAA6B,kBACxC,EAA+B,SACzC,KAFqB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EACxC;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+FAAA,iBACC,EAA0B,SACpC,KADU,CAAC,CAAC,wBAAwB,EACnC;QACJ,CAAC;QAED,YAAY,YAAC,CAAQ;YACnB,OAAO,GAAG,mIAAA,qDAES,EAAyB,SAC3C,KADkB,CAAC,CAAC,uBAAuB,EAC1C;QACJ,CAAC;KACF,CAAC;AAzE8D,CAyE9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n}));\n"]}
@@ -4,7 +4,7 @@ import type { TGetRootNode } from '../../lib/rootNode/index.js';
4
4
  import type { Override } from '../../typings/utility-types.js';
5
5
  export type HorizontalAlign = 'left' | 'center' | 'right';
6
6
  export interface CenterProps extends CommonProps, Override<React.HTMLAttributes<HTMLDivElement>, {
7
- /** Задает выравнивание контента по горизонтали */
7
+ /** Выравнивает контент по горизонтали: слева, по центру или справа. */
8
8
  align?: HorizontalAlign;
9
9
  }> {
10
10
  }
@@ -13,9 +13,9 @@ export declare const CenterDataTids: {
13
13
  };
14
14
  type DefaultProps = Required<Pick<CenterProps, 'align'>>;
15
15
  /**
16
- * `Center` — контейнер, который центрирует элементы внутри себя.
16
+ * Контейнер, который центрирует элементы внутри себя.
17
17
  *
18
- * Выравнивание задается пропом `align`.
18
+ * Выравнивание задаётся пропом `align`: слева, по центру или справа.
19
19
  */
20
20
  export declare class Center extends React.Component<CenterProps> {
21
21
  static __KONTUR_REACT_UI__: string;
@@ -51,9 +51,9 @@ export var CenterDataTids = {
51
51
  root: 'Center__root',
52
52
  };
53
53
  /**
54
- * `Center` — контейнер, который центрирует элементы внутри себя.
54
+ * Контейнер, который центрирует элементы внутри себя.
55
55
  *
56
- * Выравнивание задается пропом `align`.
56
+ * Выравнивание задаётся пропом `align`: слева, по центру или справа.
57
57
  */
58
58
  var Center = /** @class */ (function (_super) {
59
59
  __extends(Center, _super);
@@ -1 +1 @@
1
- {"version":3,"file":"Center.js","sourceRoot":"","sources":["../../../components/Center/Center.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAe/C,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,cAAc;CACZ,CAAC;AAKX;;;;GAIG;AAGH;IAA4B,0BAA4B;IAAxD;;QAOU,cAAQ,GAAG,iBAAiB,CAAC,QAAM,CAAC,YAAY,CAAC,CAAC;QAiBlD,gBAAU,GAAG,UAAC,KAAqD;;YACjE,IAAA,KAAK,GAAc,KAAK,MAAnB,EAAK,IAAI,UAAK,KAAK,EAA1B,SAAkB,CAAF,CAAW;YAEjC,OAAO,CACL,kDACY,cAAc,CAAC,IAAI,IACzB,IAAI,IACR,SAAS,EAAE,KAAI,CAAC,EAAE;oBAChB,GAAC,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAG,IAAI;oBAC1B,GAAC,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAG,KAAK,KAAK,MAAM;oBAC/C,GAAC,KAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAG,KAAK,KAAK,OAAO;wBACjD;gBAEF,8BAAM,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAI;gBACzC,8BAAM,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ,CAClE,CACP,CAAC;QACJ,CAAC,CAAC;;IACJ,CAAC;eA1CY,MAAM;IAeV,uBAAM,GAAb;QACE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAM,IAAI,CAAC,QAAQ,EAAE,GAC9D,IAAI,CAAC,UAAU,CACF,CACjB,CAAC;IACJ,CAAC;;IAtBa,0BAAmB,GAAG,QAAQ,AAAX,CAAY;IAC/B,kBAAW,GAAG,QAAQ,AAAX,CAAY;IAEvB,mBAAY,GAAiB;QACzC,KAAK,EAAE,QAAQ;KAChB,AAFyB,CAExB;IANS,MAAM;QAFlB,qBAAqB;QACrB,QAAQ;OACI,MAAM,CA0ClB;IAAD,aAAC;CAAA,AA1CD,CAA4B,KAAK,CAAC,SAAS,GA0C1C;SA1CY,MAAM","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.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 { Override } from '../../typings/utility-types.js';\nimport { getStyles } from './Center.styles.js';\n\nexport type HorizontalAlign = 'left' | 'center' | 'right';\n\nexport interface CenterProps\n extends\n CommonProps,\n Override<\n React.HTMLAttributes<HTMLDivElement>,\n {\n /** Задает выравнивание контента по горизонтали */\n align?: HorizontalAlign;\n }\n > {}\n\nexport const CenterDataTids = {\n root: 'Center__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CenterProps, 'align'>>;\ntype DefaultizedCenterProps = DefaultizedProps<CenterProps, DefaultProps>;\n\n/**\n * `Center` — контейнер, который центрирует элементы внутри себя.\n *\n * Выравнивание задается пропом `align`.\n */\n@withRenderEnvironment\n@rootNode\nexport class Center extends React.Component<CenterProps> {\n public static __KONTUR_REACT_UI__ = 'Center';\n public static displayName = 'Center';\n\n public static defaultProps: DefaultProps = {\n align: 'center',\n };\n private getProps = createPropsGetter(Center.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n private renderMain = (props: CommonWrapperRestProps<DefaultizedCenterProps>) => {\n const { align, ...rest } = props;\n\n return (\n <div\n data-tid={CenterDataTids.root}\n {...rest}\n className={this.cx({\n [this.styles.root()]: true,\n [this.styles.rootAlignLeft()]: align === 'left',\n [this.styles.rootAlignRight()]: align === 'right',\n })}\n >\n <span className={this.styles.spring()} />\n <span className={this.styles.container()}>{this.props.children}</span>\n </div>\n );\n };\n}\n"]}
1
+ {"version":3,"file":"Center.js","sourceRoot":"","sources":["../../../components/Center/Center.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAe/C,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,cAAc;CACZ,CAAC;AAKX;;;;GAIG;AAGH;IAA4B,0BAA4B;IAAxD;;QAOU,cAAQ,GAAG,iBAAiB,CAAC,QAAM,CAAC,YAAY,CAAC,CAAC;QAiBlD,gBAAU,GAAG,UAAC,KAAqD;;YACjE,IAAA,KAAK,GAAc,KAAK,MAAnB,EAAK,IAAI,UAAK,KAAK,EAA1B,SAAkB,CAAF,CAAW;YAEjC,OAAO,CACL,kDACY,cAAc,CAAC,IAAI,IACzB,IAAI,IACR,SAAS,EAAE,KAAI,CAAC,EAAE;oBAChB,GAAC,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAG,IAAI;oBAC1B,GAAC,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAG,KAAK,KAAK,MAAM;oBAC/C,GAAC,KAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAG,KAAK,KAAK,OAAO;wBACjD;gBAEF,8BAAM,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAI;gBACzC,8BAAM,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ,CAClE,CACP,CAAC;QACJ,CAAC,CAAC;;IACJ,CAAC;eA1CY,MAAM;IAeV,uBAAM,GAAb;QACE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAM,IAAI,CAAC,QAAQ,EAAE,GAC9D,IAAI,CAAC,UAAU,CACF,CACjB,CAAC;IACJ,CAAC;;IAtBa,0BAAmB,GAAG,QAAQ,AAAX,CAAY;IAC/B,kBAAW,GAAG,QAAQ,AAAX,CAAY;IAEvB,mBAAY,GAAiB;QACzC,KAAK,EAAE,QAAQ;KAChB,AAFyB,CAExB;IANS,MAAM;QAFlB,qBAAqB;QACrB,QAAQ;OACI,MAAM,CA0ClB;IAAD,aAAC;CAAA,AA1CD,CAA4B,KAAK,CAAC,SAAS,GA0C1C;SA1CY,MAAM","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.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 { Override } from '../../typings/utility-types.js';\nimport { getStyles } from './Center.styles.js';\n\nexport type HorizontalAlign = 'left' | 'center' | 'right';\n\nexport interface CenterProps\n extends\n CommonProps,\n Override<\n React.HTMLAttributes<HTMLDivElement>,\n {\n /** Выравнивает контент по горизонтали: слева, по центру или справа. */\n align?: HorizontalAlign;\n }\n > {}\n\nexport const CenterDataTids = {\n root: 'Center__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CenterProps, 'align'>>;\ntype DefaultizedCenterProps = DefaultizedProps<CenterProps, DefaultProps>;\n\n/**\n * Контейнер, который центрирует элементы внутри себя.\n *\n * Выравнивание задаётся пропом `align`: слева, по центру или справа.\n */\n@withRenderEnvironment\n@rootNode\nexport class Center extends React.Component<CenterProps> {\n public static __KONTUR_REACT_UI__ = 'Center';\n public static displayName = 'Center';\n\n public static defaultProps: DefaultProps = {\n align: 'center',\n };\n private getProps = createPropsGetter(Center.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n private renderMain = (props: CommonWrapperRestProps<DefaultizedCenterProps>) => {\n const { align, ...rest } = props;\n\n return (\n <div\n data-tid={CenterDataTids.root}\n {...rest}\n className={this.cx({\n [this.styles.root()]: true,\n [this.styles.rootAlignLeft()]: align === 'left',\n [this.styles.rootAlignRight()]: align === 'right',\n })}\n >\n <span className={this.styles.spring()} />\n <span className={this.styles.container()}>{this.props.children}</span>\n </div>\n );\n };\n}\n"]}
@@ -7,24 +7,24 @@ import type { Override } from '../../typings/utility-types.js';
7
7
  export interface CheckboxProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
8
8
  /** @ignore */
9
9
  children?: React.ReactNode;
10
- /** Переводит контрол в состояние валидации "ошибка". */
10
+ /** Переводит контрол в состояние ошибки. */
11
11
  error?: boolean;
12
- /** Переводит контрол в состояние валидации "предупреждение". */
12
+ /** Переводит контрол в состояние предупреждения. */
13
13
  warning?: boolean;
14
- /** Задает размер. */
14
+ /** Размер чекбокса. */
15
15
  size?: SizeProp;
16
- /** Задает HTML-событие `onmouseenter`.
16
+ /** HTML-событие `onmouseenter`.
17
17
  * @ignore */
18
18
  onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
19
- /** Задает HTML-событие `onmouseleave`.
19
+ /** HTML-событие `onmouseleave`.
20
20
  * @ignore */
21
21
  onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
22
- /** Задает HTML-событие `onmouseover`.
22
+ /** HTML-событие `onmouseover`.
23
23
  * @ignore */
24
24
  onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
25
- /** Задает функцию, вызывающуюся при изменении value. */
25
+ /** Событие изменения value. */
26
26
  onValueChange?: (value: boolean) => void;
27
- /** Задает HTML-событие `onblur`.
27
+ /** HTML-событие `onblur`.
28
28
  * @ignore */
29
29
  onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
30
30
  /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */
@@ -40,10 +40,7 @@ export declare const CheckboxDataTids: {
40
40
  readonly root: "Checkbox__root";
41
41
  };
42
42
  /**
43
- * `Checkbox` используется для управления параметром с двумя состояниями.
44
- *
45
- * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.
46
- * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.
43
+ * Чекбокс используется для управления параметром с двумя состояниями.
47
44
  */
48
45
  export declare class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {
49
46
  static __KONTUR_REACT_UI__: string;
@@ -74,12 +71,12 @@ export declare class Checkbox extends React.PureComponent<CheckboxProps, Checkbo
74
71
  componentDidUpdate(prevProps: CheckboxProps): void;
75
72
  render(): React.JSX.Element;
76
73
  /**
77
- * Программная установка фокуса чекбоксу.
74
+ * Программно устанавливает фокус на чекбокс.
78
75
  * @public
79
76
  */
80
77
  focus(): void;
81
78
  /**
82
- * Программное снятие фокуса с чекбокса.
79
+ * Программно снимает фокус с чекбокса.
83
80
  * @public
84
81
  */
85
82
  blur(): void;
@@ -58,10 +58,7 @@ export var CheckboxDataTids = {
58
58
  root: 'Checkbox__root',
59
59
  };
60
60
  /**
61
- * `Checkbox` используется для управления параметром с двумя состояниями.
62
- *
63
- * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.
64
- * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.
61
+ * Чекбокс используется для управления параметром с двумя состояниями.
65
62
  */
66
63
  var Checkbox = /** @class */ (function (_super) {
67
64
  __extends(Checkbox, _super);
@@ -255,7 +252,7 @@ var Checkbox = /** @class */ (function (_super) {
255
252
  }));
256
253
  };
257
254
  /**
258
- * Программная установка фокуса чекбоксу.
255
+ * Программно устанавливает фокус на чекбокс.
259
256
  * @public
260
257
  */
261
258
  Checkbox.prototype.focus = function () {
@@ -264,7 +261,7 @@ var Checkbox = /** @class */ (function (_super) {
264
261
  (_a = this.input.current) === null || _a === void 0 ? void 0 : _a.focus();
265
262
  };
266
263
  /**
267
- * Программное снятие фокуса с чекбокса.
264
+ * Программно снимает фокус с чекбокса.
268
265
  * @public
269
266
  */
270
267
  Checkbox.prototype.blur = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel.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 { withSize } from '../../lib/size/SizeDecorator.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 { Override } from '../../typings/utility-types.js';\nimport { getStyles, globalClasses } from './Checkbox.styles.js';\nimport { CheckedIcon } from './CheckedIcon.js';\nimport { IndeterminateIcon } from './IndeterminateIcon.js';\n\nexport interface CheckboxProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: boolean) => void;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\n /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n/**\n * `Checkbox` используется для управления параметром с двумя состояниями.\n *\n * Чекбокс не запускает действие немедленно. Как правило, для этого нужно нажать подтверждающую кнопку.\n * Для немедленного включения какого-то режима в интерфейсе лучше подходит Toggle.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.boxWrapperLarge(this.theme);\n case 'medium':\n return this.styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return this.styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n private size!: SizeProp;\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 private input = React.createRef<HTMLInputElement>();\n private getProps = createPropsGetter({});\n private keyListener!: KeyListener;\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n this.globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render(): React.JSX.Element {\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus(): void {\n this.keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur(): void {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = (): void => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = (): void => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n onClick,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const iconClass = this.cx(\n this.styles.icon(),\n !this.props.checked && !isIndeterminate && this.styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n );\n const IconSquare = (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n );\n\n const rootClass = this.cx(this.getRootSizeClassName(), {\n [this.styles.root(this.theme)]: true,\n [this.styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [this.styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [this.styles.disabled(this.theme)]: Boolean(this.props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: this.styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleInputClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = this.cx({\n [this.styles.caption(this.theme)]: true,\n [this.styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={this.cx(this.getBoxWrapperSizeClassName(), {\n [this.styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={this.cx(this.styles.box(this.theme), globalClasses.box, {\n [this.styles.boxChecked(this.theme)]: this.props.checked || isIndeterminate,\n [this.styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [this.styles.boxError(this.theme)]: this.props.error,\n [this.styles.boxWarning(this.theme)]: this.props.warning,\n [this.styles.boxDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={this.handleLabelClick}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n </FocusControlWrapper>\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByTab: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n const handleModifierClickInFirefox = fixFirefoxModifiedClickOnLabel(this.input);\n handleModifierClickInFirefox(e);\n if (this.props.onClick && e.target !== this.input.current) {\n e.stopPropagation();\n }\n };\n\n private handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n };\n}\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel.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 { withSize } from '../../lib/size/SizeDecorator.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 { Override } from '../../typings/utility-types.js';\nimport { getStyles, globalClasses } from './Checkbox.styles.js';\nimport { CheckedIcon } from './CheckedIcon.js';\nimport { IndeterminateIcon } from './IndeterminateIcon.js';\n\nexport interface CheckboxProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Переводит контрол в состояние ошибки. */\n error?: boolean;\n\n /** Переводит контрол в состояние предупреждения. */\n warning?: boolean;\n\n /** Размер чекбокса. */\n size?: SizeProp;\n\n /** HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Событие изменения value. */\n onValueChange?: (value: boolean) => void;\n\n /** HTML-событие `onblur`.\n * @ignore */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\n /** Устанавливает начальное [неопределенное состояние чекбокса](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate). */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n/**\n * Чекбокс используется для управления параметром с двумя состояниями.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.boxWrapperLarge(this.theme);\n case 'medium':\n return this.styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return this.styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n private size!: SizeProp;\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 private input = React.createRef<HTMLInputElement>();\n private getProps = createPropsGetter({});\n private keyListener!: KeyListener;\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n this.globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n this.globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n this.globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render(): React.JSX.Element {\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программно устанавливает фокус на чекбокс.\n * @public\n */\n public focus(): void {\n this.keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программно снимает фокус с чекбокса.\n * @public\n */\n public blur(): void {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = (): void => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = (): void => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n onClick,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const iconClass = this.cx(\n this.styles.icon(),\n !this.props.checked && !isIndeterminate && this.styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n );\n const IconSquare = (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n );\n\n const rootClass = this.cx(this.getRootSizeClassName(), {\n [this.styles.root(this.theme)]: true,\n [this.styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [this.styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [this.styles.disabled(this.theme)]: Boolean(this.props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: this.styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleInputClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = this.cx({\n [this.styles.caption(this.theme)]: true,\n [this.styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={this.cx(this.getBoxWrapperSizeClassName(), {\n [this.styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={this.cx(this.styles.box(this.theme), globalClasses.box, {\n [this.styles.boxChecked(this.theme)]: this.props.checked || isIndeterminate,\n [this.styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [this.styles.boxError(this.theme)]: this.props.error,\n [this.styles.boxWarning(this.theme)]: this.props.warning,\n [this.styles.boxDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={this.handleLabelClick}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n </FocusControlWrapper>\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByTab: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n const handleModifierClickInFirefox = fixFirefoxModifiedClickOnLabel(this.input);\n handleModifierClickInFirefox(e);\n if (this.props.onClick && e.target !== this.input.current) {\n e.stopPropagation();\n }\n };\n\n private handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n };\n}\n"]}
@@ -24,9 +24,9 @@ export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby
24
24
  borderless?: boolean;
25
25
  /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */
26
26
  disablePortal?: boolean;
27
- /** Поле становится недоступно для редактирования. */
27
+ /** Блокирует комбобокс. */
28
28
  disabled?: boolean;
29
- /** Меняет визуальное отображение поля на состояние «ошибка». */
29
+ /** Переводит комбобокс в состояние ошибки. */
30
30
  error?: boolean;
31
31
  /** Добавляет иконку слева.
32
32
  При использовании `ReactNode` применяются дефолтные стили для иконки.
@@ -105,7 +105,7 @@ export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby
105
105
  valueToString?: (item: T) => string;
106
106
  /** Размер комбобокса. */
107
107
  size?: SizeProp;
108
- /** Меняет визуальное отображение поля на состояние «предупреждение». */
108
+ /** Переводит комбобокс в состояние предупреждения. */
109
109
  warning?: boolean;
110
110
  /** Ширина комбобокса. */
111
111
  width?: string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { CustomComboBox } from '../../internal/CustomComboBox/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { InputIconType, ShowClearIcon } from '../Input/Input.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput/MaskedInput.js';\nimport type { MenuItemState } from '../MenuItem/MenuItem.js';\n\nexport type ComboBoxViewMode = 'singleline' | 'multiline' | 'multiline-editing';\n\nexport interface ComboBoxProps<T>\n extends\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Ввыравнивание текста в поле. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска `getItems` при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на комбобоксе после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Поле становится недоступно для редактирования. */\n disabled?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задаёт функцию поиска элементов, которая должна возвращать Promise с массивом значений.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToId`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number;\n\n /** Mаксимальная длина значения, которое пользователь может ввести в поле. */\n maxLength?: number;\n\n /** Расположение выпадающего списка — над или под полем.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Событие потери комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Событие изменения значения (`value`) в поле. */\n onValueChange?: (value: T) => void;\n\n /** Событие получения комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Событие, которое вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода.\n *\n * **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**\n */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Событие обработки ввода строки в поле ввода и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значение в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Отрисовывает элементы результата поиска.\n * Не применяется, если элемент является функцией или React-элементом.\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Отображает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Отрисовывает кнопку добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Возвращает строковое представление `value`. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Размер комбобокса. */\n size?: SizeProp;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». */\n warning?: boolean;\n\n /** Ширина комбобокса. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Событие наведения мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Событие наведения мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Событие ухода мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задаёт типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n /** Событие вставки значения в поле с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n\n /** Режим отображения комбобокса:\n * - `\"singleline\"` — однострочное поле;\n * - `\"multiline\"` — многострочное поле;\n * - `\"multiline-editing\"` — поле становится многострочным только при редактировании.\n *\n * Многострочные режимы не работают, если указан проп `mask`. В таком случае будет отображаться однострочное поле.\n * @default singleline */\n viewMode?: ComboBoxViewMode;\n\n /** Максимальное количество отображаемых строк, если для поля добавлен проп многострочного режима — `\"multiline\"` или `\"multiline-editing\"`. */\n maxRows?: number;\n\n /** Отключает выравнивание текста пунктов списка относительно иконок в других пунктах. */\n preventIconsOffset?: boolean;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToId'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n | 'viewMode'\n >\n>;\n\n/**\n * Комбобокс — поле ввода с выпадающим списком подсказок, из которых пользователь может выбрать нужное. Открыть выпадающий список можно ещё до начала ввода значения, нажав на поле. */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToId: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n viewMode: 'singleline',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на комбобокс.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /** Программно снимает фокус с комбобокса.\n * @public\n */\n public blur(): void {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /** Открывает список значений и запускает поиск.\n *\n * По умолчанию для поиска используется введенное в поле значение или результат `valueToString(value)`.\n *\n * @public\n * @param {string} [query] Текст поиска.`\n */\n public search(query?: string): void {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /** Отменяет текущий поиск — останавливает фильтрацию и очищает результаты поиска.\n * @public\n */\n public cancelSearch(): void {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /** Открывает выпадающий список.\n * @public\n */\n public open(): void {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /** Закрывает выпадающий список.\n * @public\n */\n public close(): void {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Переводит фокус в поле, если ещё не в фокусе, и выделяет весь текст в нём.\n * @public\n */\n public selectInputText(): void {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введённое пользователем значение без изменения `value`.\n * @public\n */\n public reset(): void {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render(): React.JSX.Element {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"]}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { CustomComboBox } from '../../internal/CustomComboBox/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { InputIconType, ShowClearIcon } from '../Input/Input.js';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput/MaskedInput.js';\nimport type { MenuItemState } from '../MenuItem/MenuItem.js';\n\nexport type ComboBoxViewMode = 'singleline' | 'multiline' | 'multiline-editing';\n\nexport interface ComboBoxProps<T>\n extends\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Ввыравнивание текста в поле. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска `getItems` при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на комбобоксе после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Блокирует комбобокс. */\n disabled?: boolean;\n\n /** Переводит комбобокс в состояние ошибки. */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задаёт функцию поиска элементов, которая должна возвращать Promise с массивом значений.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToId`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number;\n\n /** Mаксимальная длина значения, которое пользователь может ввести в поле. */\n maxLength?: number;\n\n /** Расположение выпадающего списка — над или под полем.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Событие потери комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Событие изменения значения (`value`) в поле. */\n onValueChange?: (value: T) => void;\n\n /** Событие получения комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Событие, которое вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода.\n *\n * **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**\n */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Событие обработки ввода строки в поле ввода и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значение в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Отрисовывает элементы результата поиска.\n * Не применяется, если элемент является функцией или React-элементом.\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Отображает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Отрисовывает кнопку добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Возвращает строковое представление `value`. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Размер комбобокса. */\n size?: SizeProp;\n\n /** Переводит комбобокс в состояние предупреждения. */\n warning?: boolean;\n\n /** Ширина комбобокса. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Событие наведения мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Событие наведения мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Событие ухода мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задаёт типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n /** Событие вставки значения в поле с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n\n /** Режим отображения комбобокса:\n * - `\"singleline\"` — однострочное поле;\n * - `\"multiline\"` — многострочное поле;\n * - `\"multiline-editing\"` — поле становится многострочным только при редактировании.\n *\n * Многострочные режимы не работают, если указан проп `mask`. В таком случае будет отображаться однострочное поле.\n * @default singleline */\n viewMode?: ComboBoxViewMode;\n\n /** Максимальное количество отображаемых строк, если для поля добавлен проп многострочного режима — `\"multiline\"` или `\"multiline-editing\"`. */\n maxRows?: number;\n\n /** Отключает выравнивание текста пунктов списка относительно иконок в других пунктах. */\n preventIconsOffset?: boolean;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToId'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n | 'viewMode'\n >\n>;\n\n/**\n * Комбобокс — поле ввода с выпадающим списком подсказок, из которых пользователь может выбрать нужное. Открыть выпадающий список можно ещё до начала ввода значения, нажав на поле. */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToId: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n viewMode: 'singleline',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на комбобокс.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /** Программно снимает фокус с комбобокса.\n * @public\n */\n public blur(): void {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /** Открывает список значений и запускает поиск.\n *\n * По умолчанию для поиска используется введенное в поле значение или результат `valueToString(value)`.\n *\n * @public\n * @param {string} [query] Текст поиска.`\n */\n public search(query?: string): void {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /** Отменяет текущий поиск — останавливает фильтрацию и очищает результаты поиска.\n * @public\n */\n public cancelSearch(): void {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /** Открывает выпадающий список.\n * @public\n */\n public open(): void {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /** Закрывает выпадающий список.\n * @public\n */\n public close(): void {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Переводит фокус в поле, если ещё не в фокусе, и выделяет весь текст в нём.\n * @public\n */\n public selectInputText(): void {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введённое пользователем значение без изменения `value`.\n * @public\n */\n public reset(): void {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render(): React.JSX.Element {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"]}
@@ -16,41 +16,41 @@ export declare const DateInputDataTids: {
16
16
  readonly icon: "DateInput__icon";
17
17
  };
18
18
  export interface DateInputProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<HTMLAttributes<HTMLElement>, 'id'> {
19
- /** Устанавливает фокус на контроле после окончания загрузки страницы. */
19
+ /** Устанавливает фокус на поле после окончания загрузки страницы. */
20
20
  autoFocus?: boolean;
21
- /** Устанавливает значение датаинпута. */
21
+ /** Значение поля. */
22
22
  value?: string;
23
- /** Переводит контрол в состояние валидации "ошибка". */
23
+ /** Меняет визуальное отображение поля на состояние ошибки. */
24
24
  error?: boolean;
25
- /** Переводит контрол в состояние валидации "предупреждение". */
25
+ /** Меняет визуальное отображение поля на состояние предупреждения. */
26
26
  warning?: boolean;
27
- /** Делает компонент недоступным. */
27
+ /** Блокирует поле. */
28
28
  disabled?: boolean;
29
- /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */
29
+ /** Минимальная дата в формате `dd.mm.yyyy`. */
30
30
  minDate?: string;
31
- /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */
31
+ /** Максимальная дата в формате `dd.mm.yyyy`. */
32
32
  maxDate?: string;
33
- /** Задает ширину поля. */
33
+ /** Ширина поля. */
34
34
  width?: string | number;
35
35
  /** Добавляет иконку календаря. */
36
36
  withIcon?: boolean;
37
- /** Задает размер поля. */
37
+ /** Размер поля. */
38
38
  size?: SizeProp;
39
- /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */
39
+ /** Событие потери полем фокуса. */
40
40
  onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;
41
- /** Задает функцию, которая вызывается при клике на датаинпут. */
41
+ /** Событие нажатия на поле. */
42
42
  onClick?: (x0: React.MouseEvent<HTMLElement>) => void;
43
- /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */
43
+ /** Событие получения полем фокуса. */
44
44
  onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;
45
- /** Задает функцию, которая вызывается при изменении value.
45
+ /** Событие изменения value.
46
46
  * @param value - строка в формате `dd.mm.yyyy`. */
47
47
  onValueChange?: (value: string) => void;
48
- /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */
48
+ /** Событие нажатия кнопки на клавиатуре. */
49
49
  onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;
50
50
  }
51
51
  type DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;
52
52
  /**
53
- * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.
53
+ * Поле ввода для выбора даты с клавиатуры. Используется в [поле с датой](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-datepicker--docs).
54
54
  */
55
55
  export declare class DateInput extends React.Component<DateInputProps, DateInputState> {
56
56
  static __KONTUR_REACT_UI__: string;
@@ -56,7 +56,7 @@ export var DateInputDataTids = {
56
56
  icon: 'DateInput__icon',
57
57
  };
58
58
  /**
59
- * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.
59
+ * Поле ввода для выбора даты с клавиатуры. Используется в [поле с датой](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-datepicker--docs).
60
60
  */
61
61
  var DateInput = /** @class */ (function (_super) {
62
62
  __extends(DateInput, _super);