@aloudata/aloudata-design 0.4.8-beta.1 → 0.4.8-beta.10

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.
@@ -17,9 +17,10 @@
17
17
  .ald-modal-title-container {
18
18
  display: flex;
19
19
  align-items: center;
20
+ gap: 12px;
20
21
 
21
22
  .ald-modal-text-container {
22
- margin-left: 12px;
23
+ // margin-left: 12px;
23
24
  flex: 1;
24
25
  }
25
26
 
@@ -61,12 +62,12 @@
61
62
  font-size: 13px;
62
63
  }
63
64
 
64
- .ant-modal-footer{
65
+ .ant-modal-footer {
65
66
  .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {
66
67
  margin-bottom: 0;
67
68
  margin-inline-start: 12px;
68
69
  }
69
- }
70
+ }
70
71
  }
71
72
 
72
73
  .ant-modal-confirm {
@@ -75,15 +76,31 @@
75
76
  flex: 1;
76
77
  overflow: initial;
77
78
  margin-inline-start: 12px;
78
-
79
+
79
80
  & + .ant-modal-confirm-content {
80
81
  margin-block-start: 16px;
81
- margin-left:28px;
82
+ margin-left: 28px;
82
83
  }
83
84
  }
84
85
  }
85
86
 
86
- .ant-modal-confirm-btns{
87
+ .ant-modal-confirm-btns {
87
88
  margin-block-start: 16px;
88
89
  }
89
90
  }
91
+
92
+ .ald-modal-warning {
93
+ .ant-modal-confirm-btns {
94
+ .ald-btn {
95
+ background-color: @SB40;
96
+ border-color: @SB40;
97
+
98
+ &:hover,
99
+ &:active,
100
+ &:focus {
101
+ background-color: @SB40;
102
+ border-color: @SB40;
103
+ }
104
+ }
105
+ }
106
+ }
@@ -12,9 +12,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
12
12
 
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
 
15
- import React, { createContext, useRef } from 'react';
16
- import useMergedState from 'rc-util/lib/hooks/useMergedState';
17
15
  import classNames from 'classnames';
16
+ import useMergedState from 'rc-util/lib/hooks/useMergedState';
17
+ import React, { createContext, useRef } from 'react';
18
18
  export var RadioGroupContext = /*#__PURE__*/createContext({});
