@type-dom/ui 0.4.0 → 0.4.1

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 (154) hide show
  1. package/README.md +134 -134
  2. package/dist/package.json +1 -1
  3. package/dist/src/components/data/td-progress/td-progress.class.js +5 -5
  4. package/dist/src/components/data/td-statistic/td-statistic.class.d.ts +2 -2
  5. package/dist/src/components/data/td-statistic/td-statistic.class.d.ts.map +1 -1
  6. package/dist/src/components/feedback/td-message/method.d.ts +1 -1
  7. package/dist/src/components/feedback/td-message/method.d.ts.map +1 -1
  8. package/dist/src/components/feedback/td-message/method.js +24 -7
  9. package/dist/src/components/feedback/td-message/method.js.map +1 -1
  10. package/dist/src/components/feedback/td-tooltip/td-tooltip.const.d.ts.map +1 -1
  11. package/dist/src/components/form/td-date-picker/composables/use-shortcut.d.ts +1 -1
  12. package/dist/src/components/form/td-date-picker/composables/use-shortcut.d.ts.map +1 -1
  13. package/dist/src/components/form/td-date-picker/composables/use-shortcut.js +1 -1
  14. package/dist/src/components/form/td-date-picker/composables/use-shortcut.js.map +1 -1
  15. package/dist/src/components/form/td-date-picker/utils.d.ts +1 -1
  16. package/dist/src/components/form/td-date-picker/utils.d.ts.map +1 -1
  17. package/dist/src/components/form/td-date-picker/utils.js +1 -1
  18. package/dist/src/components/form/td-date-picker/utils.js.map +1 -1
  19. package/dist/src/components/form/td-time-picker/time-picker-com/panel-time-pick.class.js +1 -1
  20. package/dist/src/components/form/td-time-picker/time-picker-com/panel-time-pick.class.js.map +1 -1
  21. package/dist/src/components/form/td-time-picker/utils.d.ts +1 -1
  22. package/dist/src/components/form/td-time-picker/utils.d.ts.map +1 -1
  23. package/dist/src/components/form/td-time-picker/utils.js +1 -1
  24. package/dist/src/components/form/td-time-picker/utils.js.map +1 -1
  25. package/dist/src/hooks/use-deprecated/index.js +2 -2
  26. package/dist/src/hooks/use-id/index.js +4 -4
  27. package/dist/src/hooks/use-z-index/index.js +1 -1
  28. package/dist/src/theme-chalk/affix.scss +7 -7
  29. package/dist/src/theme-chalk/alert.scss +115 -115
  30. package/dist/src/theme-chalk/anchor-link.scss +41 -41
  31. package/dist/src/theme-chalk/anchor.scss +88 -88
  32. package/dist/src/theme-chalk/aside.scss +8 -8
  33. package/dist/src/theme-chalk/autocomplete.scss +89 -89
  34. package/dist/src/theme-chalk/avatar.scss +55 -55
  35. package/dist/src/theme-chalk/backtop.scss +29 -29
  36. package/dist/src/theme-chalk/badge.scss +58 -58
  37. package/dist/src/theme-chalk/base.scss +3 -3
  38. package/dist/src/theme-chalk/breadcrumb.scss +62 -62
  39. package/dist/src/theme-chalk/button-group.scss +80 -80
  40. package/dist/src/theme-chalk/button.scss +304 -304
  41. package/dist/src/theme-chalk/calendar.scss +80 -80
  42. package/dist/src/theme-chalk/card.scss +45 -45
  43. package/dist/src/theme-chalk/carousel-item.scss +58 -58
  44. package/dist/src/theme-chalk/carousel.scss +188 -188
  45. package/dist/src/theme-chalk/cascader-panel.scss +138 -138
  46. package/dist/src/theme-chalk/cascader.scss +247 -247
  47. package/dist/src/theme-chalk/check-tag.scss +60 -60
  48. package/dist/src/theme-chalk/checkbox-button.scss +140 -140
  49. package/dist/src/theme-chalk/checkbox-group.scss +7 -7
  50. package/dist/src/theme-chalk/checkbox.scss +298 -298
  51. package/dist/src/theme-chalk/col.scss +48 -48
  52. package/dist/src/theme-chalk/collapse.scss +70 -70
  53. package/dist/src/theme-chalk/color/index.scss +20 -20
  54. package/dist/src/theme-chalk/color-picker.scss +393 -393
  55. package/dist/src/theme-chalk/common/popup.scss +47 -47
  56. package/dist/src/theme-chalk/common/transition.scss +122 -122
  57. package/dist/src/theme-chalk/common/var.scss +1655 -1655
  58. package/dist/src/theme-chalk/container.scss +14 -14
  59. package/dist/src/theme-chalk/dark/css-vars.scss +39 -39
  60. package/dist/src/theme-chalk/dark/var.scss +222 -222
  61. package/dist/src/theme-chalk/date-picker/date-picker.scss +110 -110
  62. package/dist/src/theme-chalk/date-picker/date-range-picker.scss +113 -113
  63. package/dist/src/theme-chalk/date-picker/date-table.scss +158 -158
  64. package/dist/src/theme-chalk/date-picker/month-table.scss +112 -112
  65. package/dist/src/theme-chalk/date-picker/picker-panel.scss +131 -131
  66. package/dist/src/theme-chalk/date-picker/picker.scss +212 -212
  67. package/dist/src/theme-chalk/date-picker/time-picker.scss +90 -90
  68. package/dist/src/theme-chalk/date-picker/time-range-picker.scss +33 -33
  69. package/dist/src/theme-chalk/date-picker/time-spinner.scss +111 -111
  70. package/dist/src/theme-chalk/date-picker/year-table.scss +108 -108
  71. package/dist/src/theme-chalk/date-picker.scss +9 -9
  72. package/dist/src/theme-chalk/descriptions-item.scss +73 -73
  73. package/dist/src/theme-chalk/descriptions.scss +152 -152
  74. package/dist/src/theme-chalk/dialog.scss +192 -192
  75. package/dist/src/theme-chalk/display.scss +12 -12
  76. package/dist/src/theme-chalk/divider.scss +48 -48
  77. package/dist/src/theme-chalk/drawer.scss +155 -155
  78. package/dist/src/theme-chalk/dropdown.scss +208 -208
  79. package/dist/src/theme-chalk/empty.scss +49 -49
  80. package/dist/src/theme-chalk/footer.scss +12 -12
  81. package/dist/src/theme-chalk/form.scss +244 -244
  82. package/dist/src/theme-chalk/header.scss +12 -12
  83. package/dist/src/theme-chalk/icon.scss +45 -45
  84. package/dist/src/theme-chalk/image-viewer.scss +155 -155
  85. package/dist/src/theme-chalk/image.scss +49 -49
  86. package/dist/src/theme-chalk/index.scss +111 -111
  87. package/dist/src/theme-chalk/input-number.scss +186 -186
  88. package/dist/src/theme-chalk/input-tag.scss +220 -220
  89. package/dist/src/theme-chalk/input.scss +474 -474
  90. package/dist/src/theme-chalk/link.scss +90 -90
  91. package/dist/src/theme-chalk/loading.scss +104 -104
  92. package/dist/src/theme-chalk/main.scss +14 -14
  93. package/dist/src/theme-chalk/mention.scss +92 -92
  94. package/dist/src/theme-chalk/menu.scss +339 -339
  95. package/dist/src/theme-chalk/message-box.scss +213 -213
  96. package/dist/src/theme-chalk/message.scss +98 -98
  97. package/dist/src/theme-chalk/mixins/_button.scss +165 -165
  98. package/dist/src/theme-chalk/mixins/_col.scss +33 -33
  99. package/dist/src/theme-chalk/mixins/_var.scss +67 -67
  100. package/dist/src/theme-chalk/mixins/config.scss +5 -5
  101. package/dist/src/theme-chalk/mixins/function.scss +88 -88
  102. package/dist/src/theme-chalk/mixins/mixins.scss +240 -240
  103. package/dist/src/theme-chalk/mixins/utils.scss +39 -39
  104. package/dist/src/theme-chalk/notification.scss +107 -107
  105. package/dist/src/theme-chalk/option-group.scss +33 -33
  106. package/dist/src/theme-chalk/option.scss +71 -71
  107. package/dist/src/theme-chalk/overlay.scss +17 -17
  108. package/dist/src/theme-chalk/page-header.scss +60 -60
  109. package/dist/src/theme-chalk/pagination.scss +238 -238
  110. package/dist/src/theme-chalk/popconfirm.scss +16 -16
  111. package/dist/src/theme-chalk/popover.scss +61 -61
  112. package/dist/src/theme-chalk/popper.scss +106 -106
  113. package/dist/src/theme-chalk/progress.scss +179 -179
  114. package/dist/src/theme-chalk/radio-button.scss +169 -169
  115. package/dist/src/theme-chalk/radio-group.scss +9 -9
  116. package/dist/src/theme-chalk/radio.scss +215 -215
  117. package/dist/src/theme-chalk/rate.scss +108 -108
  118. package/dist/src/theme-chalk/reset.scss +98 -98
  119. package/dist/src/theme-chalk/result.scss +57 -57
  120. package/dist/src/theme-chalk/row.scss +35 -35
  121. package/dist/src/theme-chalk/scrollbar.scss +97 -97
  122. package/dist/src/theme-chalk/segmented.scss +183 -183
  123. package/dist/src/theme-chalk/select-dropdown-v2.scss +1 -1
  124. package/dist/src/theme-chalk/select-dropdown.scss +57 -57
  125. package/dist/src/theme-chalk/select-v2.scss +4 -4
  126. package/dist/src/theme-chalk/select.scss +264 -264
  127. package/dist/src/theme-chalk/skeleton-item.scss +83 -83
  128. package/dist/src/theme-chalk/skeleton.scss +44 -44
  129. package/dist/src/theme-chalk/slider.scss +212 -212
  130. package/dist/src/theme-chalk/space.scss +20 -20
  131. package/dist/src/theme-chalk/spinner.scss +43 -43
  132. package/dist/src/theme-chalk/statistic.scss +35 -35
  133. package/dist/src/theme-chalk/step.scss +316 -316
  134. package/dist/src/theme-chalk/steps.scss +21 -21
  135. package/dist/src/theme-chalk/switch.scss +300 -300
  136. package/dist/src/theme-chalk/table-column.scss +98 -98
  137. package/dist/src/theme-chalk/table-v2.scss +236 -236
  138. package/dist/src/theme-chalk/table.scss +694 -694
  139. package/dist/src/theme-chalk/tabs.scss +660 -660
  140. package/dist/src/theme-chalk/tag.scss +181 -181
  141. package/dist/src/theme-chalk/text.scss +51 -51
  142. package/dist/src/theme-chalk/time-picker.scss +5 -5
  143. package/dist/src/theme-chalk/time-select.scss +37 -37
  144. package/dist/src/theme-chalk/timeline-item.scss +84 -84
  145. package/dist/src/theme-chalk/timeline.scss +46 -46
  146. package/dist/src/theme-chalk/tooltip-v2.scss +95 -95
  147. package/dist/src/theme-chalk/tour.scss +187 -187
  148. package/dist/src/theme-chalk/transfer.scss +203 -203
  149. package/dist/src/theme-chalk/tree-select.scss +41 -41
  150. package/dist/src/theme-chalk/tree.scss +134 -134
  151. package/dist/src/theme-chalk/upload.scss +654 -654
  152. package/dist/src/theme-chalk/var.scss +87 -87
  153. package/dist/src/theme-chalk/virtual-list.scss +40 -40
  154. package/package.json +42 -42
