@arco-design/mobile-react 2.22.2 → 2.23.0
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/CHANGELOG.md +28 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/carousel/index.d.ts +6 -0
- package/cjs/carousel/index.js +6 -4
- package/cjs/image-picker/index.js +18 -12
- package/cjs/image-picker/type.d.ts +10 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +5 -1
- package/cjs/input/style/css/index.css +1 -0
- package/cjs/input/style/index.less +1 -0
- package/cjs/stepper/demo/style/css/mobile.css +4 -0
- package/cjs/stepper/demo/style/mobile.less +10 -0
- package/cjs/stepper/hooks/useButtonClick.d.ts +11 -0
- package/cjs/stepper/hooks/useButtonClick.js +74 -0
- package/cjs/stepper/hooks/useInputEvent.d.ts +9 -0
- package/cjs/stepper/hooks/useInputEvent.js +59 -0
- package/cjs/stepper/hooks/useValue.d.ts +6 -0
- package/cjs/stepper/hooks/useValue.js +44 -0
- package/cjs/stepper/index.d.ts +13 -0
- package/cjs/stepper/index.js +184 -0
- package/cjs/stepper/style/css/index.css +76 -0
- package/cjs/stepper/style/css/index.d.ts +2 -0
- package/cjs/stepper/style/css/index.js +5 -0
- package/cjs/stepper/style/index.d.ts +2 -0
- package/cjs/stepper/style/index.js +5 -0
- package/cjs/stepper/style/index.less +80 -0
- package/cjs/stepper/type.d.ts +159 -0
- package/cjs/stepper/type.js +3 -0
- package/cjs/style.d.ts +1 -0
- package/cjs/style.js +2 -0
- package/dist/index.js +439 -98
- package/dist/index.min.js +4 -4
- package/dist/style.css +64 -0
- package/dist/style.min.css +1 -1
- package/esm/carousel/index.d.ts +6 -0
- package/esm/carousel/index.js +6 -4
- package/esm/image-picker/index.js +18 -12
- package/esm/image-picker/type.d.ts +10 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/esm/input/style/css/index.css +1 -0
- package/esm/input/style/index.less +1 -0
- package/esm/stepper/demo/style/css/mobile.css +4 -0
- package/esm/stepper/demo/style/mobile.less +10 -0
- package/esm/stepper/hooks/useButtonClick.d.ts +11 -0
- package/esm/stepper/hooks/useButtonClick.js +69 -0
- package/esm/stepper/hooks/useInputEvent.d.ts +9 -0
- package/esm/stepper/hooks/useInputEvent.js +53 -0
- package/esm/stepper/hooks/useValue.d.ts +6 -0
- package/esm/stepper/hooks/useValue.js +38 -0
- package/esm/stepper/index.d.ts +13 -0
- package/esm/stepper/index.js +157 -0
- package/esm/stepper/style/css/index.css +76 -0
- package/esm/stepper/style/css/index.d.ts +2 -0
- package/esm/stepper/style/css/index.js +2 -0
- package/esm/stepper/style/index.d.ts +2 -0
- package/esm/stepper/style/index.js +2 -0
- package/esm/stepper/style/index.less +80 -0
- package/esm/stepper/type.d.ts +159 -0
- package/esm/stepper/type.js +1 -0
- package/esm/style.d.ts +1 -0
- package/esm/style.js +1 -0
- package/package.json +3 -3
- package/tokens/app/arcodesign/default/css-variables.less +15 -0
- package/tokens/app/arcodesign/default/index.d.ts +15 -0
- package/tokens/app/arcodesign/default/index.js +16 -1
- package/tokens/app/arcodesign/default/index.json +180 -0
- package/tokens/app/arcodesign/default/index.less +15 -0
- package/tools/flexible.js +82 -63
- package/umd/carousel/index.d.ts +6 -0
- package/umd/carousel/index.js +6 -4
- package/umd/image-picker/index.js +18 -12
- package/umd/image-picker/type.d.ts +10 -0
- package/umd/index.d.ts +1 -0
- package/umd/index.js +7 -5
- package/umd/input/style/css/index.css +1 -0
- package/umd/input/style/index.less +1 -0
- package/umd/stepper/demo/style/css/mobile.css +4 -0
- package/umd/stepper/demo/style/mobile.less +10 -0
- package/umd/stepper/hooks/useButtonClick.d.ts +11 -0
- package/umd/stepper/hooks/useButtonClick.js +86 -0
- package/umd/stepper/hooks/useInputEvent.d.ts +9 -0
- package/umd/stepper/hooks/useInputEvent.js +71 -0
- package/umd/stepper/hooks/useValue.d.ts +6 -0
- package/umd/stepper/hooks/useValue.js +56 -0
- package/umd/stepper/index.d.ts +13 -0
- package/umd/stepper/index.js +185 -0
- package/umd/stepper/style/css/index.css +76 -0
- package/umd/stepper/style/css/index.d.ts +2 -0
- package/umd/stepper/style/css/index.js +15 -0
- package/umd/stepper/style/index.d.ts +2 -0
- package/umd/stepper/style/index.js +15 -0
- package/umd/stepper/style/index.less +80 -0
- package/umd/stepper/type.d.ts +159 -0
- package/umd/stepper/type.js +17 -0
- package/umd/style.d.ts +1 -0
- package/umd/style.js +4 -4
@@ -0,0 +1,76 @@
|
|
1
|
+
.arco-stepper {
|
2
|
+
display: -webkit-box;
|
3
|
+
display: -webkit-flex;
|
4
|
+
display: flex;
|
5
|
+
font-size: 0.28rem ;
|
6
|
+
}
|
7
|
+
.arco-stepper.arco-square {
|
8
|
+
border: 1PX solid #f2f3f5 ;
|
9
|
+
border-radius: 0.04rem ;
|
10
|
+
}
|
11
|
+
.arco-stepper.arco-square .arco-stepper-add-button,
|
12
|
+
.arco-stepper.arco-square .arco-stepper-minus-button,
|
13
|
+
.arco-stepper.arco-square .arco-stepper-input {
|
14
|
+
background: #ffffff ;
|
15
|
+
}
|
16
|
+
.arco-stepper.arco-square .arco-stepper-input {
|
17
|
+
border-left: 1PX solid #f2f3f5 ;
|
18
|
+
border-right: 1PX solid #f2f3f5 ;
|
19
|
+
}
|
20
|
+
.arco-stepper.arco-round .arco-stepper-minus-button,
|
21
|
+
.arco-stepper.arco-round .arco-stepper-add-button {
|
22
|
+
border-radius: 50% ;
|
23
|
+
}
|
24
|
+
.arco-stepper.arco-round .arco-stepper-input {
|
25
|
+
background: transparent ;
|
26
|
+
}
|
27
|
+
.arco-stepper-minus-button {
|
28
|
+
display: -webkit-box;
|
29
|
+
display: -webkit-flex;
|
30
|
+
display: flex;
|
31
|
+
-webkit-box-align: center;
|
32
|
+
-webkit-align-items: center;
|
33
|
+
align-items: center;
|
34
|
+
-webkit-box-pack: center;
|
35
|
+
-webkit-justify-content: center;
|
36
|
+
justify-content: center;
|
37
|
+
font-size: 0.2rem ;
|
38
|
+
width: 0.56rem ;
|
39
|
+
height: 0.56rem ;
|
40
|
+
background: #f7f8fa ;
|
41
|
+
}
|
42
|
+
.arco-stepper-minus-button-icon {
|
43
|
+
color: #1d2129 ;
|
44
|
+
}
|
45
|
+
.arco-stepper-minus-button-icon.disabled {
|
46
|
+
color: #c9cdd4 ;
|
47
|
+
}
|
48
|
+
.arco-stepper-input {
|
49
|
+
text-align: center;
|
50
|
+
width: 0.8rem ;
|
51
|
+
height: 0.56rem ;
|
52
|
+
background: #f7f8fa ;
|
53
|
+
color: #1d2129 ;
|
54
|
+
margin: 0 1PX ;
|
55
|
+
}
|
56
|
+
.arco-stepper-add-button {
|
57
|
+
display: -webkit-box;
|
58
|
+
display: -webkit-flex;
|
59
|
+
display: flex;
|
60
|
+
-webkit-box-align: center;
|
61
|
+
-webkit-align-items: center;
|
62
|
+
align-items: center;
|
63
|
+
-webkit-box-pack: center;
|
64
|
+
-webkit-justify-content: center;
|
65
|
+
justify-content: center;
|
66
|
+
font-size: 0.2rem ;
|
67
|
+
width: 0.56rem ;
|
68
|
+
height: 0.56rem ;
|
69
|
+
background: #f7f8fa ;
|
70
|
+
}
|
71
|
+
.arco-stepper-add-button-icon {
|
72
|
+
color: #1d2129 ;
|
73
|
+
}
|
74
|
+
.arco-stepper-add-button-icon.disabled {
|
75
|
+
color: #c9cdd4 ;
|
76
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
@import '../../../style/mixin.less';
|
2
|
+
|
3
|
+
.@{prefix}-stepper {
|
4
|
+
display: flex;
|
5
|
+
.use-var(font-size, stepper-font-size);
|
6
|
+
|
7
|
+
&.@{prefix}-square {
|
8
|
+
.use-var(border, stepper-square-border);
|
9
|
+
.use-var(border-radius, stepper-square-border-radius);
|
10
|
+
|
11
|
+
.@{prefix}-stepper {
|
12
|
+
&-add-button,
|
13
|
+
&-minus-button,
|
14
|
+
&-input {
|
15
|
+
.use-var(background, stepper-square-background-color);
|
16
|
+
}
|
17
|
+
&-input {
|
18
|
+
.use-var(border-left, stepper-square-border);
|
19
|
+
.use-var(border-right, stepper-square-border);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
&.@{prefix}-round {
|
25
|
+
.@{prefix}-stepper {
|
26
|
+
&-minus-button,
|
27
|
+
&-add-button {
|
28
|
+
.use-var(border-radius, stepper-round-button-border-radius);
|
29
|
+
}
|
30
|
+
&-input {
|
31
|
+
.use-var(background, stepper-round-input-background-color);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
&-minus-button {
|
37
|
+
display: flex;
|
38
|
+
align-items: center;
|
39
|
+
justify-content: center;
|
40
|
+
.use-var(font-size, stepper-button-icon-size);
|
41
|
+
.use-var(width, stepper-button-size);
|
42
|
+
.use-var(height, stepper-button-size);
|
43
|
+
.use-var(background, stepper-default-background-color);
|
44
|
+
|
45
|
+
&-icon {
|
46
|
+
.use-var(color, stepper-content-color);
|
47
|
+
|
48
|
+
&.disabled {
|
49
|
+
.use-var(color, stepper-disable-color);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
&-input {
|
55
|
+
text-align: center;
|
56
|
+
.use-var(width, stepper-input-width);
|
57
|
+
.use-var(height, stepper-input-height);
|
58
|
+
.use-var(background, stepper-default-background-color);
|
59
|
+
.use-var(color, stepper-content-color);
|
60
|
+
.use-var(margin, stepper-input-margin);
|
61
|
+
}
|
62
|
+
|
63
|
+
&-add-button {
|
64
|
+
display: flex;
|
65
|
+
align-items: center;
|
66
|
+
justify-content: center;
|
67
|
+
.use-var(font-size, stepper-button-icon-size);
|
68
|
+
.use-var(width, stepper-button-size);
|
69
|
+
.use-var(height, stepper-button-size);
|
70
|
+
.use-var(background, stepper-default-background-color);
|
71
|
+
|
72
|
+
&-icon {
|
73
|
+
.use-var(color, stepper-content-color);
|
74
|
+
|
75
|
+
&.disabled {
|
76
|
+
.use-var(color, stepper-disable-color);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
@@ -0,0 +1,159 @@
|
|
1
|
+
import { ReactNode } from 'react';
|
2
|
+
export interface StepperProps {
|
3
|
+
/**
|
4
|
+
* 自定义类名
|
5
|
+
* @en Custom classname
|
6
|
+
*/
|
7
|
+
className?: string;
|
8
|
+
/**
|
9
|
+
* 自定义样式
|
10
|
+
* @en Custom stylesheet
|
11
|
+
* */
|
12
|
+
style?: React.CSSProperties;
|
13
|
+
/**
|
14
|
+
* input样式
|
15
|
+
* @en Input stylesheet
|
16
|
+
*/
|
17
|
+
inputStyle?: React.CSSProperties;
|
18
|
+
/**
|
19
|
+
* input类名
|
20
|
+
* @en Input class
|
21
|
+
*/
|
22
|
+
inputClass?: string;
|
23
|
+
/**
|
24
|
+
* 绑定值,传入即受控
|
25
|
+
* @en Bundled value (Controlled)
|
26
|
+
*/
|
27
|
+
value?: number;
|
28
|
+
/**
|
29
|
+
* 默认值
|
30
|
+
* @en Default value
|
31
|
+
* @default 1
|
32
|
+
*/
|
33
|
+
defaultValue?: number;
|
34
|
+
/**
|
35
|
+
* 是否允许内容为空
|
36
|
+
* @en Whether the content is allowed to be empty
|
37
|
+
* @default false
|
38
|
+
*/
|
39
|
+
allowEmpty?: boolean;
|
40
|
+
/**
|
41
|
+
* 格式化到小数点后固定位数,设置为 0 表示格式化到整数
|
42
|
+
* @en Formatted to a decimal point after a fixed number of digits, set to 0 indicates formatting to an integer
|
43
|
+
* @default 0
|
44
|
+
*/
|
45
|
+
digits?: number;
|
46
|
+
/**
|
47
|
+
* 是否禁用步进器
|
48
|
+
* @en Whether to disable the stepper
|
49
|
+
* @default false
|
50
|
+
*/
|
51
|
+
disabled?: boolean;
|
52
|
+
/**
|
53
|
+
* 输入框只读状态
|
54
|
+
* @en Input read only status
|
55
|
+
* @default false
|
56
|
+
*/
|
57
|
+
inputReadonly?: boolean;
|
58
|
+
/**
|
59
|
+
* 最大值
|
60
|
+
* @en Max value
|
61
|
+
* @default Infinity
|
62
|
+
*/
|
63
|
+
max?: number;
|
64
|
+
/**
|
65
|
+
* 最小值
|
66
|
+
* @en Min value
|
67
|
+
* @default 1
|
68
|
+
*/
|
69
|
+
min?: number;
|
70
|
+
/**
|
71
|
+
* 是否允许操作大于/小于极限值时,操作结果等于极限值
|
72
|
+
* @en If an operation is allowed to be greater more/less than the limit value, the result of the operation is equal to the limit value
|
73
|
+
*/
|
74
|
+
equalLimitDisabled?: boolean;
|
75
|
+
/**
|
76
|
+
* 递增/减值
|
77
|
+
* @en Incremental/Impairment value
|
78
|
+
* @default 1
|
79
|
+
*/
|
80
|
+
step?: number;
|
81
|
+
/**
|
82
|
+
* 边框风格
|
83
|
+
* @en Border style
|
84
|
+
* @default "default"
|
85
|
+
*/
|
86
|
+
theme?: 'square' | 'round' | 'default';
|
87
|
+
/**
|
88
|
+
* 格式化内部值(优先级最高)
|
89
|
+
* @en Format the inner value
|
90
|
+
*/
|
91
|
+
formatter?: (innerValue: number) => number | Promise<number>;
|
92
|
+
/**
|
93
|
+
* 增加按钮
|
94
|
+
* @en Add button
|
95
|
+
*/
|
96
|
+
addButton?: ReactNode;
|
97
|
+
/**
|
98
|
+
* 删除按钮
|
99
|
+
* @en Delete button
|
100
|
+
*/
|
101
|
+
minusButton?: ReactNode;
|
102
|
+
/**
|
103
|
+
* 自定义输入框函数
|
104
|
+
* @en The function of customizing the input
|
105
|
+
*/
|
106
|
+
renderContent?: (innerValue: number) => ReactNode;
|
107
|
+
/**
|
108
|
+
* 输入框失去焦点时触发
|
109
|
+
* @en Triggers when the input loses focus
|
110
|
+
*/
|
111
|
+
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
112
|
+
/**
|
113
|
+
* 数据变化时的触发
|
114
|
+
* @en Triggers when the data change
|
115
|
+
*/
|
116
|
+
onChange?: (value: number | null) => void;
|
117
|
+
/**
|
118
|
+
* 输入框获得焦点时触发
|
119
|
+
* @en Triggers when the input gets focus
|
120
|
+
*/
|
121
|
+
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
|
122
|
+
/**
|
123
|
+
* 点击增加按钮时触发
|
124
|
+
* @en Triggers when the add button is clicked
|
125
|
+
*/
|
126
|
+
onAddButtonClick?: (e: React.MouseEvent) => void;
|
127
|
+
/**
|
128
|
+
* 点击减少按钮时触发
|
129
|
+
* @en Triggers when the minus button is clicked
|
130
|
+
*/
|
131
|
+
onMinusButtonClick?: (e: React.MouseEvent) => void;
|
132
|
+
/**
|
133
|
+
* 点击最外侧dom时触发
|
134
|
+
* @en Triggers when the most out dom is clicked
|
135
|
+
*/
|
136
|
+
onClick?: (e: React.MouseEvent) => void;
|
137
|
+
/**
|
138
|
+
* 输入框输入时触发
|
139
|
+
* @en Triggers when the input is inputting
|
140
|
+
*/
|
141
|
+
onInput?: (e: React.ChangeEvent) => void;
|
142
|
+
}
|
143
|
+
export interface StepperRef {
|
144
|
+
/**
|
145
|
+
* 最外层元素 DOM
|
146
|
+
* @en The most out element dom
|
147
|
+
*/
|
148
|
+
dom: HTMLDivElement | null;
|
149
|
+
/**
|
150
|
+
* 输入框 DOM
|
151
|
+
* @en Input dom
|
152
|
+
*/
|
153
|
+
input: HTMLInputElement | null;
|
154
|
+
/**
|
155
|
+
* 改变内部值的方法
|
156
|
+
* @en The function of changing inner value
|
157
|
+
*/
|
158
|
+
changeValue: (newValue: number | null) => void;
|
159
|
+
}
|
package/cjs/style.d.ts
CHANGED