@jetbrains/ring-ui 7.0.15 → 7.0.16

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 (70) hide show
  1. package/README.md +7 -8
  2. package/components/alert/alert.css +1 -1
  3. package/components/auth-dialog-service/auth-dialog-service.d.ts +1 -1
  4. package/components/avatar/avatar.d.ts +1 -1
  5. package/components/button/button.css +152 -142
  6. package/components/button/button.d.ts +5 -1
  7. package/components/button/button.js +3 -3
  8. package/components/button/button__classes.d.ts +1 -1
  9. package/components/button/button__classes.js +6 -3
  10. package/components/button-group/button-group.css +11 -9
  11. package/components/button-group/button-group.js +4 -2
  12. package/components/checkbox/checkbox.css +1 -1
  13. package/components/confirm/confirm.d.ts +1 -1
  14. package/components/contenteditable/contenteditable.d.ts +1 -1
  15. package/components/data-list/data-list.css +1 -1
  16. package/components/date-picker/date-picker.css +2 -2
  17. package/components/date-picker/date-picker.d.ts +1 -1
  18. package/components/dialog/dialog.css +4 -20
  19. package/components/dialog/dialog.d.ts +1 -1
  20. package/components/dropdown/dropdown.d.ts +4 -2
  21. package/components/dropdown-menu/dropdown-menu.d.ts +7 -5
  22. package/components/dropdown-menu/dropdown-menu.js +19 -3
  23. package/components/editable-heading/editable-heading.css +1 -1
  24. package/components/error-message/error-message.css +1 -1
  25. package/components/global/focus-sensor-hoc.d.ts +1 -1
  26. package/components/global/variables.css +32 -20
  27. package/components/global/variables_dark.css +27 -15
  28. package/components/header/header.d.ts +1 -1
  29. package/components/header/profile.d.ts +2 -2
  30. package/components/icon/icon.css +4 -4
  31. package/components/icon/icon.d.ts +1 -1
  32. package/components/input/input-legacy.css +2 -2
  33. package/components/input/input.css +3 -3
  34. package/components/input/input.d.ts +1 -1
  35. package/components/link/link.css +1 -0
  36. package/components/list/list.css +1 -1
  37. package/components/list/list.d.ts +1 -1
  38. package/components/loader-inline/loader-inline.d.ts +1 -1
  39. package/components/login-dialog/login-dialog.d.ts +1 -1
  40. package/components/message/message.d.ts +1 -1
  41. package/components/pager/pager.d.ts +1 -1
  42. package/components/popup/popup.d.ts +2 -2
  43. package/components/popup-menu/popup-menu.d.ts +1 -1
  44. package/components/progress-bar/progress-bar.d.ts +1 -1
  45. package/components/query-assist/query-assist.css +4 -4
  46. package/components/query-assist/query-assist.d.ts +1 -1
  47. package/components/select/select-popup.css +1 -1
  48. package/components/select/select.css +1 -1
  49. package/components/select/select.d.ts +3 -3
  50. package/components/select/select__popup.d.ts +1 -1
  51. package/components/sidebar/sidebar.css +2 -2
  52. package/components/table/header.d.ts +1 -1
  53. package/components/table/row.d.ts +1 -1
  54. package/components/tabs/dumb-tabs.d.ts +2 -1
  55. package/components/tabs/tabs.css +2 -0
  56. package/components/tag/tag.css +2 -2
  57. package/components/tag/tag.d.ts +1 -1
  58. package/components/tag/tag.js +1 -1
  59. package/components/tags-input/tags-input.d.ts +1 -1
  60. package/components/tags-list/tags-list.d.ts +1 -1
  61. package/components/toggle/toggle.d.ts +1 -1
  62. package/components/tooltip/tooltip.d.ts +1 -1
  63. package/components/upload/upload.css +87 -0
  64. package/components/upload/upload.d.ts +19 -0
  65. package/components/upload/upload.js +38 -0
  66. package/components/user-agreement/user-agreement.d.ts +1 -1
  67. package/components/user-card/card.d.ts +1 -1
  68. package/components/user-card/tooltip.d.ts +1 -1
  69. package/components/user-card/user-card.css +3 -3
  70. package/package.json +16 -16
package/README.md CHANGED
@@ -3,6 +3,13 @@
3
3
 
