@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,247 +1,278 @@
1
- @use '../mixins/config' as *;
2
-
3
- .#{$namespace}-select {
4
- --#{$namespace}-select-border-color-hover: var(--#{$namespace}-border-color-hover);
5
- --#{$namespace}-select-disabled-border: var(--#{$namespace}-disabled-border-color);
6
- --#{$namespace}-select-close-hover-color: var(--#{$namespace}-text-color-secondary);
7
- --#{$namespace}-select-input-color: var(--#{$namespace}-text-color-placeholder);
8
- --#{$namespace}-select-multiple-input-color: var(--#{$namespace}-text-color-regular);
9
- --#{$namespace}-select-input-focus-border-color: var(--#{$namespace}-color-primary);
1
+ @use 'sass:map';
2
+
3
+ @use '../mixins/mixins' as *;
4
+ @use '../mixins/utils' as *;
5
+ @use '../mixins/var' as *;
6
+ @use '../common/var' as *;
7
+ @use './select-dropdown.scss';
8
+ @use './option.scss';
9
+ @use './option-group.scss';
10
+
11
+ @mixin mixed-input-border($color) {
12
+ box-shadow: 0 0 0 1px $color inset;
10
13
  }
11
14
 
12
- .#{$namespace}-select {
15
+ @include b(select) {
16
+ @include set-component-css-var('select', $select);
17
+ }
18
+
19
+ @include b(select) {
13
20
  display: inline-block;
14
21
  position: relative;
15
- // height: 32px;
16
- // line-height: 32px;
17
- font-size: 14px;
18
- zoom: 1;
19
- *display: inline;
20
- width: 100%;
21
-
22
- .#{$namespace}-select__trigger {
23
- cursor: pointer;
24
- }
22
+ vertical-align: middle;
23
+ width: getCssVar('select-width');
25
24
 
