@skbkontur/react-ui 4.3.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/cjs/components/Autocomplete/Autocomplete.js +3 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Checkbox/Checkbox.js +4 -2
  5. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  6. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  7. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  8. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +10 -4
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  12. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  13. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  14. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  15. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  16. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  17. package/cjs/components/DateInput/DateInput.d.ts +1 -1
  18. package/cjs/components/DateInput/DateInput.js +1 -1
  19. package/cjs/components/DateInput/DateInput.js.map +1 -1
  20. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  21. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  22. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  23. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  24. package/cjs/components/DatePicker/DatePicker.d.ts +1 -1
  25. package/cjs/components/DatePicker/DatePicker.js +11 -3
  26. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  27. package/cjs/components/DatePicker/Picker.js +5 -1
  28. package/cjs/components/DatePicker/Picker.js.map +1 -1
  29. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  30. package/cjs/components/FileUploader/FileUploader.js +16 -3
  31. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  32. package/cjs/components/FileUploader/FileUploader.md +8 -1
  33. package/cjs/components/FxInput/FxInput.js +3 -1
  34. package/cjs/components/FxInput/FxInput.js.map +1 -1
  35. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  36. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  37. package/cjs/components/Hint/Hint.d.ts +1 -1
  38. package/cjs/components/Hint/Hint.js.map +1 -1
  39. package/cjs/components/Hint/Hint.md +14 -0
  40. package/cjs/components/Input/Input.js +5 -2
  41. package/cjs/components/Input/Input.js.map +1 -1
  42. package/cjs/components/Input/Input.md +5 -1
  43. package/cjs/components/Input/Input.styles.d.ts +1 -0
  44. package/cjs/components/Input/Input.styles.js +17 -10
  45. package/cjs/components/Input/Input.styles.js.map +1 -1
  46. package/cjs/components/Kebab/Kebab.d.ts +1 -4
  47. package/cjs/components/Kebab/Kebab.js.map +1 -1
  48. package/cjs/components/Link/Link.d.ts +1 -3
  49. package/cjs/components/Link/Link.js +1 -1
  50. package/cjs/components/Link/Link.js.map +1 -1
  51. package/cjs/components/Loader/Loader.d.ts +2 -1
  52. package/cjs/components/Loader/Loader.js +1 -0
  53. package/cjs/components/Loader/Loader.js.map +1 -1
  54. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  55. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  56. package/cjs/components/MenuItem/MenuItem.js +3 -1
  57. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  58. package/cjs/components/Modal/Modal.js +2 -2
  59. package/cjs/components/Modal/Modal.js.map +1 -1
  60. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  61. package/cjs/components/Modal/Modal.styles.js +2 -2
  62. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  63. package/cjs/components/Modal/ModalBody.js +2 -2
  64. package/cjs/components/Modal/ModalBody.js.map +1 -1
  65. package/cjs/components/Paging/Paging.d.ts +1 -1
  66. package/cjs/components/Paging/Paging.js +1 -1
  67. package/cjs/components/Paging/Paging.js.map +1 -1
  68. package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -2
  69. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  70. package/cjs/components/PasswordInput/PasswordInput.js +7 -5
  71. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  72. package/cjs/components/Radio/Radio.js +3 -1
  73. package/cjs/components/Radio/Radio.js.map +1 -1
  74. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  75. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  76. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  77. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  78. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  79. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  80. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  81. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  82. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  83. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  84. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  85. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  86. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
  87. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  88. package/cjs/components/ScrollContainer/ScrollContainer.js +1 -1
  89. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  90. package/cjs/components/Select/Item.d.ts +4 -2
  91. package/cjs/components/Select/Item.js +3 -0
  92. package/cjs/components/Select/Item.js.map +1 -1
  93. package/cjs/components/Select/Select.js +2 -0
  94. package/cjs/components/Select/Select.js.map +1 -1
  95. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  96. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  97. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  98. package/cjs/components/Spinner/Spinner.js +1 -1
  99. package/cjs/components/Spinner/Spinner.js.map +1 -1
  100. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  101. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  102. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  103. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  104. package/cjs/components/Tabs/Indicator.js +1 -1
  105. package/cjs/components/Tabs/Indicator.js.map +1 -1
  106. package/cjs/components/Tabs/Tabs.js.map +1 -1
  107. package/cjs/components/Textarea/Textarea.js +3 -1
  108. package/cjs/components/Textarea/Textarea.js.map +1 -1
  109. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  110. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  111. package/cjs/components/Toast/Toast.js +1 -1
  112. package/cjs/components/Toast/Toast.js.map +1 -1
  113. package/cjs/components/Token/Token.styles.js +2 -1
  114. package/cjs/components/Token/Token.styles.js.map +1 -1
  115. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  116. package/cjs/components/TokenInput/TokenInput.js +57 -15
  117. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  118. package/cjs/components/TokenInput/TokenInput.md +26 -0
  119. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  120. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  121. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  122. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  123. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  124. package/cjs/components/Tooltip/Tooltip.d.ts +2 -2
  125. package/cjs/components/Tooltip/Tooltip.js +2 -2
  126. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  127. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  128. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  130. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  131. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  132. package/cjs/hooks/useMemoObject.d.ts +2 -1
  133. package/cjs/hooks/useMemoObject.js +2 -0
  134. package/cjs/hooks/useMemoObject.js.map +1 -1
  135. package/cjs/internal/BGRuler.d.ts +1 -1
  136. package/cjs/internal/BGRuler.js.map +1 -1
  137. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  138. package/cjs/internal/Calendar/config.d.ts +1 -8
  139. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  140. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  141. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  142. package/cjs/internal/ComponentTable.d.ts +2 -2
  143. package/cjs/internal/ComponentTable.js +3 -1
  144. package/cjs/internal/ComponentTable.js.map +1 -1
  145. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  146. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +8 -8
  147. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  148. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  149. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  150. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  151. package/cjs/internal/DataTids/DataTids.js +4 -0
  152. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  153. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  154. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  155. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  156. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  157. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  158. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  159. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  160. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  161. package/cjs/internal/InputLikeText/InputLikeText.js +4 -2
  162. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  163. package/cjs/internal/InternalMenu/InternalMenu.js +21 -9
  164. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  165. package/cjs/internal/MaskedInput/MaskedInput.d.ts +1 -0
  166. package/cjs/internal/MaskedInput/MaskedInput.js +13 -5
  167. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  168. package/cjs/internal/Menu/Menu.js +7 -3
  169. package/cjs/internal/Menu/Menu.js.map +1 -1
  170. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  171. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  172. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  173. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  174. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  175. package/cjs/internal/Popup/Popup.d.ts +1 -1
  176. package/cjs/internal/Popup/Popup.js +20 -15
  177. package/cjs/internal/Popup/Popup.js.map +1 -1
  178. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  179. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  180. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  181. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  182. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -1
  183. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  184. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  185. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  186. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  187. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  188. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  189. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  190. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  191. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  192. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  193. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  194. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  195. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  196. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  197. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  198. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  199. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  200. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  201. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  202. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  203. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  204. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  205. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  206. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  207. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  208. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  209. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  210. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  211. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  212. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  213. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  214. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  215. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  216. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  217. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  218. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  219. package/cjs/internal/ThemePlayground/VariableValue.d.ts +1 -4
  220. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  221. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  222. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  223. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  224. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  225. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  226. package/cjs/internal/ZIndex/ZIndex.js +2 -9
  227. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  228. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  229. package/cjs/internal/themes/DefaultTheme.js +8 -2
  230. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  231. package/cjs/lib/ConditionalHandler.js.map +1 -1
  232. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  233. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  234. package/cjs/lib/ModalStack.js +2 -2
  235. package/cjs/lib/ModalStack.js.map +1 -1
  236. package/cjs/lib/SSRSafe.d.ts +2 -1
  237. package/cjs/lib/SSRSafe.js +9 -1
  238. package/cjs/lib/SSRSafe.js.map +1 -1
  239. package/cjs/lib/animation/index.js +1 -0
  240. package/cjs/lib/animation/index.js.map +1 -1
  241. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  242. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  243. package/cjs/lib/createPropsGetter.d.ts +1 -1
  244. package/cjs/lib/createPropsGetter.js +1 -0
  245. package/cjs/lib/createPropsGetter.js.map +1 -1
  246. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  247. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  248. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  249. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  250. package/cjs/lib/date/InternalDateValidator.js +9 -2
  251. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  252. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  253. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  254. package/cjs/lib/filterProps.js +0 -1
  255. package/cjs/lib/filterProps.js.map +1 -1
  256. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  257. package/cjs/lib/listenFocusOutside.js.map +1 -1
  258. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  259. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  260. package/cjs/lib/memo.d.ts +3 -1
  261. package/cjs/lib/memo.js +3 -3
  262. package/cjs/lib/memo.js.map +1 -1
  263. package/cjs/lib/net/fetch.js +2 -2
  264. package/cjs/lib/net/fetch.js.map +1 -1
  265. package/cjs/lib/reactGetTextContent.js +0 -1
  266. package/cjs/lib/reactGetTextContent.js.map +1 -1
  267. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  268. package/cjs/lib/rootNode/getRootNode.js +7 -7
  269. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  270. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  271. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  272. package/cjs/lib/styles/ColorFactory.js +2 -2
  273. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  274. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  275. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  276. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  277. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  278. package/cjs/lib/theming/Emotion.js +1 -0
  279. package/cjs/lib/theming/Emotion.js.map +1 -1
  280. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  281. package/cjs/lib/theming/ThemeFactory.js +3 -1
  282. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  283. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  284. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  285. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  286. package/cjs/lib/utils.d.ts +3 -1
  287. package/cjs/lib/utils.js +5 -2
  288. package/cjs/lib/utils.js.map +1 -1
  289. package/cjs/lib/withClassWrapper.js +1 -4
  290. package/cjs/lib/withClassWrapper.js.map +1 -1
  291. package/cjs/typings/event-types.d.ts +2 -2
  292. package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -1
  293. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  294. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  295. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  296. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  297. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  298. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  299. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -3
  300. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  301. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  302. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  303. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  304. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  305. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  306. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  307. package/components/DateInput/DateInput/DateInput.js +1 -1
  308. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  309. package/components/DateInput/DateInput.d.ts +1 -1
  310. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  311. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  312. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  313. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  314. package/components/DatePicker/DatePicker/DatePicker.js +13 -12
  315. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  316. package/components/DatePicker/DatePicker.d.ts +1 -1
  317. package/components/DatePicker/Picker/Picker.js +5 -1
  318. package/components/DatePicker/Picker/Picker.js.map +1 -1
  319. package/components/FileUploader/FileUploader/FileUploader.js +9 -4
  320. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  321. package/components/FileUploader/FileUploader.d.ts +2 -1
  322. package/components/FileUploader/FileUploader.md +8 -1
  323. package/components/FxInput/FxInput/FxInput.js +4 -1
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  326. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  327. package/components/Hint/Hint/Hint.js.map +1 -1
  328. package/components/Hint/Hint.d.ts +1 -1
  329. package/components/Hint/Hint.md +14 -0
  330. package/components/Input/Input/Input.js +5 -2
  331. package/components/Input/Input/Input.js.map +1 -1
  332. package/components/Input/Input.md +5 -1
  333. package/components/Input/Input.styles/Input.styles.js +13 -10
  334. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  335. package/components/Input/Input.styles.d.ts +1 -0
  336. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  337. package/components/Kebab/Kebab.d.ts +1 -4
  338. package/components/Link/Link/Link.js +1 -1
  339. package/components/Link/Link/Link.js.map +1 -1
  340. package/components/Link/Link.d.ts +1 -3
  341. package/components/Loader/Loader/Loader.js.map +1 -1
  342. package/components/Loader/Loader.d.ts +2 -1
  343. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  344. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  345. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  346. package/components/Modal/Modal/Modal.js +2 -2
  347. package/components/Modal/Modal/Modal.js.map +1 -1
  348. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  349. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  350. package/components/Modal/Modal.styles.d.ts +2 -2
  351. package/components/Modal/ModalBody/ModalBody.js +2 -2
  352. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  353. package/components/Paging/Paging/Paging.js +1 -1
  354. package/components/Paging/Paging/Paging.js.map +1 -1
  355. package/components/Paging/Paging.d.ts +1 -1
  356. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  357. package/components/Paging/PagingDefaultComponent.d.ts +2 -2
  358. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -8
  359. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  360. package/components/Radio/Radio/Radio.js +4 -1
  361. package/components/Radio/Radio/Radio.js.map +1 -1
  362. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  363. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  364. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  365. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  366. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  367. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  368. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  369. package/components/ResponsiveLayout/types.d.ts +9 -1
  370. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  371. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  372. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  373. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  374. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  375. package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  376. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
  377. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  378. package/components/Select/Item/Item.js.map +1 -1
  379. package/components/Select/Item.d.ts +4 -2
  380. package/components/Select/Select/Select.js.map +1 -1
  381. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  382. package/components/SidePage/SidePageFooter.d.ts +6 -4
  383. package/components/Spinner/Spinner/Spinner.js +1 -1
  384. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  385. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  386. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  387. package/components/Spinner/Spinner.styles.d.ts +1 -1
  388. package/components/Tabs/Indicator/Indicator.js +1 -1
  389. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  390. package/components/Tabs/Indicator.d.ts +1 -1
  391. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  392. package/components/Textarea/Textarea/Textarea.js +4 -1
  393. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  394. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  395. package/components/Textarea/TextareaCounter.d.ts +2 -2
  396. package/components/Toast/Toast/Toast.js +1 -1
  397. package/components/Toast/Toast/Toast.js.map +1 -1
  398. package/components/Token/Token.styles/Token.styles.js +1 -1
  399. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  400. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  401. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  402. package/components/TokenInput/TokenInput.d.ts +3 -0
  403. package/components/TokenInput/TokenInput.md +26 -0
  404. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  405. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  406. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  407. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  408. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  409. package/components/Tooltip/Tooltip/Tooltip.js +2 -2
  410. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  411. package/components/Tooltip/Tooltip.d.ts +2 -2
  412. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  413. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  414. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  415. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  416. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  417. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  418. package/hooks/useMemoObject.d.ts +2 -1
  419. package/internal/BGRuler/BGRuler.js.map +1 -1
  420. package/internal/BGRuler.d.ts +1 -1
  421. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  422. package/internal/Calendar/config.d.ts +1 -8
  423. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  424. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  425. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  426. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  427. package/internal/ComponentTable.d.ts +2 -2
  428. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +14 -17
  429. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  430. package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  431. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  432. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  433. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  434. package/internal/DataTids/DataTids.d.ts +5 -5
  435. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  436. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  437. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  438. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  439. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  440. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  441. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  442. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  443. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  444. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  445. package/internal/InternalMenu/InternalMenu/InternalMenu.js +17 -7
  446. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  447. package/internal/MaskedInput/MaskedInput/MaskedInput.js +13 -6
  448. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  449. package/internal/MaskedInput/MaskedInput.d.ts +1 -0
  450. package/internal/Menu/Menu/Menu.js +6 -1
  451. package/internal/Menu/Menu/Menu.js.map +1 -1
  452. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  453. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  454. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  455. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  456. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  457. package/internal/Popup/Popup/Popup.js +20 -12
  458. package/internal/Popup/Popup/Popup.js.map +1 -1
  459. package/internal/Popup/Popup.d.ts +1 -1
  460. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  461. package/internal/Popup/PopupHelper.d.ts +1 -1
  462. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  463. package/internal/Popup/PopupPin.d.ts +1 -1
  464. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  465. package/internal/RenderLayer/RenderLayer.d.ts +1 -1
  466. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  467. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  468. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  469. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  470. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  471. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  472. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  473. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  474. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  475. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  476. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  477. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  478. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  479. package/internal/ThemePlayground/Playground.d.ts +1 -1
  480. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  481. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  482. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  483. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  484. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  485. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  486. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  487. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  488. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  489. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  490. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  491. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  492. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  493. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  494. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  495. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  496. package/internal/ThemePlayground/VariableValue.d.ts +1 -4
  497. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  498. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  499. package/internal/ThemePlayground/helpers.d.ts +1 -1
  500. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  501. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  502. package/internal/ZIndex/ZIndex/ZIndex.js +6 -3
  503. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  504. package/internal/themes/DefaultTheme/DefaultTheme.js +16 -6
  505. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  506. package/internal/themes/DefaultTheme.d.ts +2 -0
  507. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  508. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  509. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  510. package/lib/ModalStack/ModalStack.js +2 -2
  511. package/lib/ModalStack/ModalStack.js.map +1 -1
  512. package/lib/SSRSafe/SSRSafe.js +7 -0
  513. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  514. package/lib/SSRSafe.d.ts +2 -1
  515. package/lib/animation/index/index.js +1 -1
  516. package/lib/animation/index/index.js.map +1 -1
  517. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  518. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  519. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  520. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  521. package/lib/createPropsGetter.d.ts +1 -1
  522. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  523. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  524. package/lib/date/InternalDateCalculator.d.ts +1 -1
  525. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  526. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  527. package/lib/date/InternalDateValidator.d.ts +1 -1
  528. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  529. package/lib/extractKeyboardAction.d.ts +1 -1
  530. package/lib/filterProps/filterProps.js +0 -1
  531. package/lib/filterProps/filterProps.js.map +1 -1
  532. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  533. package/lib/listenFocusOutside.d.ts +1 -1
  534. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  535. package/lib/locale/useLocaleForControl.d.ts +1 -1
  536. package/lib/memo/memo.js +2 -4
  537. package/lib/memo/memo.js.map +1 -1
  538. package/lib/memo.d.ts +3 -1
  539. package/lib/net/fetch/fetch.js +2 -2
  540. package/lib/net/fetch/fetch.js.map +1 -1
  541. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  542. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  543. package/lib/rootNode/getRootNode/getRootNode.js +8 -8
  544. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  545. package/lib/rootNode/getRootNode.d.ts +3 -3
  546. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  547. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  548. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  549. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  550. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  551. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  552. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  553. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  554. package/lib/theming/Emotion/Emotion.js.map +1 -1
  555. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  556. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  557. package/lib/theming/ThemeFactory.d.ts +1 -1
  558. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  559. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  560. package/lib/theming/ThemeHelpers.d.ts +2 -2
  561. package/lib/utils/utils.js +2 -2
  562. package/lib/utils/utils.js.map +1 -1
  563. package/lib/utils.d.ts +3 -1
  564. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  565. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  566. package/package.json +3 -20
  567. package/typings/event-types.d.ts +2 -2
