@qsxy/element-plus-react 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/Alert/Alert.d.ts +7 -0
  2. package/dist/Alert/Alert.js +98 -0
  3. package/dist/Alert/index.d.ts +2 -0
  4. package/dist/Alert/index.js +1 -0
  5. package/dist/Alert/typings.d.ts +45 -0
  6. package/dist/Alert/typings.js +1 -0
  7. package/dist/Calendar/Calendar.js +12 -3
  8. package/dist/Calendar/Footer.js +4 -2
  9. package/dist/Calendar/QuarterPanel.d.ts +4 -0
  10. package/dist/Calendar/QuarterPanel.js +109 -0
  11. package/dist/Calendar/WeekPanel.js +1 -1
  12. package/dist/Calendar/typings.d.ts +1 -1
  13. package/dist/Card/Card.js +13 -6
  14. package/dist/Card/typings.d.ts +1 -1
  15. package/dist/Cascader/Cascader.js +1 -1
  16. package/dist/Cascader/useCascader.d.ts +0 -14
  17. package/dist/Cascader/useCascader.js +33 -32
  18. package/dist/Checkbox/Checkbox.js +3 -2
  19. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  20. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  21. package/dist/ConfigProvider/typings.d.ts +1 -1
  22. package/dist/Container/Main.d.ts +1 -1
  23. package/dist/Container/typings.d.ts +1 -1
  24. package/dist/DatePicker/DatePicker.js +38 -12
  25. package/dist/DatePicker/DateRangePicker.js +27 -9
  26. package/dist/DatePicker/main.js +1 -1
  27. package/dist/DatePicker/typings.d.ts +1 -1
  28. package/dist/DateTimePicker/DateTimePicker.js +2 -2
  29. package/dist/Dialog/Dialog.js +5 -12
  30. package/dist/Input/Input.js +190 -149
  31. package/dist/Input/InputRange.js +1 -1
  32. package/dist/Input/TextArea.js +87 -12
  33. package/dist/Input/typings.d.ts +56 -5
  34. package/dist/Input/useComposition.d.ts +23 -0
  35. package/dist/Input/useComposition.js +63 -0
  36. package/dist/Input/utils.d.ts +7 -0
  37. package/dist/Input/utils.js +95 -0
  38. package/dist/InputNumber/InputNumber.js +351 -141
  39. package/dist/InputNumber/typings.d.ts +16 -2
  40. package/dist/Loading/Loading.js +5 -2
  41. package/dist/Menu/Menu.js +25 -1
  42. package/dist/Menu/MenuItem.js +4 -2
  43. package/dist/Menu/SubMenu.js +2 -2
  44. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  45. package/dist/Menu/typings.d.ts +2 -1
  46. package/dist/Message/Message.js +51 -23
  47. package/dist/Message/index.js +8 -10
  48. package/dist/Message/typings.d.ts +8 -5
  49. package/dist/MessageBox/MessageBox.js +52 -30
  50. package/dist/MessageBox/index.d.ts +2 -1
  51. package/dist/MessageBox/index.js +4 -2
  52. package/dist/MessageBox/typings.d.ts +3 -0
  53. package/dist/Notification/Notification.js +26 -19
  54. package/dist/Select/Option.js +30 -14
  55. package/dist/Select/SelectContext.d.ts +5 -5
  56. package/dist/Select/SelectContext.js +2 -1
  57. package/dist/Select/SelectCore.d.ts +2 -2
  58. package/dist/Select/SelectCore.js +172 -449
  59. package/dist/Select/SelectDropdown.js +85 -155
  60. package/dist/Select/index.d.ts +1 -1
  61. package/dist/Select/typings.d.ts +52 -22
  62. package/dist/Select/useSelect.d.ts +128 -0
  63. package/dist/Select/useSelect.js +524 -0
  64. package/dist/Space/Space.d.ts +4 -0
  65. package/dist/Space/Space.js +128 -0
  66. package/dist/Space/SpaceItem.d.ts +7 -0
  67. package/dist/Space/SpaceItem.js +14 -0
  68. package/dist/Space/index.d.ts +3 -0
  69. package/dist/Space/index.js +2 -0
  70. package/dist/Space/typings.d.ts +26 -0
  71. package/dist/Space/typings.js +1 -0
  72. package/dist/Space/useSpace.d.ts +7 -0
  73. package/dist/Space/useSpace.js +104 -0
  74. package/dist/Statistic/Statistic.d.ts +4 -0
  75. package/dist/Statistic/Statistic.js +92 -0
  76. package/dist/Statistic/index.d.ts +2 -0
  77. package/dist/Statistic/index.js +1 -0
  78. package/dist/Statistic/typings.d.ts +28 -0
  79. package/dist/Statistic/typings.js +1 -0
  80. package/dist/Switch/Switch.js +2 -2
  81. package/dist/Table/Table.js +3 -0
  82. package/dist/Table/typings.d.ts +2 -0
  83. package/dist/Table/util.js +6 -5
  84. package/dist/Tag/Tag.js +22 -17
  85. package/dist/Tag/typings.d.ts +1 -1
  86. package/dist/Text/Text.d.ts +4 -0
  87. package/dist/Text/Text.js +84 -0
  88. package/dist/Text/index.d.ts +2 -0
  89. package/dist/Text/index.js +1 -0
  90. package/dist/Text/typings.d.ts +15 -0
  91. package/dist/Text/typings.js +1 -0
  92. package/dist/TimePicker/TimePicker.js +2 -2
  93. package/dist/Tree/CollapseTransition.d.ts +7 -0
  94. package/dist/Tree/CollapseTransition.js +60 -0
  95. package/dist/Tree/Tree.d.ts +3 -140
  96. package/dist/Tree/Tree.js +350 -77
  97. package/dist/Tree/TreeContext.d.ts +9 -0
  98. package/dist/Tree/TreeContext.js +14 -0
  99. package/dist/Tree/TreeNode.d.ts +5 -3
  100. package/dist/Tree/TreeNode.js +321 -331
  101. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  102. package/dist/Tree/TreeNodeContent.js +22 -0
  103. package/dist/Tree/index.d.ts +3 -8
  104. package/dist/Tree/index.js +1 -4
  105. package/dist/Tree/model/node.d.ts +62 -0
  106. package/dist/Tree/model/node.js +601 -0
  107. package/dist/Tree/model/tree-store.d.ts +52 -0
  108. package/dist/Tree/model/tree-store.js +510 -0
  109. package/dist/Tree/model/useDragNode.d.ts +30 -0
  110. package/dist/Tree/model/useDragNode.js +293 -0
  111. package/dist/Tree/model/useKeydown.d.ts +0 -0
  112. package/dist/Tree/model/useKeydown.js +104 -0
  113. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  114. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  115. package/dist/Tree/model/util.d.ts +7 -0
  116. package/dist/Tree/model/util.js +24 -0
  117. package/dist/Tree/typings.d.ts +225 -114
  118. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  119. package/dist/TreeSelect/TreeSelect.js +90 -566
  120. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  121. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  122. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  123. package/dist/TreeSelect/cacheOptions.js +22 -0
  124. package/dist/TreeSelect/index.d.ts +0 -1
  125. package/dist/TreeSelect/typings.d.ts +11 -63
  126. package/dist/TreeSelect/useSelect.d.ts +125 -0
  127. package/dist/TreeSelect/useSelect.js +104 -0
  128. package/dist/TreeSelect/useTree.d.ts +130 -0
  129. package/dist/TreeSelect/useTree.js +285 -0
  130. package/dist/TreeSelect/utils.d.ts +10 -0
  131. package/dist/TreeSelect/utils.js +38 -0
  132. package/dist/Upload/UploadContent.js +2 -0
  133. package/dist/Upload/ajax.js +3 -0
  134. package/dist/Upload/typings.d.ts +4 -0
  135. package/dist/Util/aria.d.ts +25 -0
  136. package/dist/Util/aria.js +118 -0
  137. package/dist/Util/base.d.ts +5 -0
  138. package/dist/Util/base.js +140 -1
  139. package/dist/config/Constants.d.ts +3 -0
  140. package/dist/config/Constants.js +8 -0
  141. package/dist/hooks/index.d.ts +1 -0
  142. package/dist/hooks/index.js +1 -0
  143. package/dist/hooks/popperPropsUtils.js +1 -1
  144. package/dist/hooks/treePropsUtils.d.ts +3 -3
  145. package/dist/hooks/treePropsUtils.js +2 -2
  146. package/dist/hooks/useCalcInputWidth.d.ts +8 -0
  147. package/dist/{Tree/useUnmount.js → hooks/useCalcInputWidth.js} +23 -27
  148. package/dist/hooks/useComposition.d.ts +16 -0
  149. package/dist/hooks/useComposition.js +39 -0
  150. package/dist/hooks/useConfigProvider.d.ts +27 -0
  151. package/dist/hooks/useConfigProvider.js +78 -0
  152. package/dist/hooks/useCursor.d.ts +2 -0
  153. package/dist/hooks/useCursor.js +52 -0
  154. package/dist/hooks/useFocusController.d.ts +27 -0
  155. package/dist/hooks/useFocusController.js +72 -0
  156. package/dist/hooks/useResizeObserver.js +6 -6
  157. package/dist/index.css +1 -1
  158. package/dist/index.d.ts +18 -11
  159. package/dist/index.js +11 -5
  160. package/dist/locale/en.d.ts +15 -0
  161. package/dist/locale/en.js +15 -0
  162. package/dist/locale/zhCn.d.ts +15 -0
  163. package/dist/locale/zhCn.js +15 -0
  164. package/package.json +1 -1
  165. package/theme-chalk/alert.scss +115 -0
  166. package/theme-chalk/aside.scss +8 -8
  167. package/theme-chalk/button-group.scss +80 -80
  168. package/theme-chalk/button.scss +304 -304
  169. package/theme-chalk/calendar/date-table.scss +164 -164
  170. package/theme-chalk/calendar/index.scss +1 -0
  171. package/theme-chalk/calendar/quarter-table.scss +78 -0
  172. package/theme-chalk/checkbox.scss +34 -0
  173. package/theme-chalk/color/index.scss +20 -20
  174. package/theme-chalk/common/transition.scss +142 -142
  175. package/theme-chalk/common/var.scss +1 -1
  176. package/theme-chalk/container.scss +14 -14
  177. package/theme-chalk/dark/css-vars.scss +39 -39
  178. package/theme-chalk/dark/var.scss +225 -225
  179. package/theme-chalk/date-picker.scss +12 -12
  180. package/theme-chalk/drawer.scss +1 -0
  181. package/theme-chalk/footer.scss +12 -12
  182. package/theme-chalk/header.scss +12 -12
  183. package/theme-chalk/index.scss +4 -0
  184. package/theme-chalk/input/input-range.scss +2 -1
  185. package/theme-chalk/input/input.scss +298 -437
  186. package/theme-chalk/input/input.scss--bak +578 -0
  187. package/theme-chalk/input-number.bak +172 -0
  188. package/theme-chalk/input-number.scss +192 -172
  189. package/theme-chalk/link.scss +87 -87
  190. package/theme-chalk/main.scss +14 -14
  191. package/theme-chalk/menu.scss +353 -353
  192. package/theme-chalk/message.scss +104 -178
  193. package/theme-chalk/mixins/_button.scss +224 -224
  194. package/theme-chalk/mixins/_col.scss +33 -33
  195. package/theme-chalk/mixins/_var.scss +67 -67
  196. package/theme-chalk/mixins/config.scss +5 -5
  197. package/theme-chalk/mixins/function.scss +99 -99
  198. package/theme-chalk/mixins/mixins.scss +240 -240
  199. package/theme-chalk/mixins/utils.scss +39 -39
  200. package/theme-chalk/notification.bak +156 -0
  201. package/theme-chalk/notification.scss +109 -156
  202. package/theme-chalk/popper.scss +104 -104
  203. package/theme-chalk/radio-button.scss +169 -169
  204. package/theme-chalk/select/index.scss +222 -191
  205. package/theme-chalk/select/index.scss--bak +247 -0
  206. package/theme-chalk/select/option-group.scss +2 -2
  207. package/theme-chalk/select/option.scss +2 -2
  208. package/theme-chalk/select/select-dropdown.scss +2 -2
  209. package/theme-chalk/space.scss +20 -0
  210. package/theme-chalk/statistic.scss +35 -0
  211. package/theme-chalk/switch.scss +300 -300
  212. package/theme-chalk/tag.scss +150 -172
  213. package/theme-chalk/tag.scss--bak +203 -0
  214. package/theme-chalk/text.scss +48 -0
  215. package/theme-chalk/transition.scss +34 -4
  216. package/theme-chalk/tree-select.scss +41 -25
  217. package/theme-chalk/tree.scss +136 -0
  218. package/theme-chalk/var.scss +83 -83
  219. package/dist/Tree/DirectoryTree.d.ts +0 -15
  220. package/dist/Tree/DirectoryTree.js +0 -183
  221. package/dist/Tree/DropIndicator.d.ts +0 -8
  222. package/dist/Tree/DropIndicator.js +0 -34
  223. package/dist/Tree/Indent.d.ts +0 -9
  224. package/dist/Tree/Indent.js +0 -25
  225. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  226. package/dist/Tree/MotionTreeNode.js +0 -125
  227. package/dist/Tree/NodeList.d.ts +0 -50
  228. package/dist/Tree/NodeList.js +0 -301
  229. package/dist/Tree/RCTree.d.ts +0 -248
  230. package/dist/Tree/RCTree.js +0 -1216
  231. package/dist/Tree/contextTypes.d.ts +0 -69
  232. package/dist/Tree/contextTypes.js +0 -9
  233. package/dist/Tree/typings.tsx--bak +0 -245
  234. package/dist/Tree/useUnmount.d.ts +0 -5
  235. package/dist/Tree/util.d.ts +0 -51
  236. package/dist/Tree/util.js +0 -303
  237. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  238. package/dist/Tree/utils/conductUtil.js +0 -209
  239. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  240. package/dist/Tree/utils/dictUtil.js +0 -75
  241. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  242. package/dist/Tree/utils/diffUtil.js +0 -48
  243. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  244. package/dist/Tree/utils/dropIndicator.js +0 -36
  245. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  246. package/dist/Tree/utils/iconUtil.js +0 -62
  247. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  248. package/dist/Tree/utils/keyUtil.js +0 -3
  249. package/dist/Tree/utils/motion.d.ts +0 -10
  250. package/dist/Tree/utils/motion.js +0 -54
  251. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  252. package/dist/Tree/utils/pickAttrs.js +0 -51
  253. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  254. package/dist/Tree/utils/treeUtil.js +0 -364
  255. package/dist/TreeSelect/Utils.d.ts +0 -3
  256. package/dist/TreeSelect/Utils.js +0 -20
