@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.
- 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 +154 -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/dialog/dialog.js +3 -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/focus-sensor-hoc.js +2 -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/list/list.js +2 -0
- 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 +3 -2
- package/components/popup/popup.js +5 -5
- 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 +32 -22
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: 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-
|
|
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-
|
|
97
|
-
--ring-button-border-color: var(--ring-border-
|
|
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
|
-
.
|
|
139
|
-
color: var(--ring-
|
|
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
|
|
159
|
-
--ring-button-background-color: var(--ring-hover-background-color);
|
|
160
|
-
--ring-button-border-color: var(--ring-
|
|
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
|
-
.
|
|
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
|
-
}
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
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
|
-
|
|
194
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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-
|
|
206
|
-
--ring-button-
|
|
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
|
-
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
--ring-button-background-color: var(--ring-button-primary-background-color);
|
|
219
|
-
}
|
|
235
|
+
composes: flat;
|
|
236
|
+
composes: whiteText;
|
|
237
|
+
}
|
|
220
238
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
259
|
+
composes: flat;
|
|
260
|
+
}
|
|
231
261
|
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
238
|
-
color: var(--ring-white-text-color);
|
|
239
|
-
}
|
|
267
|
+
composes: flat;
|
|
240
268
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
left: 0;
|
|
269
|
+
&.inline {
|
|
270
|
+
&:hover {
|
|
271
|
+
--ring-button-background-color: var(--ring-tag-background-color);
|
|
272
|
+
}
|
|
246
273
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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:
|
|
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.
|
|
308
|
-
|
|
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-
|
|
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
|
-
|
|
337
|
-
var(--ring-
|
|
338
|
-
|
|
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,
|
|
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
|
|