@skbkontur/react-ui 0.0.0-7feb61cdde → 0.0.0-80c5917afc

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 (379) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +5 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -4
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -1
  6. package/cjs/components/Button/Button.js +7 -2
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.styles.js +6 -4
  9. package/cjs/components/Button/Button.styles.js.map +1 -1
  10. package/cjs/components/Button/getInnerLinkTheme.js +2 -3
  11. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.styles.js +1 -2
  13. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  14. package/cjs/components/Calendar/DayCellView.js +1 -1
  15. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  16. package/cjs/components/Calendar/DayCellView.styles.d.ts +1 -1
  17. package/cjs/components/Calendar/DayCellView.styles.js +4 -4
  18. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  19. package/cjs/components/Checkbox/Checkbox.d.ts +10 -0
  20. package/cjs/components/Checkbox/Checkbox.js +70 -15
  21. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  22. package/cjs/components/Checkbox/Checkbox.md +18 -0
  23. package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -0
  24. package/cjs/components/Checkbox/Checkbox.mixins.js +35 -0
  25. package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -0
  26. package/cjs/components/Checkbox/Checkbox.styles.d.ts +6 -0
  27. package/cjs/components/Checkbox/Checkbox.styles.js +95 -34
  28. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  29. package/cjs/components/ComboBox/ComboBox.md +5 -3
  30. package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
  31. package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
  32. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  33. package/cjs/components/DateInput/DateInput.d.ts +3 -0
  34. package/cjs/components/DateInput/DateInput.js +11 -3
  35. package/cjs/components/DateInput/DateInput.js.map +1 -1
  36. package/cjs/components/Dropdown/getDropdownTheme.js +3 -1
  37. package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
  38. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  39. package/cjs/components/DropdownMenu/DropdownMenu.js +4 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  41. package/cjs/components/DropdownMenu/DropdownMenu.md +28 -0
  42. package/cjs/components/DropdownMenu/getDropdownMenuTheme.js +5 -1
  43. package/cjs/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  44. package/cjs/components/FileUploader/FileUploader.styles.js +3 -2
  45. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  46. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  47. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  48. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
  49. package/cjs/components/GlobalLoader/GlobalLoaderView.js +6 -4
  50. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  51. package/cjs/components/Input/Input.d.ts +1 -5
  52. package/cjs/components/Input/Input.js +4 -5
  53. package/cjs/components/Input/Input.js.map +1 -1
  54. package/cjs/components/Input/Input.styles.js +3 -2
  55. package/cjs/components/Input/Input.styles.js.map +1 -1
  56. package/cjs/components/Kebab/Kebab.d.ts +1 -1
  57. package/cjs/components/Kebab/Kebab.js +6 -1
  58. package/cjs/components/Kebab/Kebab.js.map +1 -1
  59. package/cjs/components/Kebab/Kebab.md +28 -0
  60. package/cjs/components/Link/Link.js +4 -2
  61. package/cjs/components/Link/Link.js.map +1 -1
  62. package/cjs/components/Link/Link.mixins.d.ts +1 -2
  63. package/cjs/components/Link/Link.mixins.js +5 -16
  64. package/cjs/components/Link/Link.mixins.js.map +1 -1
  65. package/cjs/components/Link/Link.styles.d.ts +2 -0
  66. package/cjs/components/Link/Link.styles.js +58 -38
  67. package/cjs/components/Link/Link.styles.js.map +1 -1
  68. package/cjs/components/Modal/ModalFooter.js +1 -1
  69. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  70. package/cjs/components/Modal/ModalHeader.js +1 -1
  71. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  72. package/cjs/components/Radio/Radio.styles.js +6 -2
  73. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  74. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +3 -2
  75. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  76. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  77. package/cjs/components/Select/Select.d.ts +7 -5
  78. package/cjs/components/Select/Select.js +15 -6
  79. package/cjs/components/Select/Select.js.map +1 -1
  80. package/cjs/components/Select/Select.styles.js +3 -2
  81. package/cjs/components/Select/Select.styles.js.map +1 -1
  82. package/cjs/components/Select/selectTheme.js +4 -1
  83. package/cjs/components/Select/selectTheme.js.map +1 -1
  84. package/cjs/components/Tabs/Tab.d.ts +1 -0
  85. package/cjs/components/Tabs/Tab.js +15 -1
  86. package/cjs/components/Tabs/Tab.js.map +1 -1
  87. package/cjs/components/Tabs/Tab.styles.d.ts +9 -3
  88. package/cjs/components/Tabs/Tab.styles.js +106 -68
  89. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  90. package/cjs/components/Tabs/Tabs.d.ts +8 -2
  91. package/cjs/components/Tabs/Tabs.js +15 -1
  92. package/cjs/components/Tabs/Tabs.js.map +1 -1
  93. package/cjs/components/Tabs/Tabs.md +32 -0
  94. package/cjs/components/Tabs/Tabs.styles.d.ts +3 -1
  95. package/cjs/components/Tabs/Tabs.styles.js +23 -7
  96. package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
  97. package/cjs/components/Tabs/TabsContext.d.ts +2 -1
  98. package/cjs/components/Tabs/TabsContext.js +2 -0
  99. package/cjs/components/Tabs/TabsContext.js.map +1 -1
  100. package/cjs/components/Tabs/helpers.d.ts +6 -0
  101. package/cjs/components/Tabs/helpers.js +30 -0
  102. package/cjs/components/Tabs/helpers.js.map +1 -0
  103. package/cjs/components/Textarea/Textarea.styles.js +2 -2
  104. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  105. package/cjs/components/Toast/ToastView.styles.js +2 -2
  106. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  107. package/cjs/components/Toggle/Toggle.d.ts +11 -1
  108. package/cjs/components/Toggle/Toggle.js +102 -2
  109. package/cjs/components/Toggle/Toggle.js.map +1 -1
  110. package/cjs/components/Toggle/Toggle.md +16 -2
  111. package/cjs/components/Toggle/Toggle.mixins.d.ts +7 -0
  112. package/cjs/components/Toggle/Toggle.mixins.js +90 -0
  113. package/cjs/components/Toggle/Toggle.mixins.js.map +1 -0
  114. package/cjs/components/Toggle/Toggle.styles.d.ts +21 -1
  115. package/cjs/components/Toggle/Toggle.styles.js +172 -56
  116. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  117. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  118. package/cjs/components/TokenInput/TokenInput.js +8 -2
  119. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  120. package/cjs/components/TokenInput/TokenInput.md +26 -35
  121. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  122. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  123. package/cjs/components/TokenInput/TokenInputMenu.d.ts +7 -0
  124. package/cjs/components/TokenInput/TokenInputMenu.js +9 -1
  125. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  126. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  127. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -2
  128. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/cjs/components/TooltipMenu/TooltipMenu.md +28 -0
  130. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +2 -1
  131. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  132. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  133. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +10 -1
  134. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  136. package/cjs/internal/CustomComboBox/ComboBoxView.js +11 -3
  137. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  138. package/cjs/internal/CustomComboBox/CustomComboBox.js +13 -11
  139. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  140. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  141. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  142. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +3 -0
  143. package/cjs/internal/DateSelect/DateSelect.styles.js +15 -3
  144. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  145. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
  146. package/cjs/internal/DropdownContainer/DropdownContainer.js +6 -1
  147. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  148. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
  149. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +7 -5
  150. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  151. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  152. package/cjs/internal/InputLikeText/InputLikeText.js +16 -4
  153. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  154. package/cjs/internal/InternalMenu/InternalMenu.d.ts +13 -4
  155. package/cjs/internal/InternalMenu/InternalMenu.js +15 -5
  156. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  157. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
  158. package/cjs/internal/InternalMenu/InternalMenu.styles.js +13 -7
  159. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  160. package/cjs/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
  161. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +9 -0
  162. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -0
  163. package/cjs/internal/Menu/Menu.d.ts +42 -8
  164. package/cjs/internal/Menu/Menu.js +272 -78
  165. package/cjs/internal/Menu/Menu.js.map +1 -1
  166. package/cjs/internal/Menu/Menu.styles.d.ts +6 -1
  167. package/cjs/internal/Menu/Menu.styles.js +42 -8
  168. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  169. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -2
  170. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  171. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  172. package/cjs/internal/Popup/Popup.d.ts +7 -2
  173. package/cjs/internal/Popup/Popup.js +13 -3
  174. package/cjs/internal/Popup/Popup.js.map +1 -1
  175. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -1
  176. package/cjs/internal/PopupMenu/PopupMenu.js +29 -4
  177. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  178. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  179. package/cjs/internal/themes/DefaultTheme.d.ts +114 -17
  180. package/cjs/internal/themes/DefaultTheme.js +244 -68
  181. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  182. package/cjs/internal/themes/Theme2022.d.ts +19 -3
  183. package/cjs/internal/themes/Theme2022.js +33 -13
  184. package/cjs/internal/themes/Theme2022.js.map +1 -1
  185. package/cjs/internal/themes/Theme2022Dark.d.ts +0 -4
  186. package/cjs/internal/themes/Theme2022Dark.js +3 -14
  187. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  188. package/cjs/typings/html.d.ts +0 -1
  189. package/components/Autocomplete/Autocomplete/Autocomplete.js +13 -3
  190. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  191. package/components/Autocomplete/Autocomplete.d.ts +5 -0
  192. package/components/Button/Button/Button.js +2 -0
  193. package/components/Button/Button/Button.js.map +1 -1
  194. package/components/Button/Button.d.ts +1 -1
  195. package/components/Button/Button.styles/Button.styles.js +2 -2
  196. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  197. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +2 -3
  198. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  199. package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
  200. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
  201. package/components/Calendar/DayCellView/DayCellView.js +1 -1
  202. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  203. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +2 -2
  204. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  205. package/components/Calendar/DayCellView.styles.d.ts +1 -1
  206. package/components/Checkbox/Checkbox/Checkbox.js +56 -8
  207. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  208. package/components/Checkbox/Checkbox.d.ts +10 -0
  209. package/components/Checkbox/Checkbox.md +18 -0
  210. package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +17 -0
  211. package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -0
  212. package/components/Checkbox/Checkbox.mixins/package.json +6 -0
  213. package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
  214. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +39 -25
  215. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  216. package/components/Checkbox/Checkbox.styles.d.ts +6 -0
  217. package/components/ComboBox/ComboBox.md +5 -3
  218. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
  219. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  220. package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
  221. package/components/DateInput/DateInput/DateInput.js +5 -1
  222. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  223. package/components/DateInput/DateInput.d.ts +3 -0
  224. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +3 -1
  225. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
  226. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -0
  227. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  228. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  229. package/components/DropdownMenu/DropdownMenu.md +28 -0
  230. package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js +5 -1
  231. package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js.map +1 -1
  232. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -1
  233. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  234. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -1
  235. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  236. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +6 -2
  237. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  238. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
  239. package/components/Input/Input/Input.js +3 -1
  240. package/components/Input/Input/Input.js.map +1 -1
  241. package/components/Input/Input.d.ts +1 -5
  242. package/components/Input/Input.styles/Input.styles.js +2 -2
  243. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  244. package/components/Kebab/Kebab/Kebab.js +4 -1
  245. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  246. package/components/Kebab/Kebab.d.ts +1 -1
  247. package/components/Kebab/Kebab.md +28 -0
  248. package/components/Link/Link/Link.js +4 -4
  249. package/components/Link/Link/Link.js.map +1 -1
  250. package/components/Link/Link.mixins/Link.mixins.js +2 -5
  251. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  252. package/components/Link/Link.mixins.d.ts +1 -2
  253. package/components/Link/Link.styles/Link.styles.js +29 -21
  254. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  255. package/components/Link/Link.styles.d.ts +2 -0
  256. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  257. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  258. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  259. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  260. package/components/Radio/Radio.styles/Radio.styles.js +2 -2
  261. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  262. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  263. package/components/ScrollContainer/ScrollContainer.d.ts +3 -2
  264. package/components/Select/Select/Select.js +15 -7
  265. package/components/Select/Select/Select.js.map +1 -1
  266. package/components/Select/Select.d.ts +7 -5
  267. package/components/Select/Select.styles/Select.styles.js +1 -1
  268. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  269. package/components/Select/selectTheme/selectTheme.js +3 -1
  270. package/components/Select/selectTheme/selectTheme.js.map +1 -1
  271. package/components/Tabs/Tab/Tab.js +3 -3
  272. package/components/Tabs/Tab/Tab.js.map +1 -1
  273. package/components/Tabs/Tab.d.ts +1 -0
  274. package/components/Tabs/Tab.styles/Tab.styles.js +52 -23
  275. package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
  276. package/components/Tabs/Tab.styles.d.ts +9 -3
  277. package/components/Tabs/Tabs/Tabs.js +11 -3
  278. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  279. package/components/Tabs/Tabs.d.ts +8 -2
  280. package/components/Tabs/Tabs.md +32 -0
  281. package/components/Tabs/Tabs.styles/Tabs.styles.js +15 -4
  282. package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
  283. package/components/Tabs/Tabs.styles.d.ts +3 -1
  284. package/components/Tabs/TabsContext/TabsContext.js +1 -0
  285. package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  286. package/components/Tabs/TabsContext.d.ts +2 -1
  287. package/components/Tabs/helpers/helpers.js +25 -0
  288. package/components/Tabs/helpers/helpers.js.map +1 -0
  289. package/components/Tabs/helpers/package.json +6 -0
  290. package/components/Tabs/helpers.d.ts +6 -0
  291. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  292. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  293. package/components/Toast/ToastView.styles/ToastView.styles.js +1 -1
  294. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  295. package/components/Toggle/Toggle/Toggle.js +112 -9
  296. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  297. package/components/Toggle/Toggle.d.ts +11 -1
  298. package/components/Toggle/Toggle.md +16 -2
  299. package/components/Toggle/Toggle.mixins/Toggle.mixins.js +35 -0
  300. package/components/Toggle/Toggle.mixins/Toggle.mixins.js.map +1 -0
  301. package/components/Toggle/Toggle.mixins/package.json +6 -0
  302. package/components/Toggle/Toggle.mixins.d.ts +7 -0
  303. package/components/Toggle/Toggle.styles/Toggle.styles.js +85 -31
  304. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  305. package/components/Toggle/Toggle.styles.d.ts +21 -1
  306. package/components/TokenInput/TokenInput/TokenInput.js +9 -3
  307. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  308. package/components/TokenInput/TokenInput.d.ts +2 -0
  309. package/components/TokenInput/TokenInput.md +26 -35
  310. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  311. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  312. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
  313. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  314. package/components/TokenInput/TokenInputMenu.d.ts +7 -0
  315. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +7 -2
  316. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  317. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  318. package/components/TooltipMenu/TooltipMenu.md +28 -0
  319. package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js +1 -1
  320. package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js.map +1 -1
  321. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -0
  322. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  323. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  324. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +10 -3
  325. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  326. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  327. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +23 -20
  328. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  329. package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
  330. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  331. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +5 -2
  332. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
  333. package/internal/DateSelect/DateSelect.styles.d.ts +3 -0
  334. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +2 -0
  335. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  336. package/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
  337. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +5 -4
  338. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  339. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
  340. package/internal/InputLikeText/InputLikeText/InputLikeText.js +20 -8
  341. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  342. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  343. package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -6
  344. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  345. package/internal/InternalMenu/InternalMenu.d.ts +13 -4
  346. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +10 -7
  347. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  348. package/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
  349. package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js +6 -0
  350. package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js.map +1 -0
  351. package/internal/InternalMenu/isIconPaddingEnabled/package.json +6 -0
  352. package/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
  353. package/internal/Menu/Menu/Menu.js +197 -42
  354. package/internal/Menu/Menu/Menu.js.map +1 -1
  355. package/internal/Menu/Menu.d.ts +42 -8
  356. package/internal/Menu/Menu.styles/Menu.styles.js +20 -5
  357. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  358. package/internal/Menu/Menu.styles.d.ts +6 -1
  359. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -0
  360. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  361. package/internal/MobilePopup/MobilePopup.d.ts +2 -2
  362. package/internal/Popup/Popup/Popup.js +9 -3
  363. package/internal/Popup/Popup/Popup.js.map +1 -1
  364. package/internal/Popup/Popup.d.ts +7 -2
  365. package/internal/PopupMenu/PopupMenu/PopupMenu.js +27 -5
  366. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  367. package/internal/PopupMenu/PopupMenu.d.ts +4 -1
  368. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  369. package/internal/themes/DefaultTheme/DefaultTheme.js +320 -88
  370. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  371. package/internal/themes/DefaultTheme.d.ts +114 -17
  372. package/internal/themes/Theme2022/Theme2022.js +59 -44
  373. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  374. package/internal/themes/Theme2022.d.ts +19 -3
  375. package/internal/themes/Theme2022Dark/Theme2022Dark.js +1 -18
  376. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  377. package/internal/themes/Theme2022Dark.d.ts +0 -4
  378. package/package.json +3 -3
  379. package/typings/html.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","IconCheck","parseInt","checkboxBoxSize","IconSquare","rootClass","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\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 if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n document.addEventListener('keydown', this.handleShiftPress);\n document.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n document.removeEventListener('keydown', this.handleShiftPress);\n document.removeEventListener('keyup', this.handleShiftRelease);\n };\n\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() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\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 = () => {\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 onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: 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={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\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 requestAnimationFrame(() => {\n if (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 handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\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 handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: CheckboxSize;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().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 static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\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 if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n document.addEventListener('keydown', this.handleShiftPress);\n document.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n document.removeEventListener('keydown', this.handleShiftPress);\n document.removeEventListener('keyup', this.handleShiftRelease);\n };\n\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() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\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 = () => {\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 type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [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={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: 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={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\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 requestAnimationFrame(() => {\n if (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 handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\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 handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
@@ -2,6 +2,7 @@ import React, { AriaAttributes } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { Override } from '../../typings/utility-types';
4
4
  import { CommonProps } from '../../internal/CommonWrapper';
5
+ export declare type CheckboxSize = 'small' | 'medium' | 'large';
5
6
  export interface CheckboxProps extends CommonProps, Override<React.InputHTMLAttributes<HTMLInputElement>, {
6
7
  /**
7
8
  * Контент `label`
@@ -15,6 +16,8 @@ export interface CheckboxProps extends CommonProps, Override<React.InputHTMLAttr
15
16
  * Состояние валидации при предупреждении.
16
17
  */
17
18
  warning?: boolean;
19
+ /** Размер */
20
+ size?: CheckboxSize;
18
21
  /**
19
22
  * HTML-событие `mouseenter`.
20
23
  */
@@ -53,8 +56,14 @@ export interface CheckboxState {
53
56
  export declare const CheckboxDataTids: {
54
57
  readonly root: "Checkbox__root";
55
58
  };
59
+ declare type DefaultProps = Required<Pick<CheckboxProps, 'size'>>;
56
60
  export declare class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {
57
61
  static __KONTUR_REACT_UI__: string;
62
+ static defaultProps: DefaultProps;
63
+ private getProps;
64
+ private getRootSizeClassName;
65
+ private getBoxWrapperSizeClassName;
66
+ private getCheckboxBoxSize;
58
67
  static propTypes: {
59
68
  checked: PropTypes.Requireable<boolean>;
60
69
  disabled: PropTypes.Requireable<boolean>;
@@ -106,3 +115,4 @@ export declare class Checkbox extends React.PureComponent<CheckboxProps, Checkbo
106
115
  private handleChange;
107
116
  private handleClick;
108
117
  }
118
+ export {};
@@ -36,6 +36,24 @@ const CheckboxWithState = ({children, ...props}) => {
36
36
  </Gapped>
37
37
  ```
38
38
 
39
+ У чекбокса есть 3 стандартных размера.
40
+
41
+ ```jsx harmony
42
+ import { Gapped } from '@skbkontur/react-ui';
43
+
44
+ <Gapped vertical>
45
+ <Checkbox size="small" checked>
46
+ Маленький
47
+ </Checkbox>
48
+ <Checkbox size="medium" checked>
49
+ Средний
50
+ </Checkbox>
51
+ <Checkbox size="large" checked>
52
+ Большой
53
+ </Checkbox>
54
+ </Gapped>
55
+ ```
56
+
39
57
  Пример использования методов чекбокса `focus()` и `blur()`.
40
58
 
41
59
  ```jsx harmony
@@ -0,0 +1,17 @@
1
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
+
3
+ var _templateObject, _templateObject2;
4
+
5
+ import { css } from "../../../lib/theming/Emotion";
6
+ import { isChrome, isFirefox } from "../../../lib/client";
7
+ import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
8
+ export var checkboxSizeMixin = function checkboxSizeMixin(fontSize, lineHeight, paddingY, checkboxBoxSize) {
9
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n line-height: ", ";\n font-size: ", ";\n padding: ", " 0;\n\n &::before {\n width: ", ";\n }\n "])), lineHeight, fontSize, paddingY, checkboxBoxSize);
10
+ };
11
+ export var boxWrapperSizeMixin = function boxWrapperSizeMixin(labGrotesqueBaselineCompensation, fontSize, checkboxBoxSize, checkboxBoxOffsetY) {
12
+ var labGrotesqueCompenstation = parseInt(labGrotesqueBaselineCompensation);
13
+ var boxFontSize = parseInt(fontSize);
14
+ var baselineCompensation = boxFontSize === 18 && (isFirefox || isChrome) // TODO: вынести условие в getLabGrotesqueBaselineCompensation, когда проп size будет добавлен для radio
15
+ ? -labGrotesqueCompenstation : getLabGrotesqueBaselineCompensation(boxFontSize, labGrotesqueCompenstation, isChrome);
16
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n margin-top: calc(", " + ", "px);\n "])), checkboxBoxSize, checkboxBoxSize, checkboxBoxOffsetY, baselineCompensation);
17
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Checkbox.mixins.ts"],"names":["css","isChrome","isFirefox","getLabGrotesqueBaselineCompensation","checkboxSizeMixin","fontSize","lineHeight","paddingY","checkboxBoxSize","boxWrapperSizeMixin","labGrotesqueBaselineCompensation","checkboxBoxOffsetY","labGrotesqueCompenstation","parseInt","boxFontSize","baselineCompensation"],"mappings":"sIAAA,SAASA,GAAT,QAAoB,2BAApB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,kBAApC;AACA,SAASC,mCAAT,QAAoD,sDAApD;;AAEA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAmBC,UAAnB,EAAuCC,QAAvC,EAAyDC,eAAzD,EAAqF;AACpH,SAAOR,GAAP;AACiBM,EAAAA,UADjB;AAEeD,EAAAA,QAFf;AAGaE,EAAAA,QAHb;;;AAMaC,EAAAA,eANb;;;AASD,CAVM;;AAYP,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;AACjCC,gCADiC;AAEjCL,QAFiC;AAGjCG,eAHiC;AAIjCG,kBAJiC;AAK9B;AACH,MAAMC,yBAAyB,GAAGC,QAAQ,CAACH,gCAAD,CAA1C;AACA,MAAMI,WAAW,GAAGD,QAAQ,CAACR,QAAD,CAA5B;AACA,MAAMU,oBAAoB;AACxBD,EAAAA,WAAW,KAAK,EAAhB,KAAuBZ,SAAS,IAAID,QAApC,EAA8C;AAA9C,IACI,CAACW,yBADL;AAEIT,EAAAA,mCAAmC,CAACW,WAAD,EAAcF,yBAAd,EAAyCX,QAAzC,CAHzC;;AAKA,SAAOD,GAAP;AACWQ,EAAAA,eADX;AAEYA,EAAAA,eAFZ;AAGqBG,EAAAA,kBAHrB,EAG6CI,oBAH7C;;AAKD,CAlBM","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { isChrome, isFirefox } from '../../lib/client';\nimport { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\n\nexport const checkboxSizeMixin = (fontSize: string, lineHeight: string, paddingY: string, checkboxBoxSize: string) => {\n return css`\n line-height: ${lineHeight};\n font-size: ${fontSize};\n padding: ${paddingY} 0;\n\n &::before {\n width: ${checkboxBoxSize};\n }\n `;\n};\n\nexport const boxWrapperSizeMixin = (\n labGrotesqueBaselineCompensation: string,\n fontSize: string,\n checkboxBoxSize: string,\n checkboxBoxOffsetY: string,\n) => {\n const labGrotesqueCompenstation = parseInt(labGrotesqueBaselineCompensation);\n const boxFontSize = parseInt(fontSize);\n const baselineCompensation =\n boxFontSize === 18 && (isFirefox || isChrome) // TODO: вынести условие в getLabGrotesqueBaselineCompensation, когда проп size будет добавлен для radio\n ? -labGrotesqueCompenstation\n : getLabGrotesqueBaselineCompensation(boxFontSize, labGrotesqueCompenstation, isChrome);\n\n return css`\n width: ${checkboxBoxSize};\n height: ${checkboxBoxSize};\n margin-top: calc(${checkboxBoxOffsetY} + ${baselineCompensation}px);\n `;\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/Checkbox/Checkbox.mixins.js",
3
+ "module": "Checkbox.mixins",
4
+ "types": "../Checkbox.mixins.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,2 @@
1
+ export declare const checkboxSizeMixin: (fontSize: string, lineHeight: string, paddingY: string, checkboxBoxSize: string) => string;
2
+ export declare const boxWrapperSizeMixin: (labGrotesqueBaselineCompensation: string, fontSize: string, checkboxBoxSize: string, checkboxBoxOffsetY: string) => string;
@@ -1,72 +1,86 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25;
4
4
 
5
- import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
6
5
  import { css, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
7
- import { isChrome } from "../../../lib/client";
6
+ import { boxWrapperSizeMixin, checkboxSizeMixin } from "../Checkbox.mixins";
8
7
  export var globalClasses = prefix('checkbox')({
9
8
  box: 'box'
10
9
  });
11
10
  export var styles = memoizeStyle({
12
11
  root: function root(t) {
13
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n line-height: ", ";\n font-size: ", ";\n padding: ", " 0;\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "], ["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n line-height: ", ";\n font-size: ", ";\n padding: ", " 0;\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "])), t.checkboxLineHeight, t.checkboxFontSize, t.checkboxPaddingY, globalClasses.box, t.checkboxHoverBg, t.checkboxShadowHover, globalClasses.box, t.checkboxShadowActive, t.checkboxActiveBg, t.checkboxBoxSize);
12
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .", " {\n transition: background ", " ", ",\n box-shadow ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n "], ["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .", " {\n transition: background ", " ", ",\n box-shadow ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n "])), globalClasses.box, t.transitionDuration, t.transitionTimingFunction, t.transitionDuration, t.transitionTimingFunction, globalClasses.box, t.checkboxHoverBg, t.checkboxShadowHover, globalClasses.box, t.checkboxShadowActive, t.checkboxActiveBg);
13
+ },
14
+ rootSmall: function rootSmall(t) {
15
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeSmall, t.checkboxLineHeightSmall, t.checkboxPaddingYSmall, t.checkboxBoxSizeSmall));
16
+ },
17
+ rootMedium: function rootMedium(t) {
18
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeMedium, t.checkboxLineHeightMedium, t.checkboxPaddingYMedium, t.checkboxBoxSizeMedium));
19
+ },
20
+ rootLarge: function rootLarge(t) {
21
+ return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeLarge, t.checkboxLineHeightLarge, t.checkboxPaddingYLarge, t.checkboxBoxSizeLarge));
14
22
  },
15
23
  rootDisableTextSelect: function rootDisableTextSelect() {
16
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n user-select: none;\n "])));
24
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n user-select: none;\n "])));
17
25
  },
18
26
  rootChecked: function rootChecked(t) {
19
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n &:hover .", " {\n box-shadow: ", ";\n background: ", ";\n }\n\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n "])), globalClasses.box, t.checkboxCheckedHoverShadow, t.checkboxCheckedHoverBg, globalClasses.box, t.checkboxCheckedActiveBg, t.checkboxCheckedActiveShadow);
27
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n &:hover .", " {\n box-shadow: ", ";\n background: ", ";\n }\n\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n "])), globalClasses.box, t.checkboxCheckedHoverShadow, t.checkboxCheckedHoverBg, globalClasses.box, t.checkboxCheckedActiveBg, t.checkboxCheckedActiveShadow);
20
28
  },
21
29
  rootFallback: function rootFallback() {
22
- return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n "])));
30
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n "])));
23
31
  },
24
32
  rootWrapperIE11: function rootWrapperIE11() {
25
- return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n display: inline;\n "])));
33
+ return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n display: inline;\n "])));
26
34
  },
27
35
  boxWrapper: function boxWrapper(t) {
28
- var labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);
29
- var fontSize = parseInt(t.checkboxFontSize);
30
- var baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);
31
- return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: ", ";\n height: ", ";\n box-sizing: border-box;\n padding: ", ";\n margin-top: calc(", " + ", "px);\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n "])), t.checkboxBoxSize, t.checkboxBoxSize, t.checkboxBorderWidth, t.checkboxBoxOffsetY, baselineCompensation);
36
+ return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n position: absolute;\n box-sizing: border-box;\n padding: ", ";\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n )};\n "])), t.checkboxBorderWidth);
37
+ },
38
+ boxWrapperSmall: function boxWrapperSmall(t) {
39
+ return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeSmall, t.checkboxBoxSizeSmall, t.checkboxBoxOffsetY));
40
+ },
41
+ boxWrapperMedium: function boxWrapperMedium(t) {
42
+ return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeMedium, t.checkboxBoxSizeMedium, t.checkboxBoxOffsetY));
43
+ },
44
+ boxWrapperLarge: function boxWrapperLarge(t) {
45
+ return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeLarge, t.checkboxBoxSizeLarge, t.checkboxBoxOffsetY));
32
46
  },
33
47
  box: function box(t) {
34
- return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n color: ", ";\n box-shadow: ", ";\n background: ", ";\n border-radius: ", ";\n height: 100%;\n "])), t.checkboxTextColorDefault, t.checkboxShadow, t.checkboxBg, t.checkboxBorderRadius);
48
+ return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n color: ", ";\n box-shadow: ", ";\n background: ", ";\n border-radius: ", ";\n height: 100%;\n "])), t.checkboxTextColorDefault, t.checkboxShadow, t.checkboxBg, t.checkboxBorderRadius);
35
49
  },
36
50
  input: function input() {
37
- return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n "])));
51
+ return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n "])));
38
52
  },
39
53
  boxWarning: function boxWarning(t) {
40
- return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorWarning);
54
+ return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorWarning);
41
55
  },
42
56
  boxError: function boxError(t) {
43
- return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorError);
57
+ return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorError);
44
58
  },
45
59
  boxChecked: function boxChecked(t) {
46
- return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n box-shadow: ", ";\n "])), t.checkboxCheckedBg, t.checkboxCheckedColor, t.checkboxCheckedShadow);
60
+ return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n box-shadow: ", ";\n "])), t.checkboxCheckedBg, t.checkboxCheckedColor, t.checkboxCheckedShadow);
47
61
  },
48
62
  boxFocus: function boxFocus(t) {
49
- return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorFocus);
63
+ return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorFocus);
50
64
  },
51
65
  boxDisabled: function boxDisabled(t) {
52
- return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n box-shadow: ", " !important; // override hover and active\n background: ", " !important; // override hover and active\n color: ", ";\n "])), t.checkboxShadowDisabled, t.checkboxBgDisabled, t.checkboxTextColorDisabled);
66
+ return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n box-shadow: ", " !important; // override hover and active\n background: ", " !important; // override hover and active\n color: ", ";\n "])), t.checkboxShadowDisabled, t.checkboxBgDisabled, t.checkboxTextColorDisabled);
53
67
  },
54
68
  disabled: function disabled(t) {
55
- return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n color: ", ";\n cursor: default;\n "])), t.checkboxTextColorDisabled);
69
+ return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n color: ", ";\n cursor: default;\n "])), t.checkboxTextColorDisabled);
56
70
  },
57
71
  icon: function icon() {
58
- return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n "])));
72
+ return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n "])));
59
73
  },
60
74
  iconFixPosition: function iconFixPosition() {
61
- return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n svg {\n margin: -12.5% 0 0 0;\n }\n "])));
75
+ return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n svg {\n margin: -12.5% 0 0 0;\n }\n "])));
62
76
  },
63
77
  iconUnchecked: function iconUnchecked() {
64
- return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n color: transparent;\n "])));
78
+ return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n color: transparent;\n "])));
65
79
  },
66
80
  caption: function caption(t) {
67
- return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n color: ", ";\n padding-left: ", ";\n "])), t.checkboxTextColorDefault, t.checkboxCaptionGap);
81
+ return css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n color: ", ";\n padding-left: ", ";\n "])), t.checkboxTextColorDefault, t.checkboxCaptionGap);
68
82
  },
69
83
  captionIE11: function captionIE11() {
70
- return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n display: table-cell;\n "])));
84
+ return css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n display: table-cell;\n "])));
71
85
  }
72
86
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","box","styles","root","t","checkboxLineHeight","checkboxFontSize","checkboxPaddingY","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","checkboxBoxSize","rootDisableTextSelect","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxWrapper","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","baselineCompensation","checkboxBorderWidth","checkboxBoxOffsetY","checkboxTextColorDefault","checkboxShadow","checkboxBg","checkboxBorderRadius","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","icon","iconFixPosition","iconUnchecked","caption","checkboxCaptionGap","captionIE11"],"mappings":"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","sourcesContent":["import { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\nimport { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n line-height: ${t.checkboxLineHeight};\n font-size: ${t.checkboxFontSize};\n padding: ${t.checkboxPaddingY} 0;\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.checkboxBoxSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n boxWrapper(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n const baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);\n\n return css`\n position: absolute;\n width: ${t.checkboxBoxSize};\n height: ${t.checkboxBoxSize};\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n margin-top: calc(${t.checkboxBoxOffsetY} + ${baselineCompensation}px);\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconFixPosition() {\n return css`\n svg {\n margin: -12.5% 0 0 0;\n }\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Checkbox.styles.ts"],"names":["css","memoizeStyle","prefix","boxWrapperSizeMixin","checkboxSizeMixin","globalClasses","box","styles","root","t","transitionDuration","transitionTimingFunction","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","rootSmall","checkboxFontSizeSmall","checkboxLineHeightSmall","checkboxPaddingYSmall","checkboxBoxSizeSmall","rootMedium","checkboxFontSizeMedium","checkboxLineHeightMedium","checkboxPaddingYMedium","checkboxBoxSizeMedium","rootLarge","checkboxFontSizeLarge","checkboxLineHeightLarge","checkboxPaddingYLarge","checkboxBoxSizeLarge","rootDisableTextSelect","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxWrapper","checkboxBorderWidth","boxWrapperSmall","labGrotesqueBaselineCompensation","checkboxBoxOffsetY","boxWrapperMedium","boxWrapperLarge","checkboxTextColorDefault","checkboxShadow","checkboxBg","checkboxBorderRadius","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","icon","iconFixPosition","iconUnchecked","caption","checkboxCaptionGap","captionIE11"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { boxWrapperSizeMixin, checkboxSizeMixin } from './Checkbox.mixins';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .${globalClasses.box} {\n transition: background ${t.transitionDuration} ${t.transitionTimingFunction},\n box-shadow ${t.transitionDuration} ${t.transitionTimingFunction};\n }\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeSmall,\n t.checkboxLineHeightSmall,\n t.checkboxPaddingYSmall,\n t.checkboxBoxSizeSmall,\n )};\n `;\n },\n\n rootMedium(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeMedium,\n t.checkboxLineHeightMedium,\n t.checkboxPaddingYMedium,\n t.checkboxBoxSizeMedium,\n )};\n `;\n },\n\n rootLarge(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeLarge,\n t.checkboxLineHeightLarge,\n t.checkboxPaddingYLarge,\n t.checkboxBoxSizeLarge,\n )};\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n boxWrapper(t: Theme) {\n return css`\n position: absolute;\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n )};\n `;\n },\n\n boxWrapperSmall(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n boxWrapperMedium(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n boxWrapperLarge(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconFixPosition() {\n return css`\n svg {\n margin: -12.5% 0 0 0;\n }\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
@@ -4,11 +4,17 @@ export declare const globalClasses: {
4
4
  };
5
5
  export declare const styles: {
6
6
  root(t: Theme): string;
7
+ rootSmall(t: Theme): string;
8
+ rootMedium(t: Theme): string;
9
+ rootLarge(t: Theme): string;
7
10
  rootDisableTextSelect(): string;
8
11
  rootChecked(t: Theme): string;
9
12
  rootFallback(): string;
10
13
  rootWrapperIE11(): string;
11
14
  boxWrapper(t: Theme): string;
15
+ boxWrapperSmall(t: Theme): string;
16
+ boxWrapperMedium(t: Theme): string;
17
+ boxWrapperLarge(t: Theme): string;
12
18
  box(t: Theme): string;
13
19
  input(): string;
14
20
  boxWarning(t: Theme): string;
@@ -163,7 +163,7 @@ const getItems = q =>
163
163
  { approved: false, value: 3, label: 'Розенкранц Харитонов', email: 'third@skbkontur.ru' },
164
164
  { approved: false, value: 4, label: 'Надежда Дубова', email: 'fourth@skbkontur.ru' },
165
165
  { approved: true, value: 5, label: 'Владислав Сташкеевич', email: 'fifth@skbkontur.ru' },
166
- { approved: true, value: 6, label: 'Василиса Поволоцкая', email: 'sixth@skbkontur.ru' },
166
+ { approved: true, value: 6, label: 'Василиса Александровна Поволоцкая', email: 'sixth@skbkontur.ru' },
167
167
  ].filter(x => x.label.toLowerCase().includes(q.toLowerCase()) || x.value.toString(10) === q),
168
168
  ).then(delay(500));
169
169
 
@@ -195,7 +195,7 @@ const customRenderItem = item => (
195
195
  >
196
196
  <div
197
197
  style={{
198
- minWidth: '55%',
198
+ width: '55%',
199
199
  display: 'flex',
200
200
  }}
201
201
  >
@@ -242,7 +242,9 @@ const customRenderValue = item => (
242
242
  >
243
243
  <div
244
244
  style={{
245
- minWidth: '55%',
245
+ width: '55%',
246
+ overflow: 'hidden',
247
+ textOverflow: 'ellipsis'
246
248
  }}
247
249
  >
248
250
  {item.label}
@@ -50,7 +50,7 @@ export var CurrencyHelper = /*#__PURE__*/function () {
50
50
  return '';
51
51
  }
52
52
 
53
- return CurrencyHelper.formatString(value.toString(), options);
53
+ return CurrencyHelper.formatString(this.toDecimalString(value), options);
54
54
  };
55
55
 
56
56
  CurrencyHelper.parse = function parse(value) {
@@ -183,7 +183,7 @@ export var CurrencyHelper = /*#__PURE__*/function () {
183
183
  };
184
184
 
185
185
  CurrencyHelper.destructString = function destructString(value) {
186
- var match = /^(-)?(\d*)?(\.)?(\d*)?$/.exec(value);
186
+ var match = /^(-)?(\d*)?(\.)?(\d*)?(e)?([-+]?\d+)?$/.exec(value);
187
187
 
188
188
  if (!match) {
189
189
  return null;
@@ -196,12 +196,15 @@ export var CurrencyHelper = /*#__PURE__*/function () {
196
196
  _match$3 = match[3],
197
197
  delimiter = _match$3 === void 0 ? '' : _match$3,
198
198
  _match$4 = match[4],
199
- fraction = _match$4 === void 0 ? '' : _match$4;
199
+ fraction = _match$4 === void 0 ? '' : _match$4,
200
+ _match$5 = match[6],
201
+ exponent = _match$5 === void 0 ? '' : _match$5;
200
202
  return {
201
203
  sign: sign,
202
204
  integer: integer,
203
205
  delimiter: delimiter,
204
- fraction: fraction
206
+ fraction: fraction,
207
+ exponent: exponent
205
208
  };
206
209
  };
207
210
 
@@ -212,4 +215,29 @@ CurrencyHelper.defaultOptions = {
212
215
  hideTrailingZeros: false,
213
216
  thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,
214
217
  minusSign: MINUS_SIGN
218
+ };
219
+
220
+ CurrencyHelper.toDecimalString = function (number) {
221
+ if (!number.toString().includes('e')) {
222
+ return number.toString();
223
+ }
224
+
225
+ var destructed = CurrencyHelper.destructString(number.toExponential());
226
+
227
+ if (destructed === null) {
228
+ return '';
229
+ }
230
+
231
+ var _destructed$sign = destructed.sign,
232
+ sign = _destructed$sign === void 0 ? '' : _destructed$sign,
233
+ integer = destructed.integer,
234
+ fraction = destructed.fraction,
235
+ exponent = destructed.exponent;
236
+ var intExponent = parseInt(exponent || '0');
237
+
238
+ if (intExponent > 0) {
239
+ return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');
240
+ }
241
+
242
+ return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');
215
243
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyHelper.tsx"],"names":["isNonNullable","isNullable","isSafari","MAX_ALLOWED_CHARS","MAX_SAFE_DIGITS","MINUS_SIGN","SPACE","THIN_SPACE","CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n\n return CurrencyHelper.formatString(value.toString(), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = ''] = match;\n return { sign, integer, delimiter, fraction };\n }\n}\n"]}
1
+ {"version":3,"sources":["CurrencyHelper.tsx"],"names":["isNonNullable","isNullable","isSafari","MAX_ALLOWED_CHARS","MAX_SAFE_DIGITS","MINUS_SIGN","SPACE","THIN_SPACE","CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toDecimalString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","exponent","number","toString","includes","toExponential","intExponent","parseInt","repeat"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
@@ -30,6 +30,8 @@ export declare class CurrencyHelper {
30
30
  integer: string;
31
31
  delimiter: string;
32
32
  fraction: string;
33
+ exponent: string;
33
34
  } | null;
35
+ private static toDecimalString;
34
36
  }
35
37
  export {};