4
4
  [![official JetBrains project](https://jb.gg/badges/official-flat-square.svg)](https://github.com/JetBrains#jetbrains-on-github)
5
5
 
6
+ - [Design guildelines](https://www.jetbrains.com/help/ring-ui/welcome.html)
7
+ - [Usage examples in Storybook][docsite]
8
+ - [GitHub repository](https://github.com/JetBrains/ring-ui)
9
+ - [Issues in YouTrack](https://youtrack.jetbrains.com/issues/RG)
10
+ - [Builds in TeamCity][ci-project]
11
+ - [npm package][npm-package]
12
+
6
13
  This collection of UI components aims to provide all the necessary building blocks for web-based products built inside JetBrains, as well as third-party plugins developed for JetBrains' products.
7
14
 
8
15
  ## Try now
@@ -84,14 +91,6 @@ in a same build process, you can use the following configuration:
84
91
 
85
92
  See [CONTRIBUTING.md](./CONTRIBUTING.md)
86
93
 
87
- ## Links
88
-
89
- - [Living style guide][docsite]
90
- - [GitHub repository](https://github.com/JetBrains/ring-ui)
91
- - [Issues in YouTrack](https://youtrack.jetbrains.com/issues/RG)
92
- - [Builds in TeamCity][ci-project]
93
- - [npm package][npm-package]
94
-
95
94
  [docsite]: https://jetbrains.github.io/ring-ui
96
95
  [ci-project]: https://teamcity.jetbrains.com/project.html?projectId=JetBrainsUi_RingUi&tab=projectOverview
97
96
  [ci-bt]: https://teamcity.jetbrains.com/viewType.html?buildTypeId=JetBrainsUi_RingUi_GeminiTests&tab=buildTypeStatusDiv
@@ -36,7 +36,7 @@
36
36
  .error {
37
37
  word-wrap: break-word;
38
38
 
39
- color: var(--ring-icon-error-color);
39
+ color: var(--ring-error-color);
40
40
  }
41
41
 
42
42
  .icon {
@@ -1,5 +1,5 @@
1
1
  import AuthDialog, { AuthDialogProps } from '../auth-dialog/auth-dialog';
2
2
  export declare const reactRoot: import("react-dom/client").Root;
3
- type AuthDialogAttributes = JSX.LibraryManagedAttributes<typeof AuthDialog, AuthDialogProps>;
3
+ type AuthDialogAttributes = React.JSX.LibraryManagedAttributes<typeof AuthDialog, AuthDialogProps>;
4
4
  export default function showAuthDialog(props?: AuthDialogAttributes): () => void;
5
5
  export {};
@@ -36,4 +36,4 @@ export default class Avatar extends PureComponent<AvatarProps> {
36
36
  handleSuccess: () => void;
37
37
  render(): import("react/jsx-runtime").JSX.Element;
38
38
  }
39
- export type AvatarAttrs = JSX.LibraryManagedAttributes<typeof Avatar, AvatarProps>;
39
+ export type AvatarAttrs = React.JSX.LibraryManagedAttributes<typeof Avatar, AvatarProps>;
@@ -6,11 +6,14 @@
6
6
  --ring-button-focus-border-color: var(--ring-border-hover-color);
7
7
  --ring-button-shadow: inset 0 0 0 1px;
8
8
  --ring-button-loader-width: calc(var(--ring-unit) * 8);
9
- --ring-button-flat-disabled-color: var(--ring-white-text-color);
9
+ --ring-button-disabled-text-color: var(--ring-disabled-color);
10
+ --ring-button-loader-components: var(--ring-main-components);
11
+ --ring-button-white-text-disabled-color: var(--ring-white-text-color);
12
+ --ring-button-icon-line-height: calc(var(--ring-unit) * 2);
10
13
  }
11
14
 
12
15
  :global(.ring-ui-theme-dark) {
13
- --ring-button-flat-disabled-color: var(--ring-icon-color);
16
+ --ring-button-white-text-disabled-color: var(--ring-disabled-color);
14
17
  }
15
18
 
16
19
 
@@ -19,7 +22,6 @@
19
22
  --ring-button-padding-block: calc(var(--ring-unit) * 0.5);
20
23
  --ring-button-font-size: var(--ring-font-size-smaller);
21
24
  --ring-button-line-height: var(--ring-line-height-lowest);
22
- --ring-button-icon-line-height: calc(var(--ring-unit) * 1.5);
23
25
  }
24
26
 
25
27
  .heightM {
@@ -27,7 +29,6 @@
27
29
  --ring-button-padding-block: calc(var(--ring-unit) * 0.5);
28
30
  --ring-button-font-size: var(--ring-font-size);
29
31
  --ring-button-line-height: var(--ring-line-height);
30
- --ring-button-icon-line-height: calc(var(--ring-unit) * 2);
31
32
  }
32
33
 
33
34
  .heightL {
@@ -35,10 +36,16 @@
35
36
  --ring-button-padding-block: calc(var(--ring-unit) * 0.75);
36
37
  --ring-button-font-size: var(--ring-font-size);
37
38
  --ring-button-line-height: var(--ring-line-height);
38
- --ring-button-icon-line-height: calc(var(--ring-unit) * 2);
39
39
  }
40
40
 
41
41
  .button {
42
+ --ring-button-default-background-color: var(--ring-content-background-color);
43
+ --ring-button-background-color: var(--ring-button-default-background-color);
44
+ --ring-button-hover-background-color: var(--ring-content-background-color);
45
+ --ring-button-pressed-background-color: var(--ring-selected-background-color);
46
+ --ring-button-active-background-color: var(--ring-hover-background-color);
47
+ --ring-button-disabled-background-color: var(--ring-content-background-color);
48
+
42
49
  box-sizing: border-box;
43
50
  margin: 0;
44
51
 
@@ -50,10 +57,14 @@
50
57
  white-space: nowrap;
51
58
  text-decoration: none;
52
59
 
60
+ color: var(--ring-button-text-color);
61
+
53
62
  border: 0;
54
63
  border-radius: var(--ring-border-radius);
55
64
  outline: 0;
56
65
 
66
+ background-color: var(--ring-button-background-color);
67
+
57
68
  font-family: var(--ring-font-family), sans-serif;
58
69
 
59
70
  &:hover,
@@ -71,8 +82,13 @@
71
82
  }
72
83
 
73
84
  .block {
74
- --ring-button-background-color: var(--ring-content-background-color);
75
- --ring-button-border-color: var(--ring-borders-color);
85
+ --ring-button-default-border-color: var(--ring-borders-color);
86
+ --ring-button-border-color: var(--ring-button-default-border-color);
87
+ --ring-button-hover-border-color: var(--ring-border-hover-color);
88
+ --ring-button-pressed-border-color: var(--ring-border-hover-color);
89
+ --ring-button-active-border-color: var(--ring-main-color);
90
+ --ring-button-disabled-border-color: var(--ring-border-disabled-color);
91
+ --ring-button-text-color: var(--ring-text-color);
76
92
  --ring-button-padding-inline: calc(var(--ring-unit) * 2);
77
93
 
78
94
  display: inline-block;
@@ -80,21 +96,19 @@
80
96
  height: var(--ring-button-height);
81
97
  padding: var(--ring-button-padding-block) var(--ring-button-padding-inline);
82
98
 
83
- color: var(--ring-text-color);
84
-
85
- background-color: var(--ring-button-background-color);
86
99
  box-shadow: var(--ring-button-shadow) var(--ring-button-border-color);
87
100
 
88
101
  font-size: var(--ring-button-font-size);
89
102
  line-height: var(--ring-button-line-height);
90
103
 
91
104
  &:hover {
92
- --ring-button-border-color: var(--ring-border-hover-color);
105
+ --ring-button-background-color: var(--ring-button-hover-background-color);
106
+ --ring-button-border-color: var(--ring-button-hover-border-color);
93
107
  }
94
108
 
95
109
  &:active {
96
- --ring-button-background-color: var(--ring-selected-background-color);
97
- --ring-button-border-color: var(--ring-border-hover-color);
110
+ --ring-button-background-color: var(--ring-button-pressed-background-color);
111
+ --ring-button-border-color: var(--ring-button-pressed-border-color);
98
112
  }
99
113
 
100
114
  &:focus-visible {
@@ -102,17 +116,21 @@
102
116
  var(--ring-button-shadow) var(--ring-button-focus-border-color),
103
117
  0 0 0 1px var(--ring-button-focus-border-color);
104
118
  }
119
+
120
+ &.heightS {
121
+ --ring-button-icon-line-height: calc(var(--ring-unit) * 1.5);
122
+ }
105
123
  }
106
124
 
107
125
  .inline {
126
+ --ring-button-text-color: var(--ring-action-link-color);
127
+ --ring-button-background-color: transparent;
128
+
108
129
  display: inline;
109
130
 
110
131
  margin: 0;
111
132
  padding: 0;
112
133
 
113
- color: var(--ring-action-link-color);
114
- background: transparent;
115
-
116
134
  font-size: inherit;
117
135
  line-height: inherit;
118
136
 
@@ -124,10 +142,6 @@
124
142
  .icon {
125
143
  margin-right: calc(var(--ring-unit) * 0.5);
126
144
 
127
- transition: color var(--ring-ease);
128
-
129
- color: inherit;
130
-
131
145
  line-height: var(--ring-button-icon-line-height);
132
146
  }
133
147
 
@@ -135,130 +149,145 @@
135
149
  margin-top: -1px;
136
150
  }
137
151
 
138
- .inline .icon {
139
- color: var(--ring-main-color);
140
- }
141
-
142
- .withNormalIcon .icon {
143
- color: var(--ring-icon-color);
152
+ .withNormalIcon {
153
+ --ring-button-text-color: var(--ring-secondary-color);
144
154
  }
145
155
 
146
156
  .inline {
147
157
  &:hover,
148
158
  &:active,
149
159
  &.active {
150
- color: var(--ring-link-hover-color);
151
-
152
- & .icon {
153
- color: inherit;
154
- }
160
+ --ring-button-text-color: var(--ring-link-hover-color);
155
161
  }
156
162
  }
157
163
 
158
- .active.block {
159
- --ring-button-background-color: var(--ring-hover-background-color);
160
- --ring-button-border-color: var(--ring-main-color);
164
+ .active {
165
+ --ring-button-disabled-background-color: var(--ring-hover-background-color);
166
+ --ring-button-disabled-border-color: var(--ring-border-disabled-active-color);
161
167
 
162
168
  transition: none;
163
169
  }
164
170
 
165
- .danger {
166
- --ring-button-focus-border-color: var(--ring-button-danger-hover-color);
167
-
168
- color: var(--ring-error-color);
169
-
170
- &:active,
171
- &.active {
172
- --ring-button-background-color: var(--ring-button-danger-active-color);
173
- }
174
-
175
- &:active,
176
- &.active,
177
- &:hover {
178
- --ring-button-border-color: var(--ring-button-danger-hover-color);
179
- }
171
+ .active.block {
172
+ --ring-button-background-color: var(--ring-button-active-background-color);
173
+ --ring-button-border-color: var(--ring-button-active-border-color);
180
174
  }
181
175
 
182
176
  .disabled {
183
177
  cursor: auto;
184
178
 
185
- &,
186
- &:hover,
187
- &:active {
188
- --ring-button-background-color: var(--ring-disabled-background-color);
189
- --ring-button-border-color: var(--ring-border-disabled-color);
179
+ color: var(--ring-button-disabled-text-color);
180
+ background-color: var(--ring-button-disabled-background-color);
181
+ box-shadow: var(--ring-button-shadow) var(--ring-button-disabled-border-color);
182
+ }
190
183
 
191
- color: var(--ring-disabled-color);
184
+ .danger {
185
+ --ring-button-pressed-background-color: var(--ring-button-danger-active-color);
186
+ --ring-button-active-background-color: var(--ring-button-danger-active-color);
187
+ --ring-button-focus-border-color: var(--ring-removed-background-color);
188
+ --ring-button-hover-border-color: var(--ring-button-danger-hover-color);
189
+ --ring-button-pressed-border-color: var(--ring-button-danger-hover-color);
190
+ --ring-button-active-border-color: var(--ring-button-danger-hover-color);
191
+ --ring-button-text-color: var(--ring-error-color);
192
+ --ring-button-disabled-text-color: var(--ring-removed-background-color);
193
+ --ring-button-loader-components: var(--ring-main-error-components);
194
+ }
192
195
 
193
- & .icon {
194
- color: var(--ring-icon-disabled-color);
195
- }
196
- }
196
+ .flat {
197
+ --ring-button-default-border-color: transparent;
198
+ --ring-button-hover-border-color: transparent;
199
+ --ring-button-pressed-border-color: transparent;
200
+ --ring-button-active-border-color: transparent;
201
+ --ring-button-disabled-border-color: transparent;
202
+ }
197
203
 
198
- &.active {
199
- --ring-button-background-color: var(--ring-disabled-selected-background-color);
200
- --ring-button-border-color: var(--ring-border-selected-disabled-color);
201
- }
204
+ .whiteText {
205
+ --ring-button-text-color: var(--ring-white-text-color);
206
+ --ring-button-disabled-text-color: var(--ring-button-white-text-disabled-color);
207
+ --ring-button-loader-components: var(--ring-white-text-components);
202
208
  }
203
209
 
204
210
  .primaryBlock {
205
- --ring-button-background-color: var(--ring-main-color);
206
- --ring-button-border-color: transparent;
211
+ --ring-button-default-background-color: var(--ring-button-primary-background-color);
212
+ --ring-button-hover-background-color: var(--ring-main-hover-color);
213
+ --ring-button-pressed-background-color: var(--ring-button-primary-background-color);
214
+ --ring-button-active-background-color: var(--ring-button-primary-background-color);
215
+ --ring-button-disabled-background-color: var(--ring-border-disabled-active-color);
216
+ --ring-button-pressed-border-color: var(--ring-button-primary-border-color);
217
+ --ring-button-active-border-color: var(--ring-button-primary-border-color);
218
+
219
+ composes: flat;
220
+ composes: whiteText;
221
+ }
207
222
 
208
- color: var(--ring-white-text-color);
223
+ .success {
224
+ --ring-button-default-background-color: var(--ring-main-success-color);
225
+ --ring-button-hover-background-color: var(--ring-main-success-hover-color);
226
+ --ring-button-pressed-background-color: var(--ring-main-success-hover-color);
227
+ --ring-button-active-background-color: var(--ring-main-success-hover-color);
228
+ --ring-button-disabled-background-color: var(--ring-added-background-color);
229
+ --ring-button-focus-border-color: var(--ring-border-hover-success-color);
230
+ --ring-button-pressed-border-color: var(--ring-success-color);
231
+ --ring-button-active-border-color: var(--ring-success-color);
209
232
 
210
- &:hover {
211
- --ring-button-background-color: var(--ring-main-hover-color);
212
- --ring-button-border-color: transparent;
213
- }
214
233
 
215
- &:focus-visible,
216
- &:active,
217
- &.active {
218
- --ring-button-background-color: var(--ring-button-primary-background-color);
219
- }
234
+ composes: flat;
235
+ composes: whiteText;
236
+ }
220
237
 
221
- &:active,
222
- &.active {
223
- --ring-button-border-color: var(--ring-button-primary-border-color);
224
- }
238
+ .error {
239
+ --ring-button-default-background-color: var(--ring-main-error-color);
240
+ --ring-button-hover-background-color: var(--ring-main-error-hover-color);
241
+ --ring-button-pressed-background-color: var(--ring-main-error-hover-color);
242
+ --ring-button-active-background-color: var(--ring-main-error-hover-color);
243
+ --ring-button-disabled-background-color: var(--ring-removed-background-color);
244
+ --ring-button-focus-border-color: var(--ring-border-hover-error-color);
245
+ --ring-button-pressed-border-color: var(--ring-error-color);
246
+ --ring-button-active-border-color: var(--ring-error-color);
247
+
248
+ composes: flat;
249
+ composes: whiteText;
250
+ }
225
251
 
226
- &.disabled {
227
- --ring-button-background-color: var(--ring-border-disabled-active-color);
228
- --ring-button-border-color: transparent;
252
+ .secondary {
253
+ --ring-button-default-background-color: var(--ring-tag-background-color);
254
+ --ring-button-hover-background-color: var(--ring-tag-hover-background-color);
255
+ --ring-button-disabled-background-color: var(--ring-disabled-background-color);
256
+ --ring-button-loader-components: var(--ring-secondary-components);
229
257
 
230
- color: var(--ring-button-flat-disabled-color);
258
+ composes: flat;
259
+ }
231
260
 
232
- & .icon {
233
- color: var(--ring-button-flat-disabled-color);
234
- }
235
- }
261
+ .ghost {
262
+ --ring-button-hover-background-color: var(--ring-tag-hover-background-color);
263
+ --ring-button-text-color: var(--ring-secondary-color);
236
264
 
237
- &.loader {
238
- color: var(--ring-white-text-color);
239
- }
265
+ composes: flat;
240
266
 
241
- & .loaderBackground {
242
- top: 0;
243
- right: 0;
244
- bottom: 0;
245
- left: 0;
267
+ &.inline {
268
+ &:hover {
269
+ --ring-button-background-color: var(--ring-tag-background-color);
270
+ }
246
271
 
247
- border-radius: var(--ring-border-radius);
248
- background-color: var(--ring-main-color);
249
-
250
- &::before {
251
- background-image: linear-gradient(
252
- to right,
253
- transparent,
254
- var(--ring-button-loader-background) 40%,
255
- transparent 80%
256
- );
272
+ &:active {
273
+ --ring-button-background-color: var(--ring-button-pressed-background-color);
274
+ }
275
+
276
+ &.active {
277
+ --ring-button-background-color: var(--ring-button-active-background-color);
257
278
  }
258
279
  }
280
+
281
+ &.block {
282
+ --ring-button-loader-components: var(--ring-secondary-components);
283
+ }
259
284
  }
260
285
 
261
286
  .iconOnly {
287
+ &.inline {
288
+ line-height: var(--ring-button-icon-line-height);
289
+ }
290
+
262
291
  &.heightS {
263
292
  --ring-button-padding-block: calc(var(--ring-unit) * 0.75);
264
293
  --ring-button-padding-inline: calc(var(--ring-unit) * 0.75);
@@ -287,27 +316,17 @@
287
316
  }
288
317
  }
289
318
 
290
- .danger .icon {
291
- color: var(--ring-icon-error-color);
292
- }
293
-
294
319
  .loader {
295
320
  position: relative;
296
321
  z-index: 0;
297
322
 
298
323
  cursor: auto;
299
324
 
300
- background-color: transparent;
301
-
302
- &:hover {
303
- --ring-button-border-color: var(--ring-borders-color);
304
- }
325
+ background-color: var(--ring-button-default-background-color);
305
326
  }
306
327
 
307
- .loader.inline {
308
- animation-name: text-loading;
309
- animation-duration: 1200ms;
310
- animation-iteration-count: infinite;
328
+ .loader.block {
329
+ box-shadow: var(--ring-button-shadow) var(--ring-button-default-border-color);
311
330
  }
312
331
 
313
332
  .loaderBackground {
@@ -320,7 +339,8 @@
320
339
 
321
340
  overflow: hidden;
322
341
 
323
- border-radius: var(--ring-border-radius-small);
342
+ border-radius: calc(var(--ring-border-radius) - 1px);
343
+ background-color: var(--ring-button-default-background-color);
324
344
 
325
345
  &::before {
326
346
  display: block;
@@ -333,9 +353,9 @@
333
353
 
334
354
  background-image: linear-gradient(
335
355
  to right,
336
- var(--ring-content-background-color),
337
- var(--ring-selected-background-color) 40%,
338
- var(--ring-content-background-color) 80%
356
+ transparent,
357
+ rgba(var(--ring-button-loader-components), 0.4) 40%,
358
+ transparent 80%
339
359
  );
340
360
 
341
361
  background-repeat: repeat;
@@ -343,6 +363,16 @@
343
363
  }
344
364
  }
345
365
 
366
+ .flat .loaderBackground,
367
+ .inline .loaderBackground {
368
+ top: 0;
369
+ right: 0;
370
+ bottom: 0;
371
+ left: 0;
372
+
373
+ border-radius: var(--ring-border-radius);
374
+ }
375
+
346
376
  .delayed::after {
347
377
  content: "…";
348
378
  }
@@ -358,29 +388,15 @@
358
388
  margin-top: -1px;
359
389
  margin-right: calc(var(--ring-unit) * -0.5);
360
390
  margin-left: 2px;
361
-
362
- transition: color var(--ring-ease);
363
-
364
- color: var(--ring-icon-secondary-color);
365
391
  }
366
392
 
367
393
  .inline & .glyph {
368
394
  vertical-align: -2px;
369
395
  }
370
396
 
371
- .primary & {
372
- color: unset;
373
- }
374
-
375
397
  line-height: var(--ring-button-icon-line-height);
376
398
  }
377
399
 
378
- .block:hover .dropdownIcon {
379
- transition: none;
380
-
381
- color: var(--ring-main-color);
382
- }
383
-
384
400
  @keyframes progress {
385
401
  from {
386
402
  transform: translateX(-64px); /* must be in Sync with loaderWidth, but CSS var doesn't work due to RG-2438 */
@@ -390,9 +406,3 @@
390
406
  transform: translateX(0);
391
407
  }
392
408
  }
393
-
394
- @keyframes text-loading {
395
- 50% {
396
- opacity: 0.5;
397
- }
398
- }
@@ -10,6 +10,10 @@ export interface ButtonBaseProps {
10
10
  delayed?: boolean | null | undefined;
11
11
  loader?: boolean | null | undefined;
12
12
  primary?: boolean | null | undefined;
13
+ success?: boolean | null | undefined;
14
+ error?: boolean | null | undefined;
15
+ secondary?: boolean | null | undefined;
16
+ ghost?: boolean | null | undefined;
13
17
  short?: boolean | null | undefined;
14
18
  /**
15
19
  * @deprecated Use inline instead
@@ -45,6 +49,6 @@ export declare class Button extends PureComponent<ButtonProps> {
45
49
  render(): import("react/jsx-runtime").JSX.Element;
46
50
  }
47
51
  export { Size as IconSize };
48
- export type ContainerProps<T extends ButtonProps> = JSX.LibraryManagedAttributes<typeof Button, T>;
52
+ export type ContainerProps<T extends ButtonProps> = React.JSX.LibraryManagedAttributes<typeof Button, T>;
49
53
  export type ButtonAttrs = ContainerProps<ButtonButtonProps> | ContainerProps<ButtonLinkProps>;
50
54
  export default Button;
@@ -23,7 +23,7 @@ export class Button extends PureComponent {
23
23
  render() {
24
24
  const {
25
25
  // Modifiers
26
- active, danger, delayed, loader, primary, short, text, dropdown, height,
26
+ active, danger, delayed, loader, primary, success, error, secondary, ghost, short, text, dropdown, height,
27
27
  // Props
28
28
  icon, iconSize, iconClassName, iconSuppressSizeWarning, className, children, inline, ...props } = this.props;
29
29
  const isInline = inline ?? text ?? icon != null;
@@ -35,12 +35,12 @@ export class Button extends PureComponent {
35
35
  inline: isInline,
36
36
  height: height ?? this.context,
37
37
  });
38
- const content = (_jsxs(_Fragment, { children: [icon && (_jsx(Icon, { className: classNames(styles.icon, iconClassName), glyph: icon, size: iconSize, loading: loader && isInline, suppressSizeWarning: iconSuppressSizeWarning })), children, dropdown && _jsx(Icon, { glyph: isInline ? chevron12pxDown : chevronDown, className: styles.dropdownIcon })] }));
38
+ const content = (_jsxs(_Fragment, { children: [icon && (_jsx(Icon, { className: classNames(styles.icon, iconClassName), glyph: icon, size: iconSize, suppressSizeWarning: iconSuppressSizeWarning })), children, dropdown && _jsx(Icon, { glyph: isInline ? chevron12pxDown : chevronDown, className: styles.dropdownIcon })] }));
39
39
  const commonProps = {
40
40
  tabIndex: loader ? -1 : 0,
41
41
  ...props,
42
42
  className: classes,
43
- children: (_jsxs(_Fragment, { children: [loader && !isInline && _jsx("div", { className: styles.loaderBackground }), content] })),
43
+ children: (_jsxs(_Fragment, { children: [loader && _jsx("div", { className: styles.loaderBackground }), content] })),
44
44
  };
45
45
  return commonProps.href != null ? (_jsx(ClickableLink, { ...commonProps })) : (_jsx("button", { ref: this.buttonRef, type: "button", ...commonProps }));
46
46
  }
@@ -1,2 +1,2 @@
1
1
  import { ButtonProps } from './button';
2
- export declare function getButtonClasses({ className, active, disabled, loader, primary, short, inline, danger, delayed, icon, height, children, }: ButtonProps): string;
2
+ export declare function getButtonClasses({ className, active, disabled, loader, primary, success, error, secondary, ghost, short, inline, danger, delayed, icon, height, children, }: ButtonProps): string;
@@ -1,17 +1,20 @@
1
1
  import classNames from 'classnames';
2
2
  import styles from './button.css';
3
- export function getButtonClasses({ className, active, disabled, loader, primary, short, inline, danger, delayed, icon, height, children, }) {
3
+ export function getButtonClasses({ className, active, disabled, loader, primary, success, error, secondary, ghost, short, inline, danger, delayed, icon, height, children, }) {
4
4
  const iconOnly = icon && !children;
5
5
  const primaryBlock = primary && !inline;
6
- const withNormalIcon = icon && !active && !danger && !primary && !disabled && (!inline || iconOnly);
6
+ const withNormalIcon = iconOnly && inline && !active && !danger && !primary && !disabled;
7
7
  return classNames(styles.button, className, styles[`height${height}`], inline ? styles.inline : styles.block, {
8
8
  [styles.active]: active,
9
9
  [styles.danger]: danger,
10
10
  [styles.delayed]: delayed,
11
11
  [styles.withNormalIcon]: withNormalIcon,
12
12
  [styles.loader]: loader,
13
- [styles.primary]: primary,
14
13
  [styles.primaryBlock]: primaryBlock,
14
+ [styles.success]: success,
15
+ [styles.error]: error,
16
+ [styles.secondary]: secondary,
17
+ [styles.ghost]: ghost,
15
18
  [styles.short]: short,
16
19
  [styles.disabled]: disabled,
17
20
  [styles.iconOnly]: iconOnly,
@@ -1,6 +1,6 @@
1
1
  @import "../global/variables.css";
2
2
 
3
- @value button, active, primary from "../button/button.css";
3
+ @value button, active, flat from "../button/button.css";
4
4
 
5
5
  :root {
6
6
  --ring-button-group-default-z-index: 1;
@@ -20,19 +20,23 @@
20
20
  }
21
21
 
22
22
  .buttonGroup {
23
+ --ring-button-group-button-border-color: var(--ring-borders-color);
24
+
23
25
  composes: common;
24
26
  composes: buttonGroup from "../button-toolbar/button-toolbar.css";
25
27
 
26
28
  border-radius: var(--ring-border-radius);
27
29
 
28
- box-shadow: var(--ring-button-shadow) var(--ring-borders-color);
30
+ box-shadow: var(--ring-button-shadow) var(--ring-button-group-button-border-color);
29
31
 
30
32
  line-height: normal;
31
33
  }
32
34
 
33
- .buttonGroup .button {
34
- --ring-button-group-button-border-color: var(--ring-borders-color);
35
+ .disabled {
36
+ --ring-button-group-button-border-color: var(--ring-border-disabled-color);
37
+ }
35
38
 
39
+ .buttonGroup .button {
36
40
  position: relative;
37
41
 
38
42
  transition: none;
@@ -55,8 +59,6 @@
55
59
 
56
60
  content: "";
57
61
 
58
- background-color: var(--ring-disabled-background-color);
59
-
60
62
  box-shadow:
61
63
  0 1px var(--ring-button-group-button-border-color) inset,
62
64
  0 -1px var(--ring-button-group-button-border-color) inset;
@@ -139,7 +141,7 @@
139
141
  }
140
142
 
141
143
  .buttonGroup .button.active[disabled] {
142
- box-shadow: var(--ring-button-shadow) var(--ring-border-selected-disabled-color);
144
+ box-shadow: var(--ring-button-shadow) var(--ring-border-disabled-active-color);
143
145
  }
144
146
  /* stylelint-enable */
145
147
 
@@ -204,11 +206,11 @@
204
206
  }
205
207
  /* stylelint-enable */
206
208
 
207
- .split .primary:not(:last-child) {
209
+ .split .flat:not(:last-child) {
208
210
  margin-right: 1px;
209
211
  }
210
212
 
211
- .split .primary:not(:first-child) {
213
+ .split .flat:not(:first-child) {
212
214
  margin-left: 1px;
213
215
  }
214
216