@eaera-com/eaera-widgets-v2 0.1.63 → 0.1.65

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 (97) hide show
  1. package/dist/design-system/components/_alert.scss +150 -0
  2. package/dist/design-system/components/_auto-complete.scss +165 -0
  3. package/dist/design-system/components/_avatar-group.scss +25 -0
  4. package/dist/design-system/components/_avatar.scss +40 -0
  5. package/dist/design-system/components/_badge.scss +80 -0
  6. package/dist/design-system/components/_breadcrumb.scss +91 -0
  7. package/dist/design-system/components/_button.scss +378 -0
  8. package/dist/design-system/components/_card.scss +27 -0
  9. package/dist/design-system/components/_carousel.scss +104 -0
  10. package/dist/design-system/components/_cascader.scss +705 -0
  11. package/dist/design-system/components/_checkbox-list.scss +18 -0
  12. package/dist/design-system/components/_checkbox.scss +117 -0
  13. package/dist/design-system/components/_collapse.scss +84 -0
  14. package/dist/design-system/components/_color-picker.scss +195 -0
  15. package/dist/design-system/components/_country-flag.scss +56 -0
  16. package/dist/design-system/components/_currency-icon.scss +19 -0
  17. package/dist/design-system/components/_date-picker.scss +748 -0
  18. package/dist/design-system/components/_dialog.scss +101 -0
  19. package/dist/design-system/components/_divider.scss +7 -0
  20. package/dist/design-system/components/_drawer.scss +41 -0
  21. package/dist/design-system/components/_dropdown.scss +69 -0
  22. package/dist/design-system/components/_empty.scss +101 -0
  23. package/dist/design-system/components/_form.scss +151 -0
  24. package/dist/design-system/components/_growth-balance-profit-widget.scss +95 -0
  25. package/dist/design-system/components/_input-code.scss +116 -0
  26. package/dist/design-system/components/_input-number.scss +233 -0
  27. package/dist/design-system/components/_input-tag.scss +212 -0
  28. package/dist/design-system/components/_input.scss +239 -0
  29. package/dist/design-system/components/_link.scss +64 -0
  30. package/dist/design-system/components/_loading.scss +89 -0
  31. package/dist/design-system/components/_menu.scss +578 -0
  32. package/dist/design-system/components/_message-box.scss +78 -0
  33. package/dist/design-system/components/_message.scss +187 -0
  34. package/dist/design-system/components/_monthly-gain-widget.scss +114 -0
  35. package/dist/design-system/components/_pagination.scss +356 -0
  36. package/dist/design-system/components/_pl-calendar-widget.scss +171 -0
  37. package/dist/design-system/components/_popconfirm.scss +57 -0
  38. package/dist/design-system/components/_popper.scss +267 -0
  39. package/dist/design-system/components/_progress.scss +153 -0
  40. package/dist/design-system/components/_radio.scss +68 -0
  41. package/dist/design-system/components/_segmented.scss +215 -0
  42. package/dist/design-system/components/_select-country.scss +182 -0
  43. package/dist/design-system/components/_select.scss +235 -0
  44. package/dist/design-system/components/_skeleton.scss +146 -0
  45. package/dist/design-system/components/_slider.scss +142 -0
  46. package/dist/design-system/components/_spinner.scss +73 -0
  47. package/dist/design-system/components/_steps.scss +292 -0
  48. package/dist/design-system/components/_switch.scss +89 -0
  49. package/dist/design-system/components/_switcher.scss +110 -0
  50. package/dist/design-system/components/_table.scss +580 -0
  51. package/dist/design-system/components/_tabs.scss +260 -0
  52. package/dist/design-system/components/_tag.scss +208 -0
  53. package/dist/design-system/components/_time-picker.scss +255 -0
  54. package/dist/design-system/components/_time-select.scss +167 -0
  55. package/dist/design-system/components/_timeline.scss +99 -0
  56. package/dist/design-system/components/_tooltip.scss +19 -0
  57. package/dist/design-system/components/_topbar-menu.scss +67 -0
  58. package/dist/design-system/components/_trade-volume-widget.scss +114 -0
  59. package/dist/design-system/components/_transfer.scss +241 -0
  60. package/dist/design-system/components/_tree-select.scss +198 -0
  61. package/dist/design-system/components/_tree.scss +108 -0
  62. package/dist/design-system/components/_upload.scss +226 -0
  63. package/dist/design-system/themes/aurora/bridges/_element-plus-bridge.scss +58 -0
  64. package/dist/design-system/themes/aurora/elevation/_elevation-tokens.scss +67 -0
  65. package/dist/design-system/themes/aurora/elevation/_elevation-utils.scss +94 -0
  66. package/dist/design-system/themes/aurora/index.scss +133 -0
  67. package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +289 -0
  68. package/dist/design-system/themes/aurora/layers/_layer2-alias.scss +250 -0
  69. package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +242 -0
  70. package/dist/design-system/themes/aurora/themes/_dark-mode.scss +177 -0
  71. package/dist/design-system/themes/aurora/themes/projects/base.scss +11 -0
  72. package/dist/design-system/themes/aurora/tokens/_border-radius.scss +28 -0
  73. package/dist/design-system/themes/aurora/tokens/_control-height.scss +18 -0
  74. package/dist/design-system/themes/aurora/tokens/_screen-size.scss +10 -0
  75. package/dist/design-system/themes/aurora/tokens/_spacing.scss +29 -0
  76. package/dist/design-system/themes/aurora/typography/_typography-primitives.scss +11 -0
  77. package/dist/design-system/themes/aurora/typography/_typography-semantic.scss +5 -0
  78. package/dist/design-system/themes/aurora/typography/_typography-tokens.scss +185 -0
  79. package/dist/design-system/themes/aurora/typography/_typography-utils.scss +375 -0
  80. package/dist/design-system/themes/core/bridges/_element-plus-bridge.scss +82 -0
  81. package/dist/design-system/themes/core/elevation/_elevation-tokens.scss +67 -0
  82. package/dist/design-system/themes/core/elevation/_elevation-utils.scss +94 -0
  83. package/dist/design-system/themes/core/index.scss +130 -0
  84. package/dist/design-system/themes/core/layers/_layer1-palettes.scss +289 -0
  85. package/dist/design-system/themes/core/layers/_layer2-alias.scss +242 -0
  86. package/dist/design-system/themes/core/layers/_layer3-tokens.scss +220 -0
  87. package/dist/design-system/themes/core/themes/_dark-mode.scss +165 -0
  88. package/dist/design-system/themes/core/themes/projects/base.scss +11 -0
  89. package/dist/design-system/themes/core/tokens/_border-radius.scss +28 -0
  90. package/dist/design-system/themes/core/tokens/_control-height.scss +18 -0
  91. package/dist/design-system/themes/core/tokens/_screen-size.scss +10 -0
  92. package/dist/design-system/themes/core/tokens/_spacing.scss +29 -0
  93. package/dist/design-system/themes/core/typography/_typography-primitives.scss +11 -0
  94. package/dist/design-system/themes/core/typography/_typography-semantic.scss +5 -0
  95. package/dist/design-system/themes/core/typography/_typography-tokens.scss +185 -0
  96. package/dist/design-system/themes/core/typography/_typography-utils.scss +375 -0
  97. package/package.json +4 -3