26
- .#{$namespace}-input__inner {
25
+ @include e(wrapper) {
26
+ display: flex;
27
+ align-items: center;
28
+ position: relative;
29
+ box-sizing: border-box;
27
30
  cursor: pointer;
28
- display: inline-flex;
29
- }
31
+ text-align: left;
32
+ font-size: map.get($input-font-size, 'default');
33
+ padding: map.get($select-wrapper-padding, 'default');
34
+ gap: map.get($select-item-gap, 'default');
35
+ min-height: map.get($input-height, 'default');
36
+ line-height: map.get($select-item-height, 'default');
37
+ border-radius: getCssVar('border-radius-base');
38
+ background-color: getCssVar('fill-color', 'blank');
39
+ transition: getCssVar('transition', 'duration');
40
+ transform: translate3d(0, 0, 0);
41
+ @include mixed-input-border(#{getCssVar('border-color')});
42
+
43
+ @include when(filterable) {
44
+ cursor: text;
45
+ }
30
46
 
31
- &.is-disabled {
32
- .#{$namespace}-input__inner {
33
- cursor: not-allowed;
47
+ @include when(focused) {
48
+ @include mixed-input-border(#{getCssVar('color-primary')});
34
49
  }
35
50
 
36
- .#{$namespace}-select__tags .#{$namespace}-tag--info {
37
- background-color: var(--#{$namespace}-fill-color-darker);
51
+ @include when(hovering) {
52
+ &:not(.is-focused) {
53
+ @include mixed-input-border(#{getCssVar('border-color-hover')});
54
+ }
38
55
  }
39
- }
40
56
 
41
- .#{$namespace}-select__tags {
42
- & > span {
43
- display: inline-block;
57
+ @include when(disabled) {
58
+ cursor: not-allowed;
59
+
60
+ background-color: getCssVar('fill-color', 'light');
61
+ color: getCssVar('text-color', 'placeholder');
62
+ @include mixed-input-border(#{getCssVar('select-disabled-border')});
63
+
64
+ &:hover {
65
+ @include mixed-input-border(#{getCssVar('select-disabled-border')});
66
+ }
67
+
68
+ &.is-focus {
69
+ @include mixed-input-border(#{getCssVar('input-focus-border-color')});
70
+ }
71
+
72
+ @include e(selected-item) {
73
+ color: getCssVar('select-disabled-color');
74
+ }
75
+
76
+ @include e(caret) {
77
+ cursor: not-allowed;
78
+ }
79
+
80
+ .#{$namespace}-tag {
81
+ cursor: not-allowed;
82
+ }
83
+
84
+ // When the native input tag is disabled, the cursor value is the 'default'.
85
+ input {
86
+ cursor: not-allowed;
87
+ }
88
+
89
+ .#{$namespace}-select__prefix,
90
+ .#{$namespace}-select__suffix {
91
+ pointer-events: none;
92
+ }
44
93
  }
45
94
 
46
- .#{$namespace}-tag {
47
- box-sizing: border-box;
48
- border-color: transparent;
49
- margin: 2px 6px 2px 0;
95
+ @include when(plain) {
96
+ box-shadow: none !important;
97
+ background: none !important;
98
+ padding: 0;
50
99
  }
51
100
  }
52
101
 
53
- .#{$namespace}-select-tags-wrapper.has-prefix {
54
- margin-left: 6px;
102
+ @include e(prefix) {
103
+ display: flex;
104
+ align-items: center;
105
+ flex-shrink: 0;
106
+ gap: map.get($select-item-gap, 'default');
107
+ color: var(#{getCssVarName('input-icon-color')}, map.get($input, 'icon-color'));
55
108
  }
56
- }
57
109
 
58
- // .#{$namespace}-select--large {
59
- // height: var(--#{$namespace}-component-size-large);
60
- // line-height: var(--#{$namespace}-component-size-large);
61
- // }
62
-
63
- // .#{$namespace}-select--small {
64
- // height: var(--#{$namespace}-component-size-small);
65
- // line-height: var(--#{$namespace}-component-size-small);
66
- // }
67
-
68
- .#{$namespace}-select__tags {
69
- position: absolute;
70
- line-height: normal;
71
- white-space: normal;
72
- z-index: 1;
73
- top: 50%;
74
- transform: translateY(-50%);
75
- display: flex;
76
- align-items: center;
77
- flex-wrap: wrap;
78
- margin-right: 30px;
79
- }
110
+ @include e(suffix) {
111
+ display: flex;
112
+ align-items: center;
113
+ flex-shrink: 0;
114
+ gap: map.get($select-item-gap, 'default');
115
+ color: var(#{getCssVarName('input-icon-color')}, map.get($input, 'icon-color'));
80
116
 
81
- .#{$namespace}-select .#{$namespace}-select__tags .#{$namespace}-tag--info {
82
- background-color: var(--#{$namespace}-fill-color);
83
- }
117
+ @include when(hidden-clear) {
118
+ .#{$namespace}-select__clear {
119
+ display: none;
120
+ }
121
+ }
84
122
 
85
- .#{$namespace}-select-dorpdown {
86
- .#{$namespace}-select-dropdown__wrap {
87
- max-height: 274px;
123
+ @include when(hidden-arrow) {
124
+ .#{$namespace}-select__arrow {
125
+ display: none;
126
+ }
127
+ }
88
128
  }
89
129
 
90
- .#{$namespace}-select-dropdown__list {
91
- // box-sizing: border-box;
92
- // width: 100%;
93
- // border-radius: 4px;
94
- // background-clip: padding-box;
130
+ @include e(caret) {
131
+ color: getCssVar('select-input-color');
132
+ font-size: getCssVar('select-input-font-size');
133
+ transition: getCssVar('transition', 'duration');
134
+ transform: rotateZ(0deg);
135
+ cursor: pointer;
95
136
 
96
- position: relative;
97
- // overflow-x: hidden;
98
- // overflow-y: auto;
99
- margin: 4px 0;
100
- padding: 0;
101
- max-height: 240px;
102
- -webkit-overflow-scrolling: touch;
103
- font-size: 14px;
137
+ @include when(reverse) {
138
+ transform: rotateZ(180deg);
139
+ }
140
+ }
104
141
 
105
- .#{$namespace}-select-dropdown__item {
106
- display: list-item;
107
- cursor: pointer;
108
- margin: 0;
109
- padding: 0 15px;
110
- list-style: none;
111
- -webkit-touch-callout: none;
112
- position: relative;
113
- white-space: nowrap;
114
- overflow: hidden;
115
- text-overflow: ellipsis;
116
- color: var(--#{$namespace}-text-color-regular);
117
- height: 34px;
118
- line-height: 34px;
119
- box-sizing: border-box;
120
- cursor: pointer;
142
+ @include e(clear) {
143
+ cursor: pointer;
121
144
 
122
- &.selected {
123
- color: var(--#{$namespace}-color-primary);
124
- }
145
+ &:hover {
146
+ color: getCssVar('select-close-hover-color');
147
+ }
148
+ }
125
149
 
126
- &.hover {
127
- background-color: var(--#{$namespace}-fill-color-light);
128
- }
150
+ @include e(selection) {
151
+ position: relative;
152
+ display: flex;
153
+ flex-wrap: wrap;
154
+ align-items: center;
155
+ flex: 1;
156
+ min-width: 0;
157
+ gap: map.get($select-item-gap, 'default');
158
+
159
+ @include when(near) {
160
+ margin-left: map.get($select-near-margin-left, 'default');
161
+ }
129
162
 
130
- &.is-disabled {
131
- color: var(--#{$namespace}-text-color-placeholder);
132
- cursor: not-allowed;
163
+ .#{$namespace}-tag {
164
+ cursor: pointer;
165
+ border-color: transparent;
133
166
 
134
- &.hover {
135
- background-color: transparent;
136
- color: var(--#{$namespace}-text-color-placeholder);
137
- }
167
+ &.#{$namespace}-tag--plain {
168
+ border-color: getCssVar('tag', 'border-color');
138
169
  }
139
170
 
140
- &.no-data,
141
- &.loading {
142
- text-align: center;
143
- margin: -4px 0;
171
+ .#{$namespace}-tag__content {
172
+ min-width: 0;
144
173
  }
145
174
  }
146
175
  }
147
176
 
148
- .#{$namespace}-select__search {
149
- position: relative;
150
- z-index: 1010;
151
- margin: 0;
152
- padding: 3px 4px;
153
- white-space: nowrap;
177
+ @include e(selected-item) {
178
+ display: flex;
179
+ flex-wrap: wrap;
180
+ user-select: none;
181
+ }
154
182
 
155
- .#{$namespace}-clear {
156
- cursor: pointer;
157
- pointer-events: unset;
158
- }
183
+ @include e(tags-text) {
184
+ display: block;
185
+ line-height: normal;
186
+ @include utils-ellipsis;
159
187
  }
160
188
 
161
- &.is-multiple .#{$namespace}-select-dropdown__item.selected:after {
162
- content: '';
189
+ @include e(placeholder) {
163
190
  position: absolute;
191
+ z-index: -1;
192
+ display: block;
164
193
  top: 50%;
165
- right: 20px;
166
- border-top: none;
167
- border-right: none;
168
- background-repeat: no-repeat;
169
- background-position: center;
170
- background: var(--#{$namespace}-bg-color-primary, var(--#{$namespace}-color-primary));
171
- mask: url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E")
172
- no-repeat;
173
- mask-size: 100% 100%;
174
- -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E")
175
- no-repeat;
176
- -webkit-mask-size: 100% 100%;
177
194
  transform: translateY(-50%);
178
- width: 16px;
179
- height: 16px;
180
- }
181
- }
182
-
183
- .#{$namespace}-select-group {
184
- margin: 0;
185
- padding: 0;
195
+ width: 100%;
196
+ @include utils-ellipsis;
197
+ color: var(#{getCssVarName('input-text-color')}, map.get($input, 'text-color'));
186
198
 
187
- & .#{$namespace}-select-dropdown__item {
188
- padding-left: 20px;
199
+ @include when(transparent) {
200
+ user-select: none;
201
+ color: getCssVar('text-color', 'placeholder');
202
+ }
189
203
  }
190
- }
191
204
 
192
- .#{$namespace}-select-group__wrap {
193
- position: relative;
194
- list-style: none;
195
- margin: 0;
196
- padding: 0;
205
+ @include e(popper) {
206
+ @include picker-popper(map.get($select-dropdown, 'bg-color'), map.get($select-dropdown, 'border'), map.get($select-dropdown, 'shadow'));
207
+ }
197
208
 
198
- &:not(:last-of-type) {
199
- padding-bottom: 24px;
209
+ @include e(input-wrapper) {
210
+ flex: 1;
200
211
 
201
- &::after {
202
- content: '';
212
+ @include when(hidden) {
213
+ // Out of the document flow
203
214
  position: absolute;
204
- display: block;
205
- left: 20px;
206
- right: 20px;
207
- bottom: 12px;
208
- height: 1px;
209
- background: var(--#{$namespace}-border-color-light);
215
+ opacity: 0;
216
+ z-index: -1;
210
217
  }
211
218
  }
212
- }
213
219
 
214
- .#{$namespace}-select-group__split {
215
- .#{$namespace}-select-group__split-dash {
220
+ @include e(input) {
221
+ border: none;
222
+ outline: none;
223
+ padding: 0;
224
+ color: getCssVar('select-multiple-input-color');
225
+ font-size: inherit;
226
+ font-family: inherit;
227
+ appearance: none;
228
+ height: map.get($select-item-height, 'default');
229
+ width: 100%;
230
+ background-color: transparent;
231
+
232
+ @include when(disabled) {
233
+ cursor: not-allowed;
234
+ }
235
+ }
236
+
237
+ @include e(input-calculator) {
216
238
  position: absolute;
217
- left: 20px;
218
- right: 20px;
219
- height: 1px;
220
- background: #e4e7ed;
239
+ left: 0;
240
+ top: 0;
241
+ max-width: 100%;
242
+ visibility: hidden;
243
+ white-space: pre;
244
+ overflow: hidden;
221
245
  }
222
- }
223
246
 
224
- .#{$namespace}-select-group__title {
225
- padding-left: 20px;
226
- font-size: 12px;
227
- color: var(--#{$namespace}-color-info);
228
- line-height: 30px;
229
- }
247
+ @each $size in (large, small) {
248
+ @include m($size) {
249
+ @include e(wrapper) {
250
+ gap: map.get($select-item-gap, $size);
251
+ padding: map.get($select-wrapper-padding, $size);
252
+ min-height: map.get($input-height, $size);
253
+ line-height: map.get($select-item-height, $size);
254
+ font-size: map.get($input-font-size, $size);
255
+ }
230
256
 
231
- .#{$namespace}-select__input {
232
- border: none;
233
- outline: none;
234
- padding: 0;
235
- margin-left: 15px;
236
- color: var(--#{$namespace}-select-multiple-input-color);
237
- font-size: 14px;
238
- appearance: none;
239
- height: 28px;
240
- background-color: transparent;
241
- }
257
+ @include e(selection) {
258
+ gap: map.get($select-item-gap, $size);
259
+
260
+ @include when(near) {
261
+ margin-left: map.get($select-near-margin-left, $size);
262
+ }
263
+ }
264
+
265
+ @include e(prefix) {
266
+ gap: map.get($select-item-gap, $size);
267
+ }
268
+
269
+ @include e(suffix) {
270
+ gap: map.get($select-item-gap, $size);
271
+ }
242
272
 
243
- .#{$namespace}-select__tooltip {
244
- .#{$namespace}-tag {
245
- margin: 5px;
273
+ @include e(input) {
274
+ height: map.get($select-item-height, $size);
275
+ }
276
+ }
246
277
  }
247
278
  }