@@ -1,13 +1,11 @@
1
- @use '../mixins/config' as *;
2
- @use './mixins' as *;
3
1
  @use 'sass:map';
4
2
 
5
- @mixin inset-prepend-border($color, $important: false) {
6
- @if $important == true {
7
- box-shadow: 1px 0 0 0 $color inset, 0 1px 0 0 $color inset, 0 -1px 0 0 $color inset !important;
8
- } @else {
9
- box-shadow: 1px 0 0 0 $color inset, 0 1px 0 0 $color inset, 0 -1px 0 0 $color inset;
10
- }
3
+ @use '../mixins/mixins' as *;
4
+ @use '../mixins/var' as *;
5
+ @use '../common/var' as *;
6
+
7
+ @mixin inset-prepend-border($color) {
8
+ box-shadow: 1px 0 0 0 $color inset, 0 1px 0 0 $color inset, 0 -1px 0 0 $color inset;
11
9
  }
12
10
 
13
11
  @mixin inset-append-border($color) {
@@ -26,57 +24,54 @@
26
24
  box-shadow: 0 0 0 1px $color inset;
27
25
  }
28
26
 
29
- @mixin inset-input-border($color, $important: false) {
30
- @if $important == true {
31
- box-shadow: 0 0 0 1px $color inset !important;
32
- } @else {
33
- box-shadow: 0 0 0 1px $color inset;
34
- }
27
+ @include b(textarea) {
28
+ @include set-component-css-var('input', $input);
35
29
  }
36
30
 
37
- // @mixin placeholder {
38
- // &::-webkit-input-placeholder {
39
- // color: var(--#{$namespace}-text-color-placeholder);
40
- // }
41
- // &:-moz-placeholder {
42
- // color: var(--#{$namespace}-text-color-placeholder);
43
- // }
44
- // &::-moz-placeholder {
45
- // color: var(--#{$namespace}-text-color-placeholder);
46
- // }
47
- // &:-ms-input-placeholder {
48
- // color: var(--#{$namespace}-text-color-placeholder);
49
- // }
50
- // }
51
-
52
- .#{$namespace}-textarea,
53
- .#{$namespace}-input,
54
- .#{$namespace}-input-group {
55
- --#{$namespace}-input-text-color: var(--#{$namespace}-text-color-regular);
56
- --#{$namespace}-input-border: var(--#{$namespace}-border-color);
57
- --#{$namespace}-input-hover-border: var(--#{$namespace}-border-color-hover);
58
- --#{$namespace}-input-focus-border-color: var(--#{$namespace}-color-primary);
59
- --#{$namespace}-input-transparent-border: 0 0 0 1px transparent inset;
60
- --#{$namespace}-input-border-color: var(--#{$namespace}-border-color);
61
- --#{$namespace}-input-border-radius: 4px;
62
- --#{$namespace}-input-bg-color: var(--#{$namespace}-fill-color-blank);
63
- --#{$namespace}-input-icon-color: var(--#{$namespace}-text-color-placeholder);
64
- --#{$namespace}-input-placeholder-color: var(--#{$namespace}-text-color-placeholder);
65
- --#{$namespace}-input-hover-border-color: var(--#{$namespace}-border-color-hover);
66
- --#{$namespace}-input-clear-hover-color: var(--#{$namespace}-text-color-secondary);
67
- --#{$namespace}-input-focus-border-color: var(--#{$namespace}-color-primary);
68
- }
69
-
70
- .#{$namespace}-textarea {
31
+ @include b(textarea) {
71
32
  position: relative;
72
33
  display: inline-block;
73
34
  width: 100%;
74
35
  vertical-align: bottom;
75
- font-size: 14px;
36
+ font-size: getCssVar('font-size', 'base');
37
+
38
+ @include e(inner) {
39
+ position: relative;
40
+ display: block;
41
+ resize: vertical;
42
+ padding: 5px map.get($input-padding-horizontal, 'default')-$border-width;
43
+ line-height: 1.5;
44
+ box-sizing: border-box;
45
+ width: 100%;
46
+ font-size: inherit;
47
+ font-family: inherit;
48
+ color: var(#{getCssVarName('input-text-color')}, map.get($input, 'text-color'));
49
+ background-color: var(#{getCssVarName('input-bg-color')}, map.get($input, 'bg-color'));
50
+ background-image: none;
51
+ -webkit-appearance: none;
52
+ @include inset-input-border(var(#{getCssVarName('input-border-color')}, map.get($input, 'border-color')));
53
+ border-radius: getCssVarWithDefault('input-border-radius', map.get($input, 'border-radius'));
54
+ transition: getCssVar('transition-box-shadow');
55
+ border: none;
56
+
57
+ &::placeholder {
58
+ color: getCssVarWithDefault('input-placeholder-color', map.get($input, 'placeholder-color'));
59
+ }
60
+
61
+ &:hover {
62
+ @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
63
+ }
64
+
65
+ &:focus {
66
+ outline: none;
67
+ @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
68
+ }
69
+ }
76
70
 
77
- .#{$namespace}-textarea__count {
78
- color: var(--#{$namespace}-color-info);
79
- background: var(--#{$namespace}-fill-color-blank);
71
+ & .#{$namespace}-input__count,
72
+ & .#{$namespace}-textarea__count {
73
+ color: getCssVar('color-info');
74
+ background: getCssVar('fill-color', 'blank');
80
75
  position: absolute;
81
76
  font-size: 12px;
82
77
  line-height: 14px;
@@ -84,495 +79,361 @@
84
79
  right: 10px;
85
80
  }
86
81
 
87
- &.is-plain {
82
+ @include when(plain) {
88
83
  .#{$namespace}-textarea__inner {
89
- box-shadow: none !important;
90
- resize: none !important;
84
+ box-shadow: none;
85
+ resize: none;
86
+ padding: 0;
91
87
  }
92
88
  }
93
89
 
94
- &.is-disabled {
90
+ @include when(disabled) {
95
91
  .#{$namespace}-textarea__inner {
96
- background-color: var(--#{$namespace}-disabled-bg-color);
97
- color: var(--#{$namespace}-disabled-text-color);
98
- box-shadow: 0 0 0 1px var(--#{$namespace}-border-color-light) inset;
92
+ @include inset-input-border(#{getCssVar('disabled-border-color')});
93
+ background-color: map.get($input-disabled, 'fill');
94
+ color: map.get($input-disabled, 'text-color');
99
95
  cursor: not-allowed;
100
- }
101
- }
102
96
 
103
- &.is-active {
104
- .#{$namespace}-textarea__inner {
105
- outline: none;
106
- box-shadow: 0 0 0 1px var(--#{$namespace}-color-primary) inset;
97
+ &::placeholder {
98
+ color: map.get($input-disabled, 'placeholder-color');
99
+ }
107
100
  }
108
101
  }
109
102
 
110
- &.is-exceed {
103
+ @include when(exceed) {
111
104
  .#{$namespace}-textarea__inner {
112
- border-color: var(--#{$namespace}-color-error);
105
+ @include mixed-input-border(#{getCssVar('color-danger')});
113
106
  }
114
107
 
115
- .#{$namespace}-textarea__count {
116
- color: var(--#{$namespace}-color-error);
108
+ .#{$namespace}-input__count {
109
+ color: getCssVar('color-danger');
117
110
  }
118
111
  }
119
112
  }
120
113
 
121
- .#{$namespace}-textarea__inner {
122
- font-family: 'PingFang-SC-Regular', 'PingFang SC', sans-serif;
123
- position: relative;
124
- display: block;
125
- resize: vertical;
126
- padding: 5px 15px;
127
- line-height: 1.5;
128
- box-sizing: border-box;
129
- width: 100%;
130
- font-size: inherit;
131
- font-family: inherit;
132
- background-color: var(--#{$namespace}-input-bg-color, var(--#{$namespace}-fill-color-blank));
133
- color: var(--#{$namespace}-input-text-color, var(--#{$namespace}-text-color-regular));
134
- background-image: none;
135
- @include inset-input-border(var(--#{$namespace}-input-border-color, var(--#{$namespace}-border-color)));
136
- border-radius: 4px;
137
- transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
138
- border: none;
139
- outline: none;
140
-
141
- @include placeholder();
142
-
143
- &:hover {
144
- @include inset-input-border(var(--#{$namespace}-input-hover-border-color));
145
- }
146
-
147
- &:focus {
148
- outline: none;
149
- @include inset-input-border(var(--#{$namespace}-color-primary));
150
- }
151
-
152
- &.is-warning {
153
- @include inset-input-border(var(--#{$namespace}-color-warning));
154
- color: var(--#{$namespace}-color-warning) !important;
155
- }
156
-
157
- &.is-error {
158
- @include inset-input-border(var(--#{$namespace}-color-error));
159
- color: var(--#{$namespace}-color-error) !important;
160
- }
114
+ @include b(input) {
115
+ @include set-component-css-var('input', $input);
161
116
  }
162
117
 
163
- .#{$namespace}-input {
164
- --#{$namespace}-input-inner-height: calc(var(--#{$namespace}-input-height, 32px) - 2px);
118
+ @include b(input) {
119
+ @include css-var-from-global('input-height', 'component-size');
120
+
165
121
  position: relative;
122
+ font-size: getCssVar('font-size', 'base');
166
123
  display: inline-flex;
167
- width: 100%;
168
- font-size: 14px;
169
- line-height: var(--#{$namespace}-input-inner-height, 30px);
124
+ width: getCssVar('input-width');
125
+ line-height: getCssVar('input-height');
170
126
  box-sizing: border-box;
171
127
  vertical-align: middle;
128
+ @include scroll-bar;
172
129
 
173
- &.is-active {
174
- .#{$namespace}-input__wrapper {
175
- outline: none;
176
- box-shadow: 0 0 0 1px var(--#{$namespace}-input-focus-color, var(--#{$namespace}-color-primary)) inset;
130
+ & .#{$namespace}-input__clear,
131
+ & .#{$namespace}-input__password {
132
+ color: getCssVar('input-icon-color');
133
+ font-size: map.get($input-font-size, 'default');
134
+ cursor: pointer;
135
+
136
+ &:hover {
137
+ color: getCssVar('input-clear-hover-color');
177
138
  }
178
139
  }
179
140
 
180
- &.is-disabled {
181
- cursor: not-allowed;
141
+ & .#{$namespace}-input__count {
142
+ height: 100%;
143
+ display: inline-flex;
144
+ align-items: center;
145
+ color: getCssVar('color-info');
146
+ font-size: 12px;
182
147
 
183
- .#{$namespace}-input__wrapper {
184
- background-color: var(--#{$namespace}-disabled-bg-color);
185
- box-shadow: 0 0 0 1px var(--#{$namespace}-border-color-light) inset;
148
+ .#{$namespace}-input__count-inner {
149
+ background: getCssVar('fill-color', 'blank');
150
+ line-height: initial;
151
+ display: inline-block;
152
+ padding-left: 8px;
186
153
  }
154
+ }
187
155
 
188
- .#{$namespace}-input__inner {
189
- color: var(--#{$namespace}-disabled-text-color);
190
- -webkit-text-fill-color: var(--#{$namespace}-disabled-text-color);
191
- cursor: not-allowed;
156
+ @include e(wrapper) {
157
+ display: inline-flex;
158
+ flex-grow: 1;
159
+ align-items: center;
160
+ justify-content: center;
161
+ padding: $border-width map.get($input-padding-horizontal, 'default')-$border-width;
162
+ background-color: var(#{getCssVarName('input-bg-color')}, map.get($input, 'bg-color'));
163
+ background-image: none;
164
+ border-radius: getCssVarWithDefault('input-border-radius', map.get($input, 'border-radius'));
165
+ cursor: text;
166
+ transition: getCssVar('transition-box-shadow');
167
+ transform: translate3d(0, 0, 0);
168
+ @include inset-input-border(var(#{getCssVarName('input-border-color')}, map.get($input, 'border-color')));
169
+
170
+ &:hover {
171
+ @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
192
172
  }
193
173
 
194
- &::placeholder {
195
- color: var(--#{$namespace}-disabled-text-color);
174
+ @include when(focus) {
175
+ @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
196
176
  }
177
+ }
197
178
 
198
- .#{$namespace}-input__icon {
199
- cursor: not-allowed;
200
- }
179
+ & {
180
+ // use map.get as default value for date picker range
181
+ @include set-css-var-value('input-inner-height', calc(var(#{getCssVarName('input-height')}, #{map.get($input-height, 'default')}) - $border-width * 2));
182
+ }
201
183
 
202
- &.is-plain {
203
- .#{$namespace}-input__wrapper {
204
- background-color: transparent !important;
205
- }
184
+ @include e(inner) {
185
+ width: 100%;
186
+ flex-grow: 1;
187
+ -webkit-appearance: none;
188
+ color: var(#{getCssVarName('input-text-color')}, map.get($input, 'text-color'));
189
+ font-size: inherit;
190
+ height: getCssVar('input-inner-height');
191
+ line-height: getCssVar('input-inner-height');
192
+ padding: 0;
193
+ outline: none;
194
+ border: none;
195
+ background: none;
196
+ box-sizing: border-box;
197
+
198
+ &:focus {
199
+ outline: none;
206
200
  }
207
- }
208
201
 
209
- &.is-plain {
210
- .#{$namespace}-input__wrapper {
211
- box-shadow: none !important;
202
+ &::placeholder {
203
+ color: getCssVarWithDefault('input-placeholder-color', map.get($input, 'placeholder-color'));
212
204
  }
213
- }
214
205
 
215
- &.is-exceed {
216
- .#{$namespace}-input__wrapper {
217
- @include mixed-input-border(var(--#{$namespace}-color-error));
206
+ // override edge default style
207
+ &[type='password']::-ms-reveal {
208
+ display: none;
218
209
  }
219
210
 
220
- .#{$namespace}-input__suffix {
221
- .#{$namespace}-input__count {
222
- color: var(--#{$namespace}-color-error);
223
- }
211
+ &[type='number'] {
212
+ line-height: 1;
224
213
  }
225
214
  }
226
215
 
227
- .#{$namespace}-input__count {
228
- height: 100%;
229
- display: inline-flex;
230
- align-items: center;
231
- color: var(--#{$namespace}-color-info);
232
- font-size: 12px;
233
-
234
- .#{$namespace}-input__count-inner {
235
- background: var(--#{$namespace}-fill-color-blank);
236
- line-height: initial;
237
- display: inline-block;
238
- padding-left: 8px;
216
+ @each $slot in (prefix, suffix) {
217
+ @include e($slot) {
218
+ display: inline-flex;
219
+ white-space: nowrap;
220
+ flex-shrink: 0;
221
+ flex-wrap: nowrap;
222
+ height: 100%;
223
+ line-height: getCssVar('input-inner-height');
224
+ text-align: center;
225
+ color: var(#{getCssVarName('input-icon-color')}, map.get($input, 'icon-color'));
226
+ transition: all getCssVar('transition-duration');
227
+ pointer-events: none;
239
228
  }
240
- }
241
- }
242
229
 
243
- .#{$namespace}-input__icon {
244
- height: inherit;
245
- line-height: inherit;
246
- display: flex;
247
- justify-content: center;
248
- align-items: center;
249
- transition: all 0.3s;
250
- margin-left: 8px;
251
- }
230
+ @include e(#{$slot}-inner) {
231
+ pointer-events: all;
232
+ display: inline-flex;
233
+ align-items: center;
234
+ justify-content: center;
252
235
 
253
- .#{$namespace}-input__clear,
254
- .#{$namespace}-input__password,
255
- .#{$namespace}-input__click {
256
- cursor: pointer;
236
+ @if $slot == prefix {
237
+ > :last-child {
238
+ margin-right: 8px;
239
+ }
257
240
 
258
- &:hover {
259
- color: var(--#{$namespace}-color-primary);
241
+ > :first-child {
242
+ &,
243
+ &.#{$namespace}-input__icon {
244
+ margin-left: 0;
245
+ }
246
+ }
247
+ } @else {
248
+ > :first-child {
249
+ margin-left: 8px;
250
+ }
251
+ }
252
+ }
260
253
  }
261
- }
262
254
 
263
- .#{$namespace}-input__wrapper {
264
- display: inline-flex;
265
- flex-grow: 1;
266
- align-items: center;
267
- justify-content: center;
268
- padding: 1px 11px;
269
- background-color: var(--#{$namespace}-input-bg-color, var(--#{$namespace}-fill-color-blank));
270
- background-image: none;
271
- border-radius: 4px;
272
- transition: box-shadow 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
273
- @include inset-input-border(var(--#{$namespace}-input-border-color, var(--#{$namespace}-border-color)));
274
-
275
- &:hover {
276
- @include inset-input-border(var(--#{$namespace}-input-hover-border-color));
255
+ & .#{$namespace}-input__icon {
256
+ height: inherit;
257
+ line-height: inherit;
258
+ display: flex;
259
+ justify-content: center;
260
+ align-items: center;
261
+ transition: all getCssVar('transition-duration');
262
+ margin-left: 8px;
277
263
  }
278
264
 
279
- &.is-focus {
280
- @include inset-input-border(var(--#{$namespace}-input-focus-border-color));
265
+ @include e(validateIcon) {
266
+ pointer-events: none;
281
267
  }
282
268
 
283
- &.is-warning {
284
- @include inset-input-border(var(--#{$namespace}-color-warning));
285
- color: var(--#{$namespace}-color-warning) !important;
269
+ @include when(active) {
270
+ .#{$namespace}-input__wrapper {
271
+ @include mixed-input-border(var(#{getCssVarName('input-focus-color')}, map.get($input, 'focus-color')));
272
+ }
286
273
  }
287
274
 
288
- &.is-error {
289
- @include inset-input-border(var(--#{$namespace}-color-error));
290
- color: var(--#{$namespace}-color-error) !important;
275
+ @include when(plain) {
276
+ .#{$namespace}-input__wrapper {
277
+ box-shadow: none;
278
+ padding: 0;
279
+ }
291
280
  }
292
- }
293
281
 
294
- .#{$namespace}-input__inner {
295
- font-family: 'PingFang-SC-Regular', 'PingFang SC', sans-serif;
296
- width: 100%;
297
- flex-grow: 1;
298
- -webkit-appearance: none;
299
- color: var(--#{$namespace}-input-text-color, var(--#{$namespace}-text-color-regular));
300
- font-size: inherit;
301
- height: var(--#{$namespace}-input-inner-height, 32px);
302
- line-height: var(--#{$namespace}-input-inner-height, 32px);
303
- padding: 0;
304
- outline: none;
305
- border: none;
306
- background: none;
307
- box-sizing: border-box;
308
- @include placeholder();
282
+ @include when(disabled) {
283
+ cursor: not-allowed;
309
284
 
310
- &:focus {
311
- outline: none;
312
- }
313
- // override edge default style
314
- &[type='password']::-ms-reveal {
315
- display: none;
316
- }
285
+ .#{$namespace}-input__wrapper {
286
+ background-color: map.get($input-disabled, 'fill');
287
+ cursor: not-allowed;
288
+ @include mixed-input-border(map.get($input-disabled, 'border'));
289
+ }
317
290
 
318
- &.#{$namespace}-date {
319
- cursor: pointer;
320
- }
321
- }
291
+ .#{$namespace}-input__inner {
292
+ color: map.get($input-disabled, 'text-color');
293
+ -webkit-text-fill-color: map.get($input-disabled, 'text-color');
294
+ cursor: not-allowed;
322
295
 
323
- .#{$namespace}-input__suffix {
324
- display: inline-flex;
325
- white-space: nowrap;
326
- flex-shrink: 0;
327
- flex-wrap: nowrap;
328
- text-align: center;
329
- color: var(--#{$namespace}-input-icon-color, var(--#{$namespace}-text-color-placeholder));
330
- transition: all 0.3s;
331
- pointer-events: none;
332
- }
296
+ &::placeholder {
297
+ color: map.get($input-disabled, 'placeholder-color');
298
+ }
299
+ }
333
300
 
334
- .#{$namespace}-input__suffix-inner {
335
- pointer-events: all;
336
- display: inline-flex;
337
- align-items: center;
338
- justify-content: center;
339
- }
301
+ .#{$namespace}-input__icon {
302
+ cursor: not-allowed;
303
+ }
340
304
 
341
- .#{$namespace}-input__prefix {
342
- display: inline-flex;
343
- white-space: nowrap;
344
- flex-shrink: 0;
345
- flex-wrap: nowrap;
346
- text-align: center;
347
- color: var(--#{$namespace}-input-icon-color, var(--#{$namespace}-text-color-placeholder));
348
- transition: all 0.3s;
349
- pointer-events: none;
350
- }
305
+ .#{$namespace}-input__prefix-inner,
306
+ .#{$namespace}-input__suffix-inner {
307
+ pointer-events: none;
308
+ }
309
+ }
351
310
 
352
- .#{$namespace}-input__prefix-inner {
353
- pointer-events: all;
354
- display: inline-flex;
355
- align-items: center;
356
- justify-content: center;
311
+ @include when(exceed) {
312
+ .#{$namespace}-input__wrapper {
313
+ @include mixed-input-border(#{getCssVar('color-danger')});
314
+ }
357
315
 
358
- & > :last-child {
359
- margin-right: 8px;
316
+ .#{$namespace}-input__suffix {
317
+ .#{$namespace}-input__count {
318
+ color: getCssVar('color-danger');
319
+ }
320
+ }
360
321
  }
361
322
 
362
- & > :first-child {
363
- margin-left: 8px;
323
+ @each $size in (large, small) {
324
+ @include m($size) {
325
+ @include css-var-from-global('input-height', ('component-size', $size));
326
+
327
+ font-size: map.get($input-font-size, $size);
364
328
 
365
- &.#{$namespace}-input__icon {
366
- margin-left: 0;
329
+ @include e(wrapper) {
330
+ padding: $border-width map.get($input-padding-horizontal, $size)-$border-width;
331
+ }
332
+ & {
333
+ @include set-css-var-value('input-inner-height', calc(var(#{getCssVarName('input-height')}, #{map.get($input-height, $size)}) - $border-width * 2));
334
+ }
367
335
  }
368
336
  }
369
337
  }
370
338
 
371
- .#{$namespace}-input__validateIcon {
372
- pointer-events: none;
373
- }
374
-
375
- // input-group=========================================================
376
-
377
- // 复合型输入框
378
- .#{$namespace}-input-group {
339
+ @include b(input-group) {
379
340
  display: inline-flex;
380
341
  width: 100%;
381
342
  align-items: stretch;
382
343
 
383
- & > .#{$namespace}-input__inner {
384
- vertical-align: middle;
385
- display: table-cell;
386
- }
344
+ @include e((append, prepend)) {
345
+ background-color: getCssVar('fill-color', 'light');
346
+ color: getCssVar('color-info');
347
+ position: relative;
348
+ display: inline-flex;
349
+ align-items: center;
350
+ justify-content: center;
351
+ min-height: 100%;
352
+ border-radius: getCssVar('input-border-radius');
353
+ padding: 0 20px;
354
+ white-space: nowrap;
387
355
 
388
- &.is-plain {
389
- .#{$namespace}-input__wrapper {
390
- box-shadow: none !important;
356
+ &:focus {
357
+ outline: none;
391
358
  }
392
- }
393
- }
394
-
395
- .#{$namespace}-input-group__append,
396
- .#{$namespace}-input-group__prepend {
397
- background-color: var(--#{$namespace}-fill-color-light);
398
- color: var(--#{$namespace}-color-info);
399
- position: relative;
400
- display: inline-flex;
401
- align-items: center;
402
- justify-content: center;
403
- min-height: 100%;
404
- border-radius: 4px;
405
- padding: 0 20px;
406
- white-space: nowrap;
407
-
408
- &:focus {
409
- outline: none;
410
- }
411
-
412
- .#{$namespace}-select,
413
- .#{$namespace}-button {
414
- display: inline-block;
415
- margin: 0 -20px;
416
- line-height: 0;
417
- }
418
359
 
419
- button.#{$namespace}-button,
420
- button.#{$namespace}-button:hover,
421
- div.#{$namespace}-select .#{$namespace}-input__inner,
422
- div.#{$namespace}-select:hover .#{$namespace}-input__inner {
423
- border-color: transparent;
424
- background-color: transparent;
425
- color: inherit;
426
- }
360
+ .#{$namespace}-select,
361
+ .#{$namespace}-button {
362
+ display: inline-block;
363
+ flex: 1;
364
+ margin: 0 -20px;
365
+ }
427
366
 
428
- .#{$namespace}-button,
429
- .#{$namespace}-input {
430
- font-size: inherit;
431
- }
367
+ button.#{$namespace}-button,
368
+ button.#{$namespace}-button:hover,
369
+ div.#{$namespace}-select .#{$namespace}-select__wrapper,
370
+ div.#{$namespace}-select:hover .#{$namespace}-select__wrapper {
371
+ border-color: transparent;
372
+ background-color: transparent;
373
+ color: inherit;
374
+ }
432
375
 
433
- button.#{$namespace}-button,
434
- button.#{$namespace}-button:hover,
435
- div.#{$namespace}-select .#{$namespace}-input__wrapper,
436
- div.#{$namespace}-select:hover .#{$namespace}-input__wrapper {
437
- border-color: transparent;
438
- background-color: transparent;
439
- color: inherit;
376
+ .#{$namespace}-button,
377
+ .#{$namespace}-input {
378
+ font-size: inherit;
379
+ }
440
380
  }
441
381
 
442
- .#{$namespace}-button,
443
- .#{$namespace}-input {
444
- font-size: inherit;
382
+ @include e(prepend) {
383
+ border-right: 0;
384
+ border-top-right-radius: 0;
385
+ border-bottom-right-radius: 0;
386
+ @include inset-prepend-border(#{getCssVar('input-border-color')});
445
387
  }
446
- }
447
-
448
- .#{$namespace}-input-group__prepend {
449
- border-right: 0;
450
- border-top-right-radius: 0;
451
- border-bottom-right-radius: 0;
452
- @include inset-prepend-border(var(--#{$namespace}-input-border-color));
453
- }
454
388
 
455
- .#{$namespace}-input-group__append {
456
- border-left: 0;
457
- border-top-left-radius: 0;
458
- border-bottom-left-radius: 0;
459
- @include inset-append-border(var(--#{$namespace}-input-border-color));
460
- }
461
-
462
- .#{$namespace}-input-group--prepend {
463
- & > .#{$namespace}-input__wrapper {
389
+ @include e(append) {
390
+ border-left: 0;
464
391
  border-top-left-radius: 0;
465
392
  border-bottom-left-radius: 0;
393
+ @include inset-append-border(#{getCssVar('input-border-color')});
466
394
  }
467
395
 
468
- .#{$namespace}-input-group__prepend {
469
- .#{$namespace}-select {
470
- .#{$namespace}-input {
471
- .#{$namespace}-input__inner {
472
- box-shadow: none !important;
473
- }
396
+ @include m(prepend) {
397
+ > .#{$namespace}-input__wrapper {
398
+ border-top-left-radius: 0;
399
+ border-bottom-left-radius: 0;
400
+ }
474
401
 
475
- .#{$namespace}-input__wrapper {
402
+ @include e(prepend) {
403
+ .#{$namespace}-select {
404
+ .#{$namespace}-select__wrapper {
476
405
  border-top-right-radius: 0;
477
406
  border-bottom-right-radius: 0;
478
- @include inset-prepend-border(var(--#{$namespace}-input-border-color));
479
- background-color: var(--#{$namespace}-fill-color-blank);
480
-
481
- &.is-error {
482
- @include inset-prepend-border(var(--#{$namespace}-color-error), true);
483
- }
484
- }
485
-
486
- &.is-focus,
487
- &.is-active {
488
- .#{$namespace}-input__inner {
489
- box-shadow: none !important;
490
- }
491
-
492
- .#{$namespace}-input__wrapper {
493
- @include inset-prepend-input-border(var(--#{$namespace}-input-focus-border-color));
494
- z-index: 2;
495
-
496
- &:focus {
497
- outline: none;
498
- z-index: 2;
499
- @include inset-prepend-input-border(var(--#{$namespace}-input-focus-border-color));
500
- }
501
- }
502
- }
503
- }
504
- &:hover {
505
- .#{$namespace}-input__inner {
506
- box-shadow: none !important;
507
- }
508
-
509
- .#{$namespace}-input__wrapper {
510
- z-index: 1;
511
- @include inset-prepend-input-border(var(--#{$namespace}-input-hover-border-color));
407
+ @include inset-prepend-border(#{getCssVar('input-border-color')});
512
408
  }
513
409
  }
514
410
  }
515
- }
516
- }
517
-
518
- .#{$namespace}-input-group--append {
519
- & > .#{$namespace}-input__wrapper {
520
- border-top-right-radius: 0;
521
- border-bottom-right-radius: 0;
411
+ :has(> .#{$namespace}-select) {
412
+ background-color: var(--el-fill-color-blank);
413
+ }
522
414
  }
523
415
 
524
- .#{$namespace}-input-group__append {
525
- .#{$namespace}-select {
526
- .#{$namespace}-input {
527
- .#{$namespace}-input__inner {
528
- box-shadow: none !important;
529
- }
416
+ @include m(append) {
417
+ > .#{$namespace}-input__wrapper {
418
+ border-top-right-radius: 0;
419
+ border-bottom-right-radius: 0;
420
+ }
530
421
 
531
- .#{$namespace}-input__wrapper {
422
+ @include e(append) {
423
+ .#{$namespace}-select {
424
+ .#{$namespace}-select__wrapper {
532
425
  border-top-left-radius: 0;
533
426
  border-bottom-left-radius: 0;
534
- @include inset-append-input-border(var(--#{$namespace}-input-border-color));
535
- background-color: var(--#{$namespace}-fill-color-blank);
536
-
537
- &.is-error {
538
- @include inset-append-input-border(var(--#{$namespace}-color-error));
539
- }
540
- }
541
-
542
- &.is-focus,
543
- &.is-active {
544
- .#{$namespace}-input__inner {
545
- box-shadow: none !important;
546
- }
547
- .#{$namespace}-input__wrapper {
548
- z-index: 2;
549
- @include inset-append-input-border(var(--#{$namespace}-input-focus-border-color));
550
- }
551
- }
552
- }
553
-
554
- &:hover {
555
- .#{$namespace}-input__inner {
556
- box-shadow: none !important;
557
- }
558
-
559
- .#{$namespace}-input__wrapper {
560
- z-index: 1;
561
- @include inset-append-input-border(var(--#{$namespace}-input-hover-border-color));
427
+ @include inset-append-border(#{getCssVar('input-border-color')});
562
428
  }
563
429
  }
564
430
  }
431
+ :has(> .#{$namespace}-select) {
432
+ background-color: var(--el-fill-color-blank);
433
+ }
565
434
  }
566
435
  }
567
436
 
568
- .#{$namespace}-input--large {
569
- --#{$namespace}-input-height: var(--#{$namespace}-component-size-large);
570
- --#{$namespace}-input-inner-height: calc(var(--#{$namespace}-input-height, 40px) - 2px);
571
- font-size: 14px;
572
- }
573
-
574
- .#{$namespace}-input--small {
575
- --#{$namespace}-input-height: var(--#{$namespace}-component-size-small);
576
- --#{$namespace}-input-inner-height: calc(var(--#{$namespace}-input-height, 24px) - 2px);
577
- font-size: 12px;
437
+ @include b(input-hidden) {
438
+ display: none !important;
578
439
  }