mertani-web-toolkit 0.1.47 → 0.1.49

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.
@@ -0,0 +1,255 @@
1
+ .input-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ }
6
+
7
+ .input-container.input-side {
8
+ flex-direction: row;
9
+ align-items: center;
10
+ gap: 12px;
11
+ }
12
+
13
+ .input-label {
14
+ font-size: 14px;
15
+ font-weight: 400;
16
+ color: var(--color-text-primary);
17
+ margin-bottom: 4px;
18
+ display: block;
19
+ }
20
+
21
+ .input-container.input-side .input-label {
22
+ margin-bottom: 0;
23
+ min-width: 120px;
24
+ }
25
+
26
+ .input-label.label-left {
27
+ text-align: left;
28
+ }
29
+
30
+ .input-label.label-right {
31
+ text-align: right;
32
+ }
33
+
34
+ .label-subLabel {
35
+ font-weight: 400;
36
+ color: var(--color-text-tertiary);
37
+ margin-left: 4px;
38
+ }
39
+
40
+ .label-required {
41
+ color: var(--color-text-error-ti);
42
+ margin-left: 4px;
43
+ }
44
+
45
+ .input-wrapper {
46
+ position: relative;
47
+ display: flex;
48
+ align-items: stretch;
49
+ width: 100%;
50
+ border: 1px solid var(--color-border-form);
51
+ border-radius: 6px;
52
+ transition:
53
+ border-color 0.2s,
54
+ box-shadow 0.2s;
55
+ }
56
+
57
+ .input-wrapper:has(input:disabled) {
58
+ background: var(--color-bg-disabled);
59
+ border-color: var(--color-border-disabled);
60
+ }
61
+
62
+ .input-wrapper.input-loading {
63
+ cursor: wait;
64
+ }
65
+
66
+ .input-wrapper.input-disabled {
67
+ opacity: 0.6;
68
+ cursor: not-allowed;
69
+ }
70
+
71
+ .input-wrapper.input-error {
72
+ border-color: var(--color-text-error-ti);
73
+ }
74
+
75
+ .prefix-wrapper {
76
+ display: flex;
77
+ align-items: center;
78
+ padding: 0.625rem 0.75rem;
79
+ background: var(--color-bg-disabled);
80
+ border-right: 1px solid var(--color-border-form);
81
+ flex-shrink: 0;
82
+ }
83
+
84
+ .prefix-text {
85
+ font-size: 0.75rem;
86
+ font-weight: 500;
87
+ color: var(--color-text-primary);
88
+ white-space: nowrap;
89
+ }
90
+
91
+ .suffix-wrapper {
92
+ display: flex;
93
+ align-items: center;
94
+ padding: 0.625rem 0.75rem;
95
+ background: var(--color-bg-disabled);
96
+ border-left: 1px solid var(--color-border-form);
97
+ flex-shrink: 0;
98
+ }
99
+
100
+ .suffix-text {
101
+ font-size: 0.75rem;
102
+ font-weight: 500;
103
+ color: var(--color-text-primary);
104
+ white-space: nowrap;
105
+ }
106
+
107
+ .input-field {
108
+ flex: 1;
109
+ border: none;
110
+ outline: none;
111
+ background: transparent;
112
+ padding: 0.625rem 1rem;
113
+ font-size: 14px;
114
+ color: var(--color-text-primary);
115
+ width: 100%;
116
+ }
117
+
118
+ .input-wrapper:has(.prefix-wrapper) .input-field {
119
+ padding-left: 0.75rem;
120
+ }
121
+
122
+ .input-wrapper:has(.suffix-wrapper) .input-field {
123
+ padding-right: 0.75rem;
124
+ }
125
+
126
+ .input-wrapper:has(.input-icon-right):not(:has(.suffix-wrapper)) .input-field {
127
+ padding-right: 2.5rem;
128
+ }
129
+
130
+ .input-wrapper:has(.input-loader.input-icon-right):not(:has(.suffix-wrapper)) .input-field {
131
+ padding-right: 2.5rem;
132
+ }
133
+
134
+ .input-wrapper:has(.input-icon-left):not(:has(.prefix-wrapper)) .input-field {
135
+ padding-left: 2.5rem;
136
+ }
137
+
138
+ .input-wrapper:has(.input-loader.input-icon-left):not(:has(.prefix-wrapper)) .input-field {
139
+ padding-left: 2.5rem;
140
+ }
141
+
142
+ .input-field:disabled {
143
+ cursor: not-allowed;
144
+ }
145
+
146
+ .input-field::placeholder {
147
+ color: var(--color-text-tertiary);
148
+ }
149
+
150
+ .input-icon {
151
+ position: absolute;
152
+ top: 50%;
153
+ transform: translateY(-50%);
154
+ display: flex;
155
+ align-items: center;
156
+ justify-content: center;
157
+ pointer-events: none;
158
+ }
159
+
160
+ .input-icon-left {
161
+ left: 12px;
162
+ }
163
+
164
+ .input-icon-right {
165
+ right: 12px;
166
+ }
167
+
168
+ .input-loader {
169
+ position: absolute;
170
+ top: 50%;
171
+ transform: translateY(-50%);
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ pointer-events: none;
176
+ }
177
+
178
+ .input-loader.input-icon-left {
179
+ left: 12px;
180
+ }
181
+
182
+ .input-loader.input-icon-right {
183
+ right: 12px;
184
+ }
185
+
186
+ .loader-spinner {
187
+ display: inline-block;
188
+ width: 16px;
189
+ height: 16px;
190
+ border: 2px solid transparent;
191
+ border-top-color: currentColor;
192
+ border-right-color: currentColor;
193
+ border-radius: 50%;
194
+ animation: spinner-rotate 0.8s linear infinite;
195
+ }
196
+
197
+ @keyframes spinner-rotate {
198
+ 0% {
199
+ transform: rotate(0deg);
200
+ }
201
+ 100% {
202
+ transform: rotate(360deg);
203
+ }
204
+ }
205
+
206
+ .error-message {
207
+ margin-top: 4px;
208
+ font-size: 12px;
209
+ color: var(--color-text-error-ti);
210
+ }
211
+
212
+ .suggestions-menu {
213
+ position: absolute;
214
+ left: 0;
215
+ right: 0;
216
+ top: calc(100% + 4px);
217
+ z-index: 20;
218
+ background: var(--color-bg-surface);
219
+ border: 1px solid var(--color-border-form);
220
+ border-radius: 6px;
221
+ box-shadow:
222
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1),
223
+ 0 2px 4px -1px rgba(0, 0, 0, 0.06);
224
+ overflow: hidden;
225
+ max-height: 240px;
226
+ overflow-y: auto;
227
+ }
228
+
229
+ .suggestion-item {
230
+ width: 100%;
231
+ padding: 8px 12px;
232
+ text-align: left;
233
+ background: transparent;
234
+ border: none;
235
+ font-size: 14px;
236
+ color: var(--color-text-primary);
237
+ cursor: pointer;
238
+ }
239
+
240
+ .suggestion-item:hover,
241
+ .suggestion-item.active {
242
+ background: var(--color-bg-surface-hover, #f6f8fa);
243
+ }
244
+
245
+ .suggestion-empty {
246
+ padding: 8px 12px;
247
+ font-size: 13px;
248
+ color: var(--color-text-tertiary);
249
+ }
250
+
251
+ .suggestion-loading {
252
+ padding: 8px 12px;
253
+ font-size: 13px;
254
+ color: var(--color-text-tertiary);
255
+ }