@jetbrains/ring-ui 7.0.15 → 7.0.17

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 (74) 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 +154 -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/dialog/dialog.js +3 -1
  21. package/components/dropdown/dropdown.d.ts +4 -2
  22. package/components/dropdown-menu/dropdown-menu.d.ts +7 -5
  23. package/components/dropdown-menu/dropdown-menu.js +19 -3
  24. package/components/editable-heading/editable-heading.css +1 -1
  25. package/components/error-message/error-message.css +1 -1
  26. package/components/global/focus-sensor-hoc.d.ts +1 -1
  27. package/components/global/focus-sensor-hoc.js +2 -1
  28. package/components/global/variables.css +32 -20
  29. package/components/global/variables_dark.css +27 -15
  30. package/components/header/header.d.ts +1 -1
  31. package/components/header/profile.d.ts +2 -2
  32. package/components/icon/icon.css +4 -4
  33. package/components/icon/icon.d.ts +1 -1
  34. package/components/input/input-legacy.css +2 -2
  35. package/components/input/input.css +3 -3
  36. package/components/input/input.d.ts +1 -1
  37. package/components/link/link.css +1 -0
  38. package/components/list/list.css +1 -1
  39. package/components/list/list.d.ts +1 -1
  40. package/components/list/list.js +2 -0
  41. package/components/loader-inline/loader-inline.d.ts +1 -1
  42. package/components/login-dialog/login-dialog.d.ts +1 -1
  43. package/components/message/message.d.ts +1 -1
  44. package/components/pager/pager.d.ts +1 -1
  45. package/components/popup/popup.d.ts +3 -2
  46. package/components/popup/popup.js +5 -5
  47. package/components/popup-menu/popup-menu.d.ts +1 -1
  48. package/components/progress-bar/progress-bar.d.ts +1 -1
  49. package/components/query-assist/query-assist.css +4 -4
  50. package/components/query-assist/query-assist.d.ts +1 -1
  51. package/components/select/select-popup.css +1 -1
  52. package/components/select/select.css +1 -1
  53. package/components/select/select.d.ts +3 -3
  54. package/components/select/select__popup.d.ts +1 -1
  55. package/components/sidebar/sidebar.css +2 -2
  56. package/components/table/header.d.ts +1 -1
  57. package/components/table/row.d.ts +1 -1
  58. package/components/tabs/dumb-tabs.d.ts +2 -1
  59. package/components/tabs/tabs.css +2 -0
  60. package/components/tag/tag.css +2 -2
  61. package/components/tag/tag.d.ts +1 -1
  62. package/components/tag/tag.js +1 -1
  63. package/components/tags-input/tags-input.d.ts +1 -1
  64. package/components/tags-list/tags-list.d.ts +1 -1
  65. package/components/toggle/toggle.d.ts +1 -1
  66. package/components/tooltip/tooltip.d.ts +1 -1
  67. package/components/upload/upload.css +87 -0
  68. package/components/upload/upload.d.ts +19 -0
  69. package/components/upload/upload.js +38 -0
  70. package/components/user-agreement/user-agreement.d.ts +1 -1
  71. package/components/user-card/card.d.ts +1 -1
  72. package/components/user-card/tooltip.d.ts +1 -1
  73. package/components/user-card/user-card.css +3 -3
  74. package/package.json +32 -22
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: transparent;
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-button-default-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,14 @@
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-background-color: var(--ring-content-background-color);
86
+ --ring-button-default-border-color: var(--ring-borders-color);
87
+ --ring-button-border-color: var(--ring-button-default-border-color);
88
+ --ring-button-hover-border-color: var(--ring-border-hover-color);
89
+ --ring-button-pressed-border-color: var(--ring-border-hover-color);
90
+ --ring-button-active-border-color: var(--ring-main-color);
91
+ --ring-button-disabled-border-color: var(--ring-border-disabled-color);
92
+ --ring-button-text-color: var(--ring-text-color);
76
93
  --ring-button-padding-inline: calc(var(--ring-unit) * 2);
77
94
 
78
95
  display: inline-block;
@@ -80,21 +97,19 @@
80
97
  height: var(--ring-button-height);
81
98
  padding: var(--ring-button-padding-block) var(--ring-button-padding-inline);
82
99
 
83
- color: var(--ring-text-color);
84
-
85
- background-color: var(--ring-button-background-color);
86
100
  box-shadow: var(--ring-button-shadow) var(--ring-button-border-color);
87
101
 