@@ -1,474 +1,474 @@
1
- @use 'sass:map';
2
-
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,
9
- 0 -1px 0 0 $color inset;
10
- }
11
-
12
- @mixin inset-append-border($color) {
13
- box-shadow: 0 1px 0 0 $color inset, 0 -1px 0 0 $color inset,
14
- -1px 0 0 0 $color inset;
15
- }
16
-
17
- @mixin inset-prepend-input-border($color) {
18
- box-shadow: 1px 0 0 0 $color inset, 1px 0 0 0 $color, 0 1px 0 0 $color inset,
19
- 0 -1px 0 0 $color inset !important;
20
- }
21
-
22
- @mixin inset-append-input-border($color) {
23
- box-shadow: -1px 0 0 0 $color, -1px 0 0 0 $color inset, 0 1px 0 0 $color inset,
24
- 0 -1px 0 0 $color inset !important;
25
- }
26
-
27
- @mixin mixed-input-border($color) {
28
- box-shadow: 0 0 0 1px $color inset;
29
- }
30
-
31
- @include b(textarea) {
32
- @include set-component-css-var('input', $input);
33
- }
34
-
35
- @include b(textarea) {
36
- position: relative;
37
- display: inline-block;
38
- width: 100%;
39
- vertical-align: bottom;
40
- font-size: getCssVar('font-size', 'base');
41
-
42
- @include e(inner) {
43
- position: relative;
44
- display: block;
45
- resize: vertical;
46
- padding: 5px map.get($input-padding-horizontal, 'default')-$border-width;
47
- line-height: 1.5;
48
- box-sizing: border-box;
49
- width: 100%;
50
- font-size: inherit;
51
- font-family: inherit;
52
- color: var(
53
- #{getCssVarName('input-text-color')},
54
- map.get($input, 'text-color')
55
- );
56
- background-color: var(
57
- #{getCssVarName('input-bg-color')},
58
- map.get($input, 'bg-color')
59
- );
60
- background-image: none;
61
- -webkit-appearance: none;
62
- @include inset-input-border(
63
- var(
64
- #{getCssVarName('input-border-color')},
65
- map.get($input, 'border-color')
66
- )
67
- );
68
- border-radius: getCssVarWithDefault(
69
- 'input-border-radius',
70
- map.get($input, 'border-radius')
71
- );
72
- transition: getCssVar('transition-box-shadow');
73
- border: none;
74
-
75
- &::placeholder {
76
- color: getCssVarWithDefault(
77
- 'input-placeholder-color',
78
- map.get($input, 'placeholder-color')
79
- );
80
- }
81
-
82
- &:hover {
83
- @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
84
- }
85
-
86
- &:focus {
87
- outline: none;
88
- @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
89
- }
90
- }
91
-
92
- & .#{$namespace}-input__count {
93
- color: getCssVar('color-info');
94
- background: getCssVar('fill-color', 'blank');
95
- position: absolute;
96
- font-size: 12px;
97
- line-height: 14px;
98
- bottom: 5px;
99
- right: 10px;
100
- }
101
-
102
- @include when(disabled) {
103
- .#{$namespace}-textarea__inner {
104
- @include inset-input-border(#{getCssVar('disabled-border-color')});
105
- background-color: map.get($input-disabled, 'fill');
106
- color: map.get($input-disabled, 'text-color');
107
- cursor: not-allowed;
108
-
109
- &::placeholder {
110
- color: map.get($input-disabled, 'placeholder-color');
111
- }
112
- }
113
- }
114
-
115
- @include when(exceed) {
116
- .#{$namespace}-textarea__inner {
117
- @include mixed-input-border(#{getCssVar('color-danger')});
118
- }
119
-
120
- .#{$namespace}-input__count {
121
- color: getCssVar('color-danger');
122
- }
123
- }
124
- }
125
-
126
- @include b(input) {
127
- @include set-component-css-var('input', $input);
128
- }
129
-
130
- @include b(input) {
131
- @include css-var-from-global('input-height', 'component-size');
132
-
133
- position: relative;
134
- font-size: getCssVar('font-size', 'base');
135
- display: inline-flex;
136
- width: getCssVar('input-width');
137
- line-height: getCssVar('input-height');
138
- box-sizing: border-box;
139
- vertical-align: middle;
140
- @include scroll-bar;
141
-
142
- & .#{$namespace}-input__clear,
143
- & .#{$namespace}-input__password {
144
- color: getCssVar('input-icon-color');
145
- font-size: map.get($input-font-size, 'default');
146
- cursor: pointer;
147
-
148
- &:hover {
149
- color: getCssVar('input-clear-hover-color');
150
- }
151
- }
152
-
153
- & .#{$namespace}-input__count {
154
- height: 100%;
155
- display: inline-flex;
156
- align-items: center;
157
- color: getCssVar('color-info');
158
- font-size: 12px;
159
-
160
- .#{$namespace}-input__count-inner {
161
- background: getCssVar('fill-color', 'blank');
162
- line-height: initial;
163
- display: inline-block;
164
- padding-left: 8px;
165
- }
166
- }
167
-
168
- @include e(wrapper) {
169
- display: inline-flex;
170
- flex-grow: 1;
171
- align-items: center;
172
- justify-content: center;
173
- padding: $border-width map.get($input-padding-horizontal, 'default')-$border-width;
174
- background-color: var(
175
- #{getCssVarName('input-bg-color')},
176
- map.get($input, 'bg-color')
177
- );
178
- background-image: none;
179
- border-radius: getCssVarWithDefault(
180
- 'input-border-radius',
181
- map.get($input, 'border-radius')
182
- );
183
- cursor: text;
184
- transition: getCssVar('transition-box-shadow');
185
- transform: translate3d(0, 0, 0);
186
- @include inset-input-border(
187
- var(
188
- #{getCssVarName('input-border-color')},
189
- map.get($input, 'border-color')
190
- )
191
- );
192
-
193
- &:hover {
194
- @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
195
- }
196
-
197
- @include when(focus) {
198
- @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
199
- }
200
- }
201
-
202
- & {
203
- // use map.get as default value for date picker range
204
- @include set-css-var-value(
205
- 'input-inner-height',
206
- calc(
207
- var(
208
- #{getCssVarName('input-height')},
209
- #{map.get($input-height, 'default')}
210
- ) - $border-width * 2
211
- )
212
- );
213
- }
214
-
215
- @include e(inner) {
216
- width: 100%;
217
- flex-grow: 1;
218
- -webkit-appearance: none;
219
- color: var(
220
- #{getCssVarName('input-text-color')},
221
- map.get($input, 'text-color')
222
- );
223
- font-size: inherit;
224
- height: getCssVar('input-inner-height');
225
- line-height: getCssVar('input-inner-height');
226
- padding: 0;
227
- outline: none;
228
- border: none;
229
- background: none;
230
- box-sizing: border-box;
231
-
232
- &:focus {
233
- outline: none;
234
- }
235
-
236
- &::placeholder {
237
- color: getCssVarWithDefault(
238
- 'input-placeholder-color',
239
- map.get($input, 'placeholder-color')
240
- );
241
- }
242
-
243
- // override edge default style
244
- &[type='password']::-ms-reveal {
245
- display: none;
246
- }
247
-
248
- &[type='number'] {
249
- line-height: 1;
250
- }
251
- }
252
-
253
- @each $slot in (prefix, suffix) {
254
- @include e($slot) {
255
- display: inline-flex;
256
- white-space: nowrap;
257
- flex-shrink: 0;
258
- flex-wrap: nowrap;
259
- height: 100%;
260
- line-height: getCssVar('input-inner-height');
261
- text-align: center;
262
- color: var(
263
- #{getCssVarName('input-icon-color')},
264
- map.get($input, 'icon-color')
265
- );
266
- transition: all getCssVar('transition-duration');
267
- pointer-events: none;
268
- }
269
-
270
- @include e(#{$slot}-inner) {
271
- pointer-events: all;
272
- display: inline-flex;
273
- align-items: center;
274
- justify-content: center;
275
-
276
- @if $slot == prefix {
277
- > :last-child {
278
- margin-right: 8px;
279
- }
280
-
281
- > :first-child {
282
- &,
283
- &.#{$namespace}-input__icon {
284
- margin-left: 0;
285
- }
286
- }
287
- } @else {
288
- > :first-child {
289
- margin-left: 8px;
290
- }
291
- }
292
- }
293
- }
294
-
295
- & .#{$namespace}-input__icon {
296
- height: inherit;
297
- line-height: inherit;
298
- display: flex;
299
- justify-content: center;
300
- align-items: center;
301
- transition: all getCssVar('transition-duration');
302
- margin-left: 8px;
303
- }
304
-
305
- @include e(validateIcon) {
306
- pointer-events: none;
307
- }
308
-
309
- @include when(active) {
310
- .#{$namespace}-input__wrapper {
311
- @include mixed-input-border(
312
- var(
313
- #{getCssVarName('input-focus-color')},
314
- map.get($input, 'focus-color')
315
- )
316
- );
317
- }
318
- }
319
-
320
- @include when(disabled) {
321
- cursor: not-allowed;
322
-
323
- .#{$namespace}-input__wrapper {
324
- background-color: map.get($input-disabled, 'fill');
325
- cursor: not-allowed;
326
- pointer-events: none;
327
- @include mixed-input-border(map.get($input-disabled, 'border'));
328
- }
329
-
330
- .#{$namespace}-input__inner {
331
- color: map.get($input-disabled, 'text-color');
332
- -webkit-text-fill-color: map.get($input-disabled, 'text-color');
333
- cursor: not-allowed;
334
-
335
- &::placeholder {
336
- color: map.get($input-disabled, 'placeholder-color');
337
- }
338
- }
339
-
340
- .#{$namespace}-input__icon {
341
- cursor: not-allowed;
342
- }
343
- }
344
-
345
- @include when(exceed) {
346
- .#{$namespace}-input__wrapper {
347
- @include mixed-input-border(#{getCssVar('color-danger')});
348
- }
349
-
350
- .#{$namespace}-input__suffix {
351
- .#{$namespace}-input__count {
352
- color: getCssVar('color-danger');
353
- }
354
- }
355
- }
356
-
357
- @each $size in (large, small) {
358
- @include m($size) {
359
- @include css-var-from-global('input-height', ('component-size', $size));
360
-
361
- font-size: map.get($input-font-size, $size);
362
-
363
- @include e(wrapper) {
364
- padding: $border-width map.get($input-padding-horizontal, $size)-$border-width;
365
- }
366
- & {
367
- @include set-css-var-value(
368
- 'input-inner-height',
369
- calc(
370
- var(
371
- #{getCssVarName('input-height')},
372
- #{map.get($input-height, $size)}
373
- ) - $border-width * 2
374
- )
375
- );
376
- }
377
- }
378
- }
379
- }
380
-
381
- @include b(input-group) {
382
- display: inline-flex;
383
- width: 100%;
384
- align-items: stretch;
385
-
386
- @include e((append, prepend)) {
387
- background-color: getCssVar('fill-color', 'light');
388
- color: getCssVar('color-info');
389
- position: relative;
390
- display: inline-flex;
391
- align-items: center;
392
- justify-content: center;
393
- min-height: 100%;
394
- border-radius: getCssVar('input-border-radius');
395
- padding: 0 20px;
396
- white-space: nowrap;
397
-
398
- &:focus {
399
- outline: none;
400
- }
401
-
402
- .#{$namespace}-select,
403
- .#{$namespace}-button {
404
- display: inline-block;
405
- margin: 0 -20px;
406
- }
407
-
408
- button.#{$namespace}-button,
409
- button.#{$namespace}-button:hover,
410
- div.#{$namespace}-select .#{$namespace}-select__wrapper,
411
- div.#{$namespace}-select:hover .#{$namespace}-select__wrapper {
412
- border-color: transparent;
413
- background-color: transparent;
414
- color: inherit;
415
- }
416
-
417
- .#{$namespace}-button,
418
- .#{$namespace}-input {
419
- font-size: inherit;
420
- }
421
- }
422
-
423
- @include e(prepend) {
424
- border-right: 0;
425
- border-top-right-radius: 0;
426
- border-bottom-right-radius: 0;
427
- @include inset-prepend-border(#{getCssVar('input-border-color')});
428
- }
429
-
430
- @include e(append) {
431
- border-left: 0;
432
- border-top-left-radius: 0;
433
- border-bottom-left-radius: 0;
434
- @include inset-append-border(#{getCssVar('input-border-color')});
435
- }
436
-
437
- @include m(prepend) {
438
- > .#{$namespace}-input__wrapper {
439
- border-top-left-radius: 0;
440
- border-bottom-left-radius: 0;
441
- }
442
-
443
- @include e(prepend) {
444
- .#{$namespace}-select {
445
- .#{$namespace}-select__wrapper {
446
- border-top-right-radius: 0;
447
- border-bottom-right-radius: 0;
448
- @include inset-prepend-border(#{getCssVar('input-border-color')});
449
- }
450
- }
451
- }
452
- }
453
-
454
- @include m(append) {
455
- > .#{$namespace}-input__wrapper {
456
- border-top-right-radius: 0;
457
- border-bottom-right-radius: 0;
458
- }
459
-
460
- @include e(append) {
461
- .#{$namespace}-select {
462
- .#{$namespace}-select__wrapper {
463
- border-top-left-radius: 0;
464
- border-bottom-left-radius: 0;
465
- @include inset-append-border(#{getCssVar('input-border-color')});
466
- }
467
- }
468
- }
469
- }
470
- }
471
-
472
- @include b(input-hidden) {
473
- display: none !important;
474
- }
1
+ @use 'sass:map';
2
+
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,
9
+ 0 -1px 0 0 $color inset;
10
+ }
11
+
12
+ @mixin inset-append-border($color) {
13
+ box-shadow: 0 1px 0 0 $color inset, 0 -1px 0 0 $color inset,
14
+ -1px 0 0 0 $color inset;
15
+ }
16
+
17
+ @mixin inset-prepend-input-border($color) {
18
+ box-shadow: 1px 0 0 0 $color inset, 1px 0 0 0 $color, 0 1px 0 0 $color inset,
19
+ 0 -1px 0 0 $color inset !important;
20
+ }
21
+
22
+ @mixin inset-append-input-border($color) {
23
+ box-shadow: -1px 0 0 0 $color, -1px 0 0 0 $color inset, 0 1px 0 0 $color inset,
24
+ 0 -1px 0 0 $color inset !important;
25
+ }
26
+
27
+ @mixin mixed-input-border($color) {
28
+ box-shadow: 0 0 0 1px $color inset;
29
+ }
30
+
31
+ @include b(textarea) {
32
+ @include set-component-css-var('input', $input);
33
+ }
34
+
35
+ @include b(textarea) {
36
+ position: relative;
37
+ display: inline-block;
38
+ width: 100%;
39
+ vertical-align: bottom;
40
+ font-size: getCssVar('font-size', 'base');
41
+
42
+ @include e(inner) {
43
+ position: relative;
44
+ display: block;
45
+ resize: vertical;
46
+ padding: 5px map.get($input-padding-horizontal, 'default')-$border-width;
47
+ line-height: 1.5;
48
+ box-sizing: border-box;
49
+ width: 100%;
50
+ font-size: inherit;
51
+ font-family: inherit;
52
+ color: var(
53
+ #{getCssVarName('input-text-color')},
54
+ map.get($input, 'text-color')
55
+ );
56
+ background-color: var(
57
+ #{getCssVarName('input-bg-color')},
58
+ map.get($input, 'bg-color')
59
+ );
60
+ background-image: none;
61
+ -webkit-appearance: none;
62
+ @include inset-input-border(
63
+ var(
64
+ #{getCssVarName('input-border-color')},
65
+ map.get($input, 'border-color')
66
+ )
67
+ );
68
+ border-radius: getCssVarWithDefault(
69
+ 'input-border-radius',
70
+ map.get($input, 'border-radius')
71
+ );
72
+ transition: getCssVar('transition-box-shadow');
73
+ border: none;
74
+
75
+ &::placeholder {
76
+ color: getCssVarWithDefault(
77
+ 'input-placeholder-color',
78
+ map.get($input, 'placeholder-color')
79
+ );
80
+ }
81
+
82
+ &:hover {
83
+ @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
84
+ }
85
+
86
+ &:focus {
87
+ outline: none;
88
+ @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
89
+ }
90
+ }
91
+
92
+ & .#{$namespace}-input__count {
93
+ color: getCssVar('color-info');
94
+ background: getCssVar('fill-color', 'blank');
95
+ position: absolute;
96
+ font-size: 12px;
97
+ line-height: 14px;
98
+ bottom: 5px;
99
+ right: 10px;
100
+ }
101
+
102
+ @include when(disabled) {
103
+ .#{$namespace}-textarea__inner {
104
+ @include inset-input-border(#{getCssVar('disabled-border-color')});
105
+ background-color: map.get($input-disabled, 'fill');
106
+ color: map.get($input-disabled, 'text-color');
107
+ cursor: not-allowed;
108
+
109
+ &::placeholder {
110
+ color: map.get($input-disabled, 'placeholder-color');
111
+ }
112
+ }
113
+ }
114
+
115
+ @include when(exceed) {
116
+ .#{$namespace}-textarea__inner {
117
+ @include mixed-input-border(#{getCssVar('color-danger')});
118
+ }
119
+
120
+ .#{$namespace}-input__count {
121
+ color: getCssVar('color-danger');
122
+ }
123
+ }
124
+ }
125
+
126
+ @include b(input) {
127
+ @include set-component-css-var('input', $input);
128
+ }
129
+
130
+ @include b(input) {
131
+ @include css-var-from-global('input-height', 'component-size');
132
+
133
+ position: relative;
134
+ font-size: getCssVar('font-size', 'base');
135
+ display: inline-flex;
136
+ width: getCssVar('input-width');
137
+ line-height: getCssVar('input-height');
138
+ box-sizing: border-box;
139
+ vertical-align: middle;
140
+ @include scroll-bar;
141
+
142
+ & .#{$namespace}-input__clear,
143
+ & .#{$namespace}-input__password {
144
+ color: getCssVar('input-icon-color');
145
+ font-size: map.get($input-font-size, 'default');
146
+ cursor: pointer;
147
+
148
+ &:hover {
149
+ color: getCssVar('input-clear-hover-color');
150
+ }
151
+ }
152
+
153
+ & .#{$namespace}-input__count {
154
+ height: 100%;
155
+ display: inline-flex;
156
+ align-items: center;
157
+ color: getCssVar('color-info');
158
+ font-size: 12px;
159
+
160
+ .#{$namespace}-input__count-inner {
161
+ background: getCssVar('fill-color', 'blank');
162
+ line-height: initial;
163
+ display: inline-block;
164
+ padding-left: 8px;
165
+ }
166
+ }
167
+
168
+ @include e(wrapper) {
169
+ display: inline-flex;
170
+ flex-grow: 1;
171
+ align-items: center;
172
+ justify-content: center;
173
+ padding: $border-width map.get($input-padding-horizontal, 'default')-$border-width;
174
+ background-color: var(
175
+ #{getCssVarName('input-bg-color')},
176
+ map.get($input, 'bg-color')
177
+ );
178
+ background-image: none;
179
+ border-radius: getCssVarWithDefault(
180
+ 'input-border-radius',
181
+ map.get($input, 'border-radius')
182
+ );
183
+ cursor: text;
184
+ transition: getCssVar('transition-box-shadow');
185
+ transform: translate3d(0, 0, 0);
186
+ @include inset-input-border(
187
+ var(
188
+ #{getCssVarName('input-border-color')},
189
+ map.get($input, 'border-color')
190
+ )
191
+ );
192
+
193
+ &:hover {
194
+ @include inset-input-border(#{getCssVar('input', 'hover-border-color')});
195
+ }
196
+
197
+ @include when(focus) {
198
+ @include inset-input-border(#{getCssVar('input', 'focus-border-color')});
199
+ }
200
+ }
201
+
202
+ & {
203
+ // use map.get as default value for date picker range
204
+ @include set-css-var-value(
205
+ 'input-inner-height',
206
+ calc(
207
+ var(
208
+ #{getCssVarName('input-height')},
209
+ #{map.get($input-height, 'default')}
210
+ ) - $border-width * 2
211
+ )
212
+ );
213
+ }
214
+
215
+ @include e(inner) {
216
+ width: 100%;
217
+ flex-grow: 1;
218
+ -webkit-appearance: none;
219
+ color: var(
220
+ #{getCssVarName('input-text-color')},
221
+ map.get($input, 'text-color')
222
+ );
223
+ font-size: inherit;
224
+ height: getCssVar('input-inner-height');
225
+ line-height: getCssVar('input-inner-height');
226
+ padding: 0;
227
+ outline: none;
228
+ border: none;
229
+ background: none;
230
+ box-sizing: border-box;
231
+
232
+ &:focus {
233
+ outline: none;
234
+ }
235
+
236
+ &::placeholder {
237
+ color: getCssVarWithDefault(
238
+ 'input-placeholder-color',
239
+ map.get($input, 'placeholder-color')
240
+ );
241
+ }
242
+
243
+ // override edge default style
244
+ &[type='password']::-ms-reveal {
245
+ display: none;
246
+ }
247
+
248
+ &[type='number'] {
249
+ line-height: 1;
250
+ }
251
+ }
252
+
253
+ @each $slot in (prefix, suffix) {
254
+ @include e($slot) {
255
+ display: inline-flex;
256
+ white-space: nowrap;
257
+ flex-shrink: 0;
258
+ flex-wrap: nowrap;
259
+ height: 100%;
260
+ line-height: getCssVar('input-inner-height');
261
+ text-align: center;
262
+ color: var(
263
+ #{getCssVarName('input-icon-color')},
264
+ map.get($input, 'icon-color')
265
+ );
266
+ transition: all getCssVar('transition-duration');
267
+ pointer-events: none;
268
+ }
269
+
270
+ @include e(#{$slot}-inner) {
271
+ pointer-events: all;
272
+ display: inline-flex;
273
+ align-items: center;
274
+ justify-content: center;
275
+
276
+ @if $slot == prefix {
277
+ > :last-child {
278
+ margin-right: 8px;
279
+ }
280
+
281
+ > :first-child {
282
+ &,
283
+ &.#{$namespace}-input__icon {
284
+ margin-left: 0;
285
+ }
286
+ }
287
+ } @else {
288
+ > :first-child {
289
+ margin-left: 8px;
290
+ }
291
+ }
292
+ }
293
+ }
294
+
295
+ & .#{$namespace}-input__icon {
296
+ height: inherit;
297
+ line-height: inherit;
298
+ display: flex;
299
+ justify-content: center;
300
+ align-items: center;
301
+ transition: all getCssVar('transition-duration');
302
+ margin-left: 8px;
303
+ }
304
+
305
+ @include e(validateIcon) {
306
+ pointer-events: none;
307
+ }
308
+
309
+ @include when(active) {
310
+ .#{$namespace}-input__wrapper {
311
+ @include mixed-input-border(
312
+ var(
313
+ #{getCssVarName('input-focus-color')},
314
+ map.get($input, 'focus-color')
315
+ )
316
+ );
317
+ }
318
+ }
319
+
320
+ @include when(disabled) {
321
+ cursor: not-allowed;
322
+
323
+ .#{$namespace}-input__wrapper {
324
+ background-color: map.get($input-disabled, 'fill');
325
+ cursor: not-allowed;
326
+ pointer-events: none;
327
+ @include mixed-input-border(map.get($input-disabled, 'border'));
328
+ }
329
+
330
+ .#{$namespace}-input__inner {
331
+ color: map.get($input-disabled, 'text-color');
332
+ -webkit-text-fill-color: map.get($input-disabled, 'text-color');
333
+ cursor: not-allowed;
334
+
335
+ &::placeholder {
336
+ color: map.get($input-disabled, 'placeholder-color');
337
+ }
338
+ }
339
+
340
+ .#{$namespace}-input__icon {
341
+ cursor: not-allowed;
342
+ }
343
+ }
344
+
345
+ @include when(exceed) {
346
+ .#{$namespace}-input__wrapper {
347
+ @include mixed-input-border(#{getCssVar('color-danger')});
348
+ }
349
+
350
+ .#{$namespace}-input__suffix {
351
+ .#{$namespace}-input__count {
352
+ color: getCssVar('color-danger');
353
+ }
354
+ }
355
+ }
356
+
357
+ @each $size in (large, small) {
358
+ @include m($size) {
359
+ @include css-var-from-global('input-height', ('component-size', $size));
360
+
361
+ font-size: map.get($input-font-size, $size);
362
+
363
+ @include e(wrapper) {
364
+ padding: $border-width map.get($input-padding-horizontal, $size)-$border-width;
365
+ }
366
+ & {
367
+ @include set-css-var-value(
368
+ 'input-inner-height',
369
+ calc(
370
+ var(
371
+ #{getCssVarName('input-height')},
372
+ #{map.get($input-height, $size)}
373
+ ) - $border-width * 2
374
+ )
375
+ );
376
+ }
377
+ }
378
+ }
379
+ }
380
+
381
+ @include b(input-group) {
382
+ display: inline-flex;
383
+ width: 100%;
384
+ align-items: stretch;
385
+
386
+ @include e((append, prepend)) {
387
+ background-color: getCssVar('fill-color', 'light');
388
+ color: getCssVar('color-info');
389
+ position: relative;
390
+ display: inline-flex;
391
+ align-items: center;
392
+ justify-content: center;
393
+ min-height: 100%;
394
+ border-radius: getCssVar('input-border-radius');
395
+ padding: 0 20px;
396
+ white-space: nowrap;
397
+
398
+ &:focus {
399
+ outline: none;
400
+ }
401
+
402
+ .#{$namespace}-select,
403
+ .#{$namespace}-button {
404
+ display: inline-block;
405
+ margin: 0 -20px;
406
+ }
407
+
408
+ button.#{$namespace}-button,
409
+ button.#{$namespace}-button:hover,
410
+ div.#{$namespace}-select .#{$namespace}-select__wrapper,
411
+ div.#{$namespace}-select:hover .#{$namespace}-select__wrapper {
412
+ border-color: transparent;
413
+ background-color: transparent;
414
+ color: inherit;
415
+ }
416
+
417
+ .#{$namespace}-button,
418
+ .#{$namespace}-input {
419
+ font-size: inherit;
420
+ }
421
+ }
422
+
423
+ @include e(prepend) {
424
+ border-right: 0;
425
+ border-top-right-radius: 0;
426
+ border-bottom-right-radius: 0;
427
+ @include inset-prepend-border(#{getCssVar('input-border-color')});
428
+ }
429
+
430
+ @include e(append) {
431
+ border-left: 0;
432
+ border-top-left-radius: 0;
433
+ border-bottom-left-radius: 0;
434
+ @include inset-append-border(#{getCssVar('input-border-color')});
435
+ }
436
+
437
+ @include m(prepend) {
438
+ > .#{$namespace}-input__wrapper {
439
+ border-top-left-radius: 0;
440
+ border-bottom-left-radius: 0;
441
+ }
442
+
443
+ @include e(prepend) {
444
+ .#{$namespace}-select {
445
+ .#{$namespace}-select__wrapper {
446
+ border-top-right-radius: 0;
447
+ border-bottom-right-radius: 0;
448
+ @include inset-prepend-border(#{getCssVar('input-border-color')});
449
+ }
450
+ }
451
+ }
452
+ }
453
+
454
+ @include m(append) {
455
+ > .#{$namespace}-input__wrapper {
456
+ border-top-right-radius: 0;
457
+ border-bottom-right-radius: 0;
458
+ }
459
+
460
+ @include e(append) {
461
+ .#{$namespace}-select {
462
+ .#{$namespace}-select__wrapper {
463
+ border-top-left-radius: 0;
464
+ border-bottom-left-radius: 0;
465
+ @include inset-append-border(#{getCssVar('input-border-color')});
466
+ }
467
+ }
468
+ }
469
+ }
470
+ }
471
+
472
+ @include b(input-hidden) {
473
+ display: none !important;
474
+ }