@skbkontur/react-ui 4.0.6 → 4.1.2

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 (573) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +8 -4
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -5
  6. package/cjs/components/Button/Button.js +4 -12
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Checkbox/Checkbox.d.ts +5 -0
  9. package/cjs/components/Checkbox/Checkbox.js +29 -1
  10. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  11. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  12. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  13. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  14. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  15. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  16. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -7
  17. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  19. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  20. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  21. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  22. package/cjs/components/DateInput/DateInput.js +5 -1
  23. package/cjs/components/DateInput/DateInput.js.map +1 -1
  24. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  25. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  26. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  29. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  30. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  31. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  32. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  33. package/cjs/components/FileUploader/FileUploader.js +8 -5
  34. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  35. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  36. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  37. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  38. package/cjs/components/Gapped/Gapped.js +4 -3
  39. package/cjs/components/Gapped/Gapped.js.map +1 -1
  40. package/cjs/components/GlobalLoader/GlobalLoader.js +3 -5
  41. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  42. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
  43. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  44. package/cjs/components/Group/Group.js +74 -31
  45. package/cjs/components/Group/Group.js.map +1 -1
  46. package/cjs/components/Input/Input.d.ts +1 -5
  47. package/cjs/components/Input/Input.js +14 -21
  48. package/cjs/components/Input/Input.js.map +1 -1
  49. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  50. package/cjs/components/Kebab/Kebab.js +5 -29
  51. package/cjs/components/Kebab/Kebab.js.map +1 -1
  52. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  53. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  54. package/cjs/components/Modal/Modal.js +2 -1
  55. package/cjs/components/Modal/Modal.js.map +1 -1
  56. package/cjs/components/Modal/Modal.styles.js +10 -6
  57. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  58. package/cjs/components/Modal/ModalFooter.js +1 -1
  59. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  60. package/cjs/components/Modal/ModalHeader.js +1 -1
  61. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  62. package/cjs/components/Paging/Paging.d.ts +13 -3
  63. package/cjs/components/Paging/Paging.js +15 -4
  64. package/cjs/components/Paging/Paging.js.map +1 -1
  65. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  66. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  67. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  68. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -0
  69. package/cjs/components/PasswordInput/PasswordInput.js +23 -6
  70. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  71. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  72. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  73. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  74. package/cjs/components/Radio/Radio.styles.js +4 -7
  75. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  76. package/cjs/components/RadioGroup/RadioGroup.js +1 -1
  77. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  78. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  79. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  80. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  81. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  82. package/cjs/components/Select/Select.js +33 -15
  83. package/cjs/components/Select/Select.js.map +1 -1
  84. package/cjs/components/SidePage/SidePage.js +2 -1
  85. package/cjs/components/SidePage/SidePage.js.map +1 -1
  86. package/cjs/components/Spinner/Spinner.d.ts +0 -1
  87. package/cjs/components/Spinner/Spinner.js +1 -5
  88. package/cjs/components/Spinner/Spinner.js.map +1 -1
  89. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  90. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  91. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  92. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  93. package/cjs/components/Textarea/Textarea.d.ts +2 -2
  94. package/cjs/components/Textarea/Textarea.js +6 -6
  95. package/cjs/components/Textarea/Textarea.js.map +1 -1
  96. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  97. package/cjs/components/Textarea/TextareaCounter.js +15 -6
  98. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  99. package/cjs/components/Toast/ToastView.js +1 -1
  100. package/cjs/components/Toast/ToastView.js.map +1 -1
  101. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  102. package/cjs/components/Toast/ToastView.styles.js +3 -2
  103. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  104. package/cjs/components/Toggle/Toggle.d.ts +1 -1
  105. package/cjs/components/Toggle/Toggle.js.map +1 -1
  106. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  107. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  108. package/cjs/components/Token/Token.js +14 -2
  109. package/cjs/components/Token/Token.js.map +1 -1
  110. package/cjs/components/Token/Token.styles.js +13 -6
  111. package/cjs/components/Token/Token.styles.js.map +1 -1
  112. package/cjs/components/TokenInput/TokenInput.d.ts +10 -0
  113. package/cjs/components/TokenInput/TokenInput.js +30 -12
  114. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  115. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  116. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  117. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  118. package/cjs/components/Tooltip/Tooltip.js +5 -2
  119. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  120. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  121. package/cjs/components/TooltipMenu/TooltipMenu.js +2 -0
  122. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  123. package/cjs/hooks/useDrop.js +3 -1
  124. package/cjs/hooks/useDrop.js.map +1 -1
  125. package/cjs/index.d.ts +2 -0
  126. package/cjs/index.js +2 -0
  127. package/cjs/index.js.map +1 -1
  128. package/cjs/internal/Calendar/Calendar.js +3 -3
  129. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  130. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  131. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  132. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  133. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -3
  134. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +6 -1
  136. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  137. package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -2
  138. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  139. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  140. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  141. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  142. package/cjs/internal/DateSelect/DateSelect.js +22 -11
  143. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  144. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  145. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  146. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  147. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  148. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -1
  149. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  150. package/cjs/internal/InternalMenu/InternalMenu.js +5 -12
  151. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  152. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  153. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  154. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  155. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  156. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  157. package/cjs/internal/MaskedInput/MaskedInput.js +9 -2
  158. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  159. package/cjs/internal/Menu/Menu.js +14 -18
  160. package/cjs/internal/Menu/Menu.js.map +1 -1
  161. package/cjs/internal/Menu/Menu.styles.js +5 -3
  162. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  163. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  164. package/cjs/internal/Popup/Popup.d.ts +1 -0
  165. package/cjs/internal/Popup/Popup.js +8 -9
  166. package/cjs/internal/Popup/Popup.js.map +1 -1
  167. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  168. package/cjs/internal/PopupMenu/PopupMenu.js +13 -0
  169. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  170. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  171. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  172. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  173. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  174. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  175. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  176. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  177. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  178. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  179. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  180. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  181. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  182. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  183. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  184. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  185. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  186. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  187. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  188. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  189. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  190. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  191. package/cjs/internal/ThemePlayground/constants.js +3 -1
  192. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  193. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  194. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  195. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  196. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  197. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  198. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  199. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  200. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  201. package/cjs/internal/icons/16px/index.d.ts +19 -19
  202. package/cjs/internal/icons/16px/index.js +45 -38
  203. package/cjs/internal/icons/16px/index.js.map +1 -1
  204. package/cjs/internal/icons/20px/svg.js +6 -0
  205. package/cjs/internal/icons/20px/svg.js.map +1 -1
  206. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  207. package/cjs/internal/themes/DefaultTheme.js +40 -5
  208. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  209. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  210. package/cjs/internal/themes/NotFlat.js +12 -2
  211. package/cjs/internal/themes/NotFlat.js.map +1 -1
  212. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  213. package/cjs/internal/themes/Theme2022.js +100 -0
  214. package/cjs/internal/themes/Theme2022.js.map +1 -0
  215. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  216. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  217. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  218. package/cjs/lib/animation/index.d.ts +1 -1
  219. package/cjs/lib/animation/index.js +3 -3
  220. package/cjs/lib/animation/index.js.map +1 -1
  221. package/cjs/lib/date/InternalDate.js +23 -9
  222. package/cjs/lib/date/InternalDate.js.map +1 -1
  223. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  224. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  225. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  226. package/cjs/lib/date/InternalDateGetter.js +27 -7
  227. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  228. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  229. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  230. package/cjs/lib/date/InternalDateValidator.js +52 -17
  231. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  232. package/cjs/lib/date/types.d.ts +4 -0
  233. package/cjs/lib/date/types.js.map +1 -1
  234. package/cjs/lib/events/MouseDrag.js +5 -1
  235. package/cjs/lib/events/MouseDrag.js.map +1 -1
  236. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  237. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  238. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  239. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  240. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  241. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  242. package/cjs/lib/rootNode/getRootNode.js +37 -8
  243. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  244. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  245. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
  246. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  247. package/cjs/lib/stringUtils.js +3 -1
  248. package/cjs/lib/stringUtils.js.map +1 -1
  249. package/cjs/lib/styles/ColorFactory.js +9 -9
  250. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  251. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  252. package/cjs/lib/styles/ColorHelpers.js +33 -10
  253. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  254. package/cjs/lib/styles/ColorObject.js +3 -2
  255. package/cjs/lib/styles/ColorObject.js.map +1 -1
  256. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  257. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  258. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  259. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  260. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  261. package/cjs/lib/theming/Emotion.js +5 -2
  262. package/cjs/lib/theming/Emotion.js.map +1 -1
  263. package/cjs/lib/theming/ThemeFactory.js +5 -1
  264. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  265. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  266. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  267. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  268. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  269. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  270. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  271. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  272. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  273. package/cjs/lib/utils.d.ts +15 -0
  274. package/cjs/lib/utils.js +45 -9
  275. package/cjs/lib/utils.js.map +1 -1
  276. package/components/Autocomplete/Autocomplete/Autocomplete.js +6 -5
  277. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  278. package/components/Button/Button/Button.js +4 -10
  279. package/components/Button/Button/Button.js.map +1 -1
  280. package/components/Button/Button.d.ts +1 -5
  281. package/components/Checkbox/Checkbox/Checkbox.js +29 -2
  282. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  283. package/components/Checkbox/Checkbox.d.ts +5 -0
  284. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  285. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  286. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  287. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  288. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  289. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -7
  290. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  291. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  292. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  293. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  294. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  295. package/components/DateInput/DateInput/DateInput.js +9 -1
  296. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  297. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  298. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  299. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  300. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  301. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  302. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  303. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  304. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  305. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  306. package/components/FileUploader/FileUploader/FileUploader.js +9 -7
  307. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  308. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  309. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  310. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  311. package/components/Gapped/Gapped/Gapped.js +4 -3
  312. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  313. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -7
  314. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  315. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
  316. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
  317. package/components/Group/Group/Group.js +62 -30
  318. package/components/Group/Group/Group.js.map +1 -1
  319. package/components/Input/Input/Input.js +7 -25
  320. package/components/Input/Input/Input.js.map +1 -1
  321. package/components/Input/Input.d.ts +1 -5
  322. package/components/Kebab/Kebab/Kebab.js +3 -13
  323. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  324. package/components/Kebab/Kebab.d.ts +2 -13
  325. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  326. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  327. package/components/Modal/Modal/Modal.js +2 -1
  328. package/components/Modal/Modal/Modal.js.map +1 -1
  329. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  330. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  331. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  332. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  333. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  334. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  335. package/components/Paging/Paging/Paging.js +13 -14
  336. package/components/Paging/Paging/Paging.js.map +1 -1
  337. package/components/Paging/Paging.d.ts +13 -3
  338. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  339. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  340. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  341. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js +27 -8
  343. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  344. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  345. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  346. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  347. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  348. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  349. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  350. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  351. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -2
  352. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  353. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  354. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  355. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  356. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  357. package/components/Select/Select/Select.js +31 -15
  358. package/components/Select/Select/Select.js.map +1 -1
  359. package/components/SidePage/SidePage/SidePage.js +2 -1
  360. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  361. package/components/Spinner/Spinner/Spinner.js +6 -2
  362. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  363. package/components/Spinner/Spinner.d.ts +0 -1
  364. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  365. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  366. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  367. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  368. package/components/Textarea/Textarea/Textarea.js +6 -6
  369. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  370. package/components/Textarea/Textarea.d.ts +2 -2
  371. package/components/Textarea/TextareaCounter/TextareaCounter.js +11 -2
  372. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  373. package/components/Textarea/TextareaCounter.d.ts +1 -2
  374. package/components/Toast/ToastView/ToastView.js +1 -1
  375. package/components/Toast/ToastView/ToastView.js.map +1 -1
  376. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  377. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  378. package/components/Toast/ToastView.styles.d.ts +1 -1
  379. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  380. package/components/Toggle/Toggle.d.ts +1 -1
  381. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  382. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  383. package/components/Token/Token/Token.js +12 -1
  384. package/components/Token/Token/Token.js.map +1 -1
  385. package/components/Token/Token.styles/Token.styles.js +11 -4
  386. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  387. package/components/TokenInput/TokenInput/TokenInput.js +25 -16
  388. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  389. package/components/TokenInput/TokenInput.d.ts +10 -0
  390. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  391. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  392. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  393. package/components/Tooltip/Tooltip/Tooltip.js +5 -2
  394. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  395. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +2 -0
  396. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  397. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  398. package/hooks/useDrop/useDrop.js +5 -1
  399. package/hooks/useDrop/useDrop.js.map +1 -1
  400. package/index.d.ts +2 -0
  401. package/index.js +2 -0
  402. package/index.js.map +1 -1
  403. package/internal/Calendar/Calendar/Calendar.js +6 -4
  404. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  405. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  406. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  407. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  408. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -3
  409. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  410. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +23 -15
  411. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  412. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +18 -17
  413. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  414. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  415. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  416. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  417. package/internal/DateSelect/DateSelect/DateSelect.js +21 -15
  418. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  419. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  420. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  421. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  422. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  423. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  424. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  425. package/internal/InternalMenu/InternalMenu/InternalMenu.js +14 -21
  426. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  427. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  428. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  429. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  430. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  431. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  432. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  433. package/internal/MaskedInput/MaskedInput/MaskedInput.js +10 -3
  434. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  435. package/internal/Menu/Menu/Menu.js +11 -19
  436. package/internal/Menu/Menu/Menu.js.map +1 -1
  437. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  438. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  439. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  440. package/internal/Popup/Popup/Popup.js +8 -7
  441. package/internal/Popup/Popup/Popup.js.map +1 -1
  442. package/internal/Popup/Popup.d.ts +1 -0
  443. package/internal/PopupMenu/PopupMenu/PopupMenu.js +8 -0
  444. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  445. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  446. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  447. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  448. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  449. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  450. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  451. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  452. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  453. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  454. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  455. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  456. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  457. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  458. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  459. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  460. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  461. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  462. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  463. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  464. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  465. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  466. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  467. package/internal/ThemePlayground/constants/constants.js +2 -0
  468. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  469. package/internal/ThemePlayground/constants.d.ts +3 -1
  470. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  471. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  472. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  473. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  474. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  475. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  476. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  477. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  478. package/internal/icons/16px/index/index.js +28 -20
  479. package/internal/icons/16px/index/index.js.map +1 -1
  480. package/internal/icons/16px/index.d.ts +19 -19
  481. package/internal/icons/20px/svg/svg.js +5 -0
  482. package/internal/icons/20px/svg/svg.js.map +1 -1
  483. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  484. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  485. package/internal/themes/DefaultTheme.d.ts +20 -1
  486. package/internal/themes/NotFlat/NotFlat.js +15 -0
  487. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  488. package/internal/themes/NotFlat.d.ts +6 -0
  489. package/internal/themes/Theme2022/Theme2022.js +78 -0
  490. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  491. package/internal/themes/Theme2022/package.json +6 -0
  492. package/internal/themes/Theme2022.d.ts +66 -0
  493. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  494. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  495. package/internal/themes/Theme2022Dark/package.json +6 -0
  496. package/internal/themes/Theme2022Dark.d.ts +5 -0
  497. package/lib/animation/index/index.js +1 -1
  498. package/lib/animation/index/index.js.map +1 -1
  499. package/lib/animation/index.d.ts +1 -1
  500. package/lib/date/InternalDate/InternalDate.js +16 -1
  501. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  502. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  503. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  504. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  505. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  506. package/lib/date/InternalDateGetter.d.ts +1 -1
  507. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  508. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  509. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  510. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  511. package/lib/date/types/types.js.map +1 -1
  512. package/lib/date/types.d.ts +4 -0
  513. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  514. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  515. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  516. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  517. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  518. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  519. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  520. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  521. package/lib/rootNode/getRootNode/getRootNode.js +36 -8
  522. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  523. package/lib/rootNode/getRootNode.d.ts +9 -0
  524. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
  525. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  526. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  527. package/lib/stringUtils/stringUtils.js +4 -1
  528. package/lib/stringUtils/stringUtils.js.map +1 -1
  529. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  530. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  531. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  532. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  533. package/lib/styles/ColorHelpers.d.ts +1 -0
  534. package/lib/styles/ColorObject/ColorObject.js +2 -2
  535. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  536. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  537. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  538. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  539. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  540. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  541. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  542. package/lib/theming/Emotion/Emotion.js +5 -2
  543. package/lib/theming/Emotion/Emotion.js.map +1 -1
  544. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  545. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  546. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  547. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  548. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  549. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  550. package/lib/theming/themes/Theme2022/package.json +6 -0
  551. package/lib/theming/themes/Theme2022.d.ts +1 -0
  552. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  553. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  554. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  555. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  556. package/lib/utils/utils.js +42 -6
  557. package/lib/utils/utils.js.map +1 -1
  558. package/lib/utils.d.ts +15 -0
  559. package/package.json +5 -3
  560. package/cjs/components/Button/Corners.d.ts +0 -6
  561. package/cjs/components/Button/Corners.js +0 -5
  562. package/cjs/components/Button/Corners.js.map +0 -1
  563. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  564. package/cjs/lib/polyfillPlaceholder.js +0 -17
  565. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  566. package/components/Button/Corners/Corners.js +0 -6
  567. package/components/Button/Corners/Corners.js.map +0 -1
  568. package/components/Button/Corners/package.json +0 -6
  569. package/components/Button/Corners.d.ts +0 -6
  570. package/lib/polyfillPlaceholder/package.json +0 -6
  571. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  572. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  573. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1,6 +1,8 @@
