@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.
- package/README.md +7 -8
- package/components/alert/alert.css +1 -1
- package/components/auth-dialog-service/auth-dialog-service.d.ts +1 -1
- package/components/avatar/avatar.d.ts +1 -1
- package/components/button/button.css +152 -142
- package/components/button/button.d.ts +5 -1
- package/components/button/button.js +3 -3
- package/components/button/button__classes.d.ts +1 -1
- package/components/button/button__classes.js +6 -3
- package/components/button-group/button-group.css +11 -9
- package/components/button-group/button-group.js +4 -2
- package/components/checkbox/checkbox.css +1 -1
- package/components/confirm/confirm.d.ts +1 -1
- package/components/contenteditable/contenteditable.d.ts +1 -1
- package/components/data-list/data-list.css +1 -1
- package/components/date-picker/date-picker.css +2 -2
- package/components/date-picker/date-picker.d.ts +1 -1
- package/components/dialog/dialog.css +4 -20
- package/components/dialog/dialog.d.ts +1 -1
- package/components/dropdown/dropdown.d.ts +4 -2
- package/components/dropdown-menu/dropdown-menu.d.ts +7 -5
- package/components/dropdown-menu/dropdown-menu.js +19 -3
- package/components/editable-heading/editable-heading.css +1 -1
- package/components/error-message/error-message.css +1 -1
- package/components/global/focus-sensor-hoc.d.ts +1 -1
- package/components/global/variables.css +32 -20
- package/components/global/variables_dark.css +27 -15
- package/components/header/header.d.ts +1 -1
- package/components/header/profile.d.ts +2 -2
- package/components/icon/icon.css +4 -4
- package/components/icon/icon.d.ts +1 -1
- package/components/input/input-legacy.css +2 -2
- package/components/input/input.css +3 -3
- package/components/input/input.d.ts +1 -1
- package/components/link/link.css +1 -0
- package/components/list/list.css +1 -1
- package/components/list/list.d.ts +1 -1
- package/components/loader-inline/loader-inline.d.ts +1 -1
- package/components/login-dialog/login-dialog.d.ts +1 -1
- package/components/message/message.d.ts +1 -1
- package/components/pager/pager.d.ts +1 -1
- package/components/popup/popup.d.ts +2 -2
- package/components/popup-menu/popup-menu.d.ts +1 -1
- package/components/progress-bar/progress-bar.d.ts +1 -1
- package/components/query-assist/query-assist.css +4 -4
- package/components/query-assist/query-assist.d.ts +1 -1
- package/components/select/select-popup.css +1 -1
- package/components/select/select.css +1 -1
- package/components/select/select.d.ts +3 -3
- package/components/select/select__popup.d.ts +1 -1
- package/components/sidebar/sidebar.css +2 -2
- package/components/table/header.d.ts +1 -1
- package/components/table/row.d.ts +1 -1
- package/components/tabs/dumb-tabs.d.ts +2 -1
- package/components/tabs/tabs.css +2 -0
- package/components/tag/tag.css +2 -2
- package/components/tag/tag.d.ts +1 -1
- package/components/tag/tag.js +1 -1
- package/components/tags-input/tags-input.d.ts +1 -1
- package/components/tags-list/tags-list.d.ts +1 -1
- package/components/toggle/toggle.d.ts +1 -1
- package/components/tooltip/tooltip.d.ts +1 -1
- package/components/upload/upload.css +87 -0
- package/components/upload/upload.d.ts +19 -0
- package/components/upload/upload.js +38 -0
- package/components/user-agreement/user-agreement.d.ts +1 -1
- package/components/user-card/card.d.ts +1 -1
- package/components/user-card/tooltip.d.ts +1 -1
- package/components/user-card/user-card.css +3 -3
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
[](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
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
75
|
-
--ring-button-border-color: var(--ring-
|
|
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-
|
|
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-
|
|
97
|
-
--ring-button-border-color: var(--ring-border-
|
|
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
|
-
.
|
|
139
|
-
color: var(--ring-
|
|
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
|
|
159
|
-
--ring-button-background-color: var(--ring-hover-background-color);
|
|
160
|
-
--ring-button-border-color: var(--ring-
|
|
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
|
-
.
|
|
166
|
-
--ring-button-
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
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
|
-
|
|
194
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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-
|
|
206
|
-
--ring-button-
|
|
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
|
-
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
--ring-button-background-color: var(--ring-button-primary-background-color);
|
|
219
|
-
}
|
|
234
|
+
composes: flat;
|
|
235
|
+
composes: whiteText;
|
|
236
|
+
}
|
|
220
237
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
258
|
+
composes: flat;
|
|
259
|
+
}
|
|
231
260
|
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
238
|
-
color: var(--ring-white-text-color);
|
|
239
|
-
}
|
|
265
|
+
composes: flat;
|
|
240
266
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
left: 0;
|
|
267
|
+
&.inline {
|
|
268
|
+
&:hover {
|
|
269
|
+
--ring-button-background-color: var(--ring-tag-background-color);
|
|
270
|
+
}
|
|
246
271
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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:
|
|
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.
|
|
308
|
-
|
|
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-
|
|
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
|
-
|
|
337
|
-
var(--ring-
|
|
338
|
-
|
|
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,
|
|
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 &&
|
|
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 =
|
|
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,
|
|
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-
|
|
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
|
-
.
|
|
34
|
-
--ring-button-group-button-border-color: var(--ring-
|
|
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-
|
|
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 .
|
|
209
|
+
.split .flat:not(:last-child) {
|
|
208
210
|
margin-right: 1px;
|
|
209
211
|
}
|
|
210
212
|
|
|
211
|
-
.split .
|
|
213
|
+
.split .flat:not(:first-child) {
|
|
212
214
|
margin-left: 1px;
|
|
213
215
|
}
|
|
214
216
|
|