@@ -0,0 +1,233 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ // ─── Reusable base styles (can be included in other components) ───────────────
4
+ @mixin input-number-base {
5
+ border: 1px solid var(--er-border-default);
6
+ border-radius: var(--er-shape-corner-full);
7
+ background-color: transparent;
8
+ width: auto;
9
+ display: flex;
10
+ align-items: center;
11
+ box-shadow: none;
12
+
13
+ .el-input {
14
+ flex: 1;
15
+ order: 2;
16
+ padding: 0 var(--er-shape-spacing-50);
17
+
18
+ .el-input__wrapper {
19
+ background: transparent;
20
+ border: none;
21
+ box-shadow: none !important;
22
+ align-items: center;
23
+ justify-content: center;
24
+ gap: var(--er-shape-spacing-50);
25
+ padding: 0;
26
+ }
27
+ }
28
+
29
+ .el-input__inner {
30
+ color: var(--er-text-primary);
31
+ text-align: center;
32
+ background: transparent;
33
+
34
+ &::placeholder {
35
+ color: var(--er-text-muted);
36
+ }
37
+ }
38
+
39
+ .el-input-number__decrease,
40
+ .el-input-number__increase {
41
+ border: none;
42
+ background: transparent;
43
+ color: var(--er-icon-primary);
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ cursor: pointer;
48
+ top: -1px;
49
+ bottom: 0;
50
+ position: static;
51
+
52
+ &:hover:not(.is-disabled) {
53
+ background-color: var(--er-surface-hover);
54
+ color: var(--er-icon-primary);
55
+ }
56
+
57
+ &.is-disabled {
58
+ opacity: 0.5;
59
+ cursor: not-allowed;
60
+ color: var(--er-icon-primary);
61
+ }
62
+
63
+ .el-icon {
64
+ width: var(--er-control-height-sm);
65
+ height: var(--er-control-height-sm);
66
+ }
67
+ }
68
+
69
+ .el-input-number__decrease {
70
+ order: 1;
71
+ left: 0px;
72
+ }
73
+ .el-input-number__increase {
74
+ right: 0px;
75
+ order: 3;
76
+ }
77
+
78
+ &.is-disabled {
79
+ opacity: 0.5;
80
+ cursor: not-allowed;
81
+
82
+ .el-input-number__decrease,
83
+ .el-input-number__increase {
84
+ cursor: not-allowed;
85
+ color: var(--er-icon-primary);
86
+
87
+ &:hover {
88
+ background: transparent;
89
+ }
90
+ }
91
+
92
+ .el-input__inner {
93
+ cursor: not-allowed;
94
+ }
95
+ }
96
+
97
+ &:focus-within,
98
+ &:hover:not(.is-disabled) {
99
+ border-color: var(--er-action-primary-hover);
100
+ }
101
+ }
102
+
103
+ @mixin input-number-size($height, $button-size, $icon-size, $button-radius) {
104
+ height: $height !important;
105
+ min-height: $height !important;
106
+
107
+ .el-input-number__decrease,
108
+ .el-input-number__increase {
109
+ border-radius: $button-radius;
110
+ width: $button-size;
111
+ height: $button-size;
112
+
113
+ svg {
114
+ width: $icon-size;
115
+ height: $icon-size;
116
+ }
117
+ }
118
+ }
119
+
120
+ // ─── Base ─────────────────────────────────────────────────────────────────────
121
+
122
+ .custom-input.el-input-number {
123
+ @include input-number-base;
124
+
125
+ .el-input__prefix,
126
+ .el-input__suffix {
127
+ position: static;
128
+ transform: none;
129
+ display: inline-flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ flex: 0 0 auto;
133
+ height: 100%;
134
+ min-height: 0;
135
+ padding: 0;
136
+ margin: 0;
137
+ color: var(--er-text-primary);
138
+ line-height: 1;
139
+ }
140
+
141
+ .el-input__prefix-inner,
142
+ .el-input__suffix-inner {
143
+ display: inline-flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ height: 100%;
147
+ line-height: 1;
148
+ gap: 0;
149
+
150
+ > :last-child {
151
+ margin-right: 0;
152
+ }
153
+ > :first-child {
154
+ margin-left: 0;
155
+ }
156
+ }
157
+
158
+ .input-prefix,
159
+ .input-suffix {
160
+ display: inline-flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ height: 100%;
164
+ line-height: 1;
165
+ }
166
+
167
+ &:has(.el-input__prefix),
168
+ &:has(.el-input__suffix) {
169
+ .el-input__inner {
170
+ width: 2ch;
171
+ min-width: 1ch;
172
+ max-width: 4ch;
173
+ }
174
+ }
175
+
176
+ // ── SM ──
177
+ &.sm {
178
+ @include input-number-size(
179
+ var(--er-control-height-sm),
180
+ var(--er-control-height-sm),
181
+ var(--er-control-height-xxs),
182
+ var(--er-shape-corner-50)
183
+ );
184
+
185
+ .el-input {
186
+ .el-input__inner {
187
+ @include typo.body-sm;
188
+ }
189
+
190
+ input {
191
+ height: var(--er-control-height-sm);
192
+ }
193
+ }
194
+ }
195
+
196
+ // ── MD ──
197
+ &.md {
198
+ @include input-number-size(
199
+ var(--er-control-height-md),
200
+ var(--er-control-height-md),
201
+ var(--er-control-height-xs),
202
+ var(--er-shape-corner-100)
203
+ );
204
+
205
+ .el-input {
206
+ .el-input__inner {
207
+ @include typo.body-sm;
208
+ }
209
+ input {
210
+ height: var(--er-control-height-md);
211
+ }
212
+ }
213
+ }
214
+
215
+ // ── LG ──
216
+ &.lg {
217
+ @include input-number-size(
218
+ var(--er-control-height-lg),
219
+ var(--er-control-height-lg),
220
+ var(--er-control-height-xs),
221
+ var(--er-shape-corner-150)
222
+ );
223
+
224
+ .el-input {
225
+ .el-input__inner {
226
+ @include typo.body-md;
227
+ }
228
+ input {
229
+ height: var(--er-control-height-lg);
230
+ }
231
+ }
232
+ }
233
+ }
@@ -0,0 +1,212 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ @mixin input-tag-size($height, $padding, $gap, $radius) {
4
+ min-height: $height !important;
5
+ padding: 0 $padding;
6
+ gap: $gap;
7
+ border-radius: $radius;
8
+ }
9
+
10
+ // ─── Base ─────────────────────────────────────────────────────────────────────
11
+
12
+ .custom-input-tag.el-input-tag {
13
+ border: 1px solid var(--er-border-default);
14
+ background-color: var(--er-surface-container);
15
+ box-shadow: none !important;
16
+ gap: var(--er-shape-spacing-50);
17
+ padding: 0;
18
+
19
+ .el-input-tag__prefix svg,
20
+ .el-input-tag__suffix svg {
21
+ width: 100%;
22
+ height: 100%;
23
+ }
24
+
25
+ &:focus-within {
26
+ border-color: var(--er-action-primary-default) !important;
27
+ }
28
+
29
+ &:hover:not(.is-disabled) {
30
+ box-shadow: none !important;
31
+ border-color: var(--er-action-primary-hover);
32
+ }
33
+
34
+ .el-input-tag__inner {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: var(--er-shape-spacing-50);
38
+ @include typo.body-md;
39
+
40
+ &.is-right-space,
41
+ &.is-left-space {
42
+ margin: 0;
43
+ }
44
+ }
45
+
46
+ .el-input-tag__input {
47
+ color: var(--er-text-primary);
48
+ padding: 0;
49
+ height: var(--er-control-height-xs);
50
+ background: transparent;
51
+ border: none;
52
+ outline: none;
53
+ flex: 1;
54
+ min-width: 0 !important;
55
+
56
+ &::placeholder {
57
+ color: var(--er-text-muted);
58
+ }
59
+ }
60
+
61
+ // Base icon size = MD (16×16)
62
+ .el-input-tag__prefix,
63
+ .el-input-tag__suffix {
64
+ padding: 0;
65
+ width: var(--er-control-height-xxs);
66
+ height: var(--er-control-height-xxs);
67
+
68
+ svg {
69
+ width: 100%;
70
+ height: 100%;
71
+ }
72
+ }
73
+
74
+ .el-tag {
75
+ gap: var(--er-shape-spacing-50);
76
+ border-radius: var(--er-shape-corner-50);
77
+ background-color: var(--er-surface-muted);
78
+ height: var(--er-control-height-xs);
79
+ padding: 0 var(--er-shape-spacing-100);
80
+
81
+ .el-tag__content {
82
+ @include typo.label-md;
83
+ color: var(--er-text-secondary);
84
+ }
85
+
86
+ .el-tag__close {
87
+ width: 12px;
88
+ height: 12px;
89
+ font-size: 12px;
90
+ color: var(--er-icon-secondary);
91
+ margin-left: var(--er-shape-spacing-50);
92
+ flex-shrink: 0;
93
+
94
+ &:hover {
95
+ background-color: var(--er-surface-hover);
96
+ color: var(--er-icon-primary);
97
+ }
98
+ }
99
+ }
100
+
101
+ // ── SM ──
102
+ &.sm {
103
+ @include input-tag-size(
104
+ var(--er-control-height-sm),
105
+ var(--er-shape-spacing-75),
106
+ var(--er-shape-spacing-50),
107
+ var(--er-shape-corner-75)
108
+ );
109
+
110
+ .el-input-tag__inner {
111
+ gap: 2px;
112
+ @include typo.body-sm;
113
+ }
114
+
115
+ .el-input-tag__prefix,
116
+ .el-input-tag__suffix {
117
+ width: 12px;
118
+ height: 12px;
119
+
120
+ svg {
121
+ width: 100%;
122
+ height: 100%;
123
+ }
124
+ }
125
+ }
126
+
127
+ // ── MD ──
128
+ &.md {
129
+ @include input-tag-size(
130
+ var(--er-control-height-md),
131
+ var(--er-shape-spacing-100),
132
+ var(--er-shape-spacing-50),
133
+ var(--er-shape-corner-100)
134
+ );
135
+ }
136
+
137
+ // ── LG ──
138
+ &.lg {
139
+ @include input-tag-size(
140
+ var(--er-control-height-lg),
141
+ var(--er-shape-spacing-150),
142
+ var(--er-shape-spacing-75),
143
+ var(--er-shape-corner-150)
144
+ );
145
+
146
+ .el-input-tag__input {
147
+ height: var(--er-control-height-sm);
148
+ }
149
+
150
+ .el-input-tag__prefix,
151
+ .el-input-tag__suffix {
152
+ width: var(--er-control-height-xxs);
153
+ height: var(--er-control-height-xxs);
154
+ }
155
+
156
+ .el-tag {
157
+ height: var(--er-control-height-sm);
158
+ padding: 0 var(--er-shape-spacing-75);
159
+ }
160
+ }
161
+
162
+ // ── XL ──
163
+ &.xl {
164
+ @include input-tag-size(
165
+ var(--er-control-height-xl),
166
+ var(--er-shape-spacing-200),
167
+ var(--er-shape-spacing-100),
168
+ var(--er-shape-corner-150)
169
+ );
170
+
171
+ .el-input-tag__input {
172
+ height: var(--er-control-height-sm);
173
+ }
174
+
175
+ .el-input-tag__prefix,
176
+ .el-input-tag__suffix {
177
+ width: var(--er-control-height-xs);
178
+ height: var(--er-control-height-xs);
179
+ }
180
+
181
+ .el-tag {
182
+ height: var(--er-control-height-sm);
183
+ padding: 0 var(--er-shape-spacing-75);
184
+ }
185
+ }
186
+
187
+ // ── Disabled ──
188
+ &.is-disabled {
189
+ border-color: var(--er-border-default);
190
+ background-color: var(--er-surface-container);
191
+ opacity: 0.5;
192
+ cursor: not-allowed;
193
+
194
+ .el-input-tag__input {
195
+ cursor: not-allowed;
196
+ color: var(--er-text-secondary);
197
+
198
+ &::placeholder {
199
+ color: var(--er-text-muted);
200
+ }
201
+ }
202
+ }
203
+
204
+ // ── Error ──
205
+ &.is-error {
206
+ border-color: var(--er-border-danger);
207
+
208
+ &:hover:not(.is-disabled) {
209
+ border-color: var(--er-border-danger);
210
+ }
211
+ }
212
+ }
@@ -0,0 +1,239 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ @mixin sz($height, $padding, $gap, $radius) {
4
+ height: $height;
5
+ padding: 0 $padding;
6
+ gap: $gap;
7
+ border-radius: $radius;
8
+ }
9
+
10
+ // ─── Input ────────────────────────────────────────────────────────────────────
11
+
12
+ .custom-input.el-input {
13
+ .el-input__wrapper {
14
+ border: 1px solid var(--er-border-default);
15
+ background-color: var(--er-surface-container);
16
+ box-shadow: none !important;
17
+
18
+ &.is-focus {
19
+ border-color: var(--er-action-primary-default) !important;
20
+ }
21
+
22
+ &:hover:not(.is-disabled),
23
+ &:focus-within {
24
+ border-color: var(--er-action-primary-hover);
25
+ }
26
+ }
27
+
28
+ .el-input__inner {
29
+ color: var(--er-text-primary);
30
+
31
+ &::placeholder {
32
+ color: var(--er-text-muted);
33
+ }
34
+ }
35
+
36
+ // ── SM ──
37
+ &.sm {
38
+ .el-input__wrapper {
39
+ @include sz(
40
+ var(--er-control-height-sm),
41
+ var(--er-shape-spacing-75),
42
+ var(--er-shape-spacing-50),
43
+ var(--er-shape-corner-75)
44
+ );
45
+ }
46
+
47
+ .el-input__inner {
48
+ @include typo.body-sm;
49
+ }
50
+
51
+ .el-input__prefix-inner,
52
+ .el-input__suffix-inner {
53
+ svg {
54
+ width: 12px;
55
+ height: 12px;
56
+ }
57
+ }
58
+ }
59
+
60
+ // ── MD ──
61
+ &.md {
62
+ .el-input__wrapper {
63
+ @include sz(
64
+ var(--er-control-height-md),
65
+ var(--er-shape-spacing-100),
66
+ var(--er-shape-spacing-50),
67
+ var(--er-shape-corner-100)
68
+ );
69
+ }
70
+
71
+ .el-input__inner {
72
+ @include typo.body-md;
73
+ }
74
+ }
75
+
76
+ // ── LG ──
77
+ &.lg {
78
+ .el-input__wrapper {
79
+ @include sz(
80
+ var(--er-control-height-lg),
81
+ var(--er-shape-spacing-150),
82
+ var(--er-shape-spacing-75),
83
+ var(--er-shape-corner-150)
84
+ );
85
+ }
86
+
87
+ .el-input__inner {
88
+ @include typo.body-md;
89
+ }
90
+ }
91
+
92
+ &.xl {
93
+ .el-input__wrapper {
94
+ @include sz(
95
+ var(--er-control-height-xl),
96
+ var(--er-shape-spacing-200),
97
+ var(--er-shape-spacing-100),
98
+ var(--er-shape-corner-150)
99
+ );
100
+ }
101
+
102
+ .el-input__prefix-inner,
103
+ .el-input__suffix-inner {
104
+ gap: var(--er-shape-spacing-100);
105
+
106
+ svg {
107
+ width: var(--er-control-height-xs);
108
+ height: var(--er-control-height-xs);
109
+ }
110
+ }
111
+ }
112
+
113
+ // ── Error ──
114
+ &.is-error,
115
+ &.error,
116
+ &.is-danger,
117
+ &.danger {
118
+ .el-input__wrapper {
119
+ border-color: var(--er-border-danger);
120
+
121
+ &:hover:not(.is-focused) {
122
+ border-color: var(--er-border-danger) !important;
123
+ }
124
+
125
+ &.is-focused {
126
+ border-color: var(--er-action-primary-default) !important;
127
+ }
128
+ }
129
+ }
130
+
131
+ // ── Success ──
132
+ &.is-success,
133
+ &.success {
134
+ .el-input__wrapper {
135
+ border-color: var(--er-border-success);
136
+ }
137
+ }
138
+
139
+ // ── Disabled ──
140
+ &.is-disabled {
141
+ .el-input__wrapper {
142
+ border-color: var(--er-border-default);
143
+ background-color: var(--er-surface-container);
144
+ opacity: 0.5;
145
+
146
+ &:hover {
147
+ border-color: var(--er-border-default);
148
+ }
149
+ }
150
+ }
151
+
152
+ // ── Icon ──
153
+ .el-input__suffix,
154
+ .el-input__prefix {
155
+ display: flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+
159
+ .el-icon {
160
+ width: var(--er-control-height-xxs);
161
+ height: var(--er-control-height-xxs);
162
+ color: var(--er-icon-secondary);
163
+ }
164
+ }
165
+
166
+ .el-input__prefix-inner,
167
+ .el-input__suffix-inner {
168
+ display: flex;
169
+ align-items: center;
170
+ gap: var(--er-shape-spacing-50);
171
+
172
+ svg {
173
+ width: var(--er-control-height-xxs);
174
+ height: var(--er-control-height-xxs);
175
+ }
176
+ }
177
+
178
+ .el-input__suffix-inner > :first-child {
179
+ margin-left: 0;
180
+ }
181
+
182
+ .el-input__prefix-inner > :last-child {
183
+ margin-right: 0;
184
+ }
185
+ }
186
+
187
+ // ─── Textarea ─────────────────────────────────────────────────────────────────
188
+
189
+ .custom-input.el-textarea {
190
+ .el-textarea__inner {
191
+ min-height: 120px;
192
+ padding: 10px var(--er-shape-spacing-150);
193
+ border-radius: var(--er-shape-corner-100);
194
+ border: 1px solid var(--er-border-default);
195
+ background-color: var(--er-surface-container);
196
+ box-shadow: none !important;
197
+ @include typo.body-md;
198
+ color: var(--er-text-primary);
199
+
200
+ &::placeholder {
201
+ color: var(--er-text-muted);
202
+ }
203
+
204
+ &:focus {
205
+ border-color: var(--er-action-primary-default) !important;
206
+ }
207
+
208
+ &:hover:not(:disabled) {
209
+ border-color: var(--er-action-primary-hover);
210
+ box-shadow: none !important;
211
+ }
212
+
213
+ &:disabled {
214
+ opacity: 0.5;
215
+ cursor: not-allowed;
216
+ background-color: var(--er-surface-container);
217
+ border-color: var(--er-border-default);
218
+ }
219
+ }
220
+
221
+ // ── Error ──
222
+ &.is-error .el-textarea__inner {
223
+ border-color: var(--er-border-danger);
224
+
225
+ &:hover:not(:disabled) {
226
+ border-color: var(--er-border-danger);
227
+ }
228
+ }
229
+
230
+ // ── Counter ──
231
+ .el-input__count {
232
+ @include typo.body-sm;
233
+ color: var(--er-text-muted);
234
+ background-color: transparent;
235
+ position: absolute;
236
+ bottom: -20px;
237
+ right: 0;
238
+ }
239
+ }