1
1
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
2
  import React from 'react';
3
- import ReactDOM from 'react-dom'; // Заглушка нужна для корректной гидрации порталов после SSR,
3
+ import ReactDOM from 'react-dom';
4
+ import propTypes from 'prop-types';
5
+ import { safePropTypesInstanceOf } from "../../../lib/SSRSafe"; // Заглушка нужна для корректной гидрации порталов после SSR,
4
6
  // которую реакт сам пока не поддерживает.
5
7
  // @see https://github.com/facebook/react/issues/13097
6
8
  // А также для вставки актуального render-container-id на клиенте.
@@ -63,4 +65,11 @@ export var RenderInnerContainer = /*#__PURE__*/function (_React$Component) {
63
65
 
64
66
  return RenderInnerContainer;
65
67
  }(React.Component);
66
- RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
68
+ RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
69
+ Portal.propTypes = {
70
+ container: safePropTypesInstanceOf(function () {
71
+ return HTMLElement;
72
+ }),
73
+ rt_rootID: propTypes.string.isRequired,
74
+ children: propTypes.node.isRequired
75
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["React","ReactDOM","SSRPlaceholder","Portal","container","rt_rootID","children","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","Component","__KONTUR_REACT_UI__"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,WAArB;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,gCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEA,OAAO,IAAMC,MAA4C,GAAG,SAA/CA,MAA+C,OAAwC,KAArCC,SAAqC,QAArCA,SAAqC,CAA1BC,SAA0B,QAA1BA,SAA0B,CAAfC,QAAe,QAAfA,QAAe;AAClG;AACA;AACE,wBAAC,KAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGH,QAAQ,CAACM,YAAT,CAAsBD,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,oBAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,kCAAU,4BAA0BC,SAApC,GAAH,gBAAuD,oBAAC,cAAD,OAFnE,CADF;;;AAMD,CARM;;AAUP,WAAaG,oBAAb;;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBL,QAAhB,eAAgBA,QAAhB,CAA0BM,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIL,QAAJ,EAAc;AACZQ,MAAAA,KAAK;AACH,0BAAC,KAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,0BAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGN,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOQ,KAAP;AACD,GAnBH,+BAA0Cd,KAAK,CAACe,SAAhD,EAAaP,oB,CACGQ,mB,GAAsB,sB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal: React.FunctionComponent<PortalProps> = ({ container, rt_rootID, children }) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n"]}
1
+ {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["React","ReactDOM","propTypes","safePropTypesInstanceOf","SSRPlaceholder","Portal","container","rt_rootID","children","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","Component","__KONTUR_REACT_UI__","HTMLElement","string","isRequired","node"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;;AAGA,SAASC,uBAAT,QAAwC,mBAAxC;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,gCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEA,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAAqD,KAAlDC,SAAkD,QAAlDA,SAAkD,CAAvCC,SAAuC,QAAvCA,SAAuC,CAA5BC,QAA4B,QAA5BA,QAA4B;AACzE;AACA;AACE,wBAAC,KAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGL,QAAQ,CAACQ,YAAT,CAAsBD,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,oBAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,kCAAU,4BAA0BC,SAApC,GAAH,gBAAuD,oBAAC,cAAD,OAFnE,CADF;;;AAMD,CARM;;AAUP,WAAaG,oBAAb;;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBL,QAAhB,eAAgBA,QAAhB,CAA0BM,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIL,QAAJ,EAAc;AACZQ,MAAAA,KAAK;AACH,0BAAC,KAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,0BAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGN,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOQ,KAAP;AACD,GAnBH,+BAA0ChB,KAAK,CAACiB,SAAhD,EAAaP,oB,CACGQ,mB,GAAsB,sB;;;AAqBtCb,MAAM,CAACH,SAAP,GAAmB;AACjBI,EAAAA,SAAS,EAAEH,uBAAuB,CAAC,oBAAMgB,WAAN,EAAD,CADjB;AAEjBZ,EAAAA,SAAS,EAAEL,SAAS,CAACkB,MAAV,CAAiBC,UAFX;AAGjBb,EAAAA,QAAQ,EAAEN,SAAS,CAACoB,IAAV,CAAeD,UAHR,EAAnB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport propTypes from 'prop-types';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.propTypes = {\n container: safePropTypesInstanceOf(() => HTMLElement),\n rt_rootID: propTypes.string.isRequired,\n children: propTypes.node.isRequired,\n};\n"]}
@@ -1,11 +1,19 @@
1
1
  import React from 'react';
2
+ import propTypes from 'prop-types';
2
3
  import { Nullable } from '../../typings/utility-types';
3
4
  import { PortalProps, RenderContainerProps } from './RenderContainerTypes';
4
5
  interface RenderInnerContainerProps extends RenderContainerProps {
5
6
  domContainer: Nullable<HTMLElement>;
6
7
  rootId: string;
7
8
  }
8
- export declare const Portal: React.FunctionComponent<PortalProps>;
9
+ export declare const Portal: {
10
+ ({ container, rt_rootID, children }: PortalProps): JSX.Element;
11
+ propTypes: {
12
+ container: propTypes.Requireable<HTMLElement>;
13
+ rt_rootID: propTypes.Validator<string>;
14
+ children: propTypes.Validator<string | number | boolean | {} | propTypes.ReactElementLike | propTypes.ReactNodeArray>;
15
+ };
16
+ };
9
17
  export declare class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {
10
18
  static __KONTUR_REACT_UI__: string;
11
19
  render(): React.ReactNode;
@@ -77,7 +77,11 @@ export var RenderLayer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/funct
77
77
  var _this$props$getAnchor, _this$props;
78
78
 
79
79
  var rootNode = getRootNode(this) || ((_this$props$getAnchor = (_this$props = this.props).getAnchorElement) == null ? void 0 : _this$props$getAnchor.call(_this$props));
80
- if (!rootNode) return;
80
+
81
+ if (!rootNode) {
82
+ return;
83
+ }
84
+
81
85
  this.focusOutsideListenerToken = listenFocusOutside(function () {
82
86
  return [rootNode];
83
87
  }, this.handleFocusOutside);
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderLayer.tsx"],"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","RenderLayer","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorElement","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","Children","only","children","window","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","propTypes","propName","componentName","Error","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Nullable } from '../../typings/utility-types';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<HTMLElement>;\n}\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n\n public static propTypes = {\n active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string) {\n const { active, onClickOutside, onFocusOutside } = props;\n if (active && !(onClickOutside || onFocusOutside)) {\n return new Error(\n `[${componentName}]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.`,\n );\n }\n },\n };\n\n public static defaultProps = {\n active: true,\n };\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n if (!prevProps.active && this.props.active) {\n this.attachListeners();\n }\n if (prevProps.active && !this.props.active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.props.active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private attachListeners() {\n const rootNode = getRootNode(this) || this.props.getAnchorElement?.();\n if (!rootNode) return;\n this.focusOutsideListenerToken = listenFocusOutside(() => [rootNode], this.handleFocusOutside);\n window.addEventListener('blur', this.handleFocusOutside);\n document.addEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n window.removeEventListener('blur', this.handleFocusOutside);\n document.removeEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = getRootNode(this) || getRootNode(this.props.getAnchorElement?.());\n\n if (!node || (target instanceof Element && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["RenderLayer.tsx"],"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","RenderLayer","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorElement","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","Children","only","children","window","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","propTypes","propName","componentName","Error","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Nullable } from '../../typings/utility-types';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<HTMLElement>;\n}\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n\n public static propTypes = {\n active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string) {\n const { active, onClickOutside, onFocusOutside } = props;\n if (active && !(onClickOutside || onFocusOutside)) {\n return new Error(\n `[${componentName}]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.`,\n );\n }\n },\n };\n\n public static defaultProps = {\n active: true,\n };\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n if (!prevProps.active && this.props.active) {\n this.attachListeners();\n }\n if (prevProps.active && !this.props.active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.props.active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private attachListeners() {\n const rootNode = getRootNode(this) || this.props.getAnchorElement?.();\n if (!rootNode) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [rootNode], this.handleFocusOutside);\n window.addEventListener('blur', this.handleFocusOutside);\n document.addEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n window.removeEventListener('blur', this.handleFocusOutside);\n document.removeEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = getRootNode(this) || getRootNode(this.props.getAnchorElement?.());\n\n if (!node || (target instanceof Element && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
2
  import React from 'react';
3
3
  import SearchIcon from '@skbkontur/react-icons/Search';
4
- import CardIcon from '@skbkontur/react-icons/Card';
5
4
  import LinkIcon from '@skbkontur/react-icons/Link';
6
5
  import OkIcon from '@skbkontur/react-icons/Ok';
7
6
  import ErrorIcon from '@skbkontur/react-icons/Error';
@@ -25,7 +24,6 @@ import { TogglePlayground } from "../TogglePlayground";
25
24
  import { SwitcherPlayground } from "../SwitcherPlayground";
26
25
  import { FxInputPlayground } from "../FxInputPlayground";
27
26
  import { CurrencyInputPlayground } from "../CurrencyInputPlayground";
28
- import { SelectPlayground } from "../SelectPlayground";
29
27
  import { getComponentsFromPropsList } from "../helpers";
30
28
  import { CheckboxPlayground } from "../CheckboxPlayground";
31
29
  import { RadioPlayground } from "../RadioPlayground";
@@ -33,6 +31,7 @@ import { PagingPlayground } from "../PagingPlayground";
33
31
  import { HintPlayground } from "../HintPlayground";
34
32
  import { ComponentsGroup } from "../ComponentsGroup";
35
33
  import { styles } from "../Playground.styles";
34
+ import { SizesGroup } from "../SizesGroup";
36
35
  var useSticky = !isTestEnv;
37
36
  export var Playground = /*#__PURE__*/function (_React$Component) {
38
37
  _inheritsLoose(Playground, _React$Component);
@@ -65,43 +64,26 @@ export var Playground = /*#__PURE__*/function (_React$Component) {
65
64
  case ThemeType.DefaultOld:
66
65
  return ThemeType.DefaultOld;
67
66
 
67
+ case ThemeType.Theme2022:
68
+ return ThemeType.Theme2022;
69
+
70
+ case ThemeType.Theme2022Dark:
71
+ return ThemeType.Theme2022Dark;
72
+
68
73
  default:
69
74
  return ThemeType.Default;
70
75
  }
71
76
  };
72
77
 
73
78
  _this.renderSizesGroup = function () {
74
- var Group = function Group(_ref) {
75
- var size = _ref.size;
76
- return /*#__PURE__*/React.createElement(Gapped, {
77
- wrap: true,
78
- verticalAlign: "middle",
79
- gap: 10
80
- }, /*#__PURE__*/React.createElement(SelectPlayground, {
81
- width: 120,
82
- size: size
83
- }), /*#__PURE__*/React.createElement(Input, {
84
- rightIcon: /*#__PURE__*/React.createElement(CardIcon, null),
85
- placeholder: 'Text value',
86
- size: size
87
- }), /*#__PURE__*/React.createElement(Button, {
88
- width: 120,
89
- size: size
90
- }, "Button"), /*#__PURE__*/React.createElement(Button, {
91
- icon: /*#__PURE__*/React.createElement(LinkIcon, null),
92
- use: 'link',
93
- size: size
94
- }, "Button like a link"));
95
- };
96
-
97
79
  return /*#__PURE__*/React.createElement(ComponentsGroup, {
98
80
  title: 'Размеры',
99
81
  theme: _this.theme
100
- }, /*#__PURE__*/React.createElement(Group, {
82
+ }, /*#__PURE__*/React.createElement(SizesGroup, {
101
83
  size: 'small'
102
- }), /*#__PURE__*/React.createElement(Group, {
84
+ }), /*#__PURE__*/React.createElement(SizesGroup, {
103
85
  size: 'medium'
104
- }), /*#__PURE__*/React.createElement(Group, {
86
+ }), /*#__PURE__*/React.createElement(SizesGroup, {
105
87
  size: 'large'
106
88
  }));
107
89
  };
@@ -351,7 +333,11 @@ export var Playground = /*#__PURE__*/function (_React$Component) {
351
333
  id: ThemeType.DefaultOld
352
334
  }, "\u0414\u0435\u0444\u043E\u043B\u0442\u043D\u0430\u044F 3.0"), /*#__PURE__*/React.createElement(Tabs.Tab, {
353
335
  id: ThemeType.FlatOld
354
- }, "\u041F\u043B\u043E\u0441\u043A\u0430\u044F 3.0"))), /*#__PURE__*/React.createElement(Link, {
336
+ }, "\u041F\u043B\u043E\u0441\u043A\u0430\u044F 3.0"), /*#__PURE__*/React.createElement(Tabs.Tab, {
337
+ id: ThemeType.Theme2022
338
+ }, "\u041D\u043E\u0432\u0430\u044F 2022"), /*#__PURE__*/React.createElement(Tabs.Tab, {
339
+ id: ThemeType.Theme2022Dark
340
+ }, "\u041D\u043E\u0432\u0430\u044F 2022 \u0422\u0451\u043C\u043D\u0430\u044F"))), /*#__PURE__*/React.createElement(Link, {
355
341
  onClick: onEditLinkClick
356
342
  }, "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0442\u0435\u043C\u0443")));