19
19
  export default function RadioGroup(props) {
20
20
  var children = props.children,
@@ -24,7 +24,9 @@ export default function RadioGroup(props) {
24
24
  size = _props$size === void 0 ? 'middle' : _props$size,
25
25
  _props$type = props.type,
26
26
  type = _props$type === void 0 ? 'radio' : _props$type,
27
- className = props.className; // 滑块的ref
27
+ className = props.className,
28
+ _props$disabled = props.disabled,
29
+ disabled = _props$disabled === void 0 ? false : _props$disabled; // 滑块的ref
28
30
 
29
31
  var sliderRef = useRef(null); // 该hooks与useState相同,但是当props中有value值时,优先使用value的值
30
32
 
@@ -63,7 +65,8 @@ export default function RadioGroup(props) {
63
65
  radioGroupStyle: radioGroupStyle,
64
66
  size: size,
65
67
  type: type,
66
- sliderRef: sliderRef
68
+ sliderRef: sliderRef,
69
+ disabled: disabled
67
70
  }
68
71
  }, /*#__PURE__*/React.createElement("div", {
69
72
  className: getWrapperClass()
@@ -5,10 +5,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
7
  import classNames from 'classnames';
8
- import React, { useContext, useEffect, useRef } from 'react';
9
8
  import _ from 'lodash';
10
- import { RadioGroupContext } from "../Group";
9
+ import React, { useContext, useEffect, useRef } from 'react';
11
10
  import { getUUID } from "../../../_utils/hooks/useId";
11
+ import { RadioGroupContext } from "../Group";
12
12
  export default function Radio(props) {
13
13
  var groupContext = useContext(RadioGroupContext);
14
14
  var labelRef = useRef(null);
@@ -17,7 +17,7 @@ export default function Radio(props) {
17
17
  var radioProps = _objectSpread({}, props);
18
18
 
19
19
  if (!_.isEmpty(groupContext)) {
20
- radioProps.disabled = props.disabled;
20
+ radioProps.disabled = groupContext.disabled || props.disabled;
21
21
  radioProps.checked = !props.disabled && groupContext.value === props.value;
22
22
  } else {
23
23
  radioProps.checked = !('checked' in props) ? props.defaultChecked : radioProps.checked;
@@ -35,14 +35,18 @@ export default function Radio(props) {
35
35
  if (groupContext.type === 'button') {
36
36
  if (groupContext.radioGroupStyle === 'filled') {
37
37
  otherClass = 'ald-radio-button-wrapper-filled';
38
- } else {
38
+ } else if (groupContext.radioGroupStyle === 'border') {
39
39
  otherClass = 'ald-radio-button-wrapper-border';
40
+ } else {
41
+ otherClass = 'ald-radio-button-wrapper-border-primary';
40
42
  }
41
43
  } else if (groupContext.type === 'iconButton') {
42
44
  if (groupContext.radioGroupStyle === 'filled') {
43
45
  otherClass = 'ald-radio-icon-button-wrapper-filled';
44
- } else {
46
+ } else if (groupContext.radioGroupStyle === 'border') {
45
47
  otherClass = 'ald-radio-icon-button-wrapper-border';
48
+ } else {
49
+ otherClass = 'ald-radio-icon-button-wrapper-border-primary';
46
50
  }
47
51
  } else {
48
52
  // 当type未设置或者是radio时
@@ -67,7 +71,6 @@ export default function Radio(props) {
67
71
 
68
72
  var onChange = function onChange() {
69
73
  if (groupContext !== null && groupContext !== void 0 && groupContext.onChange) {
70
- // console.log(e);
71
74
  // input事件的value会被toString,所以此处进行一个覆盖
72
75
  groupContext.onChange(props.value);
73
76
  }
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- export declare type TRadioGroupStyle = 'border' | 'filled';
2
+ export declare type TRadioGroupStyle = 'border' | 'filled' | 'borderPrimary';
3
3
  export declare type TRadioSize = 'large' | 'middle' | 'small' | 'default';
4
4
  export declare type TRadioType = 'radio' | 'button' | 'iconButton';
5
5
  export interface IRadioGroupProps {
@@ -13,6 +13,11 @@ export interface IRadioGroupProps {
13
13
  * @default -
14
14
  */
15
15
  defaultValue?: any;
16
+ /**
17
+ * @description 整组禁用
18
+ * @default false
19
+ */
20
+ disabled?: boolean;
16
21
  /**
17
22
  * @description 设置按钮组的大小,有'large' | 'middle'('default') | 'small
18
23
  * @default 'middle'
@@ -1,17 +1,24 @@
1
1
  @import '../../style/index.less';
2
2
 
3
- @radio-icon-button-padding-large: 10px;
3
+ @radio-icon-button-padding-large: 8px;
4
4
  @radio-icon-button-padding-middle: 9px;
5
- @radio-icon-button-padding-small: 8px;
5
+ @radio-icon-button-padding-small: 7px;
6
6
  @radio-group-height-large: 36px;
7
7
  @radio-group-height-middle: 32px;
8
8
  @radio-group-height-small: 28px;
9
9
  @radio-button-padding: 12px;
10
+ @radio-button-padding-large: 14px;
11
+ @radio-button-padding-small: 10px;
12
+ @radio-button-padding-middle: 12px;
10
13
 
11
14
  // Radio组件基础样式
15
+ [class^="ald-radio"] {
16
+ box-sizing: border-box;
17
+ }
18
+
12
19
  .ald-radio-wrapper {
13
20
  display: inline-flex;
14
- gap: 8px;
21
+ gap: 4px;
15
22
  align-items: center;
16
23
  justify-content: start;
17
24
  height: 20px;
@@ -41,9 +48,10 @@
41
48
  .ald-radio-inner {
42
49
  position: relative;
43
50
  display: inline-block;
44
- width: 17px;
45
- height: 17px;
46
- border: 1px solid @NL90;
51
+ width: 15px;
52
+ height: 15px;
53
+ border: 1px solid @BG60;
54
+ background-color: @BG100;
47
55
  border-radius: 50%;
48
56
  }
49
57
 
@@ -54,57 +62,81 @@
54
62
  justify-content: center;
55
63
  color: @NL0;
56
64
  font-weight: 400;
65
+ font-size: 13px;
66
+ line-height: 20px;
67
+ user-select: none;
57
68
  }
58
69
  // 绘制选中时的圆圈样式
59
70
  .ald-radio-checked > .ald-radio-inner {
60
- background-color: @B60;
61
- border: 0;
71
+ border: 1px solid @B40;
72
+ background: @B95;
62
73
  transform: background 0.5s ease;
63
74
 
64
75
  &::after {
65
76
  position: absolute;
66
77
  top: 50%;
67
78
  left: 50%;
68
- width: 6px;
69
- height: 6px;
70
- background-color: @ND0;
79
+ width: 7px;
80
+ height: 7px;
81
+ background-color: @B40;
71
82
  border-radius: 50%;
72
83
  transform: translate(-50%, -50%);
73
84
  content: '';
74
85
  }
75
86
  }
87
+
76
88
  // 禁用状态下的样式
77
89
  .ald-radio-disabled > .ald-radio-inner {
78
90
  background-color: @NL90;
79
- border: 0;
91
+ border: 1px solid @BG60;
80
92
  }
81
93
 
82
- .ald-radio-disabled.ald-radio-checked > .ald-radio-inner::after {
83
- position: absolute;
84
- top: 50%;
85
- left: 50%;
86
- width: 6px;
87
- height: 6px;
88
- background: @NL90;
89
- border-radius: 50%;
90
- transform: translate(-50%, -50%);
91
- content: '';
94
+ .ald-radio-disabled.ald-radio-checked > .ald-radio-inner {
95
+ border: 1px solid @B40;
96
+ background: @B95;
97
+
98
+ &::after {
99
+ position: absolute;
100
+ top: 50%;
101
+ left: 50%;
102
+ width: 7px;
103
+ height: 7px;
104
+ background: @B40;
105
+ border-radius: 50%;
106
+ transform: translate(-50%, -50%);
107
+ content: '';
108
+ }
92
109
  }
93
110
  // 禁用的样式
94
111
  .ald-radio-label.ald-radio-wrapper-disabled {
95
112
  cursor: default;
113
+ opacity: 0.5;
96
114
 
97
115
  .ald-radio-desc {
98
116
  color: @NL60;
99
117
  }
100
118
  }
119
+
120
+ .ald-radio-button-wrapper-border-primary,
121
+ .ald-radio-button-wrapper-border,
122
+ .ald-radio-icon-button-wrapper-border,
123
+ .ald-radio-icon-button-wrapper-border-primary {
124
+ &.ald-radio-label.ald-radio-wrapper-disabled {
125
+ opacity: 0.5;
126
+
127
+ .ald-radio-desc {
128
+ color: @NL20;
129
+ }
130
+ }
131
+ }
132
+
101
133
  // RadioGroup基础样式
102
134
  .ald-radio-group {
103
135
  position: relative;
104
136
 
105
137
  .ald-radio-label .ald-radio-desc {
106
138
  color: @NL30;
107
- font-weight: 500;
139
+ font-weight: 600;
108
140
  font-size: @font-size-middle;
109
141
  font-style: normal;
110
142
  }
@@ -130,7 +162,7 @@
130
162
  width: 0;
131
163
  height: 100%;
132
164
  background: @BG100;
133
- border: 1px solid @NL90;
165
+ border: 1px solid @BG60;
134
166
  border-radius: @border-radius-middle;
135
167
  transition: width, left, height 0.3s, 0.3s, 0.3s ease;
136
168
  }
@@ -156,21 +188,27 @@
156
188
  color: @NL80;
157
189
  }
158
190
  }
191
+
159
192
  // border的样式
160
- .ald-radio-button-wrapper-border {
193
+ .ald-radio-button-wrapper-border,
194
+ .ald-radio-button-wrapper-border-primary {
161
195
  padding: 0 @radio-button-padding - 1;
162
196
  }
163
197
 
164
198
  .ald-radio-button-wrapper-border,
165
- .ald-radio-icon-button-wrapper-border {
199
+ .ald-radio-button-wrapper-border-primary,
200
+ .ald-radio-icon-button-wrapper-border,
201
+ .ald-radio-icon-button-wrapper-border-primary {
166
202
  position: relative;
167
203
  display: flex;
168
204
  align-items: center;
169
205
  justify-content: center;
170
206
  height: 100%;
171
207
  background: @BG100;
172
- border: 1px solid @NL90;
173
- border-right: 1px solid transparent;
208
+ border-top: 1px solid @BG60;
209
+ border-left: 1px solid @BG60;
210
+ border-bottom: 1px solid @BG60;
211
+ overflow: hidden;
174
212
  cursor: pointer;
175
213
 
176
214
  &:first-child {
@@ -178,7 +216,7 @@
178
216
  }
179
217
 
180
218
  &:last-child {
181
- border-right: 1px solid @NL90;
219
+ border-right: 1px solid @BG60;
182
220
  border-radius: 0 6px 6px 0;
183
221
  }
184
222
 
@@ -199,8 +237,10 @@
199
237
 
200
238
  // button选中状态下的样式
201
239
  .ald-radio-wrapper-checked.ald-radio-button-wrapper-border,
202
- .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border {
203
- background: @B98;
240
+ .ald-radio-wrapper-checked.ald-radio-button-wrapper-border-primary,
241
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border,
242
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border-primary {
243
+ background: @BG80;
204
244
  transition: background 0.5s ease;
205
245
 
206
246
  .ald-radio-desc {
@@ -210,6 +250,18 @@
210
250
  }
211
251
  }
212
252
 
253
+ .ald-radio-wrapper-checked.ald-radio-button-wrapper-border-primary,
254
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border-primary {
255
+ background: @B40;
256
+ transition: background 0.5s ease;
257
+
258
+ .ald-radio-desc {
259
+ position: relative;
260
+ color: @ND0;
261
+ transition: text-shadow 0.5s ease;
262
+ }
263
+ }
264
+
213
265
  // filled样式的button
214
266
  .ald-radio-button-wrapper-filled {
215
267
  padding: 0 @radio-button-padding;
@@ -246,6 +298,10 @@
246
298
  .ald-radio-checked > .ald-radio-inner::after {
247
299
  width: 0;
248
300
  }
301
+
302
+ .ald-radio-desc {
303
+ font-weight: 400;
304
+ }
249
305
  }
250
306
 
251
307
  .ald-radio-wrapper-checked.ald-radio-button-wrapper-filled,
@@ -254,6 +310,7 @@
254
310
 
255
311
  .ald-radio-desc {
256
312
  position: relative;
313
+ font-weight: 400;
257
314
  z-index: 2;
258
315
  color: @NL0;
259
316
  }
@@ -262,17 +319,32 @@
262
319
  &.ald-radio-group-middle {
263
320
  height: @radio-group-height-middle;
264
321
 
322
+ .ald-radio-label {
323
+ .ald-radio-desc {
324
+ font-size: @font-size-middle;
325
+ }
326
+ }
327
+
265
328
  .ald-radio-icon-button-wrapper-filled {
266
329
  padding: 0 @radio-icon-button-padding-middle;
267
330
  }
268
331
 
269
- .ald-radio-icon-button-wrapper-border {
270
- padding: 0 @radio-icon-button-padding-middle - 1;
332
+ .ald-radio-button-wrapper-border,
333
+ .ald-radio-button-wrapper-border-primary {
334
+ padding: 0 @radio-button-padding-middle - 1;
271
335
  }
272
336
 
273
- .ald-radio-label {
274
- .ald-radio-desc {
275
- font-size: @font-size-middle;
337
+ .ald-radio-icon-button-wrapper-border,
338
+ .ald-radio-icon-button-wrapper-border-primary {
339
+ padding: 0 @radio-icon-button-padding-middle - 1;
340
+
341
+ &.ald-radio-label .ald-radio-desc {
342
+ font-size: 14px;
343
+ }
344
+
345
+ &:not(:last-child) {
346
+ padding: 0 @radio-icon-button-padding-middle 0
347
+ @radio-icon-button-padding-middle - 1;
276
348
  }
277
349
  }
278
350
  }
@@ -280,22 +352,39 @@
280
352
  &.ald-radio-group-small {
281
353
  height: @radio-group-height-small;
282
354
 
355
+ .ald-radio-label {
356
+ .ald-radio-desc {
357
+ font-size: @font-size-small;
358
+ }
359
+ }
360
+
283
361
  .ald-radio-icon-button-wrapper-filled {
284
362
  padding: 0 @radio-icon-button-padding-small;
285
363
  }
286
364
 
287
- .ald-radio-icon-button-wrapper-border {
288
- padding: 0 @radio-icon-button-padding-small - 1;
365
+ .ald-radio-button-wrapper-border,
366
+ .ald-radio-button-wrapper-border-primary {
367
+ padding: 0 @radio-button-padding-small - 1;
289
368
  }
290
369
 
291
- .ald-radio-label {
292
- .ald-radio-desc {
293
- font-size: @font-size-small;
370
+ .ald-radio-icon-button-wrapper-border,
371
+ .ald-radio-icon-button-wrapper-border-primary {
372
+ padding: 0 @radio-icon-button-padding-small - 1;
373
+
374
+ &.ald-radio-label .ald-radio-desc {
375
+ font-size: 14px;
376
+ }
377
+
378
+ &:not(:last-child) {
379
+ padding: 0 @radio-icon-button-padding-small 0
380
+ @radio-icon-button-padding-small - 1;
294
381
  }
295
382
  }
296
383
 
297
384
  .ald-radio-button-wrapper-border,
298
385
  .ald-radio-icon-button-wrapper-border,
386
+ .ald-radio-button-wrapper-border-primary,
387
+ .ald-radio-icon-button-wrapper-border-primary,
299
388
  .ald-radio-button-wrapper-filled,
300
389
  .ald-radio-icon-button-wrapper-filled {
301
390
  &:first-of-type {
@@ -315,22 +404,39 @@
315
404
  &.ald-radio-group.ald-radio-group-large {
316
405
  height: @radio-group-height-large;
317
406
 
407
+ .ald-radio-label {
408
+ .ald-radio-desc {
409
+ font-size: @font-size-large;
410
+ }
411
+ }
412
+
318
413
  .ald-radio-icon-button-wrapper-filled {
319
414
  padding: 0 @radio-icon-button-padding-large;
320
415
  }
321
416
 
322
- .ald-radio-icon-button-wrapper-border {
323
- padding: 0 @radio-icon-button-padding-large - 1;
417
+ .ald-radio-button-wrapper-border,
418
+ .ald-radio-button-wrapper-border-primary {
419
+ padding: 0 @radio-button-padding-large - 1;
324
420
  }
325
421
 
326
- .ald-radio-label {
327
- .ald-radio-desc {
328
- font-size: @font-size-large;
422
+ .ald-radio-icon-button-wrapper-border,
423
+ .ald-radio-icon-button-wrapper-border-primary {
424
+ padding: 0 @radio-icon-button-padding-large - 1;
425
+
426
+ &.ald-radio-label .ald-radio-desc {
427
+ font-size: 20px;
428
+ }
429
+
430
+ &:not(:last-child) {
431
+ padding: 0 @radio-icon-button-padding-large 0
432
+ @radio-icon-button-padding-large - 1;
329
433
  }
330
434
  }
331
435
 
332
436
  .ald-radio-button-wrapper-border,
333
437
  .ald-radio-icon-button-wrapper-border,
438
+ .ald-radio-button-wrapper-border-primary,
439
+ .ald-radio-icon-button-wrapper-border-primary,
334
440
  .ald-radio-button-wrapper-filled,
335
441
  .ald-radio-icon-button-wrapper-filled {
336
442
  &:first-of-type {
@@ -5,6 +5,7 @@ interface IMultipleOptionProps {
5
5
  disabled?: boolean;
6
6
  option: DefaultOptionType;
7
7
  onChange?: (selected: boolean) => void;
8
+ className?: string;
8
9
  }
9
10
  export default function MultipleList(params: IMultipleOptionProps): JSX.Element;
10
11
  export {};
@@ -1,18 +1,22 @@
1
1
  import { Checkbox } from 'antd';
2
+ import classnames from 'classnames';
2
3
  import React from 'react';
3
4
  export default function MultipleList(params) {
4
5
  var disabled = params.disabled,
5
6
  option = params.option,
6
7
  selected = params.selected,
7
- onChange = params.onChange;
8
+ onChange = params.onChange,
9
+ className = params.className;
8
10
 
9
11
  var onClick = function onClick() {
10
- //TODO: 这里有bug 等待antd升级 https://github.com/ant-design/ant-design/pull/39078
12
+ if (disabled) return;
11
13
  onChange === null || onChange === void 0 ? void 0 : onChange(!selected);
12
14
  };
13
15
 
14
16
  return /*#__PURE__*/React.createElement("div", {
15
- className: "ald-multiple-option",
17
+ className: classnames('ald-multiple-option', className, {
18
+ 'ald-multiple-option-disabled': disabled
19
+ }),
16
20
  onClick: onClick
17
21
  }, /*#__PURE__*/React.createElement(Checkbox, {
18
22
  checked: selected,
@@ -5,6 +5,7 @@ interface ISelectProps {
5
5
  option: DefaultOptionType;
6
6
  onChange: (selected: boolean) => void;
7
7
  disabled?: boolean;
8
+ className?: string;
8
9
  }
9
10
  export default function SingleOption(params: ISelectProps): JSX.Element;
10
11
  export {};
@@ -1,4 +1,5 @@
1
1
  import { CheckLine } from '@aloudata/icons-react';
2
+ import classnames from 'classnames';
2
3
  import React from 'react';
3
4
  import colors from "../../style/themes/default/themeColor.module.less";
4
5
  export default function SingleOption(params) {
@@ -6,7 +7,8 @@ export default function SingleOption(params) {
6
7
  selected = params.selected,
7
8
  option = params.option,
8
9
  _params$onChange = params.onChange,
9
- onChange = _params$onChange === void 0 ? function () {} : _params$onChange;
10
+ onChange = _params$onChange === void 0 ? function () {} : _params$onChange,
11
+ className = params.className;
10
12
 
11
13
  var onClick = function onClick() {
12
14
  if (disabled) return;
@@ -14,7 +16,9 @@ export default function SingleOption(params) {
14
16
  };
15
17
 
16
18
  return /*#__PURE__*/React.createElement("div", {
17
- className: "ald-single-option",
19
+ className: classnames('ald-single-option', className, {
20
+ 'ald-single-option-disabled': disabled
21
+ }),
18
22
  onClick: onClick
19
23
  }, /*#__PURE__*/React.createElement("div", {
20
24
  className: "ald-icons-check-line"