88
102
  font-size: var(--ring-button-font-size);
89
103
  line-height: var(--ring-button-line-height);
90
104
 
91
105
  &:hover {
92
- --ring-button-border-color: var(--ring-border-hover-color);
106
+ --ring-button-background-color: var(--ring-button-hover-background-color);
107
+ --ring-button-border-color: var(--ring-button-hover-border-color);
93
108
  }
94
109
 
95
110
  &:active {
96
- --ring-button-background-color: var(--ring-selected-background-color);
97
- --ring-button-border-color: var(--ring-border-hover-color);
111
+ --ring-button-background-color: var(--ring-button-pressed-background-color);
112
+ --ring-button-border-color: var(--ring-button-pressed-border-color);
98
113
  }
99
114
 
100
115
  &:focus-visible {
@@ -102,17 +117,21 @@
102
117
  var(--ring-button-shadow) var(--ring-button-focus-border-color),
103
118
  0 0 0 1px var(--ring-button-focus-border-color);
104
119
  }
120
+
121
+ &.heightS {
122
+ --ring-button-icon-line-height: calc(var(--ring-unit) * 1.5);
123
+ }
105
124
  }
106
125
 
107
126
  .inline {
127
+ --ring-button-text-color: var(--ring-action-link-color);
128
+ --ring-button-background-color: transparent;
129
+
108
130
  display: inline;
109
131
 
110
132
  margin: 0;
111
133
  padding: 0;
112
134
 
113
- color: var(--ring-action-link-color);
114
- background: transparent;
115
-
116
135
  font-size: inherit;
117
136
  line-height: inherit;
118
137
 
@@ -124,10 +143,6 @@
124
143
  .icon {
125
144
  margin-right: calc(var(--ring-unit) * 0.5);
126
145
 
127
- transition: color var(--ring-ease);
128
-
129
- color: inherit;
130
-
131
146
  line-height: var(--ring-button-icon-line-height);
132
147
  }
133
148
 
@@ -135,130 +150,146 @@
135
150
  margin-top: -1px;
136
151
  }
137
152
 
138
- .inline .icon {
139
- color: var(--ring-main-color);
140
- }
141
-
142
- .withNormalIcon .icon {
143
- color: var(--ring-icon-color);
153
+ .withNormalIcon {
154
+ --ring-button-text-color: var(--ring-secondary-color);
144
155
  }
145
156
 
146
157
  .inline {
147
158
  &:hover,
148
159
  &:active,
149
160
  &.active {
150
- color: var(--ring-link-hover-color);
151
-
152
- & .icon {
153
- color: inherit;
154
- }
161
+ --ring-button-text-color: var(--ring-link-hover-color);
155
162
  }
156
163
  }
157
164
 
158
- .active.block {
159
- --ring-button-background-color: var(--ring-hover-background-color);
160
- --ring-button-border-color: var(--ring-main-color);
165
+ .active {
166
+ --ring-button-disabled-background-color: var(--ring-hover-background-color);
167
+ --ring-button-disabled-border-color: var(--ring-border-disabled-active-color);
161
168
 
162
169
  transition: none;
163
170
  }
164
171
 
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
- }
172
+ .active.block {
173
+ --ring-button-background-color: var(--ring-button-active-background-color);
174
+ --ring-button-border-color: var(--ring-button-active-border-color);
180
175
  }
181
176
 
182
177
  .disabled {
183
178
  cursor: auto;
184
179
 
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);
180
+ color: var(--ring-button-disabled-text-color);
181
+ background-color: var(--ring-button-disabled-background-color);
182
+ box-shadow: var(--ring-button-shadow) var(--ring-button-disabled-border-color);
183
+ }
190
184
 
191
- color: var(--ring-disabled-color);
185
+ .danger {
186
+ --ring-button-pressed-background-color: var(--ring-button-danger-active-color);
187
+ --ring-button-active-background-color: var(--ring-button-danger-active-color);
188
+ --ring-button-focus-border-color: var(--ring-removed-background-color);
189
+ --ring-button-hover-border-color: var(--ring-button-danger-hover-color);
190
+ --ring-button-pressed-border-color: var(--ring-button-danger-hover-color);
191
+ --ring-button-active-border-color: var(--ring-button-danger-hover-color);
192
+ --ring-button-text-color: var(--ring-error-color);
193
+ --ring-button-disabled-text-color: var(--ring-removed-background-color);
194
+ --ring-button-loader-components: var(--ring-main-error-components);
195
+ }
192
196
 