@@ -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","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"]}
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","getEditingThemeType","editingThemeItem","value","ThemeContextPlayground","props","editableThemesItems","Default","label","Dark","DefaultOld","FlatOld","Theme2022","Theme2022Dark","renderSidePage","state","currentTheme","themesErrors","themes","editingThemeType","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","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\nconst getEditingThemeType = (editingThemeItem: PlaygroundState['editingThemeItem']) => {\n if (editingThemeItem) {\n return editingThemeItem.value;\n }\n\n return 'default';\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\n const editingThemeType = getEditingThemeType(editingThemeItem);\n const themeErrors = themesErrors[editingThemeType];\n\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[editingThemeType]}\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 = getEditingThemeType(editingThemeItem);\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 +1 @@
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"]}
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: ThemeEditorState = {\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"]}
@@ -17,10 +17,7 @@ interface Group {
17
17
  isCommon?: boolean;
18
18
  }
19
19
  export declare class ThemeEditor extends React.Component<ThemeEditorProps, ThemeEditorState> {
20
- state: {
21
- groups: never[];
22
- isLoading: boolean;
23
- };
20
+ state: ThemeEditorState;
24
21
  private updateTimeout?;
25
22
  render(): JSX.Element;
26
23
  componentDidMount(): void;
@@ -1,24 +1,12 @@
1
1
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
- import React, { Component } from 'react';
2
+ import React from 'react';
3
3
  import { Gapped } from "../../../components/Gapped";
4
4
  import { Toggle } from "../../../components/Toggle";
5
- export var TogglePlayground = /*#__PURE__*/function (_Component) {
6
- _inheritsLoose(TogglePlayground, _Component);
5
+ export var TogglePlayground = /*#__PURE__*/function (_React$Component) {
6
+ _inheritsLoose(TogglePlayground, _React$Component);
7
7
 
8
8
  function TogglePlayground() {
9
- var _this;
10
-
11
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12
- args[_key] = arguments[_key];
13
- }
14
-
15
- _this = _Component.call.apply(_Component, [this].concat(args)) || this;
16
- _this.state = {
17
- checked: false,
18
- loadingActive: false,
19
- loading: false
20
- };
21
- return _this;
9
+ return _React$Component.apply(this, arguments) || this;
22
10
  }
23
11
 
24
12
  var _proto = TogglePlayground.prototype;
@@ -36,4 +24,4 @@ export var TogglePlayground = /*#__PURE__*/function (_Component) {
36
24
  };
37
25
 
38
26
  return TogglePlayground;
39
- }(Component);
27
+ }(React.Component);
@@ -1 +1 @@
1
- {"version":3,"sources":["TogglePlayground.tsx"],"names":["React","Component","Gapped","Toggle","TogglePlayground","state","checked","loadingActive","loading","render"],"mappings":"sEAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;;AAEA,SAASC,MAAT,QAAuB,yBAAvB;AACA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,WAAaC,gBAAb;AACSC,IAAAA,KADT,GACiB;AACbC,MAAAA,OAAO,EAAE,KADI;AAEbC,MAAAA,aAAa,EAAE,KAFF;AAGbC,MAAAA,OAAO,EAAE,KAHI,EADjB;;;AAOSC,EAAAA,MAPT,GAOE,kBAAgB;AACd;AACE,0BAAC,MAAD,IAAQ,QAAQ,MAAhB;AACE,0BAAC,MAAD,IAAQ,GAAG,EAAE,EAAb;AACE,0BAAC,MAAD,OADF;AAEE,gDAFF,CADF;;AAKE,0BAAC,MAAD,IAAQ,GAAG,EAAE,EAAb;AACE,0BAAC,MAAD,IAAQ,QAAQ,MAAhB,GADF;AAEE,yDAFF,CALF,CADF;;;;AAYD,GApBH,2BAAsCR,SAAtC","sourcesContent":["import React, { Component } from 'react';\n\nimport { Gapped } from '../../components/Gapped';\nimport { Toggle } from '../../components/Toggle';\n\nexport class TogglePlayground extends Component<{}, any> {\n public state = {\n checked: false,\n loadingActive: false,\n loading: false,\n };\n\n public render() {\n return (\n <Gapped vertical>\n <Gapped gap={10}>\n <Toggle />\n <div>Toggle</div>\n </Gapped>\n <Gapped gap={10}>\n <Toggle disabled />\n <div>Disabled toggle</div>\n </Gapped>\n </Gapped>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TogglePlayground.tsx"],"names":["React","Gapped","Toggle","TogglePlayground","render","Component"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,MAAT,QAAuB,yBAAvB;AACA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,WAAaC,gBAAb;AACSC,EAAAA,MADT,GACE,kBAAgB;AACd;AACE,0BAAC,MAAD,IAAQ,QAAQ,MAAhB;AACE,0BAAC,MAAD,IAAQ,GAAG,EAAE,EAAb;AACE,0BAAC,MAAD,OADF;AAEE,gDAFF,CADF;;AAKE,0BAAC,MAAD,IAAQ,GAAG,EAAE,EAAb;AACE,0BAAC,MAAD,IAAQ,QAAQ,MAAhB,GADF;AAEE,yDAFF,CALF,CADF;;;;AAYD,GAdH,2BAAsCJ,KAAK,CAACK,SAA5C","sourcesContent":["import React from 'react';\n\nimport { Gapped } from '../../components/Gapped';\nimport { Toggle } from '../../components/Toggle';\n\nexport class TogglePlayground extends React.Component {\n public render() {\n return (\n <Gapped vertical>\n <Gapped gap={10}>\n <Toggle />\n <div>Toggle</div>\n </Gapped>\n <Gapped gap={10}>\n <Toggle disabled />\n <div>Disabled toggle</div>\n </Gapped>\n </Gapped>\n );\n }\n}\n"]}
@@ -1,9 +1,4 @@
1
- import { Component } from 'react';
2
- export declare class TogglePlayground extends Component<{}, any> {
3
- state: {
4
- checked: boolean;
5
- loadingActive: boolean;
6
- loading: boolean;
7
- };
1
+ import React from 'react';
2
+ export declare class TogglePlayground extends React.Component {
8
3
  render(): JSX.Element;
9
4
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["TokenInputPlayground.tsx"],"names":["React","TokenInput","Token","getItems","query","Promise","resolve","filter","x","toLowerCase","includes","toString","then","res","setTimeout","bind","tokenColors","First","idle","active","Second","Third","Fourth","Fifth","Sixth","TokenInputPlayground","state","selectedItems","render","item","isActive","onClick","onRemove","itemsNew","setState","Component"],"mappings":"+MAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,UAAT,QAA2B,6BAA3B;AACA,SAASC,KAAT,QAAmC,wBAAnC,C;;AAEeC,Q,0IAAf,iBAAwBC,KAAxB;AACSC,YAAAA,OAAO,CAACC,OAAR;AACL,aAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,EAA6B,QAA7B,EAAuC,OAAvC,EAAgD,OAAhD,EAAyDC,MAAzD;AACE,sBAACC,CAAD,UAAOA,CAAC,CAACC,WAAF,GAAgBC,QAAhB,CAAyBN,KAAK,CAACK,WAAN,EAAzB,KAAiDD,CAAC,CAACG,QAAF,OAAiBP,KAAzE,EADF,CADK;;AAILQ,YAAAA,IAJK,CAIA,UAACC,GAAD,UAAmB,IAAIR,OAAJ,CAAsB,UAACC,OAAD,UAAaQ,UAAU,CAACR,OAAO,CAACS,IAAR,CAAa,IAAb,EAAmBF,GAAnB,CAAD,EAA0B,GAA1B,CAAvB,EAAtB,CAAnB,EAJA,CADT,0D;;;AAQA,IAAMG,WAA2C,GAAG;AAClDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,UADD;AAELC,IAAAA,MAAM,EAAE,YAFH,EAD2C;;AAKlDC,EAAAA,MAAM,EAAE;AACNF,IAAAA,IAAI,EAAE,UADA;AAENC,IAAAA,MAAM,EAAE,YAFF,EAL0C;;AASlDE,EAAAA,KAAK,EAAE;AACLH,IAAAA,IAAI,EAAE,WADD;AAELC,IAAAA,MAAM,EAAE,aAFH,EAT2C;;AAalDG,EAAAA,MAAM,EAAE;AACNJ,IAAAA,IAAI,EAAE,YADA;AAENC,IAAAA,MAAM,EAAE,cAFF,EAb0C;;AAiBlDI,EAAAA,KAAK,EAAE;AACLL,IAAAA,IAAI,EAAE,SADD;AAELC,IAAAA,MAAM,EAAE,WAFH,EAjB2C;;AAqBlDK,EAAAA,KAAK,EAAE;AACLN,IAAAA,IAAI,EAAE,OADD;AAELC,IAAAA,MAAM,EAAE,OAFH,EArB2C;;AAyBlD,aAAS;AACPD,IAAAA,IAAI,EAAE,aADC;AAEPC,IAAAA,MAAM,EAAE,eAFD,EAzByC,EAApD;;;;AA+BA,WAAaM,oBAAb;AACSC,IAAAA,KADT,GACiB,EAAEC,aAAa,EAAE,CAAC,OAAD,EAAU,QAAV,CAAjB,EADjB;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd;AACE,0BAAC,UAAD;AACE,QAAA,QAAQ,EAAEzB,QADZ;AAEE,QAAA,aAAa,EAAE,KAAKuB,KAAL,CAAWC,aAF5B;AAGE,QAAA,WAAW,EAAE,qBAACE,IAAD,aAASC,QAAT,QAASA,QAAT,CAAmBC,OAAnB,QAAmBA,OAAnB,CAA4BC,QAA5B,QAA4BA,QAA5B;AACX,gCAAC,KAAD;AACE,cAAA,GAAG,EAAEH,IAAI,CAAClB,QAAL,EADP;AAEE,cAAA,MAAM,EAAEK,WAAW,CAACa,IAAD,CAAX,IAAqBb,WAAW,WAF1C;AAGE,cAAA,QAAQ,EAAEc,QAHZ;AAIE,cAAA,OAAO,EAAEC,OAJX;AAKE,cAAA,QAAQ,EAAEC,QALZ;;AAOGH,YAAAA,IAPH,CADW,GAHf;;;AAcE,QAAA,aAAa,EAAE,uBAACI,QAAD,UAAc,MAAI,CAACC,QAAL,CAAc,EAAEP,aAAa,EAAEM,QAAjB,EAAd,CAAd,EAdjB,GADF;;;AAkBD,GAtBH,+BAA0CjC,KAAK,CAACmC,SAAhD","sourcesContent":["import React from 'react';\n\nimport { TokenInput } from '../../components/TokenInput';\nimport { Token, TokenColors } from '../../components/Token';\n\nasync function getItems(query: string) {\n return Promise.resolve(\n ['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth'].filter(\n (x) => x.toLowerCase().includes(query.toLowerCase()) || x.toString() === query,\n ),\n ).then((res: string[]) => new Promise<string[]>((resolve) => setTimeout(resolve.bind(null, res), 500)));\n}\n\nconst tokenColors: { [key: string]: TokenColors } = {\n First: {\n idle: 'grayIdle',\n active: 'grayActive',\n },\n Second: {\n idle: 'blueIdle',\n active: 'blueActive',\n },\n Third: {\n idle: 'greenIdle',\n active: 'greenActive',\n },\n Fourth: {\n idle: 'yellowIdle',\n active: 'yellowActive',\n },\n Fifth: {\n idle: 'redIdle',\n active: 'redActive',\n },\n Sixth: {\n idle: 'white',\n active: 'black',\n },\n default: {\n idle: 'defaultIdle',\n active: 'defaultActive',\n },\n};\n\nexport class TokenInputPlayground extends React.Component<any, any> {\n public state = { selectedItems: ['First', 'Second'] };\n\n public render() {\n return (\n <TokenInput\n getItems={getItems}\n selectedItems={this.state.selectedItems}\n renderToken={(item, { isActive, onClick, onRemove }) => (\n <Token\n key={item.toString()}\n colors={tokenColors[item] || tokenColors.default}\n isActive={isActive}\n onClick={onClick}\n onRemove={onRemove}\n >\n {item}\n </Token>\n )}\n onValueChange={(itemsNew) => this.setState({ selectedItems: itemsNew })}\n />\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TokenInputPlayground.tsx"],"names":["React","TokenInput","Token","getItems","query","Promise","resolve","filter","x","toLowerCase","includes","toString","then","res","setTimeout","bind","tokenColors","First","idle","active","Second","Third","Fourth","Fifth","Sixth","TokenInputPlayground","state","selectedItems","render","item","isActive","onClick","onRemove","itemsNew","setState","Component"],"mappings":"+MAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,UAAT,QAA2B,6BAA3B;AACA,SAASC,KAAT,QAAmC,wBAAnC,C;;AAEeC,Q,0IAAf,iBAAwBC,KAAxB;AACSC,YAAAA,OAAO,CAACC,OAAR;AACL,aAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,EAA6B,QAA7B,EAAuC,OAAvC,EAAgD,OAAhD,EAAyDC,MAAzD;AACE,sBAACC,CAAD,UAAOA,CAAC,CAACC,WAAF,GAAgBC,QAAhB,CAAyBN,KAAK,CAACK,WAAN,EAAzB,KAAiDD,CAAC,CAACG,QAAF,OAAiBP,KAAzE,EADF,CADK;;AAILQ,YAAAA,IAJK,CAIA,UAACC,GAAD,UAAmB,IAAIR,OAAJ,CAAsB,UAACC,OAAD,UAAaQ,UAAU,CAACR,OAAO,CAACS,IAAR,CAAa,IAAb,EAAmBF,GAAnB,CAAD,EAA0B,GAA1B,CAAvB,EAAtB,CAAnB,EAJA,CADT,0D;;;AAQA,IAAMG,WAA2C,GAAG;AAClDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,UADD;AAELC,IAAAA,MAAM,EAAE,YAFH,EAD2C;;AAKlDC,EAAAA,MAAM,EAAE;AACNF,IAAAA,IAAI,EAAE,UADA;AAENC,IAAAA,MAAM,EAAE,YAFF,EAL0C;;AASlDE,EAAAA,KAAK,EAAE;AACLH,IAAAA,IAAI,EAAE,WADD;AAELC,IAAAA,MAAM,EAAE,aAFH,EAT2C;;AAalDG,EAAAA,MAAM,EAAE;AACNJ,IAAAA,IAAI,EAAE,YADA;AAENC,IAAAA,MAAM,EAAE,cAFF,EAb0C;;AAiBlDI,EAAAA,KAAK,EAAE;AACLL,IAAAA,IAAI,EAAE,SADD;AAELC,IAAAA,MAAM,EAAE,WAFH,EAjB2C;;AAqBlDK,EAAAA,KAAK,EAAE;AACLN,IAAAA,IAAI,EAAE,OADD;AAELC,IAAAA,MAAM,EAAE,OAFH,EArB2C;;AAyBlD,aAAS;AACPD,IAAAA,IAAI,EAAE,aADC;AAEPC,IAAAA,MAAM,EAAE,eAFD,EAzByC,EAApD;;;;;;;AAkCA,WAAaM,oBAAb;AACSC,IAAAA,KADT,GAC4C,EAAEC,aAAa,EAAE,CAAC,OAAD,EAAU,QAAV,CAAjB,EAD5C;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd;AACE,0BAAC,UAAD;AACE,QAAA,QAAQ,EAAEzB,QADZ;AAEE,QAAA,aAAa,EAAE,KAAKuB,KAAL,CAAWC,aAF5B;AAGE,QAAA,WAAW,EAAE,qBAACE,IAAD,aAASC,QAAT,QAASA,QAAT,CAAmBC,OAAnB,QAAmBA,OAAnB,CAA4BC,QAA5B,QAA4BA,QAA5B;AACX,gCAAC,KAAD;AACE,cAAA,GAAG,EAAEH,IAAI,CAAClB,QAAL,EADP;AAEE,cAAA,MAAM,EAAEK,WAAW,CAACa,IAAD,CAAX,IAAqBb,WAAW,WAF1C;AAGE,cAAA,QAAQ,EAAEc,QAHZ;AAIE,cAAA,OAAO,EAAEC,OAJX;AAKE,cAAA,QAAQ,EAAEC,QALZ;;AAOGH,YAAAA,IAPH,CADW,GAHf;;;AAcE,QAAA,aAAa,EAAE,uBAACI,QAAD,UAAc,MAAI,CAACC,QAAL,CAAc,EAAEP,aAAa,EAAEM,QAAjB,EAAd,CAAd,EAdjB,GADF;;;AAkBD,GAtBH,+BAA0CjC,KAAK,CAACmC,SAAhD","sourcesContent":["import React from 'react';\n\nimport { TokenInput } from '../../components/TokenInput';\nimport { Token, TokenColors } from '../../components/Token';\n\nasync function getItems(query: string) {\n return Promise.resolve(\n ['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth'].filter(\n (x) => x.toLowerCase().includes(query.toLowerCase()) || x.toString() === query,\n ),\n ).then((res: string[]) => new Promise<string[]>((resolve) => setTimeout(resolve.bind(null, res), 500)));\n}\n\nconst tokenColors: { [key: string]: TokenColors } = {\n First: {\n idle: 'grayIdle',\n active: 'grayActive',\n },\n Second: {\n idle: 'blueIdle',\n active: 'blueActive',\n },\n Third: {\n idle: 'greenIdle',\n active: 'greenActive',\n },\n Fourth: {\n idle: 'yellowIdle',\n active: 'yellowActive',\n },\n Fifth: {\n idle: 'redIdle',\n active: 'redActive',\n },\n Sixth: {\n idle: 'white',\n active: 'black',\n },\n default: {\n idle: 'defaultIdle',\n active: 'defaultActive',\n },\n};\n\ninterface TokenInputPlaygroundState {\n selectedItems: string[];\n}\nexport class TokenInputPlayground extends React.Component {\n public state: TokenInputPlaygroundState = { selectedItems: ['First', 'Second'] };\n\n public render() {\n return (\n <TokenInput\n getItems={getItems}\n selectedItems={this.state.selectedItems}\n renderToken={(item, { isActive, onClick, onRemove }) => (\n <Token\n key={item.toString()}\n colors={tokenColors[item] || tokenColors.default}\n isActive={isActive}\n onClick={onClick}\n onRemove={onRemove}\n >\n {item}\n </Token>\n )}\n onValueChange={(itemsNew) => this.setState({ selectedItems: itemsNew })}\n />\n );\n }\n}\n"]}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
- export declare class TokenInputPlayground extends React.Component<any, any> {
3
- state: {
4
- selectedItems: string[];
5
- };
2
+ interface TokenInputPlaygroundState {
3
+ selectedItems: string[];
4
+ }
5
+ export declare class TokenInputPlayground extends React.Component {
6
+ state: TokenInputPlaygroundState;
6
7
  render(): JSX.Element;
7
8
  }
9
+ export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["VariableValue.tsx"],"names":["React","EditIcon","DeleteIcon","EventEmitter","isColor","Input","Gapped","Link","Hint","isFunction","cx","createPropsGetter","styles","emitter","VariableValue","getProps","defaultProps","state","value","props","editing","subscription","rootElement","debounceTimeout","debounceInterval","undefined","renderBaseVariableLink","baseVariables","baseVariableRoot","colorIcon","baseLinkWrapper","textAlign","map","v","emitClickEvent","handleEditLinkClick","renderInputWrapper","renderInput","renderRollbackIcon","rootRef","instance","background","setState","rollbackToBaseVariable","variable","emit","handleChange","window","setInterval","debounceHandler","onChange","clearInterval","handleBlur","emitterEventHandler","name","focus","render","theme","deprecated","variableName","length","componentDidMount","addListener","remove","removeListener","componentDidUpdate","prevProps","componentWillUnmount","isColorExtended","isError","linkRoot","Component","BaseVariableLink","baseVariable","getColorValue","color","colorValue","style","Option"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EditIcon from '@skbkontur/react-icons/Edit';\nimport DeleteIcon from '@skbkontur/react-icons/Delete';\nimport EventEmitter from 'eventemitter3';\n\nimport { isColor } from '../../lib/styles/ColorHelpers';\nimport { Input } from '../../components/Input';\nimport { Gapped } from '../../components/Gapped';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Link } from '../../components/Link';\nimport { Hint } from '../../components/Hint';\nimport { isFunction } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Playground.styles';\n\nconst emitter = new EventEmitter();\n\nexport interface VariableValueProps {\n onChange: (variable: keyof Theme, value: string) => void;\n value: string;\n isError: boolean;\n variable: string;\n theme: Theme;\n baseVariables: Array<keyof Theme>;\n deprecated?: boolean;\n}\n\nexport interface VariableValueState {\n value: string;\n editing: boolean;\n}\n\ntype DefaultProps = Required<Pick<VariableValueProps, 'deprecated'>>;\n\nexport class VariableValue extends React.Component<VariableValueProps, VariableValueState> {\n public static defaultProps: DefaultProps = {\n deprecated: false,\n };\n private getProps = createPropsGetter(VariableValue.defaultProps);\n public state = {\n value: this.props.value,\n editing: false,\n };\n private subscription: { remove: () => void } | null = null;\n private rootElement: HTMLElement | null = null;\n private readonly debounceTimeout = 500;\n private debounceInterval: number | undefined = undefined;\n\n public render() {\n const { variable, theme, baseVariables } = this.props;\n const deprecated = this.getProps().deprecated;\n return (\n <div className={styles.variable(theme)} ref={this.rootRef} tabIndex={0}>\n <div\n className={cx(styles.variableName(theme), { [styles.deprecated()]: deprecated })}\n title={variable}\n >{`${variable}: `}</div>\n {baseVariables.length > 0 && !this.state.editing ? this.renderBaseVariableLink() : this.renderInputWrapper()}\n </div>\n );\n }\n\n public componentDidMount(): void {\n if (!this.subscription) {\n emitter.addListener('clicked', this.emitterEventHandler);\n this.subscription = {\n remove: () => {\n emitter.removeListener('clicked', this.emitterEventHandler);\n },\n };\n }\n }\n\n public componentDidUpdate(prevProps: VariableValueProps) {\n if (prevProps.value !== this.props.value) {\n this.setState({ value: this.props.value });\n }\n }\n\n public componentWillUnmount(): void {\n if (this.subscription) {\n this.subscription.remove();\n }\n if (this.debounceInterval !== undefined) {\n clearInterval(this.debounceInterval);\n }\n }\n\n private renderBaseVariableLink = () => {\n const baseVariables = this.props.baseVariables;\n return (\n <div className={styles.baseVariableRoot()}>\n {this.colorIcon()}\n <div className={styles.baseLinkWrapper()}>\n <Gapped>\n <div style={{ textAlign: 'right' }}>\n <Gapped vertical>\n {baseVariables.map((v) => (\n <BaseVariableLink key={v} baseVariable={v} emitClickEvent={this.emitClickEvent} />\n ))}\n </Gapped>\n </div>\n <Hint text={'Изменить значение'}>\n <Link icon={<EditIcon />} onClick={this.handleEditLinkClick} />\n </Hint>\n </Gapped>\n </div>\n </div>\n );\n };\n\n private renderInputWrapper = () => {\n return this.state.editing ? (\n <Gapped>\n {this.renderInput()}\n {this.renderRollbackIcon()}\n </Gapped>\n ) : (\n this.renderInput()\n );\n };\n\n private renderInput() {\n return (\n <Input\n leftIcon={isColorExtended(this.state.value) && this.colorIcon()}\n value={this.state.value}\n onValueChange={this.handleChange}\n onBlur={this.handleBlur}\n align={'right'}\n width={this.state.editing ? 225 : 250}\n error={this.props.isError}\n />\n );\n }\n\n private renderRollbackIcon() {\n return (\n <Hint text={'Вернуться к базовой переменной'}>\n <div className={styles.linkRoot()}>\n <Link icon={<DeleteIcon />} onClick={this.rollbackToBaseVariable} />\n </div>\n </Hint>\n );\n }\n\n private rootRef = (instance: HTMLElement | null) => {\n this.rootElement = instance;\n };\n\n private colorIcon = () => {\n return <div className={styles.colorIcon()} style={{ background: this.state.value }} />;\n };\n\n private handleEditLinkClick = () => {\n this.setState({\n editing: true,\n });\n };\n\n private rollbackToBaseVariable = () => {\n this.setState({\n editing: false,\n value: this.props.value,\n });\n };\n\n private emitClickEvent = (variable: string | number) => {\n emitter.emit('clicked', variable);\n };\n\n private handleChange = (value: string) => {\n this.setState({\n value,\n });\n\n if (this.debounceInterval === undefined) {\n this.debounceInterval = window.setInterval(this.debounceHandler, this.debounceTimeout);\n }\n };\n\n private debounceHandler = () => {\n const { variable, onChange } = this.props;\n\n onChange(variable as keyof Theme, this.state.value);\n clearInterval(this.debounceInterval);\n this.debounceInterval = undefined;\n };\n\n private handleBlur = () => {\n this.setState({\n editing: false,\n });\n };\n\n private emitterEventHandler = (name: keyof Theme) => {\n if (name === this.props.variable && this.rootElement) {\n this.rootElement.focus();\n }\n };\n}\n\ninterface BaseVariableLinkProps {\n baseVariable: string | number;\n emitClickEvent: (baseVariable: string | number) => void;\n}\nclass BaseVariableLink extends React.Component<BaseVariableLinkProps> {\n public render() {\n return <Link onClick={this.emitClickEvent}>{this.props.baseVariable}</Link>;\n }\n private emitClickEvent = () => {\n this.props.emitClickEvent(this.props.baseVariable);\n };\n}\n\ntype Color = string | (() => string);\n\nconst getColorValue = (color: Color) => {\n if (isFunction(color)) {\n return color();\n }\n\n return color;\n};\n\nfunction isColorExtended(color: Color) {\n const colorValue = getColorValue(color);\n\n const style = new Option().style;\n style.color = colorValue;\n\n if (colorValue) {\n return isColor(colorValue) || style.color === colorValue;\n }\n\n return false;\n}\n"]}
1
+ {"version":3,"sources":["VariableValue.tsx"],"names":["React","EditIcon","DeleteIcon","EventEmitter","isColor","Input","Gapped","Link","Hint","isFunction","cx","createPropsGetter","styles","emitter","VariableValue","getProps","defaultProps","state","value","props","editing","subscription","rootElement","debounceTimeout","debounceInterval","undefined","renderBaseVariableLink","baseVariables","baseVariableRoot","colorIcon","baseLinkWrapper","textAlign","map","v","emitClickEvent","handleEditLinkClick","renderInputWrapper","renderInput","renderRollbackIcon","rootRef","instance","background","setState","rollbackToBaseVariable","variable","emit","handleChange","window","setInterval","debounceHandler","onChange","clearInterval","handleBlur","emitterEventHandler","name","focus","render","theme","deprecated","variableName","length","componentDidMount","addListener","remove","removeListener","componentDidUpdate","prevProps","componentWillUnmount","isColorExtended","isError","linkRoot","Component","BaseVariableLink","baseVariable","getColorValue","color","colorValue","style","Option"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EditIcon from '@skbkontur/react-icons/Edit';\nimport DeleteIcon from '@skbkontur/react-icons/Delete';\nimport EventEmitter from 'eventemitter3';\n\nimport { isColor } from '../../lib/styles/ColorHelpers';\nimport { Input } from '../../components/Input';\nimport { Gapped } from '../../components/Gapped';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Link } from '../../components/Link';\nimport { Hint } from '../../components/Hint';\nimport { isFunction } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Playground.styles';\n\nconst emitter = new EventEmitter();\n\nexport interface VariableValueProps {\n onChange: (variable: keyof Theme, value: string) => void;\n value: string;\n isError: boolean;\n variable: string;\n theme: Theme;\n baseVariables: Array<keyof Theme>;\n deprecated?: boolean;\n}\n\nexport interface VariableValueState {\n value: string;\n editing: boolean;\n}\n\ntype DefaultProps = Required<Pick<VariableValueProps, 'deprecated'>>;\n\nexport class VariableValue extends React.Component<VariableValueProps, VariableValueState> {\n public static defaultProps: DefaultProps = {\n deprecated: false,\n };\n private getProps = createPropsGetter(VariableValue.defaultProps);\n public state: VariableValueState = {\n value: this.props.value,\n editing: false,\n };\n private subscription: { remove: () => void } | null = null;\n private rootElement: HTMLElement | null = null;\n private readonly debounceTimeout = 500;\n private debounceInterval: number | undefined = undefined;\n\n public render() {\n const { variable, theme, baseVariables } = this.props;\n const deprecated = this.getProps().deprecated;\n return (\n <div className={styles.variable(theme)} ref={this.rootRef} tabIndex={0}>\n <div\n className={cx(styles.variableName(theme), { [styles.deprecated()]: deprecated })}\n title={variable}\n >{`${variable}: `}</div>\n {baseVariables.length > 0 && !this.state.editing ? this.renderBaseVariableLink() : this.renderInputWrapper()}\n </div>\n );\n }\n\n public componentDidMount(): void {\n if (!this.subscription) {\n emitter.addListener('clicked', this.emitterEventHandler);\n this.subscription = {\n remove: () => {\n emitter.removeListener('clicked', this.emitterEventHandler);\n },\n };\n }\n }\n\n public componentDidUpdate(prevProps: VariableValueProps) {\n if (prevProps.value !== this.props.value) {\n this.setState({ value: this.props.value });\n }\n }\n\n public componentWillUnmount(): void {\n if (this.subscription) {\n this.subscription.remove();\n }\n if (this.debounceInterval !== undefined) {\n clearInterval(this.debounceInterval);\n }\n }\n\n private renderBaseVariableLink = () => {\n const baseVariables = this.props.baseVariables;\n return (\n <div className={styles.baseVariableRoot()}>\n {this.colorIcon()}\n <div className={styles.baseLinkWrapper()}>\n <Gapped>\n <div style={{ textAlign: 'right' }}>\n <Gapped vertical>\n {baseVariables.map((v) => (\n <BaseVariableLink key={v} baseVariable={v} emitClickEvent={this.emitClickEvent} />\n ))}\n </Gapped>\n </div>\n <Hint text={'Изменить значение'}>\n <Link icon={<EditIcon />} onClick={this.handleEditLinkClick} />\n </Hint>\n </Gapped>\n </div>\n </div>\n );\n };\n\n private renderInputWrapper = () => {\n return this.state.editing ? (\n <Gapped>\n {this.renderInput()}\n {this.renderRollbackIcon()}\n </Gapped>\n ) : (\n this.renderInput()\n );\n };\n\n private renderInput() {\n return (\n <Input\n leftIcon={isColorExtended(this.state.value) && this.colorIcon()}\n value={this.state.value}\n onValueChange={this.handleChange}\n onBlur={this.handleBlur}\n align={'right'}\n width={this.state.editing ? 225 : 250}\n error={this.props.isError}\n />\n );\n }\n\n private renderRollbackIcon() {\n return (\n <Hint text={'Вернуться к базовой переменной'}>\n <div className={styles.linkRoot()}>\n <Link icon={<DeleteIcon />} onClick={this.rollbackToBaseVariable} />\n </div>\n </Hint>\n );\n }\n\n private rootRef = (instance: HTMLElement | null) => {\n this.rootElement = instance;\n };\n\n private colorIcon = () => {\n return <div className={styles.colorIcon()} style={{ background: this.state.value }} />;\n };\n\n private handleEditLinkClick = () => {\n this.setState({\n editing: true,\n });\n };\n\n private rollbackToBaseVariable = () => {\n this.setState({\n editing: false,\n value: this.props.value,\n });\n };\n\n private emitClickEvent = (variable: string | number) => {\n emitter.emit('clicked', variable);\n };\n\n private handleChange = (value: string) => {\n this.setState({\n value,\n });\n\n if (this.debounceInterval === undefined) {\n this.debounceInterval = window.setInterval(this.debounceHandler, this.debounceTimeout);\n }\n };\n\n private debounceHandler = () => {\n const { variable, onChange } = this.props;\n\n onChange(variable as keyof Theme, this.state.value);\n clearInterval(this.debounceInterval);\n this.debounceInterval = undefined;\n };\n\n private handleBlur = () => {\n this.setState({\n editing: false,\n });\n };\n\n private emitterEventHandler = (name: keyof Theme) => {\n if (name === this.props.variable && this.rootElement) {\n this.rootElement.focus();\n }\n };\n}\n\ninterface BaseVariableLinkProps {\n baseVariable: string | number;\n emitClickEvent: (baseVariable: string | number) => void;\n}\nclass BaseVariableLink extends React.Component<BaseVariableLinkProps> {\n public render() {\n return <Link onClick={this.emitClickEvent}>{this.props.baseVariable}</Link>;\n }\n private emitClickEvent = () => {\n this.props.emitClickEvent(this.props.baseVariable);\n };\n}\n\ntype Color = string | (() => string);\n\nconst getColorValue = (color: Color) => {\n if (isFunction(color)) {\n return color();\n }\n\n return color;\n};\n\nfunction isColorExtended(color: Color) {\n const colorValue = getColorValue(color);\n\n const style = new Option().style;\n style.color = colorValue;\n\n if (colorValue) {\n return isColor(colorValue) || style.color === colorValue;\n }\n\n return false;\n}\n"]}
@@ -17,10 +17,7 @@ declare type DefaultProps = Required<Pick<VariableValueProps, 'deprecated'>>;
17
17
  export declare class VariableValue extends React.Component<VariableValueProps, VariableValueState> {
18
18
  static defaultProps: DefaultProps;
19
19
  private getProps;
20
- state: {
21
- value: string;
22
- editing: boolean;
23
- };
20
+ state: VariableValueState;
24
21
  private subscription;
25
22
  private rootElement;
26
23
  private readonly debounceTimeout;
@@ -4,7 +4,6 @@ import { Checkbox } from "../../../components/Checkbox";
4
4
  export var getComponentsFromPropsList = function getComponentsFromPropsList(component, propsList) {
5
5
  return propsList.reduce(function (result, props, index) {
6
6
  // NOTE: все это ради чекбокса с фокусом, т.к. нет ни focused, ни autofocus; а ref+focus() снаружи нестабилен
7
- // @ts-ignore
8
7
  var isCheckbox = component.type === Checkbox;
9
8
 
10
9
  if (isCheckbox) {
@@ -1 +1 @@
1
- {"version":3,"sources":["helpers.tsx"],"names":["React","Checkbox","getComponentsFromPropsList","component","propsList","reduce","result","props","index","isCheckbox","type","checkboxProps","focused","ref","el","setState","focusedByTab","elementWithProps","cloneElement","key"],"mappings":"0DAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,QAAT,QAAyB,2BAAzB;;AAEA,OAAO,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAAeC,SAAf,EAAiDC,SAAjD,EAAoE;AAC5G,SAAOA,SAAS,CAACC,MAAV,CAAiB,UAACC,MAAD,EAAuCC,KAAvC,EAA8CC,KAA9C,EAAwD;AAC9E;AACA;AACA,QAAMC,UAAU,GAAGN,SAAS,CAACO,IAAV,KAAmBT,QAAtC;AACA,QAAIQ,UAAJ,EAAgB;AACd,UAAME,aAAa,GAAGJ,KAAtB;AACA,UAAII,aAAa,CAACC,OAAlB,EAA2B;AACzBD,QAAAA,aAAa,CAACE,GAAd,GAAoB,UAACC,EAAD,EAAQ;AAC1B,cAAIA,EAAJ,EAAQ;AACNA,YAAAA,EAAE,CAACC,QAAH,CAAY,EAAEC,YAAY,EAAE,IAAhB,EAAZ;AACD;AACF,SAJD;AAKA,eAAOL,aAAa,CAACC,OAArB;AACD;AACF;;AAED,QAAMK,gBAAgB,gBAAGjB,KAAK,CAACkB,YAAN,CAAmBf,SAAnB,eAAmCI,KAAnC,IAA0CY,GAAG,EAAEX,KAA/C,IAAzB;;AAEA,qBAAWF,MAAX,GAAmBW,gBAAnB;AACD,GAnBM,EAmBJ,EAnBI,CAAP;AAoBD,CArBM","sourcesContent":["import React from 'react';\n\nimport { Checkbox } from '../../components/Checkbox';\n\nexport const getComponentsFromPropsList = <P extends {}>(component: React.ReactElement<P>, propsList: P[]) => {\n return propsList.reduce((result: Array<React.ReactElement<P>>, props, index) => {\n // NOTE: все это ради чекбокса с фокусом, т.к. нет ни focused, ни autofocus; а ref+focus() снаружи нестабилен\n // @ts-ignore\n const isCheckbox = component.type === Checkbox;\n if (isCheckbox) {\n const checkboxProps = props as unknown as { ref: (el: Checkbox) => void; focused?: boolean };\n if (checkboxProps.focused) {\n checkboxProps.ref = (el) => {\n if (el) {\n el.setState({ focusedByTab: true });\n }\n };\n delete checkboxProps.focused;\n }\n }\n\n const elementWithProps = React.cloneElement(component, { ...props, key: index });\n\n return [...result, elementWithProps];\n }, []);\n};\n"]}
1
+ {"version":3,"sources":["helpers.tsx"],"names":["React","Checkbox","getComponentsFromPropsList","component","propsList","reduce","result","props","index","isCheckbox","type","checkboxProps","focused","ref","el","setState","focusedByTab","elementWithProps","cloneElement","key"],"mappings":"0DAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,QAAT,QAAyB,2BAAzB;;AAEA,OAAO,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B;AACxCC,SADwC;AAExCC,SAFwC;AAGrC;AACH,SAAOA,SAAS,CAACC,MAAV,CAAiB,UAACC,MAAD,EAAuCC,KAAvC,EAA8CC,KAA9C,EAAwD;AAC9E;AACA,QAAMC,UAAU,GAAGN,SAAS,CAACO,IAAV,KAAmBT,QAAtC;AACA,QAAIQ,UAAJ,EAAgB;AACd,UAAME,aAAa,GAAGJ,KAAtB;AACA,UAAII,aAAa,CAACC,OAAlB,EAA2B;AACzBD,QAAAA,aAAa,CAACE,GAAd,GAAoB,UAACC,EAAD,EAAQ;AAC1B,cAAIA,EAAJ,EAAQ;AACNA,YAAAA,EAAE,CAACC,QAAH,CAAY,EAAEC,YAAY,EAAE,IAAhB,EAAZ;AACD;AACF,SAJD;AAKA,eAAOL,aAAa,CAACC,OAArB;AACD;AACF;;AAED,QAAMK,gBAAgB,gBAAGjB,KAAK,CAACkB,YAAN,CAAmBf,SAAnB,eAAmCI,KAAnC,IAA0CY,GAAG,EAAEX,KAA/C,IAAzB;;AAEA,qBAAWF,MAAX,GAAmBW,gBAAnB;AACD,GAlBM,EAkBJ,EAlBI,CAAP;AAmBD,CAvBM","sourcesContent":["import React from 'react';\n\nimport { Checkbox } from '../../components/Checkbox';\n\nexport const getComponentsFromPropsList = <P extends Record<string, string>>(\n component: React.ReactElement<P>,\n propsList: P[],\n) => {\n return propsList.reduce((result: Array<React.ReactElement<P>>, props, index) => {\n // NOTE: все это ради чекбокса с фокусом, т.к. нет ни focused, ни autofocus; а ref+focus() снаружи нестабилен\n const isCheckbox = component.type === Checkbox;\n if (isCheckbox) {\n const checkboxProps = props as unknown as { ref: (el: Checkbox) => void; focused?: boolean };\n if (checkboxProps.focused) {\n checkboxProps.ref = (el) => {\n if (el) {\n el.setState({ focusedByTab: true });\n }\n };\n delete checkboxProps.focused;\n }\n }\n\n const elementWithProps = React.cloneElement(component, { ...props, key: index });\n\n return [...result, elementWithProps];\n }, []);\n};\n"]}
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const getComponentsFromPropsList: <P extends {}>(component: React.ReactElement<P, string | React.JSXElementConstructor<any>>, propsList: P[]) => React.ReactElement<P, string | React.JSXElementConstructor<any>>[];
2
+ export declare const getComponentsFromPropsList: <P extends Record<string, string>>(component: React.ReactElement<P, string | React.JSXElementConstructor<any>>, propsList: P[]) => React.ReactElement<P, string | React.JSXElementConstructor<any>>[];
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeShowcase.tsx"],"names":["React","isColor","DEFAULT_THEME","defaultVariables","DARK_THEME","darkVariables","ComboBox","Gapped","Link","Sticky","ColorFunctions","Tooltip","IS_PROXY_SUPPORTED","cx","ThemeContext","ALL_USED_VARIABLES","CALLS_COUNT","COMPONENT_DESCRIPTIONS","COMPONENT_DESCRIPTIONS_BY_VARIABLE","EXECUTION_TIME","styles","EMPTY_ARRAY","ALL_VARIABLES","Object","keys","ThemeShowcase","props","state","isUnmounting","variablesDiff","getItems","query","Promise","resolve","getValues","handleVariableChange","item","setState","selectedVariable","handleUnexpectedVariableInput","values","length","resetVariable","undefined","isDebugMode","forEach","variable","found","includes","push","render","descriptionsToRender","value","callsCount","executionTime","toFixed","theme","searchBar","sort","map","componentName","componentWillUnmount","lowerCaseQuery","toLowerCase","trim","allItems","filter","usedVariable","startsWith","usedVariableName","label","Component","ComponentShowcase","name","description","onVariableSelect","elements","isSticky","heading","headingSticky","table","headerCell","width","el","ComponentShowcaseRow","element","row","rowSpan","variables","invisibleRow","invisibleDarkRow","cell","majorCell","elementName","invisibleCell","varName","dependencies","variableDefault","variableDark","hasNoVariables","suspiciousRow","darkRow","VariableName","handleVariableSelect","variableName","renderDependencies","dependency","DependencyName","dependencyName","dependencyDefault","dependencyDark","handleDependencySelect","onDependencySelect","VariableValue","valueIsColor","valueIsGradient","isGradient","hasExample","borderColor","contrast","colorExample","background","ShowUnusedVariables","diff","unusedVariablesWarning","v","input"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isColor } from '../../lib/styles/ColorHelpers';\nimport { DEFAULT_THEME as defaultVariables } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME as darkVariables } from '../../lib/theming/themes/DarkTheme';\nimport { ComboBox, ComboBoxItem } from '../../components/ComboBox';\nimport { Gapped } from '../../components/Gapped';\nimport { Link } from '../../components/Link';\nimport { Sticky } from '../../components/Sticky';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Tooltip } from '../../components/Tooltip';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport {\n ALL_USED_VARIABLES,\n CALLS_COUNT,\n COMPONENT_DESCRIPTIONS,\n COMPONENT_DESCRIPTIONS_BY_VARIABLE,\n ComponentDescriptionType,\n ComponentRowDescriptionType,\n EXECUTION_TIME,\n} from './VariablesCollector';\nimport { styles } from './ThemeShowcase.styles';\n\nconst EMPTY_ARRAY: string[] = [];\n\nconst ALL_VARIABLES = Object.keys(defaultVariables) as Array<keyof Theme>;\n\ninterface ShowcaseProps {\n isDebugMode?: boolean;\n}\ninterface ShowcaseState {\n selectedVariable?: ComboBoxItem;\n}\n\nexport class ThemeShowcase extends React.Component<ShowcaseProps, ShowcaseState> {\n public state: ShowcaseState = {};\n\n private isUnmounting = false;\n private variablesDiff: string[] = [];\n\n constructor(props: ShowcaseProps) {\n super(props);\n if (props.isDebugMode) {\n ALL_VARIABLES.forEach((variable) => {\n const found = ALL_USED_VARIABLES.includes(variable);\n if (!found) {\n this.variablesDiff.push(variable);\n }\n });\n }\n }\n\n public render() {\n if (!IS_PROXY_SUPPORTED) {\n return (\n <div>\n Таблица использования переменных доступна только в{' '}\n <Link href={'https://caniuse.com/#feat=proxy'} target={'_blank'}>\n браузерах с поддержкой Proxy\n </Link>\n .\n </div>\n );\n }\n\n const selectedVariable = this.state.selectedVariable;\n const descriptionsToRender = selectedVariable\n ? COMPONENT_DESCRIPTIONS_BY_VARIABLE[selectedVariable.value] || {}\n : COMPONENT_DESCRIPTIONS;\n\n const isDebugMode = this.props.isDebugMode;\n const callsCount = isDebugMode ? `(${CALLS_COUNT} вызовов)` : '';\n const executionTime = isDebugMode ? `Сгенерировано за ${EXECUTION_TIME.toFixed(3)}ms` : '';\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <Gapped wrap gap={30} verticalAlign={'top'}>\n <div>\n <Sticky side={'top'}>\n <div className={styles.searchBar(theme)} data-perf-info={`${executionTime} ${callsCount}`}>\n <Gapped gap={15}>\n <ComboBox\n getItems={this.getItems}\n value={selectedVariable}\n onValueChange={this.handleVariableChange}\n onUnexpectedInput={this.handleUnexpectedVariableInput}\n placeholder={'поиск по названию переменной'}\n />\n {!!selectedVariable && <Link onClick={this.resetVariable}>сбросить</Link>}\n </Gapped>\n </div>\n </Sticky>\n {Object.keys(descriptionsToRender)\n .sort()\n .map((componentName) => (\n <ComponentShowcase\n key={componentName}\n name={componentName}\n description={descriptionsToRender[componentName]}\n isDebugMode={isDebugMode}\n onVariableSelect={this.handleVariableChange}\n />\n ))}\n </div>\n <ShowUnusedVariables diff={this.variablesDiff} />\n </Gapped>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public componentWillUnmount(): void {\n this.isUnmounting = true;\n }\n\n private getValues(query: string) {\n const lowerCaseQuery = query && query.toLowerCase().trim();\n let allItems = ALL_USED_VARIABLES;\n if (lowerCaseQuery) {\n allItems = ALL_USED_VARIABLES.filter((usedVariable) => usedVariable.toLowerCase().startsWith(lowerCaseQuery));\n }\n return allItems.map((usedVariableName) => ({\n value: usedVariableName,\n label: usedVariableName,\n }));\n }\n private getItems = (query: string) => {\n return Promise.resolve(this.getValues(query));\n };\n private handleVariableChange = (item: ComboBoxItem) => {\n if (!this.isUnmounting) {\n this.setState({ selectedVariable: item });\n }\n };\n private handleUnexpectedVariableInput = (query: string) => {\n const values = this.getValues(query);\n if (values.length > 0) {\n return values[0];\n }\n\n return this.resetVariable();\n };\n private resetVariable = () => {\n if (!this.isUnmounting) {\n this.setState({ selectedVariable: undefined });\n }\n };\n}\n\ninterface ComponentShowcaseProps {\n name: string;\n description: ComponentDescriptionType;\n isDebugMode?: boolean;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\nclass ComponentShowcase extends React.Component<ComponentShowcaseProps, {}> {\n public render() {\n const { name, description, onVariableSelect, isDebugMode } = this.props;\n const elements = Object.keys(description);\n\n return elements.length ? (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <React.Fragment>\n <Sticky side={'top'} offset={40}>\n {(isSticky) => (\n <h2\n className={cx({\n [styles.heading(theme)]: true,\n [styles.headingSticky()]: isSticky,\n })}\n >\n {this.props.name}\n </h2>\n )}\n </Sticky>\n <table className={styles.table()}>\n <thead>\n <tr>\n <th className={styles.headerCell()} style={{ width: 170 }}>\n ClassName\n </th>\n <th className={styles.headerCell()} style={{ width: 210 }}>\n Variable Name\n </th>\n <th className={styles.headerCell()} style={{ width: 250 }}>\n Default Value\n </th>\n <th className={styles.headerCell()} style={{ width: 250 }}>\n Dark Value\n </th>\n </tr>\n </thead>\n <tbody>\n {elements.map((el) => (\n <ComponentShowcaseRow\n key={`${name}_${el}`}\n element={el}\n row={description[el]}\n onVariableSelect={onVariableSelect}\n isDebugMode={isDebugMode}\n />\n ))}\n </tbody>\n </table>\n </React.Fragment>\n );\n }}\n </ThemeContext.Consumer>\n ) : null;\n }\n}\n\ninterface ComponentShowcaseRowProps {\n element: string;\n row: ComponentRowDescriptionType;\n isDebugMode?: boolean;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\n\nclass ComponentShowcaseRow extends React.Component<ComponentShowcaseRowProps> {\n public render() {\n const { element: el, row, isDebugMode } = this.props;\n const rowSpan = row.variables.length + 1;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <React.Fragment>\n <tr className={cx(styles.invisibleRow(), { [styles.invisibleDarkRow()]: theme === darkVariables })}>\n <td className={cx(styles.cell(), styles.majorCell())} rowSpan={rowSpan}>\n <span className={styles.elementName()}>.{el}</span>\n </td>\n <td className={styles.invisibleCell()} />\n <td className={styles.invisibleCell()} />\n <td className={styles.invisibleCell()} />\n </tr>\n {row.variables.map((varName) => {\n const dependencies = row.dependencies[varName] || EMPTY_ARRAY;\n const variableDefault = defaultVariables[varName] as string;\n const variableDark = darkVariables[varName] as string;\n const hasNoVariables = isDebugMode && !variableDefault;\n return (\n <tr\n key={`${el}_${varName}`}\n className={cx(styles.row(), {\n [styles.suspiciousRow()]: hasNoVariables,\n [styles.darkRow()]: theme === darkVariables,\n })}\n >\n <td className={styles.cell()}>\n <VariableName\n variableName={varName as string}\n dependencies={dependencies}\n onVariableSelect={this.props.onVariableSelect}\n />\n </td>\n <td className={styles.cell()}>\n <VariableValue value={variableDefault} />\n </td>\n <td className={styles.cell()}>\n <VariableValue value={variableDark} />\n </td>\n </tr>\n );\n })}\n </React.Fragment>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n\ninterface VariableNameProps {\n variableName: string;\n dependencies: Array<keyof Theme>;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\n\nclass VariableName extends React.Component<VariableNameProps> {\n public render() {\n return (\n <span>\n <span className={styles.variableName()} onClick={this.handleVariableSelect}>\n {this.props.variableName}\n </span>\n {this.props.dependencies.length > 0 && this.renderDependencies()}\n </span>\n );\n }\n\n private renderDependencies() {\n const { dependencies, onVariableSelect } = this.props;\n return (\n <React.Fragment>\n <br />\n <br />\n зависит от:\n {dependencies.map((dependency) => (\n <DependencyName\n key={`dependency_${dependency}`}\n dependencyName={dependency}\n onDependencySelect={onVariableSelect}\n />\n ))}\n </React.Fragment>\n );\n }\n\n private handleVariableSelect = () => {\n const { variableName, onVariableSelect } = this.props;\n if (onVariableSelect) {\n onVariableSelect({ value: variableName, label: variableName });\n }\n };\n}\n\ninterface DependencyNameProps {\n dependencyName: keyof Theme;\n onDependencySelect: (item: ComboBoxItem) => void;\n}\nclass DependencyName extends React.Component<DependencyNameProps> {\n public render() {\n return (\n <React.Fragment>\n <br />\n &ndash;{' '}\n <Tooltip trigger={'hover'} render={this.getValues} pos={'right middle'}>\n <span className={styles.variableName()} onClick={this.handleDependencySelect}>\n {this.props.dependencyName}\n </span>\n </Tooltip>\n </React.Fragment>\n );\n }\n\n private getValues = () => {\n const dependencyName = this.props.dependencyName;\n const dependencyDefault = defaultVariables[dependencyName] as string;\n const dependencyDark = darkVariables[dependencyName] as string;\n return (\n <React.Fragment>\n <span>Default value: {<VariableValue value={dependencyDefault} />}</span>\n <span>Dark value: {<VariableValue value={dependencyDark} />}</span>\n </React.Fragment>\n );\n };\n\n private handleDependencySelect = () => {\n const { dependencyName, onDependencySelect } = this.props;\n if (onDependencySelect) {\n onDependencySelect({ value: dependencyName, label: dependencyName });\n }\n };\n}\n\nconst VariableValue = (props: { value: string }) => {\n const value = props.value;\n const valueIsColor = isColor(value);\n const valueIsGradient = isGradient(value);\n const hasExample = valueIsColor || valueIsGradient;\n let borderColor = 'transparent';\n if (hasExample) {\n borderColor = valueIsColor ? ColorFunctions.contrast(value) : '#000';\n }\n\n return (\n <span className={cx({ [styles.undefined()]: !value })}>\n {hasExample && <span className={styles.colorExample()} style={{ background: value, borderColor }} />}\n {value || 'undefined'}\n </span>\n );\n};\n\nconst ShowUnusedVariables = (props: { diff: string[] }) => {\n if (props.diff.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.unusedVariablesWarning()}>\n Неиспользованные переменные ({props.diff.length}\n ):\n <ul>\n {props.diff.sort().map((v) => (\n <li key={v}>{v}</li>\n ))}\n </ul>\n </div>\n );\n};\n\nfunction isGradient(input: string) {\n return !!input && input.startsWith('linear-gradient');\n}\n"]}
1
+ {"version":3,"sources":["ThemeShowcase.tsx"],"names":["React","isColor","DEFAULT_THEME","defaultVariables","DARK_THEME","darkVariables","ComboBox","Gapped","Link","Sticky","ColorFunctions","Tooltip","IS_PROXY_SUPPORTED","cx","ThemeContext","ALL_USED_VARIABLES","CALLS_COUNT","COMPONENT_DESCRIPTIONS","COMPONENT_DESCRIPTIONS_BY_VARIABLE","EXECUTION_TIME","styles","EMPTY_ARRAY","ALL_VARIABLES","Object","keys","ThemeShowcase","props","state","isUnmounting","variablesDiff","getItems","query","Promise","resolve","getValues","handleVariableChange","item","setState","selectedVariable","handleUnexpectedVariableInput","values","length","resetVariable","undefined","isDebugMode","forEach","variable","found","includes","push","render","descriptionsToRender","value","callsCount","executionTime","toFixed","theme","searchBar","sort","map","componentName","componentWillUnmount","lowerCaseQuery","toLowerCase","trim","allItems","filter","usedVariable","startsWith","usedVariableName","label","Component","ComponentShowcase","name","description","onVariableSelect","elements","isSticky","heading","headingSticky","table","headerCell","width","el","ComponentShowcaseRow","element","row","rowSpan","variables","invisibleRow","invisibleDarkRow","cell","majorCell","elementName","invisibleCell","varName","dependencies","variableDefault","variableDark","hasNoVariables","suspiciousRow","darkRow","VariableName","handleVariableSelect","variableName","renderDependencies","dependency","DependencyName","dependencyName","dependencyDefault","dependencyDark","handleDependencySelect","onDependencySelect","VariableValue","valueIsColor","valueIsGradient","isGradient","hasExample","borderColor","contrast","colorExample","background","ShowUnusedVariables","diff","unusedVariablesWarning","v","input"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isColor } from '../../lib/styles/ColorHelpers';\nimport { DEFAULT_THEME as defaultVariables } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME as darkVariables } from '../../lib/theming/themes/DarkTheme';\nimport { ComboBox, ComboBoxItem } from '../../components/ComboBox';\nimport { Gapped } from '../../components/Gapped';\nimport { Link } from '../../components/Link';\nimport { Sticky } from '../../components/Sticky';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Tooltip } from '../../components/Tooltip';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport {\n ALL_USED_VARIABLES,\n CALLS_COUNT,\n COMPONENT_DESCRIPTIONS,\n COMPONENT_DESCRIPTIONS_BY_VARIABLE,\n ComponentDescriptionType,\n ComponentRowDescriptionType,\n EXECUTION_TIME,\n} from './VariablesCollector';\nimport { styles } from './ThemeShowcase.styles';\n\nconst EMPTY_ARRAY: string[] = [];\n\nconst ALL_VARIABLES = Object.keys(defaultVariables) as Array<keyof Theme>;\n\ninterface ShowcaseProps {\n isDebugMode?: boolean;\n}\ninterface ShowcaseState {\n selectedVariable?: ComboBoxItem;\n}\n\nexport class ThemeShowcase extends React.Component<ShowcaseProps, ShowcaseState> {\n public state: ShowcaseState = {};\n\n private isUnmounting = false;\n private variablesDiff: string[] = [];\n\n constructor(props: ShowcaseProps) {\n super(props);\n if (props.isDebugMode) {\n ALL_VARIABLES.forEach((variable) => {\n const found = ALL_USED_VARIABLES.includes(variable);\n if (!found) {\n this.variablesDiff.push(variable);\n }\n });\n }\n }\n\n public render() {\n if (!IS_PROXY_SUPPORTED) {\n return (\n <div>\n Таблица использования переменных доступна только в{' '}\n <Link href={'https://caniuse.com/#feat=proxy'} target={'_blank'}>\n браузерах с поддержкой Proxy\n </Link>\n .\n </div>\n );\n }\n\n const selectedVariable = this.state.selectedVariable;\n const descriptionsToRender = selectedVariable\n ? COMPONENT_DESCRIPTIONS_BY_VARIABLE[selectedVariable.value] || {}\n : COMPONENT_DESCRIPTIONS;\n\n const isDebugMode = this.props.isDebugMode;\n const callsCount = isDebugMode ? `(${CALLS_COUNT} вызовов)` : '';\n const executionTime = isDebugMode ? `Сгенерировано за ${EXECUTION_TIME.toFixed(3)}ms` : '';\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <Gapped wrap gap={30} verticalAlign={'top'}>\n <div>\n <Sticky side={'top'}>\n <div className={styles.searchBar(theme)} data-perf-info={`${executionTime} ${callsCount}`}>\n <Gapped gap={15}>\n <ComboBox\n getItems={this.getItems}\n value={selectedVariable}\n onValueChange={this.handleVariableChange}\n onUnexpectedInput={this.handleUnexpectedVariableInput}\n placeholder={'поиск по названию переменной'}\n />\n {!!selectedVariable && <Link onClick={this.resetVariable}>сбросить</Link>}\n </Gapped>\n </div>\n </Sticky>\n {Object.keys(descriptionsToRender)\n .sort()\n .map((componentName) => (\n <ComponentShowcase\n key={componentName}\n name={componentName}\n description={descriptionsToRender[componentName]}\n isDebugMode={isDebugMode}\n onVariableSelect={this.handleVariableChange}\n />\n ))}\n </div>\n <ShowUnusedVariables diff={this.variablesDiff} />\n </Gapped>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public componentWillUnmount(): void {\n this.isUnmounting = true;\n }\n\n private getValues(query: string) {\n const lowerCaseQuery = query && query.toLowerCase().trim();\n let allItems = ALL_USED_VARIABLES;\n if (lowerCaseQuery) {\n allItems = ALL_USED_VARIABLES.filter((usedVariable) => usedVariable.toLowerCase().startsWith(lowerCaseQuery));\n }\n return allItems.map((usedVariableName) => ({\n value: usedVariableName,\n label: usedVariableName,\n }));\n }\n private getItems = (query: string) => {\n return Promise.resolve(this.getValues(query));\n };\n private handleVariableChange = (item: ComboBoxItem) => {\n if (!this.isUnmounting) {\n this.setState({ selectedVariable: item });\n }\n };\n private handleUnexpectedVariableInput = (query: string) => {\n const values = this.getValues(query);\n if (values.length > 0) {\n return values[0];\n }\n\n return this.resetVariable();\n };\n private resetVariable = () => {\n if (!this.isUnmounting) {\n this.setState({ selectedVariable: undefined });\n }\n };\n}\n\ninterface ComponentShowcaseProps {\n name: string;\n description: ComponentDescriptionType;\n isDebugMode?: boolean;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\nclass ComponentShowcase extends React.Component<ComponentShowcaseProps> {\n public render() {\n const { name, description, onVariableSelect, isDebugMode } = this.props;\n const elements = Object.keys(description);\n\n return elements.length ? (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <React.Fragment>\n <Sticky side={'top'} offset={40}>\n {(isSticky) => (\n <h2\n className={cx({\n [styles.heading(theme)]: true,\n [styles.headingSticky()]: isSticky,\n })}\n >\n {this.props.name}\n </h2>\n )}\n </Sticky>\n <table className={styles.table()}>\n <thead>\n <tr>\n <th className={styles.headerCell()} style={{ width: 170 }}>\n ClassName\n </th>\n <th className={styles.headerCell()} style={{ width: 210 }}>\n Variable Name\n </th>\n <th className={styles.headerCell()} style={{ width: 250 }}>\n Default Value\n </th>\n <th className={styles.headerCell()} style={{ width: 250 }}>\n Dark Value\n </th>\n </tr>\n </thead>\n <tbody>\n {elements.map((el) => (\n <ComponentShowcaseRow\n key={`${name}_${el}`}\n element={el}\n row={description[el]}\n onVariableSelect={onVariableSelect}\n isDebugMode={isDebugMode}\n />\n ))}\n </tbody>\n </table>\n </React.Fragment>\n );\n }}\n </ThemeContext.Consumer>\n ) : null;\n }\n}\n\ninterface ComponentShowcaseRowProps {\n element: string;\n row: ComponentRowDescriptionType;\n isDebugMode?: boolean;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\n\nclass ComponentShowcaseRow extends React.Component<ComponentShowcaseRowProps> {\n public render() {\n const { element: el, row, isDebugMode } = this.props;\n const rowSpan = row.variables.length + 1;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <React.Fragment>\n <tr className={cx(styles.invisibleRow(), { [styles.invisibleDarkRow()]: theme === darkVariables })}>\n <td className={cx(styles.cell(), styles.majorCell())} rowSpan={rowSpan}>\n <span className={styles.elementName()}>.{el}</span>\n </td>\n <td className={styles.invisibleCell()} />\n <td className={styles.invisibleCell()} />\n <td className={styles.invisibleCell()} />\n </tr>\n {row.variables.map((varName) => {\n const dependencies = row.dependencies[varName] || EMPTY_ARRAY;\n const variableDefault = defaultVariables[varName] as string;\n const variableDark = darkVariables[varName] as string;\n const hasNoVariables = isDebugMode && !variableDefault;\n return (\n <tr\n key={`${el}_${varName}`}\n className={cx(styles.row(), {\n [styles.suspiciousRow()]: hasNoVariables,\n [styles.darkRow()]: theme === darkVariables,\n })}\n >\n <td className={styles.cell()}>\n <VariableName\n variableName={varName as string}\n dependencies={dependencies}\n onVariableSelect={this.props.onVariableSelect}\n />\n </td>\n <td className={styles.cell()}>\n <VariableValue value={variableDefault} />\n </td>\n <td className={styles.cell()}>\n <VariableValue value={variableDark} />\n </td>\n </tr>\n );\n })}\n </React.Fragment>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n\ninterface VariableNameProps {\n variableName: string;\n dependencies: Array<keyof Theme>;\n onVariableSelect: (item: ComboBoxItem) => void;\n}\n\nclass VariableName extends React.Component<VariableNameProps> {\n public render() {\n return (\n <span>\n <span className={styles.variableName()} onClick={this.handleVariableSelect}>\n {this.props.variableName}\n </span>\n {this.props.dependencies.length > 0 && this.renderDependencies()}\n </span>\n );\n }\n\n private renderDependencies() {\n const { dependencies, onVariableSelect } = this.props;\n return (\n <React.Fragment>\n <br />\n <br />\n зависит от:\n {dependencies.map((dependency) => (\n <DependencyName\n key={`dependency_${dependency}`}\n dependencyName={dependency}\n onDependencySelect={onVariableSelect}\n />\n ))}\n </React.Fragment>\n );\n }\n\n private handleVariableSelect = () => {\n const { variableName, onVariableSelect } = this.props;\n if (onVariableSelect) {\n onVariableSelect({ value: variableName, label: variableName });\n }\n };\n}\n\ninterface DependencyNameProps {\n dependencyName: keyof Theme;\n onDependencySelect: (item: ComboBoxItem) => void;\n}\nclass DependencyName extends React.Component<DependencyNameProps> {\n public render() {\n return (\n <React.Fragment>\n <br />\n &ndash;{' '}\n <Tooltip trigger={'hover'} render={this.getValues} pos={'right middle'}>\n <span className={styles.variableName()} onClick={this.handleDependencySelect}>\n {this.props.dependencyName}\n </span>\n </Tooltip>\n </React.Fragment>\n );\n }\n\n private getValues = () => {\n const dependencyName = this.props.dependencyName;\n const dependencyDefault = defaultVariables[dependencyName] as string;\n const dependencyDark = darkVariables[dependencyName] as string;\n return (\n <React.Fragment>\n <span>Default value: {<VariableValue value={dependencyDefault} />}</span>\n <span>Dark value: {<VariableValue value={dependencyDark} />}</span>\n </React.Fragment>\n );\n };\n\n private handleDependencySelect = () => {\n const { dependencyName, onDependencySelect } = this.props;\n if (onDependencySelect) {\n onDependencySelect({ value: dependencyName, label: dependencyName });\n }\n };\n}\n\nconst VariableValue = (props: { value: string }) => {\n const value = props.value;\n const valueIsColor = isColor(value);\n const valueIsGradient = isGradient(value);\n const hasExample = valueIsColor || valueIsGradient;\n let borderColor = 'transparent';\n if (hasExample) {\n borderColor = valueIsColor ? ColorFunctions.contrast(value) : '#000';\n }\n\n return (\n <span className={cx({ [styles.undefined()]: !value })}>\n {hasExample && <span className={styles.colorExample()} style={{ background: value, borderColor }} />}\n {value || 'undefined'}\n </span>\n );\n};\n\nconst ShowUnusedVariables = (props: { diff: string[] }) => {\n if (props.diff.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.unusedVariablesWarning()}>\n Неиспользованные переменные ({props.diff.length}\n ):\n <ul>\n {props.diff.sort().map((v) => (\n <li key={v}>{v}</li>\n ))}\n </ul>\n </div>\n );\n};\n\nfunction isGradient(input: string) {\n return !!input && input.startsWith('linear-gradient');\n}\n"]}