@jetbrains/ring-ui 5.0.0-beta.3 → 5.0.0-beta.7

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 (323) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/babel.config.js +1 -12
  3. package/components/alert/alert.css +3 -14
  4. package/components/alert/alert.d.ts +3 -0
  5. package/components/alert/alert.js +8 -7
  6. package/components/alert/container.css +0 -2
  7. package/components/alert-service/alert-service.examples.css +5 -3
  8. package/components/auth/auth__core.d.ts +3 -1
  9. package/components/auth/auth__core.js +42 -15
  10. package/components/auth/down-notification.css +1 -1
  11. package/components/auth-dialog/auth-dialog.d.ts +11 -0
  12. package/components/auth-dialog/auth-dialog.js +33 -2
  13. package/components/autofocus-ng/autofocus-ng.js +1 -1
  14. package/components/autofocus-ng/autofocus-ng.test.js +1 -1
  15. package/components/button/button.css +93 -204
  16. package/components/button/button.d.ts +7 -8
  17. package/components/button/button.js +6 -8
  18. package/components/button/button__classes.d.ts +1 -1
  19. package/components/button/button__classes.js +4 -7
  20. package/components/button-group/button-group.css +136 -19
  21. package/components/button-group/button-group.d.ts +4 -1
  22. package/components/button-group/button-group.js +3 -3
  23. package/components/button-group-ng/button-group-ng.css +1 -0
  24. package/components/button-group-ng/button-group-ng.examples.js +1 -1
  25. package/components/button-ng/button-ng.examples.js +6 -7
  26. package/components/button-ng/button-ng.js +6 -25
  27. package/components/button-set/button-set.css +1 -0
  28. package/components/button-toolbar/button-toolbar.css +2 -0
  29. package/components/checkbox/checkbox.css +10 -4
  30. package/components/date-picker/date-input.js +2 -1
  31. package/components/date-picker/date-picker.css +2 -1
  32. package/components/dialog/dialog.css +10 -3
  33. package/components/dialog-ng/dialog-ng__template.js +1 -0
  34. package/components/error-bubble/error-bubble-legacy.css +1 -1
  35. package/components/error-bubble/error-bubble.css +1 -1
  36. package/components/global/controls-height.d.ts +7 -0
  37. package/components/global/controls-height.js +8 -0
  38. package/components/global/theme.d.ts +7 -20
  39. package/components/global/theme.js +26 -32
  40. package/components/global/variables.css +30 -25
  41. package/components/global/variables.d.ts +10 -8
  42. package/components/global/variables_dark.css +68 -0
  43. package/components/header/header.css +19 -10
  44. package/components/header/header.d.ts +7 -69
  45. package/components/header/header.js +10 -9
  46. package/components/header/services.css +3 -3
  47. package/components/header/services.d.ts +5 -0
  48. package/components/header/services.js +8 -2
  49. package/components/header/tray-icon.d.ts +18 -575
  50. package/components/heading/heading.css +4 -1
  51. package/components/icon/icon.css +1 -1
  52. package/components/input/input.css +81 -151
  53. package/components/input/input.d.ts +13 -17
  54. package/components/input/input.js +28 -32
  55. package/components/input-ng/input-ng.examples.js +1 -1
  56. package/components/input-ng/input-ng.js +45 -49
  57. package/components/island/adaptive-island-hoc.d.ts +2 -2
  58. package/components/island/adaptive-island-hoc.js +2 -2
  59. package/components/island/content.js +2 -7
  60. package/components/island/header.js +7 -4
  61. package/components/island/island.css +8 -5
  62. package/components/island/island.d.ts +2 -2
  63. package/components/island-legacy/island-legacy.css +1 -1
  64. package/components/list/list.d.ts +1 -1
  65. package/components/loader-inline/loader-inline.css +14 -0
  66. package/components/loader-inline/loader-inline.d.ts +4 -41
  67. package/components/loader-inline/loader-inline.js +3 -11
  68. package/components/loader-inline-ng/loader-inline-ng.js +1 -17
  69. package/components/loader-inline-ng/loader-inline-ng.test.js +0 -11
  70. package/components/markdown/code.d.ts +6 -13
  71. package/components/markdown/code.js +2 -2
  72. package/components/markdown/heading.d.ts +5 -9
  73. package/components/markdown/heading.js +2 -2
  74. package/components/markdown/link.d.ts +4 -8
  75. package/components/markdown/link.js +1 -1
  76. package/components/markdown/markdown.d.ts +2 -3
  77. package/components/markdown/markdown.js +14 -11
  78. package/components/message/message.css +7 -3
  79. package/components/message/message.d.ts +3 -0
  80. package/components/message/message.js +16 -9
  81. package/components/pager/pager.js +2 -8
  82. package/components/popup/popup.css +1 -1
  83. package/components/popup/popup.target.d.ts +1 -0
  84. package/components/progress-bar/progress-bar.css +8 -12
  85. package/components/progress-bar/progress-bar.d.ts +0 -4
  86. package/components/progress-bar/progress-bar.js +1 -6
  87. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -2
  88. package/components/query-assist/query-assist.css +48 -64
  89. package/components/query-assist/query-assist.d.ts +0 -5
  90. package/components/query-assist/query-assist.js +4 -10
  91. package/components/radio/radio.css +10 -4
  92. package/components/select/select.css +19 -37
  93. package/components/select/select.d.ts +4 -6
  94. package/components/select/select.js +17 -30
  95. package/components/select/select__filter.js +2 -1
  96. package/components/select/select__popup.js +1 -2
  97. package/components/select-ng/select-ng.examples.js +1 -0
  98. package/components/select-ng/select-ng.js +3 -1
  99. package/components/select-ng/select-ng.test.js +1 -1
  100. package/components/select-ng/select-ng__lazy.js +1 -2
  101. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  102. package/components/shortcuts-hint-ng/shortcuts-hint-ng.examples.js +1 -1
  103. package/components/tabs/collapsible-tab.js +2 -2
  104. package/components/tabs/dumb-tabs.d.ts +4 -107
  105. package/components/tabs/dumb-tabs.js +5 -9
  106. package/components/tabs/tab.d.ts +2 -0
  107. package/components/tabs/tabs.css +8 -28
  108. package/components/tabs-ng/tabs-ng.examples.js +11 -3
  109. package/components/tabs-ng/tabs-ng.js +1 -4
  110. package/components/tabs-ng/tabs-ng__template.js +1 -1
  111. package/components/tag/tag.css +31 -8
  112. package/components/tag/tag.d.ts +1 -0
  113. package/components/tag/tag.js +1 -0
  114. package/components/tags-input/tags-input.css +10 -4
  115. package/components/toggle/toggle.css +61 -35
  116. package/components/toggle/toggle.d.ts +9 -89
  117. package/components/toggle/toggle.js +7 -7
  118. package/components/tooltip/tooltip.css +7 -0
  119. package/components/tooltip/tooltip.d.ts +1 -0
  120. package/components/tooltip/tooltip.js +3 -2
  121. package/components/user-agreement/service.d.ts +2 -2
  122. package/components/user-agreement/user-agreement.js +1 -1
  123. package/dist/_helpers/anchor.js +3 -3
  124. package/dist/_helpers/badge.js +1 -1
  125. package/dist/_helpers/button-group.js +1 -1
  126. package/dist/_helpers/button-set.js +1 -1
  127. package/dist/_helpers/button-toolbar.js +1 -1
  128. package/dist/_helpers/button__classes.js +5 -8
  129. package/dist/_helpers/card.js +1 -1
  130. package/dist/_helpers/checkbox.js +1 -1
  131. package/dist/_helpers/date-picker.js +1 -1
  132. package/dist/_helpers/dialog__body-scroll-preventer.js +1 -1
  133. package/dist/_helpers/error-message.js +1 -1
  134. package/dist/_helpers/footer.js +1 -1
  135. package/dist/_helpers/grid.js +1 -1
  136. package/dist/_helpers/group.js +1 -1
  137. package/dist/_helpers/header.js +1 -1
  138. package/dist/_helpers/icon.js +1 -1
  139. package/dist/_helpers/input.js +1 -1
  140. package/dist/_helpers/island.js +1 -1
  141. package/dist/_helpers/link.js +1 -1
  142. package/dist/_helpers/list.js +1 -1
  143. package/dist/_helpers/loader-inline.js +3 -0
  144. package/dist/_helpers/loader-screen.js +1 -1
  145. package/dist/_helpers/panel.js +1 -1
  146. package/dist/_helpers/query-assist__suggestions.js +1 -1
  147. package/dist/_helpers/radio.js +1 -1
  148. package/dist/_helpers/select__filter.js +5 -3
  149. package/dist/_helpers/services-link.js +1 -1
  150. package/dist/_helpers/sidebar.js +1 -1
  151. package/dist/_helpers/table.js +1 -1
  152. package/dist/_helpers/tabs.js +1 -1
  153. package/dist/_helpers/theme.js +50 -0
  154. package/dist/_helpers/title.js +1 -1
  155. package/dist/alert/alert.d.ts +3 -0
  156. package/dist/alert/alert.js +21 -19
  157. package/dist/alert/container.js +1 -1
  158. package/dist/alert-service/alert-service.js +9 -7
  159. package/dist/auth/auth.js +9 -9
  160. package/dist/auth/auth__core.d.ts +3 -1
  161. package/dist/auth/auth__core.js +58 -26
  162. package/dist/auth/down-notification.js +8 -8
  163. package/dist/auth/iframe-flow.js +1 -1
  164. package/dist/auth/landing.js +9 -9
  165. package/dist/auth/storage.js +9 -7
  166. package/dist/auth-dialog/auth-dialog.d.ts +11 -0
  167. package/dist/auth-dialog/auth-dialog.js +52 -7
  168. package/dist/auth-dialog-service/auth-dialog-service.js +1 -1
  169. package/dist/auth-ng/auth-ng.js +9 -9
  170. package/dist/autofocus-ng/autofocus-ng.js +1 -1
  171. package/dist/avatar/avatar.js +1 -1
  172. package/dist/avatar-editor-ng/avatar-editor-ng.js +9 -7
  173. package/dist/breadcrumb-ng/breadcrumb-ng.js +1 -1
  174. package/dist/button/button.d.ts +7 -8
  175. package/dist/button/button.js +6 -8
  176. package/dist/button/button__classes.d.ts +1 -1
  177. package/dist/button/button__classes.js +0 -3
  178. package/dist/button-group/button-group.d.ts +4 -1
  179. package/dist/button-group/button-group.js +5 -3
  180. package/dist/button-group-ng/button-group-ng.js +1 -1
  181. package/dist/button-ng/button-ng.js +6 -31
  182. package/dist/code/code.js +1 -1
  183. package/dist/confirm/confirm.js +5 -5
  184. package/dist/confirm-ng/confirm-ng.js +1 -1
  185. package/dist/confirm-service/confirm-service.js +1 -1
  186. package/dist/data-list/data-list.js +2 -7
  187. package/dist/data-list/item.js +8 -13
  188. package/dist/data-list-ng/data-list-ng.js +2 -7
  189. package/dist/date-picker/date-input.js +4 -3
  190. package/dist/date-picker/date-picker.js +1 -1
  191. package/dist/date-picker/date-popup.js +1 -1
  192. package/dist/dialog/dialog.js +3 -3
  193. package/dist/dialog-ng/dialog-ng.js +3 -3
  194. package/dist/dialog-ng/dialog-ng__template.js +1 -0
  195. package/dist/docked-panel-ng/docked-panel-ng.js +1 -1
  196. package/dist/dropdown/anchor.js +1 -1
  197. package/dist/dropdown/dropdown.js +1 -1
  198. package/dist/dropdown-menu/dropdown-menu.js +1 -1
  199. package/dist/error-bubble/error-bubble.js +1 -1
  200. package/dist/global/controls-height.d.ts +7 -0
  201. package/dist/global/controls-height.js +13 -0
  202. package/dist/global/theme.d.ts +7 -20
  203. package/dist/global/theme.js +7 -62
  204. package/dist/global/variables.d.ts +10 -8
  205. package/dist/header/header.d.ts +7 -69
  206. package/dist/header/header.js +13 -17
  207. package/dist/header/profile.js +3 -3
  208. package/dist/header/services.d.ts +5 -0
  209. package/dist/header/services.js +11 -3
  210. package/dist/header/smart-profile.js +10 -14
  211. package/dist/header/smart-services.js +9 -13
  212. package/dist/header/tray-icon.d.ts +18 -575
  213. package/dist/header/tray-icon.js +4 -4
  214. package/dist/heading/heading.js +1 -1
  215. package/dist/input/input.d.ts +13 -17
  216. package/dist/input/input.js +32 -41
  217. package/dist/input-ng/input-ng.js +46 -49
  218. package/dist/island/adaptive-island-hoc.d.ts +2 -2
  219. package/dist/island/adaptive-island-hoc.js +4 -2
  220. package/dist/island/content.js +2 -9
  221. package/dist/island/header.js +7 -4
  222. package/dist/island/island.d.ts +2 -2
  223. package/dist/list/list.d.ts +1 -1
  224. package/dist/loader/loader__core.js +1 -1
  225. package/dist/loader-inline/loader-inline.d.ts +4 -41
  226. package/dist/loader-inline/loader-inline.js +3 -21
  227. package/dist/loader-inline-ng/loader-inline-ng.js +2 -30
  228. package/dist/login-dialog/login-dialog.js +2 -2
  229. package/dist/login-dialog/service.js +1 -1
  230. package/dist/markdown/code.d.ts +6 -13
  231. package/dist/markdown/code.js +3 -3
  232. package/dist/markdown/heading.d.ts +5 -9
  233. package/dist/markdown/heading.js +2 -2
  234. package/dist/markdown/link.d.ts +4 -8
  235. package/dist/markdown/link.js +1 -1
  236. package/dist/markdown/markdown.d.ts +2 -3
  237. package/dist/markdown/markdown.js +16 -16
  238. package/dist/message/message.d.ts +3 -0
  239. package/dist/message/message.js +18 -10
  240. package/dist/pager/pager.js +8 -12
  241. package/dist/pager-ng/pager-ng.js +3 -7
  242. package/dist/permissions-ng/permissions-ng.js +9 -9
  243. package/dist/popup/popup.js +1 -1
  244. package/dist/popup/popup.target.d.ts +1 -0
  245. package/dist/progress-bar/progress-bar.d.ts +0 -4
  246. package/dist/progress-bar/progress-bar.js +1 -7
  247. package/dist/progress-bar-ng/progress-bar-ng.js +0 -1
  248. package/dist/promised-click-ng/promised-click-ng.js +2 -2
  249. package/dist/query-assist/query-assist.d.ts +0 -5
  250. package/dist/query-assist/query-assist.js +10 -26
  251. package/dist/query-assist-ng/query-assist-ng.js +2 -7
  252. package/dist/save-field-ng/save-field-ng.js +2 -9
  253. package/dist/select/select.d.ts +4 -6
  254. package/dist/select/select.js +35 -58
  255. package/dist/select/select__filter.js +1 -1
  256. package/dist/select/select__popup.js +7 -13
  257. package/dist/select-ng/select-ng.js +5 -9
  258. package/dist/select-ng/select-ng__lazy.js +7 -11
  259. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +2 -2
  260. package/dist/sidebar-ng/sidebar-ng.js +2 -2
  261. package/dist/storage/storage.js +9 -7
  262. package/dist/storage/storage__local.js +9 -7
  263. package/dist/style.css +1 -1
  264. package/dist/tab-trap/tab-trap.js +1 -1
  265. package/dist/table/row-with-focus-sensor.js +1 -1
  266. package/dist/table/row.js +5 -5
  267. package/dist/table/smart-table.js +1 -1
  268. package/dist/table/table.js +1 -1
  269. package/dist/table-legacy-ng/table-legacy-ng.js +3 -7
  270. package/dist/table-legacy-ng/table-legacy-ng__pager.js +3 -7
  271. package/dist/table-ng/smart-table-ng.js +1 -1
  272. package/dist/table-ng/table-ng.js +1 -1
  273. package/dist/tabs/collapsible-more.js +1 -1
  274. package/dist/tabs/collapsible-tab.js +3 -2
  275. package/dist/tabs/collapsible-tabs.js +1 -1
  276. package/dist/tabs/dumb-tabs.d.ts +4 -107
  277. package/dist/tabs/dumb-tabs.js +6 -12
  278. package/dist/tabs/smart-tabs.js +3 -3
  279. package/dist/tabs/tab.d.ts +2 -0
  280. package/dist/tabs/tabs.js +1 -1
  281. package/dist/tabs-ng/tabs-ng.js +1 -6
  282. package/dist/tabs-ng/tabs-ng__template.js +1 -1
  283. package/dist/tag/tag.d.ts +1 -0
  284. package/dist/tag/tag.js +5 -4
  285. package/dist/tags-input/tags-input.js +5 -9
  286. package/dist/tags-input-ng/tags-input-ng.js +4 -8
  287. package/dist/tags-list/tags-list.js +1 -1
  288. package/dist/text/text.js +1 -1
  289. package/dist/toggle/toggle.d.ts +9 -89
  290. package/dist/toggle/toggle.js +7 -8
  291. package/dist/toggle-ng/toggle-ng.js +2 -3
  292. package/dist/tooltip/tooltip.d.ts +1 -0
  293. package/dist/tooltip/tooltip.js +6 -3
  294. package/dist/user-agreement/service.d.ts +2 -2
  295. package/dist/user-agreement/service.js +9 -13
  296. package/dist/user-agreement/user-agreement.js +8 -10
  297. package/dist/user-card/smart-user-card-tooltip.js +6 -11
  298. package/dist/user-card/tooltip.js +1 -1
  299. package/dist/user-card/user-card.js +2 -7
  300. package/dist/user-card-ng/user-card-ng.js +4 -9
  301. package/package.json +5 -5
  302. package/webpack.config.js +0 -11
  303. package/components/global/conic-gradient.d.ts +0 -796
  304. package/components/global/conic-gradient.js +0 -21
  305. package/components/global/radial-gradient-mask.d.ts +0 -9
  306. package/components/global/radial-gradient-mask.js +0 -39
  307. package/components/global/supports-css.d.ts +0 -2
  308. package/components/global/supports-css.js +0 -14
  309. package/components/global/variables_dark.d.ts +0 -3
  310. package/components/global/variables_dark.js +0 -53
  311. package/components/loader-inline/inject-styles.d.ts +0 -2
  312. package/components/loader-inline/inject-styles.js +0 -17
  313. package/dist/_helpers/inject-styles.js +0 -22
  314. package/dist/global/conic-gradient.d.ts +0 -796
  315. package/dist/global/conic-gradient.js +0 -35
  316. package/dist/global/radial-gradient-mask.d.ts +0 -9
  317. package/dist/global/radial-gradient-mask.js +0 -49
  318. package/dist/global/supports-css.d.ts +0 -2
  319. package/dist/global/supports-css.js +0 -20
  320. package/dist/global/variables_dark.d.ts +0 -3
  321. package/dist/global/variables_dark.js +0 -57
  322. package/dist/loader-inline/inject-styles.d.ts +0 -2
  323. package/dist/loader-inline/inject-styles.js +0 -11