193
- & .icon {
194
- color: var(--ring-icon-disabled-color);
195
- }
196
- }
197
+ .flat {
198
+ --ring-button-default-border-color: transparent;
199
+ --ring-button-hover-border-color: transparent;
200
+ --ring-button-pressed-border-color: transparent;
201
+ --ring-button-active-border-color: transparent;
202
+ --ring-button-disabled-border-color: transparent;
203
+ }
197
204
 
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
- }
205
+ .whiteText {
206
+ --ring-button-text-color: var(--ring-white-text-color);
207
+ --ring-button-disabled-text-color: var(--ring-button-white-text-disabled-color);
208
+ --ring-button-loader-components: var(--ring-white-text-components);
202
209
  }
203
210
 
204
211
  .primaryBlock {
205
- --ring-button-background-color: var(--ring-main-color);
206
- --ring-button-border-color: transparent;
212
+ --ring-button-default-background-color: var(--ring-button-primary-background-color);
213
+ --ring-button-hover-background-color: var(--ring-main-hover-color);
214
+ --ring-button-pressed-background-color: var(--ring-button-primary-background-color);
215
+ --ring-button-active-background-color: var(--ring-button-primary-background-color);
216
+ --ring-button-disabled-background-color: var(--ring-border-disabled-active-color);
217
+ --ring-button-pressed-border-color: var(--ring-button-primary-border-color);
218
+ --ring-button-active-border-color: var(--ring-button-primary-border-color);
219
+
220
+ composes: flat;
221
+ composes: whiteText;
222
+ }
207
223
 
208
- color: var(--ring-white-text-color);
224
+ .success {
225
+ --ring-button-default-background-color: var(--ring-main-success-color);
226
+ --ring-button-hover-background-color: var(--ring-main-success-hover-color);
227
+ --ring-button-pressed-background-color: var(--ring-main-success-hover-color);
228
+ --ring-button-active-background-color: var(--ring-main-success-hover-color);
229
+ --ring-button-disabled-background-color: var(--ring-added-background-color);
230
+ --ring-button-focus-border-color: var(--ring-border-hover-success-color);
231
+ --ring-button-pressed-border-color: var(--ring-success-color);
232
+ --ring-button-active-border-color: var(--ring-success-color);
209
233
 
210
- &:hover {
211
- --ring-button-background-color: var(--ring-main-hover-color);
212
- --ring-button-border-color: transparent;
213
- }
214
234
 
215
- &:focus-visible,
216
- &:active,
217
- &.active {
218
- --ring-button-background-color: var(--ring-button-primary-background-color);
219
- }
235
+ composes: flat;
236
+ composes: whiteText;
237
+ }
220
238
 
221
- &:active,
222
- &.active {
223
- --ring-button-border-color: var(--ring-button-primary-border-color);
224
- }
239
+ .error {
240
+ --ring-button-default-background-color: var(--ring-main-error-color);
241
+ --ring-button-hover-background-color: var(--ring-main-error-hover-color);
242
+ --ring-button-pressed-background-color: var(--ring-main-error-hover-color);
243
+ --ring-button-active-background-color: var(--ring-main-error-hover-color);
244
+ --ring-button-disabled-background-color: var(--ring-removed-background-color);
245
+ --ring-button-focus-border-color: var(--ring-border-hover-error-color);
246
+ --ring-button-pressed-border-color: var(--ring-error-color);
247
+ --ring-button-active-border-color: var(--ring-error-color);
248
+
249
+ composes: flat;
250
+ composes: whiteText;
251
+ }
225
252
 
226
- &.disabled {
227
- --ring-button-background-color: var(--ring-border-disabled-active-color);
228
- --ring-button-border-color: transparent;
253
+ .secondary {
254
+ --ring-button-default-background-color: var(--ring-tag-background-color);
255
+ --ring-button-hover-background-color: var(--ring-tag-hover-background-color);
256
+ --ring-button-disabled-background-color: var(--ring-disabled-background-color);
257
+ --ring-button-loader-components: var(--ring-secondary-components);
229
258
 
230
- color: var(--ring-button-flat-disabled-color);
259
+ composes: flat;
260
+ }
231
261
 
232
- & .icon {
233
- color: var(--ring-button-flat-disabled-color);
234
- }
235
- }
262
+ .ghost {
263
+ --ring-button-default-background-color: transparent;
264
+ --ring-button-hover-background-color: var(--ring-tag-hover-background-color);
265
+ --ring-button-text-color: var(--ring-secondary-color);
236
266
 
237
- &.loader {
238
- color: var(--ring-white-text-color);
239
- }
267
+ composes: flat;
240
268
 
241
- & .loaderBackground {
242
- top: 0;
243
- right: 0;
244
- bottom: 0;
245
- left: 0;
269
+ &.inline {
270
+ &:hover {
271
+ --ring-button-background-color: var(--ring-tag-background-color);
272
+ }
246
273
 
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
- );
274
+ &:active {
275
+ --ring-button-background-color: var(--ring-button-pressed-background-color);
276
+ }
277
+
278
+ &.active {
279
+ --ring-button-background-color: var(--ring-button-active-background-color);
257
280
  }
258
281
  }
282
+
283
+ &.block {
284
+ --ring-button-loader-components: var(--ring-secondary-components);
285
+ }
259
286
  }
