PluginProbe ʕ •ᴥ•ʔ
ECS – Ele Custom Skin for Elementor / 4.3.9
ECS – Ele Custom Skin for Elementor v4.3.9
4.3.11 4.3.10 4.3.9 4.3.8 4.3.7 4.3.6 4.3.5 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.2.0 4.1.11 4.1.10 4.1.9 4.1.8 4.1.6 4.1.7 4.1.5 4.1.4 4.1.1 4.1.2 trunk 1.0.0 1.0.1 1.0.9 1.1.3 1.1.4 1.1.5 1.2.0 1.2.1 1.2.4 1.2.5 1.3.10 1.3.11 1.3.3 1.3.4 1.3.6 1.3.7 1.3.9 1.4.0 2.0.2 2.1.0 2.2.0 2.2.1 2.2.2 3.0.0 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 4.1.0
ele-custom-skin / modules / json-poweredit / assets / css / ecs-json-poweredit-editor.css
ele-custom-skin / modules / json-poweredit / assets / css Last commit date
ecs-json-poweredit-editor.css 2 months ago
ecs-json-poweredit-editor.css
558 lines
1 /* ── ECS JSON PowerEdit — Elementor AI–style UI ────────────────────────────── */
2
3 :root {
4 --jpe-bg : var(--e-a-bg-default, #ffffff);
5 --jpe-surface : var(--e-a-bg-hover, #f7f7f7);
6 --jpe-text : var(--e-a-color-txt-accent, #0c0d0e);
7 --jpe-text-sec : var(--e-a-color-txt, #515962);
8 --jpe-text-ter : var(--e-a-color-txt-muted, #69727d);
9 --jpe-border : var(--e-a-border-color, #d5d8dc);
10 --jpe-json-color: var(--e-a-color-txt-accent, #0c0d0e);
11 }
12
13 /* ── "Edit JSON" button injected into panel controls ───────────────────── */
14
15 .ecs-jpe-btn {
16 display : inline-flex;
17 align-items : center;
18 justify-content : center;
19 gap : 5px;
20 width : 100%;
21 margin-top : 8px;
22 padding : 0 10px;
23 height : 28px;
24 background : var(--e-a-bg-hover);
25 border : 1px solid var(--e-a-border-color);
26 border-radius : 3px;
27 color : var(--e-a-color-txt);
28 font-size : 12px;
29 font-weight : 500;
30 font-family : inherit;
31 line-height : 1;
32 cursor : pointer;
33 white-space : nowrap;
34 transition : background 0.15s, border-color 0.15s, color 0.15s;
35 box-sizing : border-box;
36 }
37
38 .ecs-jpe-btn:hover {
39 background : var(--e-a-bg-active);
40 }
41
42 /* ── Modal overlay ──────────────────────────────────────────────────────── */
43
44 #ecs-jpe-modal {
45 display : none;
46 position : fixed;
47 inset : 0;
48 z-index : 999999;
49 align-items : center;
50 justify-content : center;
51 }
52
53 #ecs-jpe-modal.ecs-jpe-open {
54 display : flex;
55 }
56
57 .ecs-jpe-backdrop {
58 position : absolute;
59 inset : 0;
60 background : transparent;
61 }
62
63 /* ── Dialog box ─────────────────────────────────────────────────────────── */
64
65 .ecs-jpe-dialog {
66 position : relative;
67 z-index : 1;
68 display : flex;
69 flex-direction : column;
70 width : min(820px, 92vw);
71 height : min(580px, 86vh);
72 max-height : 86vh;
73 background : var(--jpe-bg);
74 border-radius : 4px;
75 box-shadow : 0px 11px 15px -7px rgba(0,0,0,.2),
76 0px 24px 38px 3px rgba(0,0,0,.14),
77 0px 9px 46px 8px rgba(0,0,0,.12);
78 overflow : hidden;
79 color : var(--jpe-text);
80 font-family : Roboto, Arial, Helvetica, sans-serif;
81 font-size : 13px;
82 }
83
84 /* ── Header ─────────────────────────────────────────────────────────────── */
85
86 .ecs-jpe-header {
87 display : flex;
88 align-items : center;
89 gap : 8px;
90 padding : 12px 16px 10px;
91 background : var(--jpe-bg);
92 border-bottom : 1px solid var(--jpe-border);
93 flex-shrink : 0;
94 }
95
96 .ecs-jpe-header-icon {
97 width : 28px;
98 height : 28px;
99 background : #0c0d0e;
100 border-radius : 50%;
101 display : flex;
102 align-items : center;
103 justify-content : center;
104 flex-shrink : 0;
105 color : #fff;
106 font-size : 11px;
107 font-weight : 700;
108 letter-spacing : -0.5px;
109 }
110
111 .ecs-jpe-title {
112 font-size : 13px;
113 font-weight : 600;
114 color : var(--jpe-text);
115 }
116
117
118 .ecs-jpe-header-actions {
119 display : flex;
120 align-items : center;
121 margin-left : auto;
122 flex-shrink : 0;
123 }
124
125 .ecs-jpe-close {
126 display : flex;
127 align-items : center;
128 justify-content : center;
129 width : 28px;
130 height : 28px;
131 background : transparent;
132 border : none;
133 border-radius : 50%;
134 color : var(--jpe-text-sec);
135 font-size : 16px;
136 line-height : 1;
137 cursor : pointer;
138 transition : background 0.15s, color 0.15s;
139 padding : 0;
140 }
141
142 .ecs-jpe-close:hover {
143 background : var(--e-a-bg-active, rgba(0,0,0,.06));
144 color : var(--jpe-text);
145 }
146
147 /* ── Meta info ──────────────────────────────────────────────────────────── */
148
149 .ecs-jpe-meta {
150 padding : 6px 16px;
151 font-size : 11px;
152 color : var(--jpe-text-ter);
153 background : var(--jpe-surface);
154 border-bottom : 1px solid var(--jpe-border);
155 flex-shrink : 0;
156 font-family : 'Courier New', Courier, monospace;
157 }
158
159 /* ── Textarea ───────────────────────────────────────────────────────────── */
160
161 .ecs-jpe-textarea {
162 flex : 1;
163 min-height : 300px;
164 padding : 14px 16px;
165 background : var(--jpe-surface);
166 border : none;
167 color : var(--jpe-json-color);
168 font-family : 'Courier New', Courier, monospace;
169 font-size : 13px;
170 line-height : 1.6;
171 resize : none;
172 outline : none;
173 overflow-y : auto;
174 }
175
176 .ecs-jpe-textarea:focus {
177 background : var(--e-a-bg-active, #f5f5f5);
178 }
179
180 /* ── Error message ──────────────────────────────────────────────────────── */
181
182 .ecs-jpe-error {
183 display : none;
184 padding : 8px 16px;
185 background : #fff5f5;
186 border-top : 1px solid #fecaca;
187 color : #dc2626;
188 font-size : 12px;
189 flex-shrink : 0;
190 }
191
192 /* ── Toolbar ────────────────────────────────────────────────────────────── */
193
194 .ecs-jpe-toolbar {
195 display : flex;
196 gap : 8px;
197 padding : 10px 16px;
198 background : var(--jpe-bg);
199 border-top : 1px solid var(--jpe-border);
200 flex-shrink : 0;
201 }
202
203 .ecs-jpe-action {
204 padding : 6px 14px;
205 background : var(--jpe-bg);
206 border : 1px solid var(--jpe-border);
207 border-radius : 4px;
208 color : var(--jpe-text-sec);
209 font-size : 12px;
210 font-family : Roboto, Arial, Helvetica, sans-serif;
211 cursor : pointer;
212 transition : background 0.15s, color 0.15s, border-color 0.15s;
213 }
214
215 .ecs-jpe-action:hover {
216 background : var(--jpe-surface);
217 color : var(--jpe-text);
218 border-color : var(--jpe-border);
219 }
220
221 /* Apply button */
222 .ecs-jpe-apply {
223 margin-left : auto;
224 background : #f0abfc;
225 border-color : #f0abfc;
226 color : #0c0d0e;
227 font-weight : 600;
228 }
229
230 .ecs-jpe-apply:hover {
231 background : #e879f9;
232 border-color : #e879f9;
233 color : #0c0d0e;
234 }
235
236 .ecs-jpe-action--active {
237 background : #f3e8ff;
238 border-color : #c084fc;
239 color : #7e22ce;
240 }
241
242 /* ── Spreadsheet hint ───────────────────────────────────────────────────── */
243
244 .ecs-jpe-sheet-hint {
245 padding : 7px 16px;
246 font-size : 11px;
247 color : var(--jpe-text-ter);
248 background : var(--jpe-surface);
249 border-bottom: 1px solid var(--jpe-border);
250 flex-shrink : 0;
251 line-height : 1.5;
252 }
253
254 /* ── Spreadsheet table view ─────────────────────────────────────────────── */
255
256 .ecs-jpe-sheet {
257 display : flex;
258 flex-direction : column;
259 flex : 1;
260 min-height : 0;
261 }
262
263 .ecs-jpe-sheet-scroll {
264 flex : 1;
265 overflow : auto;
266 min-height : 0;
267 }
268
269 .ecs-jpe-sheet-table {
270 border-collapse : collapse;
271 min-width : 100%;
272 font-family : 'Courier New', Courier, monospace;
273 font-size : 12.5px;
274 line-height : 1.5;
275 }
276
277 .ecs-jpe-sheet-table th,
278 .ecs-jpe-sheet-table td {
279 border : 1px solid var(--jpe-border);
280 padding : 0;
281 white-space: nowrap;
282 }
283
284 .ecs-jpe-sheet-table thead th {
285 background : var(--e-a-bg-hover, #f5f5f5);
286 position : sticky;
287 top : 0;
288 z-index : 1;
289 }
290
291 .ecs-jpe-sheet-rn {
292 background : var(--jpe-surface);
293 color : var(--jpe-text-ter);
294 font-size : 11px;
295 text-align : center;
296 width : 36px;
297 min-width : 36px;
298 user-select : none;
299 vertical-align : middle;
300 padding : 0 4px;
301 }
302
303 .ecs-jpe-cell {
304 display : block;
305 padding : 3px 8px;
306 min-width : 90px;
307 min-height : 24px;
308 outline : none;
309 color : var(--jpe-text);
310 white-space: pre;
311 }
312
313 .ecs-jpe-cell:focus {
314 background : #fffde7;
315 box-shadow : inset 0 0 0 2px #f59e0b;
316 }
317
318 .ecs-jpe-sheet-table thead .ecs-jpe-cell {
319 font-weight : 600;
320 color : #1d4ed8;
321 }
322
323 .ecs-jpe-sheet-add-row {
324 flex-shrink : 0;
325 margin : 8px 16px;
326 align-self : flex-start;
327 }
328
329 /* ── Row ⋮ handle ───────────────────────────────────────────────────────── */
330
331 .ecs-jpe-rn-btn {
332 display : flex;
333 align-items : center;
334 justify-content : center;
335 width : 100%;
336 min-height : 22px;
337 background : none;
338 border : none;
339 padding : 0;
340 cursor : grab;
341 font-size : 0;
342 line-height : 1;
343 transition : color .1s;
344 user-select : none;
345 position : relative;
346 }
347
348 .ecs-jpe-rn-btn::before {
349 content : attr(data-n);
350 font-size : 11px;
351 color : var(--jpe-text-ter);
352 }
353
354 tr:hover .ecs-jpe-rn-btn {
355 font-size : 16px;
356 color : var(--jpe-border);
357 }
358
359 tr:hover .ecs-jpe-rn-btn::before {
360 display : none;
361 }
362
363 tr:hover .ecs-jpe-rn-btn:hover {
364 color : var(--jpe-text-ter);
365 }
366
367 /* ── Row context menu ────────────────────────────────────────────────────── */
368
369 .ecs-jpe-row-menu {
370 display : none;
371 position : fixed;
372 z-index : 1000001;
373 background : var(--jpe-bg);
374 border : 1px solid var(--jpe-border);
375 border-radius : 4px;
376 box-shadow : 0 4px 16px rgba(0,0,0,.15);
377 min-width : 175px;
378 padding : 4px 0;
379 font-family : Roboto, Arial, Helvetica, sans-serif;
380 font-size : 12px;
381 }
382
383 .ecs-jpe-row-menu--open {
384 display : block;
385 }
386
387 .ecs-jpe-row-menu button {
388 display : block;
389 width : 100%;
390 padding : 7px 14px;
391 background : none;
392 border : none;
393 text-align : left;
394 cursor : pointer;
395 color : var(--jpe-text);
396 font-family : inherit;
397 font-size : inherit;
398 transition : background .1s;
399 box-sizing : border-box;
400 }
401
402 .ecs-jpe-row-menu button:hover {
403 background : var(--jpe-surface);
404 }
405
406 .ecs-jpe-row-menu-sep {
407 border : none;
408 border-top : 1px solid var(--jpe-border);
409 margin : 4px 0;
410 }
411
412 .ecs-jpe-row-menu-delete {
413 color : #dc2626 !important;
414 }
415
416 .ecs-jpe-row-menu-delete:hover {
417 background : #fef2f2 !important;
418 }
419
420 /* ── Drag-and-drop visual states ─────────────────────────────────────────── */
421
422 .ecs-jpe-dragging {
423 opacity : 0.35;
424 }
425
426 .ecs-jpe-drag-over {
427 outline : 2px solid #f59e0b;
428 outline-offset : -1px;
429 }
430
431 /* ── Tree toolbar ───────────────────────────────────────────────────────── */
432
433 .ecs-jpe-tree-toolbar {
434 display : flex;
435 gap : 6px;
436 padding : 6px 16px;
437 background : var(--jpe-surface);
438 border-bottom: 1px solid var(--jpe-border);
439 flex-shrink : 0;
440 }
441
442 .ecs-jpe-tree-toolbar .ecs-jpe-action {
443 padding : 3px 10px;
444 height : auto;
445 font-size : 11px;
446 }
447
448 /* ── Tree view ──────────────────────────────────────────────────────────── */
449
450 .ecs-jpe-tree {
451 flex : 1;
452 overflow-y : auto;
453 padding : 10px 12px;
454 background : var(--jpe-surface);
455 font-family: 'Courier New', Courier, monospace;
456 font-size : 12.5px;
457 line-height: 1.6;
458 }
459
460 .ecs-jpe-tree-empty {
461 color : var(--jpe-text-ter);
462 font-style: italic;
463 padding : 8px 0;
464 }
465
466 /* Node (collapsible object/array) */
467 .ecs-jpe-tn {
468 padding-left : var(--jpe-indent, 0px);
469 }
470
471 .ecs-jpe-tn-row {
472 display : flex;
473 align-items : baseline;
474 gap : 3px;
475 min-height : 22px;
476 cursor : default;
477 }
478
479 .ecs-jpe-tn-row:hover {
480 background : rgba(0,0,0,.03);
481 border-radius : 3px;
482 }
483
484 .ecs-jpe-tn-toggle {
485 background : none;
486 border : none;
487 padding : 0 2px;
488 cursor : pointer;
489 color : var(--jpe-text-ter);
490 font-size : 10px;
491 line-height : 1;
492 flex-shrink : 0;
493 transition : color .1s;
494 }
495
496 .ecs-jpe-tn-toggle:hover { color: var(--jpe-text); }
497
498 .ecs-jpe-tn-key {
499 color : #1d4ed8;
500 font-weight : 600;
501 flex-shrink : 0;
502 }
503
504 .ecs-jpe-tn-sep {
505 color : var(--jpe-text-ter);
506 flex-shrink : 0;
507 }
508
509 .ecs-jpe-tn-count {
510 font-size : 10px;
511 color : var(--jpe-text-ter);
512 margin-left: 4px;
513 flex-shrink: 0;
514 }
515
516 .ecs-jpe-tn-preview {
517 font-size : 11px;
518 color : var(--jpe-text-ter);
519 margin-left : 6px;
520 display : none;
521 overflow : hidden;
522 text-overflow: ellipsis;
523 white-space : nowrap;
524 max-width : 200px;
525 }
526
527 .ecs-jpe-tn-children {
528 border-left : 1px dashed var(--jpe-border);
529 margin-left : 6px;
530 }
531
532 .ecs-jpe-tn-close {
533 padding-left : var(--jpe-indent, 0px);
534 color : var(--jpe-text-ter);
535 font-size : 11px;
536 }
537
538 /* Leaf (primitive) */
539 .ecs-jpe-tl {
540 display : flex;
541 align-items : baseline;
542 gap : 3px;
543 padding-left : calc( var(--jpe-indent, 0px) + 14px );
544 min-height : 22px;
545 }
546
547 .ecs-jpe-tl:hover {
548 background : rgba(0,0,0,.03);
549 border-radius : 3px;
550 }
551
552 /* Value types */
553 .ecs-jpe-tv-str { color: #16a34a; }
554 .ecs-jpe-tv-num { color: #2563eb; }
555 .ecs-jpe-tv-bool { color: #9333ea; }
556 .ecs-jpe-tv-null { color: #6b7280; font-style: italic; }
557 .ecs-jpe-tv-meta { color: #9ca3af; font-weight: 600; }
558