PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 7.1.1
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v7.1.1
7.2.1 7.2 7.1.2 7.1.1 7.1 7.0.4 7.0.6 7.0.7 6.3.8 6.3.7 6.3.6 6.3.5 6.3.4 6.3.3 6.3.1 trunk 5.7.3 5.7.5 5.8.1 5.8.2 5.8.3 5.8.4 5.8.6 6.0.4 6.0.5 All 36 releases
mlsimport / admin / css / mlsimport-field-selector.css

mlsimport-field-selector.css in MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings 7.1.1, at admin/css/mlsimport-field-selector.css

459 lines 9.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * MLS Import Field Selector Styles
3 *
4 * Styles for the MLS field selection interface with tabular layout,
5 * filtering controls, and interactive elements.
6 *
7 * @package MLSImport
8 * @subpackage MLSImport/css
9 * @since 1.0.0
10 *
11 * Layout notes: a rounded card wraps a save-status line, stats and filter bars,
12 * a fixed-layout table of RESO fields, and jQuery-UI sortable styling.
13 * Brand accent colour throughout is #e85d3c (warm orange).
14 */
15
16 /* Container for the entire field selector interface */
17 .mlsimport-field-selector-container {
18 margin: 20px 0;
19 max-width: 100%;
20 background: #fff;
21 box-shadow: 0 0 0 1px rgba(28, 25, 23, 0.05), 0 5px 22px rgba(28, 25, 23, 0.05);
22 border-radius: 18px;
23
24 }
25
26 /* Stats bar styles */
27 .mlsimport-field-stats {
28 padding: 15px;
29 border-top-right-radius: 18px;
30 border-top-left-radius: 18px;
31 background: #f3efe7;
32 border-bottom: 1px solid rgba(28, 25, 23, 0.18);
33 display: flex;
34 align-content: center;
35 align-items: center;
36 flex-wrap: nowrap;
37 gap: 10px;
38 justify-content: space-between;
39 }
40
41 .mlsimport-button-action-wrapper{
42 display: flex;
43 gap: 10px;
44 flex-direction: row;
45 flex-wrap: wrap;
46 }
47
48
49 .mlsimport-field-stats ul {
50 display: flex;
51 margin: 0;
52 padding: 0;
53 list-style: none;
54 }
55
56 .mlsimport-field-stats li {
57 margin-right: 30px;
58 font-weight: 500;
59 font-size: 14px;
60 }
61
62 /* Filter bar styles */
63 .mlsimport-field-filters {
64 display: flex;
65 align-items: center;
66 padding: 15px;
67 background: #f3efe7;
68 border-bottom: 1px solid rgba(28, 25, 23, 0.18);
69 margin-bottom: 0px;
70 }
71
72 .mlsimport-field-filter {
73 margin-right: 15px;
74 max-width: 250px;
75 }
76
77
78 /* Alphabetical filter styles */
79 .mlsimport-alpha-filters {
80 display: flex;
81 flex-wrap: wrap;
82 padding: 10px 15px;
83 background: #f3efe7;
84 border-bottom: 1px solid rgba(28, 25, 23, 0.18);
85 }
86
87 .mlsimport-alpha-filter {
88 display: inline-block;
89 margin: 2px;
90 padding: 5px 8px;
91 background: #fff;
92 border: 1px solid rgba(28, 25, 23, 0.12);
93 border-radius: 999px;
94 text-decoration: none;
95 color: #e85d3c;
96 font-size: 13px;
97 }
98
99 /* Currently selected letter: filled orange. */
100 .mlsimport-alpha-filter.active {
101 background: #e85d3c;
102 border-color: #e85d3c;
103 color: #fff;
104 }
105
106 .mlsimport-alpha-filter:hover {
107 background: #f3efe7;
108 color: #e85d3c;
109 }
110
111 .mlsimport-alpha-filter.active:hover {
112 background: #e85d3c;
113 border-color: #e85d3c;
114 color: #fff;
115 }
116
117 .mlsimport-reset-filter {
118 display: inline-block;
119 margin: 2px 0 2px 10px;
120 padding: 5px 8px;
121 background: #f3efe7;
122 border: 1px solid rgba(28, 25, 23, 0.18);
123 border-radius: 999px;
124 text-decoration: none;
125 color: #6b6358;
126 font-size: 13px;
127 }
128
129 .mlsimport-reset-filter:hover {
130 background: #f3efe7;
131 border-color: rgba(28, 25, 23, 0.18);
132 color: #1c1917;
133 }
134
135 /* Table styles */
136 .mlsimport-fields-table {
137 width: 100%;
138 border-collapse: collapse;
139 border-spacing: 0;
140 table-layout: fixed;
141 }
142
143 /* Sticky table header: stays pinned 32px down to clear the WP admin bar,
144 raised above rows with z-index so it overlaps content while scrolling. */
145 .mlsimport-fields-table thead {
146 background: #f3efe7;
147 position: sticky;
148 top: 32px; /* Account for WP admin bar */
149 z-index: 10;
150 }
151
152
153
154 /* Inside the onboarding wizard there's no admin bar offset, so pin at 0. */
155 .mlsimport-wizard-wrap .mlsimport-fields-table thead{
156 top:0px;
157 }
158
159 .mlsimport-fields-table th {
160 padding: 15px;
161 text-align: left;
162 color: #6b6358;
163 font-weight: 500;
164 font-size: 13px;
165 }
166
167 .mlsimport-fields-table td {
168 padding: 17px 15px;
169 border-bottom: 1px solid rgba(28, 25, 23, 0.12);
170 vertical-align: middle;
171 word-break: break-word;
172 overflow-wrap: break-word;
173 }
174
175 .mlsimport-fields-table tr:hover td {
176 background: #f3efe7;
177 }
178
179 .mlsimport-row-actions .field-name{
180 display: inline-block;
181 }
182
183
184 .save-indicator{
185 width: 16px;
186 height: 16px;
187 }
188
189 /* Mandatory field styles */
190 /* Required RESO fields get a light-peach row tint (and a darker hover). */
191 .mlsimport-mandatory-row {
192 background-color: #fde4d8;
193 }
194
195 .mlsimport-mandatory-row:hover td {
196 background-color: rgba(232, 93, 60, 0.18) !important;
197 }
198
199 .mlsimport-mandatory-indicator {
200 color: #e85d3c;
201 margin-right: 5px;
202 font-size: 14px;
203 }
204
205 /* Column widths (table-layout is fixed, so these percentages/px are enforced). */
206 .mlsimport-field-name {
207 width: 30%;
208 }
209
210 .mlsimport-field-import,
211 .mlsimport-field-admin {
212 width: 75px;
213 text-align: left;
214 }
215
216 .mlsimport-field-label,
217 .mlsimport-field-postmeta {
218 width: 20%;
219 }
220
221 .mlsimport-field-taxonomy {
222 width: 20%;
223 }
224
225 .mlsimport-field-actions {
226 width: 140px;
227 text-align: center;
228 }
229
230 /* Form input styles */
231 .mlsimport-fields-table input[type="text"] {
232 width: 90%;
233 padding: 8px;
234 border: 1px solid rgba(28, 25, 23, 0.12);
235 border-radius: 10px;
236 }
237
238 .mlsimport-fields-table select {
239 width: 90%;
240
241 }
242
243 /* Field name and explanation */
244 .mlsimport-field-name {
245 position: relative;
246 }
247 .mlsimport-field-name .field-name{
248 display: inline-block;
249 width: auto;
250 }
251
252 .field-name {
253 display: block;
254 font-weight: 500;
255 margin-bottom: 5px;
256 font-size: 13px;
257 }
258
259 .field-explanation {
260 font-size: 12px;
261 color: #6b6358;
262 line-height: 1.4;
263 margin-top: 5px;
264 padding: 5px 0;
265 }
266
267 /* Bulk action buttons */
268 .mlsimport-bulk-actions {
269 display: flex;
270 flex-wrap: wrap;
271 gap: 10px;
272 padding: 15px;
273 background: #f3efe7;
274 border-bottom: 1px solid rgba(28, 25, 23, 0.18);
275 }
276
277 .mlsimport-bulk-button {
278 padding: 8px 15px;
279 background: #1c1917;
280 border: none;
281 border-radius: 999px;
282 color: #fff;
283 cursor: pointer;
284 font-size: 13px;
285 }
286
287 .mlsimport-bulk-button.secondary {
288 background: #fff;
289 border: 1px solid rgba(28, 25, 23, 0.12);
290 color: #1c1917;
291 }
292
293 .mlsimport-bulk-button:hover {
294 background: #33302b;
295 box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45);
296 }
297
298 .mlsimport-bulk-button.secondary:hover {
299 background: #f3efe7;
300 border-color: rgba(28, 25, 23, 0.18);
301 }
302
303 /* The queue status stays in normal document flow so failures and Retry remain
304 visible without transient toast timing or cross-script state. Routine
305 saving/saved feedback is the inline per-control indicator below instead. */
306 /* Hidden per request (2026-08-19): the live save-status strip is not shown on
307 the import page. JS still writes into it (harmless on a hidden element). */
308 .mlsimport-field-save-status {
309 display: none;
310 }
311
312 .mlsimport-field-save-status.is-error {
313 color: #c02617;
314 }
315
316 /* Per-control save feedback: an inline spinner next to the edited control
317 while the change is on the wire, then a fading green tick on success or a
318 persistent red cross on failure. */
319 .mlsimport-save-indicator {
320 box-sizing: border-box;
321 display: inline-block;
322 margin-left: 5px;
323 width: 16px;
324 height: 16px;
325 vertical-align: middle;
326 text-align: center;
327 line-height: 16px;
328 }
329
330 .mlsimport-save-indicator.is-spinning {
331 border: 2px solid #e85d3c;
332 border-top-color: transparent;
333 border-radius: 50%;
334 animation: mlsimport-field-save-spin 1s linear infinite;
335 }
336
337 .mlsimport-save-indicator.is-success {
338 color: #2faa6a;
339 font-size: 16px;
340 }
341
342 .mlsimport-save-indicator.is-error {
343 color: #c02617;
344 font-size: 16px;
345 }
346
347 @keyframes mlsimport-field-save-spin {
348 0% { transform: rotate(0deg); }
349 100% { transform: rotate(360deg); }
350 }
351
352 .mlsimport-field-save-recovery {
353 margin-left: 8px !important;
354 }
355
356 .mlsimport-no-fields td {
357 padding: 30px;
358 text-align: center;
359 color: #9a9285;
360 }
361
362 /* Drag and drop styles */
363 /* jQuery-UI sortable: the row being dragged (helper). */
364 .ui-sortable-helper {
365 background: #fff;
366 border: 1px solid #e85d3c;
367 box-shadow: 0 2px 5px rgba(28, 25, 23, 0.15);
368 }
369
370 /* Dashed drop-target gap; forced visible to show where the row will land. */
371 .ui-sortable-placeholder {
372 visibility: visible !important;
373 background: #fde4d8;
374 border: 1px dashed #e85d3c;
375 height: 50px;
376 }
377
378 /* Responsive styles */
379 /* At WP's 782px mobile breakpoint: stack the stats/filters vertically and let
380 the wide fields table scroll horizontally instead of overflowing. */
381 @media screen and (max-width: 782px) {
382 .mlsimport-field-stats ul {
383 flex-direction: column;
384 }
385
386 .mlsimport-field-stats li {
387 margin-right: 0;
388 margin-bottom: 10px;
389 }
390
391 .mlsimport-field-filters {
392 flex-direction: column;
393 align-items: stretch;
394 }
395
396 .mlsimport-field-filter {
397 margin-right: 0;
398 margin-bottom: 10px;
399 max-width: 100%;
400 }
401
402 .mlsimport-fields-table {
403 display: block;
404 overflow-x: auto;
405 }
406 }
407
408
409
410 /* row oers */
411 /* Per-row reorder controls: inline, no-wrap group of move buttons. */
412 .mlsimport-row-actions {
413 text-align: center;
414 white-space: nowrap;
415 display: inline;
416 margin-right: 10px;
417 }
418
419 .mlsimport-move-btn {
420 display: inline-block;
421 width: 28px;
422 height: 28px;
423 margin: 0 2px;
424 padding: 0;
425 background: #f3efe7;
426 border: 1px solid rgba(28, 25, 23, 0.18);
427 border-radius: 999px;
428 color: #6b6358;
429 text-align: center;
430
431 cursor: pointer;
432 }
433
434 .mlsimport-move-btn:hover {
435 background: #e85d3c;
436 border-color: #e85d3c;
437 color:#fff;
438 }
439
440 /* Tooltip styling for move buttons */
441 /* JS-positioned tooltip for the up/down move buttons; very high z-index keeps
442 it above the sticky table header and card chrome. */
443 .mlsimport-move-tooltip {
444 background: #1c1917;
445 color: #fff;
446 padding: 6px 10px;
447 border-radius: 10px;
448 box-shadow: 0 2px 5px rgba(28, 25, 23, 0.3);
449 font-size: 12px;
450 /* max-width: 200px; */
451 z-index: 10000;
452 width: auto;
453 max-width: none;
454 display: flex;
455 width: auto;
456 float: left;
457 transition: all 1s ease-out;
458 }
459