@@ -2,174 +2,25 @@
2
2
 
3
3
  @value unit from "../global/global.css";
4
4
  @value button-shadow: inset 0 0 0 1px;
5
- @value height: calc(unit * 3);
5
+ @value height: var(--ring-button-height);
6
6
  @value loaderWidth: calc(unit * 8);
7
7
 
8
- :root {
9
- /* TODO: This colors are not ready to move to variables.css */
10
- /* stylelint-disable color-no-hex */
11
- --ring-button-primary-background-color: #1a98ff;
12
- --ring-button-primary-border-color: #0062b2;
13
- --ring-button-danger-active-color: #ffe7e8;
14
- --ring-button-danger-hover-color: var(--ring-icon-error-color);
15
- --ring-button-loader-background: #33a3ff;
16
- --ring-button-dark-icon-color: #80929d;
17
- --ring-button-dark-border-disabled-color: #333;
18
- --ring-button-dark-icon-disabled-color: var(--ring-dark-disabled-color);
19
- --ring-button-dark-danger-active-color: #26080a;
20
- --ring-button-dark-danger-hover-color: var(--ring-error-color);
21
- --ring-button-dark-active-color: #062640;
22
- --ring-button-dark-loader-background: #002039;
23
- /* stylelint-enable color-no-hex */
8
+ .heightS {
9
+ --ring-button-height: calc(unit * 3);
10
+ --ring-button-font-size: var(--ring-font-size-smaller);
24
11
  }
25
12
 
26
- .light {
27
- color: var(--ring-text-color);
28
- background-color: var(--ring-content-background-color);
29
- box-shadow: button-shadow var(--ring-borders-color);
30
-
31
- &:hover {
32
- box-shadow: button-shadow var(--ring-border-hover-color);
33
- }
34
-
35
- &:active,
36
- &.active {
37
- background-color: var(--ring-selected-background-color);
38
- box-shadow: button-shadow var(--ring-border-hover-color);
39
- }
40
-
41
- &:global(.focus-visible) {
42
- box-shadow: button-shadow var(--ring-border-hover-color), 0 0 0 1px var(--ring-border-hover-color);
43
- }
44
-
45
- &[disabled] {
46
- box-shadow: button-shadow var(--ring-border-disabled-color);
47
- }
48
-
49
- &[disabled],
50
- &[disabled].withIcon {
51
- color: var(--ring-disabled-color);
52
- }
53
-
54
- &[disabled] .icon {
55
- color: var(--ring-icon-disabled-color);
56
- }
57
-
58
- &.primary:active,
59
- &.primary.active {
60
- background-color: var(--ring-button-primary-background-color);
61
- box-shadow: button-shadow var(--ring-button-primary-border-color);
62
- }
63
-
64
- &.danger:active,
65
- &.danger.active {
66
- background-color: var(--ring-button-danger-active-color);
67
- }
68
-
69
- &.danger:active,
70
- &.danger.active,
71
- &.danger:global(.focus-visible) {
72
- box-shadow: button-shadow var(--ring-button-danger-hover-color);
73
- }
74
-
75
- &.withIcon {
76
- color: var(--ring-secondary-color);
77
- }
78
-
79
- & .loaderBackground::before {
80
- background-image:
81
- linear-gradient(
82
- to right,
83
- var(--ring-content-background-color),
84
- var(--ring-selected-background-color) 40%,
85
- var(--ring-content-background-color) 80%
86
- );
87
- }
88
- }
89
-
90
- .light.danger:hover {
91
- box-shadow: button-shadow var(--ring-button-danger-hover-color);
92
- }
93
-
94
- .dark {
95
- color: var(--ring-dark-secondary-color);
96
- background-color: var(--ring-navigation-background-color);
97
- box-shadow: button-shadow var(--ring-dark-borders-color);
98
-
99
- &:hover {
100
- box-shadow: button-shadow var(--ring-dark-border-hover-color);
101
- }
102
-
103
- &:active,
104
- &.active {
105
- color: var(--ring-dark-text-color);
106
- background-color: var(--ring-button-dark-active-color);
107
- box-shadow: button-shadow var(--ring-dark-border-hover-color);
108
- }
109
-
110
- &:global(.focus-visible) {
111
- box-shadow: button-shadow var(--ring-dark-border-hover-color), 0 0 0 1px var(--ring-dark-border-hover-color);
112
- }
113
-
114
- &[disabled] {
115
- box-shadow: button-shadow var(--ring-button-dark-border-disabled-color);
116
- }
117
-
118
- &[disabled],
119
- &[disabled].withIcon {
120
- color: var(--ring-dark-disabled-color);
121
- }
122
-
123
- &[disabled] .icon {
124
- color: var(--ring-button-dark-icon-disabled-color);
125
- }
126
-
127
- &.primary:active,
128
- &.primary.active {
129
- background-color: var(--ring-main-hover-color);
130
- box-shadow: button-shadow var(--ring-border-hover-color);
131
- }
132
-
133
- &.danger:active,
134
- &.danger.active {
135
- color: var(--ring-icon-error-color);
136
- background-color: var(--ring-button-dark-danger-active-color);
137
- }
138
-
139
- &.danger:active,
140
- &.danger.active,
141
- &.danger:global(.focus-visible) {
142
- box-shadow: button-shadow var(--ring-button-dark-danger-hover-color);
143
- }
144
-
145
- &.withIcon {
146
- color: var(--ring-dark-secondary-color);
147
- }
148
-
149
- & .loaderBackground::before {
150
- background-image:
151
- linear-gradient(
152
- to right,
153
- var(--ring-navigation-background-color),
154
- var(--ring-button-dark-loader-background) 40%,
155
- var(--ring-navigation-background-color) 80%
156
- );
157
- }
158
-
159
- & .dropdownIcon {
160
- color: var(--ring-dark-secondary-color);
161
- }
13
+ .heightM {
14
+ --ring-button-height: calc(unit * 3.5);
15
+ --ring-button-font-size: var(--ring-font-size);
162
16
  }
163
17
 
164
- .dark.danger:hover {
165
- box-shadow: button-shadow var(--ring-button-dark-danger-hover-color);
18
+ .heightL {
19
+ --ring-button-height: calc(unit * 4);
20
+ --ring-button-font-size: var(--ring-font-size);
166
21
  }
167
22
 
168
23
  .button {
169
- composes: button from "../button-group/button-group.css";
170
- composes: button from "../button-set/button-set.css";
171
- composes: button from "../button-toolbar/button-toolbar.css";
172
-
173
24
  position: relative;
174
25
 
175
26
  display: inline-block;
@@ -183,25 +34,62 @@
183
34
  transition: color var(--ring-ease), background-color var(--ring-ease), box-shadow var(--ring-ease);
184
35
  text-decoration: none;
185
36
 
37
+ color: var(--ring-text-color);
38
+
186
39
  border: 0;
187
40
  border-radius: var(--ring-border-radius);
188
41
  outline: 0;
42
+ background-color: var(--ring-content-background-color);
43
+ box-shadow: button-shadow var(--ring-borders-color);
189
44
 
190
45
  font-family: var(--ring-font-family);
191
- font-size: var(--ring-font-size-smaller);
46
+ font-size: var(--ring-button-font-size);
192
47
 
193
48
  line-height: height;
194
49
 
195
50
  &:hover {
196
51
  transition: none;
52
+
53
+ box-shadow: button-shadow var(--ring-border-hover-color);
54
+ }
55
+
56
+ &:active {
57
+ transition: none;
58
+
59
+ background-color: var(--ring-selected-background-color);
60
+ box-shadow: button-shadow var(--ring-border-hover-color);
197
61
  }
198
62
 
199
63
  &:global(.focus-visible) {
200
64
  transition: none;
65
+
66
+ box-shadow: button-shadow var(--ring-border-hover-color), 0 0 0 1px var(--ring-border-hover-color);
67
+ }
68
+
69
+ &.active {
70
+ transition: none;
71
+
72
+ box-shadow: button-shadow var(--ring-main-color);
73
+ }
74
+
75
+ &:global(.focus-visible).active {
76
+ box-shadow: button-shadow var(--ring-main-color), 0 0 0 1px var(--ring-border-hover-color);
201
77
  }
202
78
 
203
79
  &[disabled] {
204
80
  pointer-events: none;
81
+
82
+ background-color: var(--ring-disabled-background-color);
83
+ box-shadow: button-shadow var(--ring-border-disabled-color);
84
+ }
85
+
86
+ &[disabled],
87
+ &[disabled].withIcon {
88
+ color: var(--ring-disabled-color);
89
+ }
90
+
91
+ &[disabled] .icon {
92
+ color: var(--ring-icon-disabled-color);
205
93
  }
206
94
 
207
95
  &::-moz-focus-inner {
@@ -212,26 +100,37 @@
212
100
  }
213
101
  }
214
102
 
215
- .active {
216
- composes: active from "../button-group/button-group.css";
103
+ .withIcon {
104
+ color: var(--ring-secondary-color);
217
105
  }
218
106
 
219
107
  .primary {
220
- color: var(--ring-dark-text-color);
108
+ color: var(--ring-white-text-color);
221
109
  background-color: var(--ring-main-color);
222
110
  box-shadow: none;
223
111
 
112
+ &:hover {
113
+ transition: none;
114
+
115
+ background-color: var(--ring-main-hover-color);
116
+ box-shadow: none;
117
+ }
118
+
224
119
  &.withIcon,
225
120
  &.withIcon:active,
226
121
  &.withIcon.active {
227
122
  color: var(--ring-main-color);
228
123
  }
229
124
 
230
- &:global(.focus-visible) {
231
- transition: none;
125
+ &:global(.focus-visible),
126
+ &:active,
127
+ &.active {
128
+ background-color: var(--ring-button-primary-background-color);
129
+ }
232
130
 
233
- background-color: var(--ring-main-hover-color);
234
- box-shadow: none;
131
+ &:active,
132
+ &.active {
133
+ box-shadow: button-shadow var(--ring-button-primary-border-color);
235
134
  }
236
135
 
237
136
  &[disabled] {
@@ -240,7 +139,7 @@
240
139
  }
241
140
 
242
141
  &[disabled].loader {
243
- color: var(--ring-dark-text-color);
142
+ color: var(--ring-white-text-color);
244
143
  }
245
144
 
246
145
  & .loaderBackground {
@@ -263,13 +162,6 @@
263
162
  }
264
163
  }
265
164
 
266
- .primary:hover {
267
- transition: none;
268
-
269
- background-color: var(--ring-main-hover-color);
270
- box-shadow: none;
271
- }
272
-
273
165
  .danger {
274
166
  &,
275
167
  &.withIcon,
@@ -281,17 +173,21 @@
281
173
  color: var(--ring-error-color);
282
174
  }
283
175
 
176
+ &:active,
177
+ &.active {
178
+ background-color: var(--ring-button-danger-active-color);
179
+ }
180
+
181
+ &:active,
182
+ &.active,
284
183
  &:global(.focus-visible),
285
184
  &:hover {
286
- transition: none;
185
+ box-shadow: button-shadow var(--ring-button-danger-hover-color);
287
186
  }
288
- }
289
187
 
290
- .dark.danger {
291
- &,
292
- &:active,
293
- &.active {
294
- color: var(--ring-icon-error-color);
188
+ &:global(.focus-visible),
189
+ &:hover {
190
+ transition: none;
295
191
  }
296
192
  }
297
193
 
@@ -380,22 +276,14 @@
380
276
  }
381
277
  }
382
278
 
383
- .withNormalIconLight .icon {
279
+ .withNormalIcon .icon {
384
280
  transition: color var(--ring-ease);
385
281
 
386
282
  color: var(--ring-icon-color);
387
283
  }
388
284
 
389
- .withNormalIconDark .icon {
390
- transition: color var(--ring-ease);
391
-
392
- color: var(--ring-button-dark-icon-color);
393
- }
394
-
395
- .withNormalIconLight:active,
396
- .withNormalIconLight.active,
397
- .withNormalIconDark:active,
398
- .withNormalIconDark.active {
285
+ .withNormalIcon:active,
286
+ .withNormalIcon.active {
399
287
  color: var(--ring-main-color);
400
288
 
401
289
  & .icon {
@@ -405,25 +293,18 @@
405
293
  }
406
294
  }
407
295
 
408
- .withNormalIconLight:hover .icon,
409
- .withNormalIconDark:hover .icon,
410
- .withDangerIconLight:hover .icon,
411
- .withDangerIconDark:hover .icon {
296
+ .withNormalIcon:hover .icon,
297
+ .withDangerIcon:hover .icon {
412
298
  transition: none;
413
299
 
414
300
  color: inherit;
415
301
  }
416
302
 
417
- .withDangerIconLight .icon,
418
- .withDangerIconLight:active .icon {
303
+ .withDangerIcon .icon,
304
+ .withDangerIcon:active .icon {
419
305
  color: var(--ring-icon-error-color);
420
306
  }
421
307
 
422
- .withDangerIconDark .icon,
423
- .withDangerIconDark:active .icon {
424
- color: var(--ring-error-color);
425
- }
426
-
427
308
  .loader {
428
309
  position: relative;
429
310
  z-index: 0;
@@ -454,6 +335,14 @@
454
335
  content: "";
455
336
  animation: progress 1s linear infinite;
456
337
 
338
+ background-image:
339
+ linear-gradient(
340
+ to right,
341
+ var(--ring-content-background-color),
342
+ var(--ring-selected-background-color) 40%,
343
+ var(--ring-content-background-color) 80%
344
+ );
345
+
457
346
  background-repeat: repeat;
458
347
  background-size: loaderWidth;
459
348
  }
@@ -1,10 +1,11 @@
1
1
  import 'focus-visible';
2
- import React, { PureComponent, ButtonHTMLAttributes, ClassAttributes } from 'react';
2
+ import React, { PureComponent, ButtonHTMLAttributes } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { IconType, Size } from '../icon/icon';
5
- import Theme, { ThemeOuterProps, ThemeProps } from '../global/theme';
6
5
  import { ClickableLinkProps } from '../link/clickableLink';
7
- export interface ButtonBaseProps extends ThemeProps {
6
+ import { ControlsHeight } from '../global/controls-height';
7
+ export interface ButtonBaseProps {
8
+ height?: ControlsHeight | undefined;
8
9
  active?: boolean | null | undefined;
9
10
  danger?: boolean | null | undefined;
10
11
  delayed?: boolean | null | undefined;
@@ -36,7 +37,6 @@ export declare type ButtonProps = ButtonButtonProps | ButtonLinkProps;
36
37
  */
37
38
  export declare class Button extends PureComponent<ButtonProps> {
38
39
  static propTypes: {
39
- theme: PropTypes.Requireable<string>;
40
40
  active: PropTypes.Requireable<boolean>;
41
41
  danger: PropTypes.Requireable<boolean>;
42
42
  delayed: PropTypes.Requireable<boolean>;
@@ -57,12 +57,11 @@ export declare class Button extends PureComponent<ButtonProps> {
57
57
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
58
58
  };
59
59
  static IconSize: typeof Size;
60
- static Theme: typeof Theme;
60
+ static contextType: React.Context<ControlsHeight>;
61
61
  buttonRef: React.RefObject<HTMLButtonElement>;
62
62
  render(): JSX.Element;
63
63
  }
64
64
  export { Size as IconSize };
65
- export declare type ContainerProps<T> = Omit<T, keyof ThemeProps> & ThemeOuterProps & ClassAttributes<Button>;
65
+ export declare type ContainerProps<T extends ButtonProps> = JSX.LibraryManagedAttributes<typeof Button, T>;
66
66
  export declare type ButtonAttrs = ContainerProps<ButtonButtonProps> | ContainerProps<ButtonLinkProps>;
67
- declare const _default: React.ForwardRefExoticComponent<ButtonAttrs> & Pick<typeof Button, "Theme" | "IconSize">;
68
- export default _default;
67
+ export default Button;
@@ -4,8 +4,8 @@ import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
  import chevronDown from '@jetbrains/icons/chevron-10px';
6
6
  import Icon, { Size } from '../icon/icon';
7
- import Theme, { withTheme } from '../global/theme';
8
7
  import ClickableLink from '../link/clickableLink';
8
+ import { ControlsHeightContext } from '../global/controls-height';
9
9
  import styles from './button.css';
10
10
  import { getButtonClasses } from './button__classes';
11
11
  /**
@@ -16,7 +16,6 @@ import { getButtonClasses } from './button__classes';
16
16
  */
17
17
  export class Button extends PureComponent {
18
18
  static propTypes = {
19
- theme: PropTypes.oneOf(['light', 'dark']),
20
19
  active: PropTypes.bool,
21
20
  danger: PropTypes.bool,
22
21
  delayed: PropTypes.bool,
@@ -37,16 +36,16 @@ export class Button extends PureComponent {
37
36
  onClick: PropTypes.func
38
37
  };
39
38
  static IconSize = Size;
40
- static Theme = Theme;
39
+ static contextType = ControlsHeightContext;
41
40
  buttonRef = createRef();
42
41
  render() {
43
42
  const {
44
43
  // Modifiers
45
- theme, active, danger, delayed, loader, primary, short, text, inline, dropdown,
44
+ active, danger, delayed, loader, primary, short, text, inline, dropdown, height = this.context,
46
45
  // Props
47
46
  icon, iconSize, iconClassName, iconSuppressSizeWarning, className, children, ...props } = this.props;
48
- const classes = getButtonClasses({ className, active, danger, delayed, icon, theme, loader,
49
- primary, short, text, inline });
47
+ const classes = getButtonClasses({ className, active, danger, delayed, icon, loader,
48
+ primary, short, text, inline, height });
50
49
  const content = (<span className={styles.content}>
51
50
  {icon && (<span className={classNames(styles.icon, iconClassName)}>
52
51
  <Icon glyph={icon} size={iconSize} loading={loader} suppressSizeWarning={iconSuppressSizeWarning}/>
@@ -69,5 +68,4 @@ export class Button extends PureComponent {
69
68
  }
70
69
  }
71
70
  export { Size as IconSize };
72
- const ThemedButton = withTheme()(Button);
73
- export default ThemedButton;
71
+ export default Button;
@@ -1,2 +1,2 @@
1
1
  import { ButtonProps } from './button';
2
- export declare function getButtonClasses({ className, active, disabled, loader, primary, short, text, inline, danger, delayed, icon, theme }: ButtonProps): string;
2
+ export declare function getButtonClasses({ className, active, disabled, loader, primary, short, text, inline, danger, delayed, icon, height }: ButtonProps): string;
@@ -1,17 +1,14 @@
1
1
  import classNames from 'classnames';
2
- import Theme from '../global/theme';
3
2
  import styles from './button.css';
4
- export function getButtonClasses({ className, active, disabled, loader, primary, short, text, inline, danger, delayed, icon, theme }) {
3
+ export function getButtonClasses({ className, active, disabled, loader, primary, short, text, inline, danger, delayed, icon, height }) {
5
4
  const withNormalIcon = icon && !active && !danger && !primary && !disabled;
6
- return classNames(styles.button, className, styles[theme], {
5
+ return classNames(styles.button, className, styles[`height${height}`], {
7
6
  [styles.active]: active,
8
7
  [styles.danger]: danger,
9
8
  [styles.delayed]: delayed,
10
9
  [styles.withIcon]: icon,
11
- [styles.withNormalIconLight]: (withNormalIcon && theme === Theme.LIGHT),
12
- [styles.withNormalIconDark]: (withNormalIcon && theme === Theme.DARK),
13
- [styles.withDangerIconLight]: (icon && danger && theme === Theme.LIGHT),
14
- [styles.withDangerIconDark]: (icon && danger && theme === Theme.DARK),
10
+ [styles.withNormalIcon]: withNormalIcon,
11
+ [styles.withDangerIcon]: icon && danger,
15
12
  [styles.loader]: loader && !icon,
16
13
  [styles.primary]: primary,
17
14
  [styles.short]: short,