357
343
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["Playground.tsx"],"names":["React","SearchIcon","CardIcon","LinkIcon","OkIcon","ErrorIcon","TrashIcon","HelpDotIcon","Button","Tabs","Gapped","Link","Input","ThemeContext","Tooltip","Sticky","isTestEnv","cx","FileUploader","ThemeType","TokenInputPlayground","DatePickerPlayground","TogglePlayground","SwitcherPlayground","FxInputPlayground","CurrencyInputPlayground","SelectPlayground","getComponentsFromPropsList","CheckboxPlayground","RadioPlayground","PagingPlayground","HintPlayground","ComponentsGroup","styles","useSticky","Playground","stopEl","createRef","renderTabsGroup","getStickyStop","renderTabs","getCurrentTab","props","currentThemeType","Dark","FlatOld","DefaultOld","Default","renderSizesGroup","Group","size","theme","renderLinksGroup","propsList","icon","children","use","disabled","renderButtonsGroup","arrow","width","loading","renderInputsGroup","placeholder","error","warning","fromProps","renderTokenInputsGroup","renderOtherInputsGroup","renderSwitchersGroup","renderControlsGroup","renderHintsGroup","renderTooltip","tooltipContent","renderPaging","renderFileUploader","renderStickyStopElement","height","current","render","renderMain","wrapperClassName","playground","playgroundWrapper","onThemeChange","onEditLinkClick","tabsOuterWrapperStyle","background","bgDefault","tabsOuterWrapperClass","tabsWrapper","stickyTabsWrapper","tabsInnerWrapper","Component"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,+BAAvB;AACA,OAAOC,QAAP,MAAqB,6BAArB;AACA,OAAOC,QAAP,MAAqB,6BAArB;AACA,OAAOC,MAAP,MAAmB,2BAAnB;AACA,OAAOC,SAAP,MAAsB,8BAAtB;AACA,OAAOC,SAAP,MAAsB,8BAAtB;AACA,OAAOC,WAAP,MAAwB,gCAAxB;;AAEA,SAASC,MAAT,QAAoC,yBAApC;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SAASC,MAAT,QAAuB,yBAAvB;AACA,SAASC,IAAT,QAAgC,uBAAhC;AACA,SAASC,KAAT,QAAkC,wBAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,OAAT,QAAwB,0BAAxB;AACA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,SAASC,SAAT,QAA0B,8BAA1B;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,YAAT,QAA6B,+BAA7B;;AAEA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,oBAAT,QAAqC,wBAArC;AACA,SAASC,oBAAT,QAAqC,2BAArC;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,kBAAT,QAAmC,sBAAnC;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,uBAAT,QAAwC,2BAAxC;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,0BAAT,QAA2C,WAA3C;AACA,SAASC,kBAAT,QAAmC,sBAAnC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,MAAT,QAAuB,qBAAvB;;AAEA,IAAMC,SAAS,GAAG,CAAClB,SAAnB;;;;;;;;AAQA,WAAamB,UAAb;;AAEUC,IAAAA,MAFV,gBAEmBpC,KAAK,CAACqC,SAAN,EAFnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCUC,IAAAA,eAxCV,GAwC4B,YAAM;AAC9B,aAAOJ,SAAS;AACd,0BAAC,MAAD,IAAQ,IAAI,EAAE,KAAd,EAAqB,OAAO,EAAE,MAAKK,aAAnC;AACG,YAAKC,UAAL,EADH,CADc;;;AAKd,YAAKA,UAAL,EALF;;AAOD,KAhDH;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EUC,IAAAA,aA3EV,GA2E0B,YAAM;AAC5B,cAAQ,MAAKC,KAAL,CAAWC,gBAAnB;AACE,aAAKxB,SAAS,CAACyB,IAAf;AACE,iBAAOzB,SAAS,CAACyB,IAAjB;AACF,aAAKzB,SAAS,CAAC0B,OAAf;AACE,iBAAO1B,SAAS,CAAC0B,OAAjB;AACF,aAAK1B,SAAS,CAAC2B,UAAf;AACE,iBAAO3B,SAAS,CAAC2B,UAAjB;AACF;AACE,iBAAO3B,SAAS,CAAC4B,OAAjB,CARJ;;AAUD,KAtFH;;AAwFUC,IAAAA,gBAxFV,GAwF6B,YAAM;AAC/B,UAAMC,KAAK,GAAG,SAARA,KAAQ,YAAGC,IAAH,QAAGA,IAAH;AACZ,8BAAC,MAAD,IAAQ,IAAI,MAAZ,EAAa,aAAa,EAAC,QAA3B,EAAoC,GAAG,EAAE,EAAzC;AACE,8BAAC,gBAAD,IAAkB,KAAK,EAAE,GAAzB,EAA8B,IAAI,EAAEA,IAApC,GADF;AAEE,8BAAC,KAAD,IAAO,SAAS,eAAE,oBAAC,QAAD,OAAlB,EAAgC,WAAW,EAAE,YAA7C,EAA2D,IAAI,EAAEA,IAAjE,GAFF;AAGE,8BAAC,MAAD,IAAQ,KAAK,EAAE,GAAf,EAAoB,IAAI,EAAEA,IAA1B,aAHF;;;AAME,8BAAC,MAAD,IAAQ,IAAI,eAAE,oBAAC,QAAD,OAAd,EAA4B,GAAG,EAAE,MAAjC,EAAyC,IAAI,EAAEA,IAA/C,yBANF,CADY,GAAd;;;;;;AAaA;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,SAAxB,EAAmC,KAAK,EAAE,MAAKC,KAA/C;AACE,4BAAC,KAAD,IAAO,IAAI,EAAE,OAAb,GADF;AAEE,4BAAC,KAAD,IAAO,IAAI,EAAE,QAAb,GAFF;AAGE,4BAAC,KAAD,IAAO,IAAI,EAAE,OAAb,GAHF,CADF;;;AAOD,KA7GH;;AA+GUC,IAAAA,gBA/GV,GA+G6B,YAAM;AAC/B,UAAMC,SAAsB,GAAG;AAC7B,QAAEC,IAAI,eAAE,oBAAC,QAAD,OAAR,EAAsBC,QAAQ,EAAE,SAAhC,EAD6B;AAE7B,QAAED,IAAI,eAAE,oBAAC,MAAD,OAAR,EAAoBE,GAAG,EAAE,SAAzB,EAAoCD,QAAQ,EAAE,SAA9C,EAF6B;AAG7B,QAAED,IAAI,eAAE,oBAAC,SAAD,OAAR,EAAuBE,GAAG,EAAE,QAA5B,EAAsCD,QAAQ,EAAE,QAAhD,EAH6B;AAI7B,QAAED,IAAI,eAAE,oBAAC,SAAD,OAAR,EAAuBE,GAAG,EAAE,QAA5B,EAAsCD,QAAQ,EAAE,QAAhD,EAJ6B;AAK7B,QAAED,IAAI,eAAE,oBAAC,SAAD,OAAR,EAAuBC,QAAQ,EAAE,UAAjC,EAA6CE,QAAQ,EAAE,IAAvD,EAL6B,CAA/B;;AAOA;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,QAAxB,EAAkC,KAAK,EAAE,MAAKN,KAA9C;AACE,4BAAC,MAAD,IAAQ,IAAI,MAAZ,EAAa,aAAa,EAAC,QAA3B,EAAoC,GAAG,EAAE,EAAzC;AACGxB,QAAAA,0BAA0B,eAAC,oBAAC,IAAD,OAAD,EAAW0B,SAAX,CAD7B,CADF,CADF;;;;AAOD,KA9HH;;AAgIUK,IAAAA,kBAhIV,GAgI+B,YAAM;AACjC,UAAML,SAAwB,GAAG;AAC/B,QAAEE,QAAQ,EAAE,SAAZ,EAD+B;AAE/B,QAAEA,QAAQ,EAAE,SAAZ,EAAuBC,GAAG,EAAE,SAA5B,EAF+B;AAG/B,QAAED,QAAQ,EAAE,QAAZ,EAAsBC,GAAG,EAAE,QAA3B,EAH+B;AAI/B,QAAED,QAAQ,EAAE,KAAZ,EAAmBC,GAAG,EAAE,KAAxB,EAJ+B;AAK/B,QAAED,QAAQ,EAAE,SAAZ,EAAuBC,GAAG,EAAE,SAA5B,EAL+B;AAM/B,QAAED,QAAQ,EAAE,UAAZ,EAAwBE,QAAQ,EAAE,IAAlC,EAN+B;AAO/B,QAAEF,QAAQ,EAAE,MAAZ,EAAoBI,KAAK,EAAE,MAA3B,EAAmCT,IAAI,EAAE,QAAzC,EAAmDU,KAAK,EAAE,GAA1D,EAP+B;AAQ/B,QAAEL,QAAQ,EAAE,SAAZ,EAAuBI,KAAK,EAAE,IAA9B,EAAoCT,IAAI,EAAE,QAA1C,EAAoDM,GAAG,EAAE,SAAzD,EAAoEI,KAAK,EAAE,GAA3E,EAR+B;AAS/B,QAAEL,QAAQ,EAAE,SAAZ,EAAuBL,IAAI,EAAE,QAA7B,EAAuCW,OAAO,EAAE,IAAhD,EAT+B,CAAjC;;;AAYA;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,QAAxB,EAAkC,KAAK,EAAE,MAAKV,KAA9C;AACGxB,QAAAA,0BAA0B,eAAC,oBAAC,MAAD,IAAQ,KAAK,EAAE,GAAf,EAAoB,IAAI,EAAE,OAA1B,GAAD,EAAwC0B,SAAxC,CAD7B,CADF;;;AAKD,KAlJH;;AAoJUS,IAAAA,iBApJV,GAoJ8B,YAAM;AAChC,UAAMT,SAAuB,GAAG;AAC9B,QAAEU,WAAW,EAAE,SAAf,EAD8B;AAE9B,QAAEA,WAAW,EAAE,OAAf,EAAwBC,KAAK,EAAE,IAA/B,EAF8B;AAG9B,QAAED,WAAW,EAAE,SAAf,EAA0BE,OAAO,EAAE,IAAnC,EAH8B;AAI9B,QAAEF,WAAW,EAAE,UAAf,EAA2BN,QAAQ,EAAE,IAArC,EAJ8B,CAAhC;;AAMA,UAAMS,SAAS,GAAGvC,0BAA0B,eAAC,oBAAC,KAAD,IAAO,KAAK,EAAE,GAAd,GAAD,EAAwB0B,SAAxB,CAA5C;AACA;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,YAAxB,EAAsC,KAAK,EAAE,MAAKF,KAAlD;AACE,4BAAC,KAAD,IAAO,KAAK,EAAE,GAAd,EAAmB,MAAM,EAAC,iCAA1B,EAA4D,SAAS,eAAE,oBAAC,UAAD,OAAvE,GADF;AAEE;AACE,4BAAC,MAAD,IAAQ,GAAG,EAAE,EAAb,IAAkBe,SAAlB,CADF,CAFF,CADF;;;;AAQD,KApKH;;AAsKUC,IAAAA,sBAtKV,GAsKmC,YAAM;AACrC;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,gBAAxB,EAA0C,KAAK,EAAE,MAAKhB,KAAtD;AACE,4BAAC,oBAAD,OADF,CADF;;;AAKD,KA5KH;;AA8KUiB,IAAAA,sBA9KV,GA8KmC,YAAM;AACrC;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,aAAxB,EAAuC,KAAK,EAAE,MAAKjB,KAAnD;AACE,4BAAC,uBAAD,OADF;AAEE,4BAAC,iBAAD,OAFF;AAGE,4BAAC,oBAAD,OAHF,CADF;;;AAOD,KAtLH;;AAwLUkB,IAAAA,oBAxLV,GAwLiC,YAAM;AACnC;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,eAAxB,EAAyC,KAAK,EAAE,MAAKlB,KAArD;AACE,4BAAC,kBAAD,OADF,CADF;;;AAKD,KA9LH;;AAgMUmB,IAAAA,mBAhMV,GAgMgC,YAAM;AAClC;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,iBAAxB,EAA2C,KAAK,EAAE,MAAKnB,KAAvD;AACE,4BAAC,MAAD,IAAQ,aAAa,EAAE,KAAvB,EAA8B,GAAG,EAAE,EAAnC;AACE,4BAAC,kBAAD,OADF;AAEE,4BAAC,eAAD,OAFF;AAGE,4BAAC,gBAAD,OAHF,CADF,CADF;;;;AASD,KA1MH;;AA4MUoB,IAAAA,gBA5MV,GA4M6B,YAAM;AAC/B;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,QAAxB,EAAkC,KAAK,EAAE,MAAKpB,KAA9C;AACE,4BAAC,cAAD,OADF,CADF;;;AAKD,KAlNH;;AAoNUqB,IAAAA,aApNV,GAoN0B,YAAM;AAC5B,UAAMC,cAAc,GAAG,SAAjBA,cAAiB;AACrB,uCAAK,SAAS,EAAExC,MAAM,CAACwC,cAAP,EAAhB;AACG,iFADH,CADqB,GAAvB;;;AAKA;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,QAAxB,EAAkC,KAAK,EAAE,MAAKtB,KAA9C;AACE,4BAAC,OAAD,IAAS,MAAM,EAAEsB,cAAjB,EAAiC,GAAG,EAAC,cAArC,EAAoD,OAAO,EAAE,QAA7D,EAAuE,iBAAiB,EAAE,IAA1F;AACE,4BAAC,IAAD,IAAM,IAAI,eAAE,oBAAC,WAAD,OAAZ,GADF,CADF,CADF;;;;AAOD,KAjOH;;AAmOUC,IAAAA,YAnOV,GAmOyB,YAAM;AAC3B;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,UAAxB,EAAoC,KAAK,EAAE,MAAKvB,KAAhD;AACE,4BAAC,gBAAD,OADF,CADF;;;AAKD,KAzOH;;AA2OUwB,IAAAA,kBA3OV,GA2O+B,YAAM;AACjC;AACE,4BAAC,eAAD,IAAiB,KAAK,EAAE,cAAxB,EAAwC,KAAK,EAAE,MAAKxB,KAApD;AACE,4BAAC,YAAD,IAAc,QAAQ,MAAtB,GADF,CADF;;;AAKD,KAjPH;;AAmPUyB,IAAAA,uBAnPV,GAmPoC,YAAM;AACtC,0BAAO,6BAAK,GAAG,EAAE,MAAKxC,MAAf,EAAuB,KAAK,EAAE,EAAEyC,MAAM,EAAE,EAAV,EAA9B,GAAP;AACD,KArPH;;AAuPUtC,IAAAA,aAvPV,GAuP0B,oBAAM,MAAKH,MAAL,CAAY0C,OAAlB,EAvP1B,wDAISC,MAJT,GAIE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAAC5B,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAAC6B,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAbH,QAcUA,UAdV,GAcE,sBAAqB,CACnB,IAAMC,gBAAgB,GAAGhE,EAAE,CAACgB,MAAM,CAACiD,UAAP,EAAD,EAAsBjD,MAAM,CAACkD,iBAAP,CAAyB,KAAKhC,KAA9B,CAAtB,CAA3B,CACA,oBACE,6BAAK,SAAS,EAAE8B,gBAAhB,iBACE,oBAAC,MAAD,IAAQ,QAAQ,MAAhB,EAAiB,GAAG,EAAE,EAAtB,IACG,KAAK3C,eAAL,EADH,EAEG,KAAKU,gBAAL,EAFH,EAGG,KAAKI,gBAAL,EAHH,EAIG,KAAKM,kBAAL,EAJH,EAKG,KAAKI,iBAAL,EALH,EAMG,KAAKM,sBAAL,EANH,EAOG,KAAKD,sBAAL,EAPH,EAQG,KAAKE,oBAAL,EARH,EASG,KAAKC,mBAAL,EATH,CADF,EAYG,KAAKM,uBAAL,EAZH,eAaE,oBAAC,MAAD,IAAQ,QAAQ,MAAhB,EAAiB,GAAG,EAAE,EAAtB,IACG,KAAKL,gBAAL,EADH,EAEG,KAAKC,aAAL,EAFH,EAGG,KAAKE,YAAL,EAHH,EAIG,KAAKC,kBAAL,EAJH,CAbF,CADF,CAsBD,CAtCH,QAkDUnC,UAlDV,GAkDE,sBAAqB,SACnB,kBAA2C,KAAKE,KAAhD,CAAQ0C,aAAR,eAAQA,aAAR,CAAuBC,eAAvB,eAAuBA,eAAvB,CACA,IAAMC,qBAAqB,GAAG,EAAEC,UAAU,EAAE,KAAKpC,KAAL,CAAWqC,SAAzB,EAA9B,CACA,IAAMC,qBAAqB,GAAGxE,EAAE,gBAC7BgB,MAAM,CAACyD,WAAP,CAAmB,KAAKvC,KAAxB,CAD6B,IACI,IADJ,MAE7BlB,MAAM,CAAC0D,iBAAP,CAAyB,KAAKxC,KAA9B,CAF6B,IAEUjB,SAFV,OAAhC,CAKA,oBACE,6BAAK,KAAK,EAAEoD,qBAAZ,EAAmC,SAAS,EAAEG,qBAA9C,iBACE,oBAAC,MAAD,IAAQ,GAAG,EAAE,EAAb,iBACE,oBAAC,IAAD,IAAM,KAAK,EAAE,KAAKhD,aAAL,EAAb,EAAmC,aAAa,EAAE2C,aAAlD,EAAiE,QAAQ,EAAE,KAA3E,iBACE,6BAAK,SAAS,EAAEnD,MAAM,CAAC2D,gBAAP,CAAwB,KAAKzC,KAA7B,CAAhB,iBACE,oBAAC,IAAD,CAAM,GAAN,IAAU,EAAE,EAAEhC,SAAS,CAAC4B,OAAxB,6DADF,eAEE,oBAAC,IAAD,CAAM,GAAN,IAAU,EAAE,EAAE5B,SAAS,CAACyB,IAAxB,2CAFF,eAGE,oBAAC,IAAD,CAAM,GAAN,IAAU,EAAE,EAAEzB,SAAS,CAAC2B,UAAxB,iEAHF,eAIE,oBAAC,IAAD,CAAM,GAAN,IAAU,EAAE,EAAE3B,SAAS,CAAC0B,OAAxB,qDAJF,CADF,CADF,eASE,oBAAC,IAAD,IAAM,OAAO,EAAEwC,eAAf,sFATF,CADF,CADF,CAeD,CAzEH,qBAAgCrF,KAAK,CAAC6F,SAAtC","sourcesContent":["import React from 'react';\nimport SearchIcon from '@skbkontur/react-icons/Search';\nimport CardIcon from '@skbkontur/react-icons/Card';\nimport LinkIcon from '@skbkontur/react-icons/Link';\nimport OkIcon from '@skbkontur/react-icons/Ok';\nimport ErrorIcon from '@skbkontur/react-icons/Error';\nimport TrashIcon from '@skbkontur/react-icons/Trash';\nimport HelpDotIcon from '@skbkontur/react-icons/HelpDot';\n\nimport { Button, ButtonProps } from '../../components/Button';\nimport { Tabs } from '../../components/Tabs';\nimport { Gapped } from '../../components/Gapped';\nimport { Link, LinkProps } from '../../components/Link';\nimport { Input, InputProps } from '../../components/Input';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Sticky } from '../../components/Sticky';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport { FileUploader } from '../../components/FileUploader';\n\nimport { ThemeType } from './constants';\nimport { TokenInputPlayground } from './TokenInputPlayground';\nimport { DatePickerPlayground } from './AnotherInputsPlayground';\nimport { TogglePlayground } from './TogglePlayground';\nimport { SwitcherPlayground } from './SwitcherPlayground';\nimport { FxInputPlayground } from './FxInputPlayground';\nimport { CurrencyInputPlayground } from './CurrencyInputPlayground';\nimport { SelectPlayground } from './SelectPlayground';\nimport { getComponentsFromPropsList } from './helpers';\nimport { CheckboxPlayground } from './CheckboxPlayground';\nimport { RadioPlayground } from './RadioPlayground';\nimport { PagingPlayground } from './PagingPlayground';\nimport { HintPlayground } from './HintPlayground';\nimport { ComponentsGroup } from './ComponentsGroup';\nimport { styles } from './Playground.styles';\n\nconst useSticky = !isTestEnv;\n\nexport interface PlaygroundProps {\n currentThemeType: ThemeType;\n onThemeChange: (value: string) => void;\n onEditLinkClick: () => void;\n}\n\nexport class Playground extends React.Component<PlaygroundProps, {}> {\n private theme!: Theme;\n private stopEl = React.createRef<HTMLDivElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n private renderMain() {\n const wrapperClassName = cx(styles.playground(), styles.playgroundWrapper(this.theme));\n return (\n <div className={wrapperClassName}>\n <Gapped vertical gap={50}>\n {this.renderTabsGroup()}\n {this.renderSizesGroup()}\n {this.renderLinksGroup()}\n {this.renderButtonsGroup()}\n {this.renderInputsGroup()}\n {this.renderOtherInputsGroup()}\n {this.renderTokenInputsGroup()}\n {this.renderSwitchersGroup()}\n {this.renderControlsGroup()}\n </Gapped>\n {this.renderStickyStopElement()}\n <Gapped vertical gap={50}>\n {this.renderHintsGroup()}\n {this.renderTooltip()}\n {this.renderPaging()}\n {this.renderFileUploader()}\n </Gapped>\n </div>\n );\n }\n\n private renderTabsGroup = () => {\n return useSticky ? (\n <Sticky side={'top'} getStop={this.getStickyStop}>\n {this.renderTabs()}\n </Sticky>\n ) : (\n this.renderTabs()\n );\n };\n\n private renderTabs() {\n const { onThemeChange, onEditLinkClick } = this.props;\n const tabsOuterWrapperStyle = { background: this.theme.bgDefault };\n const tabsOuterWrapperClass = cx({\n [styles.tabsWrapper(this.theme)]: true,\n [styles.stickyTabsWrapper(this.theme)]: useSticky,\n });\n\n return (\n <div style={tabsOuterWrapperStyle} className={tabsOuterWrapperClass}>\n <Gapped gap={40}>\n <Tabs value={this.getCurrentTab()} onValueChange={onThemeChange} vertical={false}>\n <div className={styles.tabsInnerWrapper(this.theme)}>\n <Tabs.Tab id={ThemeType.Default}>Дефолтная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Dark}>Темная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.DefaultOld}>Дефолтная 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.FlatOld}>Плоская 3.0</Tabs.Tab>\n </div>\n </Tabs>\n <Link onClick={onEditLinkClick}>Настроить тему</Link>\n </Gapped>\n </div>\n );\n }\n\n private getCurrentTab = () => {\n switch (this.props.currentThemeType) {\n case ThemeType.Dark:\n return ThemeType.Dark;\n case ThemeType.FlatOld:\n return ThemeType.FlatOld;\n case ThemeType.DefaultOld:\n return ThemeType.DefaultOld;\n default:\n return ThemeType.Default;\n }\n };\n\n private renderSizesGroup = () => {\n const Group = ({ size }: { size: 'small' | 'medium' | 'large' }) => (\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n <SelectPlayground width={120} size={size} />\n <Input rightIcon={<CardIcon />} placeholder={'Text value'} size={size} />\n <Button width={120} size={size}>\n Button\n </Button>\n <Button icon={<LinkIcon />} use={'link'} size={size}>\n Button like a link\n </Button>\n </Gapped>\n );\n\n return (\n <ComponentsGroup title={'Размеры'} theme={this.theme}>\n <Group size={'small'} />\n <Group size={'medium'} />\n <Group size={'large'} />\n </ComponentsGroup>\n );\n };\n\n private renderLinksGroup = () => {\n const propsList: LinkProps[] = [\n { icon: <LinkIcon />, children: 'Enabled' },\n { icon: <OkIcon />, use: 'success', children: 'Success' },\n { icon: <ErrorIcon />, use: 'danger', children: 'Danger' },\n { icon: <TrashIcon />, use: 'grayed', children: 'Grayed' },\n { icon: <TrashIcon />, children: 'Disabled', disabled: true },\n ];\n return (\n <ComponentsGroup title={'Ссылки'} theme={this.theme}>\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n {getComponentsFromPropsList(<Link />, propsList)}\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderButtonsGroup = () => {\n const propsList: ButtonProps[] = [\n { children: 'Default' },\n { children: 'Primary', use: 'primary' },\n { children: 'Danger', use: 'danger' },\n { children: 'Pay', use: 'pay' },\n { children: 'Success', use: 'success' },\n { children: 'Disabled', disabled: true },\n { children: 'Back', arrow: 'left', size: 'medium', width: 110 },\n { children: 'Forward', arrow: true, size: 'medium', use: 'primary', width: 110 },\n { children: 'Loading', size: 'medium', loading: true },\n ];\n\n return (\n <ComponentsGroup title={'Кнопки'} theme={this.theme}>\n {getComponentsFromPropsList(<Button width={120} size={'small'} />, propsList)}\n </ComponentsGroup>\n );\n };\n\n private renderInputsGroup = () => {\n const propsList: InputProps[] = [\n { placeholder: 'Enabled' },\n { placeholder: 'Error', error: true },\n { placeholder: 'Warning', warning: true },\n { placeholder: 'Disabled', disabled: true },\n ];\n const fromProps = getComponentsFromPropsList(<Input width={120} />, propsList);\n return (\n <ComponentsGroup title={'Поле ввода'} theme={this.theme}>\n <Input width={380} prefix=\"https://kontur.ru/search?query=\" rightIcon={<SearchIcon />} />\n <div>\n <Gapped gap={10}>{fromProps}</Gapped>\n </div>\n </ComponentsGroup>\n );\n };\n\n private renderTokenInputsGroup = () => {\n return (\n <ComponentsGroup title={'Поле с токеном'} theme={this.theme}>\n <TokenInputPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderOtherInputsGroup = () => {\n return (\n <ComponentsGroup title={'Прочие поля'} theme={this.theme}>\n <CurrencyInputPlayground />\n <FxInputPlayground />\n <DatePickerPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderSwitchersGroup = () => {\n return (\n <ComponentsGroup title={'Переключатели'} theme={this.theme}>\n <SwitcherPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderControlsGroup = () => {\n return (\n <ComponentsGroup title={'Радио, чекбоксы'} theme={this.theme}>\n <Gapped verticalAlign={'top'} gap={60}>\n <CheckboxPlayground />\n <RadioPlayground />\n <TogglePlayground />\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderHintsGroup = () => {\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <HintPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderTooltip = () => {\n const tooltipContent = () => (\n <div className={styles.tooltipContent()}>\n {'Информация об ошибке. Короткий объясняющий текст и ссылка, если нужно'}\n </div>\n );\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <Tooltip render={tooltipContent} pos=\"right middle\" trigger={'opened'} disableAnimations={true}>\n <Link icon={<HelpDotIcon />} />\n </Tooltip>\n </ComponentsGroup>\n );\n };\n\n private renderPaging = () => {\n return (\n <ComponentsGroup title={'Пейджинг'} theme={this.theme}>\n <PagingPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderFileUploader = () => {\n return (\n <ComponentsGroup title={'FileUploader'} theme={this.theme}>\n <FileUploader multiple />\n </ComponentsGroup>\n );\n };\n\n private renderStickyStopElement = () => {\n return <div ref={this.stopEl} style={{ height: 50 }} />;\n };\n\n private getStickyStop = () => this.stopEl.current;\n}\n"]}
1
+ {"version":3,"sources":["Playground.tsx"],"names":["React","SearchIcon","LinkIcon","OkIcon","ErrorIcon","TrashIcon","HelpDotIcon","Button","Tabs","Gapped","Link","Input","ThemeContext","Tooltip","Sticky","isTestEnv","cx","FileUploader","ThemeType","TokenInputPlayground","DatePickerPlayground","TogglePlayground","SwitcherPlayground","FxInputPlayground","CurrencyInputPlayground","getComponentsFromPropsList","CheckboxPlayground","RadioPlayground","PagingPlayground","HintPlayground","ComponentsGroup","styles","SizesGroup","useSticky","Playground","stopEl","createRef","renderTabsGroup","getStickyStop","renderTabs","getCurrentTab","props","currentThemeType","Dark","FlatOld","DefaultOld","Theme2022","Theme2022Dark","Default","renderSizesGroup","theme","renderLinksGroup","propsList","icon","children","use","disabled","renderButtonsGroup","arrow","size","width","loading","renderInputsGroup","placeholder","error","warning","fromProps","renderTokenInputsGroup","renderOtherInputsGroup","renderSwitchersGroup","renderControlsGroup","renderHintsGroup","renderTooltip","tooltipContent","renderPaging","renderFileUploader","renderStickyStopElement","height","current","render","renderMain","wrapperClassName","playground","playgroundWrapper","onThemeChange","onEditLinkClick","tabsOuterWrapperStyle","background","bgDefault","tabsOuterWrapperClass","tabsWrapper","stickyTabsWrapper","tabsInnerWrapper","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport SearchIcon from '@skbkontur/react-icons/Search';\nimport LinkIcon from '@skbkontur/react-icons/Link';\nimport OkIcon from '@skbkontur/react-icons/Ok';\nimport ErrorIcon from '@skbkontur/react-icons/Error';\nimport TrashIcon from '@skbkontur/react-icons/Trash';\nimport HelpDotIcon from '@skbkontur/react-icons/HelpDot';\n\nimport { Button, ButtonProps } from '../../components/Button';\nimport { Tabs } from '../../components/Tabs';\nimport { Gapped } from '../../components/Gapped';\nimport { Link, LinkProps } from '../../components/Link';\nimport { Input, InputProps } from '../../components/Input';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Sticky } from '../../components/Sticky';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport { FileUploader } from '../../components/FileUploader';\n\nimport { ThemeType } from './constants';\nimport { TokenInputPlayground } from './TokenInputPlayground';\nimport { DatePickerPlayground } from './AnotherInputsPlayground';\nimport { TogglePlayground } from './TogglePlayground';\nimport { SwitcherPlayground } from './SwitcherPlayground';\nimport { FxInputPlayground } from './FxInputPlayground';\nimport { CurrencyInputPlayground } from './CurrencyInputPlayground';\nimport { getComponentsFromPropsList } from './helpers';\nimport { CheckboxPlayground } from './CheckboxPlayground';\nimport { RadioPlayground } from './RadioPlayground';\nimport { PagingPlayground } from './PagingPlayground';\nimport { HintPlayground } from './HintPlayground';\nimport { ComponentsGroup } from './ComponentsGroup';\nimport { styles } from './Playground.styles';\nimport { SizesGroup } from './SizesGroup';\n\nconst useSticky = !isTestEnv;\n\nexport interface PlaygroundProps {\n currentThemeType: ThemeType;\n onThemeChange: (value: string) => void;\n onEditLinkClick: () => void;\n}\n\nexport class Playground extends React.Component<PlaygroundProps, {}> {\n private theme!: Theme;\n private stopEl = React.createRef<HTMLDivElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n private renderMain() {\n const wrapperClassName = cx(styles.playground(), styles.playgroundWrapper(this.theme));\n return (\n <div className={wrapperClassName}>\n <Gapped vertical gap={50}>\n {this.renderTabsGroup()}\n {this.renderSizesGroup()}\n {this.renderLinksGroup()}\n {this.renderButtonsGroup()}\n {this.renderInputsGroup()}\n {this.renderOtherInputsGroup()}\n {this.renderTokenInputsGroup()}\n {this.renderSwitchersGroup()}\n {this.renderControlsGroup()}\n </Gapped>\n {this.renderStickyStopElement()}\n <Gapped vertical gap={50}>\n {this.renderHintsGroup()}\n {this.renderTooltip()}\n {this.renderPaging()}\n {this.renderFileUploader()}\n </Gapped>\n </div>\n );\n }\n\n private renderTabsGroup = () => {\n return useSticky ? (\n <Sticky side={'top'} getStop={this.getStickyStop}>\n {this.renderTabs()}\n </Sticky>\n ) : (\n this.renderTabs()\n );\n };\n\n private renderTabs() {\n const { onThemeChange, onEditLinkClick } = this.props;\n const tabsOuterWrapperStyle = { background: this.theme.bgDefault };\n const tabsOuterWrapperClass = cx({\n [styles.tabsWrapper(this.theme)]: true,\n [styles.stickyTabsWrapper(this.theme)]: useSticky,\n });\n\n return (\n <div style={tabsOuterWrapperStyle} className={tabsOuterWrapperClass}>\n <Gapped gap={40}>\n <Tabs value={this.getCurrentTab()} onValueChange={onThemeChange} vertical={false}>\n <div className={styles.tabsInnerWrapper(this.theme)}>\n <Tabs.Tab id={ThemeType.Default}>Дефолтная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Dark}>Темная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.DefaultOld}>Дефолтная 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.FlatOld}>Плоская 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Theme2022}>Новая 2022</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Theme2022Dark}>Новая 2022 Тёмная</Tabs.Tab>\n </div>\n </Tabs>\n <Link onClick={onEditLinkClick}>Настроить тему</Link>\n </Gapped>\n </div>\n );\n }\n\n private getCurrentTab = () => {\n switch (this.props.currentThemeType) {\n case ThemeType.Dark:\n return ThemeType.Dark;\n case ThemeType.FlatOld:\n return ThemeType.FlatOld;\n case ThemeType.DefaultOld:\n return ThemeType.DefaultOld;\n case ThemeType.Theme2022:\n return ThemeType.Theme2022;\n case ThemeType.Theme2022Dark:\n return ThemeType.Theme2022Dark;\n default:\n return ThemeType.Default;\n }\n };\n\n private renderSizesGroup = () => {\n return (\n <ComponentsGroup title={'Размеры'} theme={this.theme}>\n <SizesGroup size={'small'} />\n <SizesGroup size={'medium'} />\n <SizesGroup size={'large'} />\n </ComponentsGroup>\n );\n };\n\n private renderLinksGroup = () => {\n const propsList: LinkProps[] = [\n { icon: <LinkIcon />, children: 'Enabled' },\n { icon: <OkIcon />, use: 'success', children: 'Success' },\n { icon: <ErrorIcon />, use: 'danger', children: 'Danger' },\n { icon: <TrashIcon />, use: 'grayed', children: 'Grayed' },\n { icon: <TrashIcon />, children: 'Disabled', disabled: true },\n ];\n return (\n <ComponentsGroup title={'Ссылки'} theme={this.theme}>\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n {getComponentsFromPropsList(<Link />, propsList)}\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderButtonsGroup = () => {\n const propsList: ButtonProps[] = [\n { children: 'Default' },\n { children: 'Primary', use: 'primary' },\n { children: 'Danger', use: 'danger' },\n { children: 'Pay', use: 'pay' },\n { children: 'Success', use: 'success' },\n { children: 'Disabled', disabled: true },\n { children: 'Back', arrow: 'left', size: 'medium', width: 110 },\n { children: 'Forward', arrow: true, size: 'medium', use: 'primary', width: 110 },\n { children: 'Loading', size: 'medium', loading: true },\n ];\n\n return (\n <ComponentsGroup title={'Кнопки'} theme={this.theme}>\n {getComponentsFromPropsList(<Button width={120} size={'small'} />, propsList)}\n </ComponentsGroup>\n );\n };\n\n private renderInputsGroup = () => {\n const propsList: InputProps[] = [\n { placeholder: 'Enabled' },\n { placeholder: 'Error', error: true },\n { placeholder: 'Warning', warning: true },\n { placeholder: 'Disabled', disabled: true },\n ];\n const fromProps = getComponentsFromPropsList(<Input width={120} />, propsList);\n return (\n <ComponentsGroup title={'Поле ввода'} theme={this.theme}>\n <Input width={380} prefix=\"https://kontur.ru/search?query=\" rightIcon={<SearchIcon />} />\n <div>\n <Gapped gap={10}>{fromProps}</Gapped>\n </div>\n </ComponentsGroup>\n );\n };\n\n private renderTokenInputsGroup = () => {\n return (\n <ComponentsGroup title={'Поле с токеном'} theme={this.theme}>\n <TokenInputPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderOtherInputsGroup = () => {\n return (\n <ComponentsGroup title={'Прочие поля'} theme={this.theme}>\n <CurrencyInputPlayground />\n <FxInputPlayground />\n <DatePickerPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderSwitchersGroup = () => {\n return (\n <ComponentsGroup title={'Переключатели'} theme={this.theme}>\n <SwitcherPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderControlsGroup = () => {\n return (\n <ComponentsGroup title={'Радио, чекбоксы'} theme={this.theme}>\n <Gapped verticalAlign={'top'} gap={60}>\n <CheckboxPlayground />\n <RadioPlayground />\n <TogglePlayground />\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderHintsGroup = () => {\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <HintPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderTooltip = () => {\n const tooltipContent = () => (\n <div className={styles.tooltipContent()}>\n {'Информация об ошибке. Короткий объясняющий текст и ссылка, если нужно'}\n </div>\n );\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <Tooltip render={tooltipContent} pos=\"right middle\" trigger={'opened'} disableAnimations>\n <Link icon={<HelpDotIcon />} />\n </Tooltip>\n </ComponentsGroup>\n );\n };\n\n private renderPaging = () => {\n return (\n <ComponentsGroup title={'Пейджинг'} theme={this.theme}>\n <PagingPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderFileUploader = () => {\n return (\n <ComponentsGroup title={'FileUploader'} theme={this.theme}>\n <FileUploader multiple />\n </ComponentsGroup>\n );\n };\n\n private renderStickyStopElement = () => {\n return <div ref={this.stopEl} style={{ height: 50 }} />;\n };\n\n private getStickyStop = () => this.stopEl.current;\n}\n"]}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import CardIcon from '@skbkontur/react-icons/Card';
3
+ import LinkIcon from '@skbkontur/react-icons/Link';
4
+ import { Input } from "../../../components/Input";
5
+ import { Gapped } from "../../../components/Gapped";
6
+ import { Button } from "../../../components/Button";
7
+ import { SelectPlayground } from "../SelectPlayground";
8
+ export var SizesGroup = function SizesGroup(_ref) {
9
+ var size = _ref.size;
10
+ return /*#__PURE__*/React.createElement(Gapped, {
11
+ wrap: true,
12
+ verticalAlign: "middle",
13
+ gap: 10
14
+ }, /*#__PURE__*/React.createElement(SelectPlayground, {
15
+ width: 120,
16
+ size: size
17
+ }), /*#__PURE__*/React.createElement(Input, {
18
+ rightIcon: /*#__PURE__*/React.createElement(CardIcon, null),
19
+ placeholder: 'Text value',
20
+ size: size
21
+ }), /*#__PURE__*/React.createElement(Button, {
22
+ width: 120,
23
+ size: size
24
+ }, "Button"), /*#__PURE__*/React.createElement(Button, {
25
+ icon: /*#__PURE__*/React.createElement(LinkIcon, null),
26
+ use: 'link',
27
+ size: size
28
+ }, "Button like a link"));
29
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SizesGroup.tsx"],"names":["React","CardIcon","LinkIcon","Input","Gapped","Button","SelectPlayground","SizesGroup","size"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,6BAArB;AACA,OAAOC,QAAP,MAAqB,6BAArB;;AAEA,SAASC,KAAT,QAAsB,wBAAtB;AACA,SAASC,MAAT,QAAuB,yBAAvB;AACA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,SAASC,gBAAT,QAAiC,oBAAjC;;;;AAIA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,YAAGC,IAAH,QAAGA,IAAH;AACxB,wBAAC,MAAD,IAAQ,IAAI,MAAZ,EAAa,aAAa,EAAC,QAA3B,EAAoC,GAAG,EAAE,EAAzC;AACE,wBAAC,gBAAD,IAAkB,KAAK,EAAE,GAAzB,EAA8B,IAAI,EAAEA,IAApC,GADF;AAEE,wBAAC,KAAD,IAAO,SAAS,eAAE,oBAAC,QAAD,OAAlB,EAAgC,WAAW,EAAE,YAA7C,EAA2D,IAAI,EAAEA,IAAjE,GAFF;AAGE,wBAAC,MAAD,IAAQ,KAAK,EAAE,GAAf,EAAoB,IAAI,EAAEA,IAA1B,aAHF;;;AAME,wBAAC,MAAD,IAAQ,IAAI,eAAE,oBAAC,QAAD,OAAd,EAA4B,GAAG,EAAE,MAAjC,EAAyC,IAAI,EAAEA,IAA/C,yBANF,CADwB,GAAnB","sourcesContent":["import React from 'react';\nimport CardIcon from '@skbkontur/react-icons/Card';\nimport LinkIcon from '@skbkontur/react-icons/Link';\n\nimport { Input } from '../../components/Input';\nimport { Gapped } from '../../components/Gapped';\nimport { Button } from '../../components/Button';\n\nimport { SelectPlayground } from './SelectPlayground';\n\nexport type SizesGroupProps = { size: 'small' | 'medium' | 'large' };\n\nexport const SizesGroup = ({ size }: SizesGroupProps) => (\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n <SelectPlayground width={120} size={size} />\n <Input rightIcon={<CardIcon />} placeholder={'Text value'} size={size} />\n <Button width={120} size={size}>\n Button\n </Button>\n <Button icon={<LinkIcon />} use={'link'} size={size}>\n Button like a link\n </Button>\n </Gapped>\n);\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/internal/ThemePlayground/SizesGroup.js",
3
+ "module": "SizesGroup",
4
+ "types": "../SizesGroup.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,4 @@
1
+ export declare type SizesGroupProps = {
2
+ size: 'small' | 'medium' | 'large';
3
+ };
4
+ export declare const SizesGroup: ({ size }: SizesGroupProps) => JSX.Element;
@@ -12,7 +12,9 @@ import { Gapped } from "../../../components/Gapped";
12
12
  import { ComboBox } from "../../../components/ComboBox";
13
13
  import { Link } from "../../../components/Link";
14
14
  import * as ColorFunctions from "../../../lib/styles/ColorFunctions";
15
+ import { THEME_2022 } from "../../../lib/theming/themes/Theme2022";
15
16
  import { findPropertyDescriptor } from "../../../lib/theming/ThemeHelpers";
17
+ import { THEME_2022_DARK } from "../../../lib/theming/themes/Theme2022Dark";
16
18
  import { ThemeEditor } from "../ThemeEditor";
17
19
  import { styles } from "../Playground.styles";
18
20
  import { Playground } from "../Playground";
@@ -36,6 +38,12 @@ export var ThemeContextPlayground = /*#__PURE__*/function (_React$Component) {
36
38
  }, {
37
39
  value: ThemeType.FlatOld,
38
40
  label: 'Старая плоская'
41
+ }, {
42
+ value: ThemeType.Theme2022,
43
+ label: 'Новая 2022'
44
+ }, {
45
+ value: ThemeType.Theme2022Dark,
46
+ label: 'Новая 2022 Тёмная'
39
47
  }];
40
48
 
41
49
  _this.renderSidePage = function () {
@@ -192,13 +200,17 @@ export var ThemeContextPlayground = /*#__PURE__*/function (_React$Component) {
192
200
  "default": DEFAULT_THEME,
193
201
  defaultOld: DEFAULT_THEME_8PX_OLD,
194
202
  dark: DARK_THEME,
195
- flatOld: FLAT_THEME_8PX_OLD
203
+ flatOld: FLAT_THEME_8PX_OLD,
204
+ theme2022: THEME_2022,
205
+ theme2022Dark: THEME_2022_DARK
196
206
  },
197
207
  themesErrors: {
198
208
  "default": {},
199
209
  defaultOld: {},
200
210
  dark: {},
201
- flatOld: {}
211
+ flatOld: {},
212
+ theme2022: {},
213
+ theme2022Dark: {}
202
214
  }
203
215
  };
204
216
  return _this;
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeContextPlayground.tsx"],"names":["React","ThemeContext","ThemeFactory","FLAT_THEME_8PX_OLD","DEFAULT_THEME_8PX_OLD","DEFAULT_THEME","DARK_THEME","SidePage","Gapped","ComboBox","Link","ColorFunctions","findPropertyDescriptor","ThemeEditor","styles","Playground","ThemeType","ThemeContextPlayground","props","editableThemesItems","value","Default","label","Dark","DefaultOld","FlatOld","renderSidePage","state","currentTheme","themesErrors","editingThemeItem","themes","themeErrors","handleClose","editorHeaderWrapper","getEditableThemesItems","handleEditingThemeSwitch","fontSize","marginTop","handelGetTheme","sidePageBody","handleThemeVariableChange","themeObject","getKeys","forEach","key","descriptor","Object","getOwnPropertyDescriptor","get","console","log","JSON","stringify","handleOpen","setState","editorOpened","find","i","currentThemeType","handleThemeChange","themeType","variable","editingThemeType","theme","currentValue","canSetVariable","isValid","nextThemeErrors","stateUpdate","result","changeThemeVariable","query","Promise","resolve","filter","toLowerCase","includes","item","variableName","variableValue","enumerable","configurable","set","defineProperty","create","defaultOld","dark","flatOld","render","Component"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { FLAT_THEME_8PX_OLD } from '../../lib/theming/themes/FlatTheme8pxOld';\nimport { DEFAULT_THEME_8PX_OLD } from '../../lib/theming/themes/DefaultTheme8pxOld';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { SidePage } from '../../components/SidePage';\nimport { Gapped } from '../../components/Gapped';\nimport { ComboBox } from '../../components/ComboBox';\nimport { Link } from '../../components/Link';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Writeable } from '../../typings/utility-types';\nimport { findPropertyDescriptor } from '../../lib/theming/ThemeHelpers';\n\nimport { ThemeEditor } from './ThemeEditor';\nimport { styles } from './Playground.styles';\nimport { Playground } from './Playground';\nimport { ThemeType } from './constants';\n\ninterface PlaygroundState {\n editorOpened: boolean;\n editingThemeItem?: EditingThemeItem;\n themes: Themes;\n themesErrors: ThemesErrors;\n currentTheme: Theme;\n currentThemeType: ThemeType;\n}\ninterface Themes {\n default: Theme;\n dark: Theme;\n defaultOld: Theme;\n flatOld: Theme;\n}\ninterface ThemesErrors {\n default: ThemeErrorsType;\n dark: ThemeErrorsType;\n defaultOld: ThemeErrorsType;\n flatOld: ThemeErrorsType;\n}\ninterface EditingThemeItem {\n value: ThemeType;\n label: string;\n}\ninterface PlaygroundProps {\n children?: ReactNode;\n}\nexport type ThemeErrorsType = Writeable<{ [key in keyof Theme]?: boolean }>;\n\nexport class ThemeContextPlayground extends React.Component<PlaygroundProps, PlaygroundState> {\n private readonly editableThemesItems = [\n { value: ThemeType.Default, label: 'Дефолтная' },\n { value: ThemeType.Dark, label: 'Темная' },\n { value: ThemeType.DefaultOld, label: 'Старая дефолтная' },\n { value: ThemeType.FlatOld, label: 'Старая плоская' },\n ];\n\n constructor(props: PlaygroundProps) {\n super(props);\n this.state = {\n currentTheme: DEFAULT_THEME,\n currentThemeType: ThemeType.Default,\n editorOpened: false,\n themes: {\n default: DEFAULT_THEME,\n defaultOld: DEFAULT_THEME_8PX_OLD,\n dark: DARK_THEME,\n flatOld: FLAT_THEME_8PX_OLD,\n },\n themesErrors: {\n default: {},\n defaultOld: {},\n dark: {},\n flatOld: {},\n },\n };\n }\n\n public render() {\n const { currentTheme, editorOpened, currentThemeType } = this.state;\n return (\n <ThemeContext.Provider value={currentTheme}>\n {editorOpened && this.renderSidePage()}\n {\n <Playground\n onThemeChange={this.handleThemeChange}\n currentThemeType={currentThemeType}\n onEditLinkClick={this.handleOpen}\n />\n }\n </ThemeContext.Provider>\n );\n }\n\n private renderSidePage = () => {\n const { currentTheme, themesErrors, editingThemeItem, themes } = this.state;\n const themeErrors = themesErrors[editingThemeItem ? editingThemeItem.value : 'default'];\n return (\n <SidePage disableAnimations ignoreBackgroundClick blockBackground width={600} onClose={this.handleClose}>\n <SidePage.Header>\n <div className={styles.editorHeaderWrapper(currentTheme)}>\n <Gapped wrap verticalAlign=\"middle\">\n <span>Тема для редактирования:</span>\n <ComboBox\n getItems={this.getEditableThemesItems}\n value={editingThemeItem}\n onValueChange={this.handleEditingThemeSwitch}\n />\n </Gapped>\n </div>\n <div style={{ fontSize: 14, marginTop: 8 }}>\n <Link onClick={this.handelGetTheme}>Вывести тему в консоль</Link>\n </div>\n </SidePage.Header>\n <SidePage.Body>\n <div className={styles.sidePageBody()}>\n <ThemeEditor\n editingTheme={themes[editingThemeItem!.value]}\n currentTheme={currentTheme}\n currentErrors={themeErrors}\n onValueChange={this.handleThemeVariableChange}\n />\n </div>\n </SidePage.Body>\n </SidePage>\n );\n };\n\n private handelGetTheme = () => {\n const currentTheme = this.state.currentTheme;\n const themeObject: Writeable<ThemeIn> = {};\n ThemeFactory.getKeys(currentTheme).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(currentTheme, key);\n if (descriptor && !descriptor.get && DEFAULT_THEME[key] && currentTheme[key] !== DEFAULT_THEME[key]) {\n themeObject[key] = currentTheme[key] as keyof Theme;\n }\n });\n\n console.log(JSON.stringify(themeObject));\n };\n\n private handleOpen = () => {\n this.setState((state) => ({\n editorOpened: true,\n editingThemeItem: this.editableThemesItems.find((i) => i.value === state.currentThemeType),\n }));\n };\n\n private handleClose = () => {\n this.setState({\n editorOpened: false,\n });\n };\n\n private handleThemeChange = (value: string) => {\n const themeType = value as ThemeType;\n this.setState({\n currentThemeType: themeType,\n currentTheme: this.state.themes[themeType],\n });\n };\n\n private handleThemeVariableChange = (variable: keyof Theme, value: string) => {\n const { editingThemeItem, currentTheme, themes, themesErrors } = this.state;\n const editingThemeType = editingThemeItem!.value;\n\n const theme = themes[editingThemeType];\n const currentValue = theme[variable] as string;\n\n let canSetVariable = true;\n if (ColorFunctions.isValid(currentValue)) {\n canSetVariable = ColorFunctions.isValid(value);\n themesErrors[editingThemeType][variable] = !canSetVariable;\n }\n\n const nextThemeErrors: ThemesErrors = { ...themesErrors };\n nextThemeErrors[editingThemeType][variable] = !canSetVariable;\n const stateUpdate = { themes, currentTheme, themesErrors: nextThemeErrors };\n\n if (canSetVariable) {\n const result = this.changeThemeVariable(theme, variable, value);\n stateUpdate.themes[editingThemeType] = result;\n if (this.state.currentThemeType === editingThemeType) {\n stateUpdate.currentTheme = result;\n }\n }\n\n this.setState(stateUpdate);\n };\n\n private getEditableThemesItems = (query: string) => {\n return Promise.resolve(this.editableThemesItems.filter((i) => i.label.toLowerCase().includes(query.toLowerCase())));\n };\n\n private handleEditingThemeSwitch = (item: EditingThemeItem) => {\n this.setState({ editingThemeItem: item });\n };\n\n private changeThemeVariable = (theme: Theme, variableName: keyof Theme, variableValue: string): Theme => {\n const result: ThemeIn = {};\n ThemeFactory.getKeys(theme).forEach((key) => {\n const descriptor = findPropertyDescriptor(theme, key);\n descriptor.enumerable = true;\n descriptor.configurable = true;\n if (key === variableName) {\n delete descriptor.get;\n delete descriptor.set;\n descriptor.value = variableValue;\n }\n Object.defineProperty(result, key, descriptor);\n });\n\n return ThemeFactory.create<ThemeIn>(result);\n };\n}\n"]}
1
+ {"version":3,"sources":["ThemeContextPlayground.tsx"],"names":["React","ThemeContext","ThemeFactory","FLAT_THEME_8PX_OLD","DEFAULT_THEME_8PX_OLD","DEFAULT_THEME","DARK_THEME","SidePage","Gapped","ComboBox","Link","ColorFunctions","THEME_2022","findPropertyDescriptor","THEME_2022_DARK","ThemeEditor","styles","Playground","ThemeType","ThemeContextPlayground","props","editableThemesItems","value","Default","label","Dark","DefaultOld","FlatOld","Theme2022","Theme2022Dark","renderSidePage","state","currentTheme","themesErrors","editingThemeItem","themes","themeErrors","handleClose","editorHeaderWrapper","getEditableThemesItems","handleEditingThemeSwitch","fontSize","marginTop","handelGetTheme","sidePageBody","handleThemeVariableChange","themeObject","getKeys","forEach","key","descriptor","Object","getOwnPropertyDescriptor","get","console","log","JSON","stringify","handleOpen","setState","editorOpened","find","i","currentThemeType","handleThemeChange","themeType","variable","editingThemeType","theme","currentValue","canSetVariable","isValid","nextThemeErrors","stateUpdate","result","changeThemeVariable","query","Promise","resolve","filter","toLowerCase","includes","item","variableName","variableValue","enumerable","configurable","set","defineProperty","create","defaultOld","dark","flatOld","theme2022","theme2022Dark","render","Component"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { FLAT_THEME_8PX_OLD } from '../../lib/theming/themes/FlatTheme8pxOld';\nimport { DEFAULT_THEME_8PX_OLD } from '../../lib/theming/themes/DefaultTheme8pxOld';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { SidePage } from '../../components/SidePage';\nimport { Gapped } from '../../components/Gapped';\nimport { ComboBox } from '../../components/ComboBox';\nimport { Link } from '../../components/Link';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Writeable } from '../../typings/utility-types';\nimport { THEME_2022 } from '../../lib/theming/themes/Theme2022';\nimport { findPropertyDescriptor } from '../../lib/theming/ThemeHelpers';\nimport { THEME_2022_DARK } from '../../lib/theming/themes/Theme2022Dark';\n\nimport { ThemeEditor } from './ThemeEditor';\nimport { styles } from './Playground.styles';\nimport { Playground } from './Playground';\nimport { ThemeType } from './constants';\n\ninterface PlaygroundState {\n editorOpened: boolean;\n editingThemeItem?: EditingThemeItem;\n themes: Themes;\n themesErrors: ThemesErrors;\n currentTheme: Theme;\n currentThemeType: ThemeType;\n}\ninterface Themes {\n default: Theme;\n dark: Theme;\n defaultOld: Theme;\n flatOld: Theme;\n theme2022: Theme;\n theme2022Dark: Theme;\n}\ninterface ThemesErrors {\n default: ThemeErrorsType;\n dark: ThemeErrorsType;\n defaultOld: ThemeErrorsType;\n flatOld: ThemeErrorsType;\n theme2022: ThemeErrorsType;\n theme2022Dark: ThemeErrorsType;\n}\ninterface EditingThemeItem {\n value: ThemeType;\n label: string;\n}\ninterface PlaygroundProps {\n children?: ReactNode;\n}\nexport type ThemeErrorsType = Writeable<{ [key in keyof Theme]?: boolean }>;\n\nexport class ThemeContextPlayground extends React.Component<PlaygroundProps, PlaygroundState> {\n private readonly editableThemesItems = [\n { value: ThemeType.Default, label: 'Дефолтная' },\n { value: ThemeType.Dark, label: 'Темная' },\n { value: ThemeType.DefaultOld, label: 'Старая дефолтная' },\n { value: ThemeType.FlatOld, label: 'Старая плоская' },\n { value: ThemeType.Theme2022, label: 'Новая 2022' },\n { value: ThemeType.Theme2022Dark, label: 'Новая 2022 Тёмная' },\n ];\n\n constructor(props: PlaygroundProps) {\n super(props);\n this.state = {\n currentTheme: DEFAULT_THEME,\n currentThemeType: ThemeType.Default,\n editorOpened: false,\n themes: {\n default: DEFAULT_THEME,\n defaultOld: DEFAULT_THEME_8PX_OLD,\n dark: DARK_THEME,\n flatOld: FLAT_THEME_8PX_OLD,\n theme2022: THEME_2022,\n theme2022Dark: THEME_2022_DARK,\n },\n themesErrors: {\n default: {},\n defaultOld: {},\n dark: {},\n flatOld: {},\n theme2022: {},\n theme2022Dark: {},\n },\n };\n }\n\n public render() {\n const { currentTheme, editorOpened, currentThemeType } = this.state;\n return (\n <ThemeContext.Provider value={currentTheme}>\n {editorOpened && this.renderSidePage()}\n {\n <Playground\n onThemeChange={this.handleThemeChange}\n currentThemeType={currentThemeType}\n onEditLinkClick={this.handleOpen}\n />\n }\n </ThemeContext.Provider>\n );\n }\n\n private renderSidePage = () => {\n const { currentTheme, themesErrors, editingThemeItem, themes } = this.state;\n const themeErrors = themesErrors[editingThemeItem ? editingThemeItem.value : 'default'];\n return (\n <SidePage disableAnimations ignoreBackgroundClick blockBackground width={600} onClose={this.handleClose}>\n <SidePage.Header>\n <div className={styles.editorHeaderWrapper(currentTheme)}>\n <Gapped wrap verticalAlign=\"middle\">\n <span>Тема для редактирования:</span>\n <ComboBox\n getItems={this.getEditableThemesItems}\n value={editingThemeItem}\n onValueChange={this.handleEditingThemeSwitch}\n />\n </Gapped>\n </div>\n <div style={{ fontSize: 14, marginTop: 8 }}>\n <Link onClick={this.handelGetTheme}>Вывести тему в консоль</Link>\n </div>\n </SidePage.Header>\n <SidePage.Body>\n <div className={styles.sidePageBody()}>\n <ThemeEditor\n editingTheme={themes[editingThemeItem!.value]}\n currentTheme={currentTheme}\n currentErrors={themeErrors}\n onValueChange={this.handleThemeVariableChange}\n />\n </div>\n </SidePage.Body>\n </SidePage>\n );\n };\n\n private handelGetTheme = () => {\n const currentTheme = this.state.currentTheme;\n const themeObject: Writeable<ThemeIn> = {};\n ThemeFactory.getKeys(currentTheme).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(currentTheme, key);\n if (descriptor && !descriptor.get && DEFAULT_THEME[key] && currentTheme[key] !== DEFAULT_THEME[key]) {\n themeObject[key] = currentTheme[key] as keyof Theme;\n }\n });\n\n console.log(JSON.stringify(themeObject));\n };\n\n private handleOpen = () => {\n this.setState((state) => ({\n editorOpened: true,\n editingThemeItem: this.editableThemesItems.find((i) => i.value === state.currentThemeType),\n }));\n };\n\n private handleClose = () => {\n this.setState({\n editorOpened: false,\n });\n };\n\n private handleThemeChange = (value: string) => {\n const themeType = value as ThemeType;\n this.setState({\n currentThemeType: themeType,\n currentTheme: this.state.themes[themeType],\n });\n };\n\n private handleThemeVariableChange = (variable: keyof Theme, value: string) => {\n const { editingThemeItem, currentTheme, themes, themesErrors } = this.state;\n const editingThemeType = editingThemeItem!.value;\n\n const theme = themes[editingThemeType];\n const currentValue = theme[variable] as string;\n\n let canSetVariable = true;\n if (ColorFunctions.isValid(currentValue)) {\n canSetVariable = ColorFunctions.isValid(value);\n themesErrors[editingThemeType][variable] = !canSetVariable;\n }\n\n const nextThemeErrors: ThemesErrors = { ...themesErrors };\n nextThemeErrors[editingThemeType][variable] = !canSetVariable;\n const stateUpdate = { themes, currentTheme, themesErrors: nextThemeErrors };\n\n if (canSetVariable) {\n const result = this.changeThemeVariable(theme, variable, value);\n stateUpdate.themes[editingThemeType] = result;\n if (this.state.currentThemeType === editingThemeType) {\n stateUpdate.currentTheme = result;\n }\n }\n\n this.setState(stateUpdate);\n };\n\n private getEditableThemesItems = (query: string) => {\n return Promise.resolve(this.editableThemesItems.filter((i) => i.label.toLowerCase().includes(query.toLowerCase())));\n };\n\n private handleEditingThemeSwitch = (item: EditingThemeItem) => {\n this.setState({ editingThemeItem: item });\n };\n\n private changeThemeVariable = (theme: Theme, variableName: keyof Theme, variableValue: string): Theme => {\n const result: ThemeIn = {};\n ThemeFactory.getKeys(theme).forEach((key) => {\n const descriptor = findPropertyDescriptor(theme, key);\n descriptor.enumerable = true;\n descriptor.configurable = true;\n if (key === variableName) {\n delete descriptor.get;\n delete descriptor.set;\n descriptor.value = variableValue;\n }\n Object.defineProperty(result, key, descriptor);\n });\n\n return ThemeFactory.create<ThemeIn>(result);\n };\n}\n"]}
@@ -15,12 +15,16 @@ interface Themes {
15
15
  dark: Theme;
16
16
  defaultOld: Theme;
17
17
  flatOld: Theme;
18
+ theme2022: Theme;
19
+ theme2022Dark: Theme;
18
20
  }
19
21
  interface ThemesErrors {
20
22
  default: ThemeErrorsType;
21
23
  dark: ThemeErrorsType;
22
24
  defaultOld: ThemeErrorsType;
23
25
  flatOld: ThemeErrorsType;
26
+ theme2022: ThemeErrorsType;
27
+ theme2022Dark: ThemeErrorsType;
24
28
  }
25
29
  interface EditingThemeItem {
26
30
  value: ThemeType;
@@ -44,6 +44,7 @@ import React from 'react';
44
44
  import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
45
45
  import { Gapped } from "../../../components/Gapped";
46
46
  import { Loader } from "../../../components/Loader";
47
+ import { isNonNullable } from "../../../lib/utils";
47
48
  import { VariableValue } from "../VariableValue";
48
49
  import { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from "../constants";
49
50
  import { styles } from "../Playground.styles";
@@ -188,7 +189,10 @@ var prefixesReducer = function prefixesReducer(acc, current) {
188
189
  };
189
190
 
190
191
  var getBaseVariables = function getBaseVariables(theme, variable) {
191
- for (; theme != null; theme = Object.getPrototypeOf(theme)) {
192
+ // TODO: Rewrite for loop.
193
+ // TODO: Enable `no-param-reassign` rule.
194
+ // eslint-disable-next-line no-param-reassign
195
+ for (; isNonNullable(theme); theme = Object.getPrototypeOf(theme)) {
192
196
  if (Object.prototype.hasOwnProperty.call(theme, variable)) {
193
197
  var descriptor = Object.getOwnPropertyDescriptor(theme, variable);
194
198
 
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeEditor.tsx"],"names":["React","ThemeFactory","Gapped","Loader","VariableValue","VARIABLES_GROUPS","DEPRECATED_VARIABLES","styles","ThemeEditor","state","groups","isLoading","renderGroups","props","editingTheme","currentTheme","currentErrors","onValueChange","keys","getKeys","filter","key","isDeprecatedVariable","map","i","title","isCommon","isCommonVariable","bind","reduce","prefixesReducer","isGroupVariable","prefix","length","render","loaderWrapper","loader","componentDidMount","updateTimeout","window","setTimeout","setState","componentWillUnmount","clearTimeout","Component","Group","variables","editorGroupHeader","variable","value","isError","getBaseVariables","name","includes","splitPrefix","split","item","startsWith","trim","prefixes","acc","current","theme","Object","getPrototypeOf","prototype","hasOwnProperty","call","descriptor","getOwnPropertyDescriptor","get","getterBody","toString","variableNameMatchArray","match","v","replace"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Gapped } from '../../components/Gapped';\nimport { Loader } from '../../components/Loader';\n\nimport { VariableValue } from './VariableValue';\nimport { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from './constants';\nimport { ThemeErrorsType } from './ThemeContextPlayground';\nimport { styles } from './Playground.styles';\n\ninterface ThemeEditorProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\ninterface ThemeEditorState {\n groups: Group[];\n isLoading: boolean;\n}\ninterface Group {\n title: string;\n prefix: string;\n isCommon?: boolean;\n}\nexport class ThemeEditor extends React.Component<ThemeEditorProps, ThemeEditorState> {\n public state = {\n groups: [],\n isLoading: true,\n };\n private updateTimeout?: number;\n\n public render() {\n return this.state.isLoading ? (\n <div className={styles.loaderWrapper()}>\n <Loader type=\"big\" active className={styles.loader()} />\n </div>\n ) : (\n this.renderGroups()\n );\n }\n\n public componentDidMount() {\n this.updateTimeout = window.setTimeout(() => {\n this.setState({ groups: VARIABLES_GROUPS, isLoading: false });\n }, 500);\n }\n\n public componentWillUnmount(): void {\n clearTimeout(this.updateTimeout);\n }\n\n private renderGroups = () => {\n const { editingTheme, currentTheme, currentErrors, onValueChange } = this.props;\n const keys = ThemeFactory.getKeys(editingTheme).filter((key) => !isDeprecatedVariable(key));\n\n return (\n <Gapped vertical>\n {this.state.groups.map((i: Group) => (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={i.title}\n variables={keys.filter(\n i.isCommon\n ? isCommonVariable.bind(null, this.state.groups.reduce(prefixesReducer, []))\n : isGroupVariable.bind(null, i.prefix),\n )}\n key={i.title}\n />\n ))}\n {DEPRECATED_VARIABLES.length > 0 ? (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={'Deprecated Variables'}\n variables={DEPRECATED_VARIABLES}\n />\n ) : null}\n </Gapped>\n );\n };\n}\n\ninterface GroupProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n title: string;\n variables: Array<keyof Theme>;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\nconst Group = (props: GroupProps) => {\n const { editingTheme, currentTheme, currentErrors, onValueChange, title, variables } = props;\n\n return variables.length > 0 ? (\n <React.Fragment>\n <h2 className={styles.editorGroupHeader(currentTheme)}>{title}</h2>\n {variables.map((variable) => {\n const value = editingTheme[variable] as string;\n const isError = currentErrors[variable];\n return (\n <VariableValue\n theme={currentTheme}\n onChange={onValueChange}\n value={value}\n isError={isError || false}\n variable={variable}\n key={variable}\n baseVariables={getBaseVariables(editingTheme, variable)}\n deprecated={isDeprecatedVariable(variable)}\n />\n );\n })}\n </React.Fragment>\n ) : null;\n};\n\nconst isDeprecatedVariable = (name: keyof Theme) => {\n return DEPRECATED_VARIABLES.includes(name);\n};\n\nconst isGroupVariable = (prefix: string, name: string) => {\n const splitPrefix = prefix.split(' ') || [];\n\n for (const item of splitPrefix) {\n if (name.startsWith(item.trim())) {\n return true;\n }\n }\n return false;\n};\nconst isCommonVariable = (prefixes: string[], name: string) => {\n for (const item of prefixes) {\n if (name.startsWith(item.trim())) {\n return false;\n }\n }\n return true;\n};\nconst prefixesReducer = (acc: string[], current: { title: string; prefix: string }): string[] => {\n const splitPrefix = current.prefix.split(' ');\n return [...acc, ...splitPrefix];\n};\n\ntype GetBaseVariablesReturnType = Array<keyof Theme>;\nconst getBaseVariables = (theme: Theme, variable: keyof Theme): GetBaseVariablesReturnType => {\n for (; theme != null; theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, variable)) {\n const descriptor = Object.getOwnPropertyDescriptor(theme, variable);\n\n if (descriptor && typeof descriptor.get !== 'undefined') {\n const getterBody = descriptor.get.toString();\n const variableNameMatchArray = getterBody.match(/this\\.(\\w+)\\b/gm) || [];\n return (variableNameMatchArray || []).map((v) => v.replace(/this\\./g, '')) as GetBaseVariablesReturnType;\n }\n break;\n }\n }\n return [];\n};\n"]}
1
+ {"version":3,"sources":["ThemeEditor.tsx"],"names":["React","ThemeFactory","Gapped","Loader","isNonNullable","VariableValue","VARIABLES_GROUPS","DEPRECATED_VARIABLES","styles","ThemeEditor","state","groups","isLoading","renderGroups","props","editingTheme","currentTheme","currentErrors","onValueChange","keys","getKeys","filter","key","isDeprecatedVariable","map","i","title","isCommon","isCommonVariable","bind","reduce","prefixesReducer","isGroupVariable","prefix","length","render","loaderWrapper","loader","componentDidMount","updateTimeout","window","setTimeout","setState","componentWillUnmount","clearTimeout","Component","Group","variables","editorGroupHeader","variable","value","isError","getBaseVariables","name","includes","splitPrefix","split","item","startsWith","trim","prefixes","acc","current","theme","Object","getPrototypeOf","prototype","hasOwnProperty","call","descriptor","getOwnPropertyDescriptor","get","getterBody","toString","variableNameMatchArray","match","v","replace"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Gapped } from '../../components/Gapped';\nimport { Loader } from '../../components/Loader';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { VariableValue } from './VariableValue';\nimport { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from './constants';\nimport { ThemeErrorsType } from './ThemeContextPlayground';\nimport { styles } from './Playground.styles';\n\ninterface ThemeEditorProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\ninterface ThemeEditorState {\n groups: Group[];\n isLoading: boolean;\n}\ninterface Group {\n title: string;\n prefix: string;\n isCommon?: boolean;\n}\nexport class ThemeEditor extends React.Component<ThemeEditorProps, ThemeEditorState> {\n public state = {\n groups: [],\n isLoading: true,\n };\n private updateTimeout?: number;\n\n public render() {\n return this.state.isLoading ? (\n <div className={styles.loaderWrapper()}>\n <Loader type=\"big\" active className={styles.loader()} />\n </div>\n ) : (\n this.renderGroups()\n );\n }\n\n public componentDidMount() {\n this.updateTimeout = window.setTimeout(() => {\n this.setState({ groups: VARIABLES_GROUPS, isLoading: false });\n }, 500);\n }\n\n public componentWillUnmount(): void {\n clearTimeout(this.updateTimeout);\n }\n\n private renderGroups = () => {\n const { editingTheme, currentTheme, currentErrors, onValueChange } = this.props;\n const keys = ThemeFactory.getKeys(editingTheme).filter((key) => !isDeprecatedVariable(key));\n\n return (\n <Gapped vertical>\n {this.state.groups.map((i: Group) => (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={i.title}\n variables={keys.filter(\n i.isCommon\n ? isCommonVariable.bind(null, this.state.groups.reduce(prefixesReducer, []))\n : isGroupVariable.bind(null, i.prefix),\n )}\n key={i.title}\n />\n ))}\n {DEPRECATED_VARIABLES.length > 0 ? (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={'Deprecated Variables'}\n variables={DEPRECATED_VARIABLES}\n />\n ) : null}\n </Gapped>\n );\n };\n}\n\ninterface GroupProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n title: string;\n variables: Array<keyof Theme>;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\nconst Group = (props: GroupProps) => {\n const { editingTheme, currentTheme, currentErrors, onValueChange, title, variables } = props;\n\n return variables.length > 0 ? (\n <React.Fragment>\n <h2 className={styles.editorGroupHeader(currentTheme)}>{title}</h2>\n {variables.map((variable) => {\n const value = editingTheme[variable] as string;\n const isError = currentErrors[variable];\n return (\n <VariableValue\n theme={currentTheme}\n onChange={onValueChange}\n value={value}\n isError={isError || false}\n variable={variable}\n key={variable}\n baseVariables={getBaseVariables(editingTheme, variable)}\n deprecated={isDeprecatedVariable(variable)}\n />\n );\n })}\n </React.Fragment>\n ) : null;\n};\n\nconst isDeprecatedVariable = (name: keyof Theme) => {\n return DEPRECATED_VARIABLES.includes(name);\n};\n\nconst isGroupVariable = (prefix: string, name: string) => {\n const splitPrefix = prefix.split(' ') || [];\n\n for (const item of splitPrefix) {\n if (name.startsWith(item.trim())) {\n return true;\n }\n }\n return false;\n};\nconst isCommonVariable = (prefixes: string[], name: string) => {\n for (const item of prefixes) {\n if (name.startsWith(item.trim())) {\n return false;\n }\n }\n return true;\n};\nconst prefixesReducer = (acc: string[], current: { title: string; prefix: string }): string[] => {\n const splitPrefix = current.prefix.split(' ');\n return [...acc, ...splitPrefix];\n};\n\ntype GetBaseVariablesReturnType = Array<keyof Theme>;\nconst getBaseVariables = (theme: Theme, variable: keyof Theme): GetBaseVariablesReturnType => {\n // TODO: Rewrite for loop.\n // TODO: Enable `no-param-reassign` rule.\n // eslint-disable-next-line no-param-reassign\n for (; isNonNullable(theme); theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, variable)) {\n const descriptor = Object.getOwnPropertyDescriptor(theme, variable);\n\n if (descriptor && typeof descriptor.get !== 'undefined') {\n const getterBody = descriptor.get.toString();\n const variableNameMatchArray = getterBody.match(/this\\.(\\w+)\\b/gm) || [];\n return (variableNameMatchArray || []).map((v) => v.replace(/this\\./g, '')) as GetBaseVariablesReturnType;\n }\n break;\n }\n }\n\n return [];\n};\n"]}