260
287
 
261
288
  .iconOnly {
289
+ &.inline {
290
+ line-height: var(--ring-button-icon-line-height);
291
+ }
292
+
262
293
  &.heightS {
263
294
  --ring-button-padding-block: calc(var(--ring-unit) * 0.75);
264
295
  --ring-button-padding-inline: calc(var(--ring-unit) * 0.75);
@@ -287,27 +318,17 @@
287
318
  }
288
319
  }
289
320
 
290
- .danger .icon {
291
- color: var(--ring-icon-error-color);
292
- }
293
-
294
321
  .loader {
295
322
  position: relative;
296
323
  z-index: 0;
297
324
 
298
325
  cursor: auto;
299
326
 
300
- background-color: transparent;
301
-
302
- &:hover {
303
- --ring-button-border-color: var(--ring-borders-color);
304
- }
327
+ background-color: var(--ring-button-default-background-color);
305
328
  }
306
329
 
307
- .loader.inline {
308
- animation-name: text-loading;
309
- animation-duration: 1200ms;
310
- animation-iteration-count: infinite;
330
+ .loader.block {
331
+ box-shadow: var(--ring-button-shadow) var(--ring-button-default-border-color);
311
332
  }
312
333
 
313
334
  .loaderBackground {
@@ -320,7 +341,8 @@
320
341
 
321
342
  overflow: hidden;
322
343
 
323
- border-radius: var(--ring-border-radius-small);
344
+ border-radius: calc(var(--ring-border-radius) - 1px);
345
+ background-color: var(--ring-button-default-background-color);
324
346
 
325
347
  &::before {
326
348
  display: block;
@@ -333,9 +355,9 @@
333
355
 
334
356
  background-image: linear-gradient(
335
357
  to right,
336
- var(--ring-content-background-color),
337
- var(--ring-selected-background-color) 40%,
338
- var(--ring-content-background-color) 80%
358
+ transparent,
359
+ rgba(var(--ring-button-loader-components), 0.4) 40%,
360
+ transparent 80%
339
361
  );
340
362
 
341
363
  background-repeat: repeat;
@@ -343,6 +365,16 @@
343
365
  }
344
366
  }
345
367
 
368
+ .flat .loaderBackground,
369
+ .inline .loaderBackground {
370
+ top: 0;
371
+ right: 0;
372
+ bottom: 0;
373
+ left: 0;
374
+
375
+ border-radius: var(--ring-border-radius);
376
+ }
377
+
346
378
  .delayed::after {
347
379
  content: "…";
348
380
  }
@@ -358,29 +390,15 @@
358
390
  margin-top: -1px;
359
391
  margin-right: calc(var(--ring-unit) * -0.5);
360
392
  margin-left: 2px;
361
-
362
- transition: color var(--ring-ease);
363
-
364
- color: var(--ring-icon-secondary-color);
365
393
  }
366
394
 
367
395
  .inline & .glyph {
368
396
  vertical-align: -2px;
369
397
  }
370
398
 
371
- .primary & {
372
- color: unset;
373
- }
374
-
375
399
  line-height: var(--ring-button-icon-line-height);
376
400
  }
377
401
 
378
- .block:hover .dropdownIcon {
379
- transition: none;
380
-
381
- color: var(--ring-main-color);
382
- }
383
-
384
402
  @keyframes progress {
385
403
  from {
386
404
  transform: translateX(-64px); /* must be in Sync with loaderWidth, but CSS var doesn't work due to RG-2438 */
@@ -390,9 +408,3 @@
390
408
  transform: translateX(0);
391
409
  }
392
410
  }
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