@xeplr/ui-table 1.0.0

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,913 @@
1
+ /* ── Container ── */
2
+ .xeplr-table-container {
3
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4
+ font-size: 14px;
5
+ color: #e0e0e0;
6
+ background: #1a1a2e;
7
+ border: 1px solid #2a2a4a;
8
+ border-radius: 8px;
9
+ overflow: hidden;
10
+ }
11
+
12
+ /* ── Toolbar ── */
13
+ .xeplr-table-toolbar {
14
+ display: flex;
15
+ gap: 8px;
16
+ padding: 8px 12px;
17
+ border-bottom: 1px solid #2a2a4a;
18
+ background: #16162a;
19
+ }
20
+
21
+ .xeplr-table-toolbar-btn {
22
+ padding: 4px 12px;
23
+ border: 1px solid #3a3a5a;
24
+ border-radius: 4px;
25
+ background: transparent;
26
+ color: #a0a0c0;
27
+ cursor: pointer;
28
+ font-size: 12px;
29
+ }
30
+
31
+ .xeplr-table-toolbar-btn:hover {
32
+ background: #2a2a4a;
33
+ color: #e0e0e0;
34
+ }
35
+
36
+ /* ── Scroll wrapper ── */
37
+ .xeplr-table-scroll {
38
+ overflow-x: auto;
39
+ }
40
+
41
+ /* ── Table ── */
42
+ .xeplr-table {
43
+ width: 100%;
44
+ border-collapse: collapse;
45
+ table-layout: auto;
46
+ }
47
+
48
+ /* ── Header ── */
49
+ .xeplr-table-th {
50
+ padding: 0;
51
+ background: #16162a;
52
+ border-bottom: 2px solid #2a2a4a;
53
+ text-align: left;
54
+ font-weight: 600;
55
+ white-space: nowrap;
56
+ }
57
+
58
+ .xeplr-table-header-cell {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 4px;
62
+ padding: 10px 12px;
63
+ }
64
+
65
+ .xeplr-table-header-label {
66
+ flex: 1;
67
+ user-select: none;
68
+ }
69
+
70
+ .xeplr-table-header-label.sortable {
71
+ cursor: pointer;
72
+ }
73
+
74
+ .xeplr-table-header-label.sortable:hover {
75
+ color: #7c7cff;
76
+ }
77
+
78
+ .xeplr-table-sort-icon {
79
+ font-size: 10px;
80
+ color: #7c7cff;
81
+ }
82
+
83
+ /* ── Body ── */
84
+ .xeplr-table-td {
85
+ padding: 8px 12px;
86
+ border-bottom: 1px solid #2a2a4a;
87
+ }
88
+
89
+ .xeplr-table-row:hover {
90
+ background: #1e1e3a;
91
+ }
92
+
93
+ .xeplr-table-empty {
94
+ padding: 24px;
95
+ text-align: center;
96
+ color: #666;
97
+ }
98
+
99
+ /* ── Filter trigger ── */
100
+ .xeplr-table-filter-wrapper {
101
+ position: relative;
102
+ flex-shrink: 0;
103
+ }
104
+
105
+ .xeplr-table-filter-trigger {
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ width: 24px;
110
+ height: 24px;
111
+ padding: 0;
112
+ border: none;
113
+ border-radius: 4px;
114
+ background: transparent;
115
+ color: #555;
116
+ cursor: pointer;
117
+ }
118
+
119
+ .xeplr-table-filter-trigger:hover {
120
+ background: #2a2a4a;
121
+ color: #a0a0c0;
122
+ }
123
+
124
+ .xeplr-table-filter-trigger.xeplr-table-filter-active {
125
+ color: #7c7cff;
126
+ background: #2a2a5a;
127
+ }
128
+
129
+ /* ── Filter panel ── */
130
+ .xeplr-table-filter-panel {
131
+ position: absolute;
132
+ top: 100%;
133
+ right: 0;
134
+ z-index: 100;
135
+ min-width: 220px;
136
+ max-width: 300px;
137
+ background: #1e1e38;
138
+ border: 1px solid #3a3a5a;
139
+ border-radius: 6px;
140
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
141
+ padding: 8px;
142
+ margin-top: 4px;
143
+ }
144
+
145
+ .xeplr-table-filter-actions {
146
+ display: flex;
147
+ justify-content: flex-end;
148
+ gap: 6px;
149
+ margin-top: 8px;
150
+ padding-top: 8px;
151
+ border-top: 1px solid #2a2a4a;
152
+ }
153
+
154
+ .xeplr-table-filter-clear-btn,
155
+ .xeplr-table-filter-close-btn {
156
+ padding: 4px 10px;
157
+ border: 1px solid #3a3a5a;
158
+ border-radius: 4px;
159
+ background: transparent;
160
+ color: #a0a0c0;
161
+ cursor: pointer;
162
+ font-size: 12px;
163
+ }
164
+
165
+ .xeplr-table-filter-close-btn {
166
+ background: #3a3a6a;
167
+ color: #e0e0e0;
168
+ }
169
+
170
+ .xeplr-table-filter-clear-btn:hover { background: #2a2a4a; }
171
+ .xeplr-table-filter-close-btn:hover { background: #4a4a7a; }
172
+
173
+ /* ── Shared filter elements ── */
174
+ .xeplr-table-filter-search,
175
+ .xeplr-table-filter-input,
176
+ .xeplr-table-filter-operator {
177
+ width: 100%;
178
+ padding: 6px 8px;
179
+ margin-bottom: 6px;
180
+ border: 1px solid #3a3a5a;
181
+ border-radius: 4px;
182
+ background: #141428;
183
+ color: #e0e0e0;
184
+ font-size: 13px;
185
+ box-sizing: border-box;
186
+ }
187
+
188
+ .xeplr-table-filter-search:focus,
189
+ .xeplr-table-filter-input:focus,
190
+ .xeplr-table-filter-operator:focus {
191
+ outline: none;
192
+ border-color: #7c7cff;
193
+ }
194
+
195
+ /* ── String filter ── */
196
+ .xeplr-table-filter-bulk {
197
+ display: flex;
198
+ gap: 4px;
199
+ margin-bottom: 6px;
200
+ }
201
+
202
+ .xeplr-table-filter-bulk button {
203
+ flex: 1;
204
+ padding: 3px 0;
205
+ border: 1px solid #3a3a5a;
206
+ border-radius: 3px;
207
+ background: transparent;
208
+ color: #a0a0c0;
209
+ cursor: pointer;
210
+ font-size: 11px;
211
+ }
212
+
213
+ .xeplr-table-filter-bulk button:hover {
214
+ background: #2a2a4a;
215
+ }
216
+
217
+ .xeplr-table-filter-list {
218
+ max-height: 180px;
219
+ overflow-y: auto;
220
+ margin-bottom: 6px;
221
+ }
222
+
223
+ .xeplr-table-filter-option {
224
+ display: flex;
225
+ align-items: center;
226
+ gap: 6px;
227
+ padding: 3px 4px;
228
+ border-radius: 3px;
229
+ cursor: pointer;
230
+ font-size: 13px;
231
+ }
232
+
233
+ .xeplr-table-filter-option:hover {
234
+ background: #2a2a4a;
235
+ }
236
+
237
+ .xeplr-table-filter-empty {
238
+ padding: 8px;
239
+ text-align: center;
240
+ color: #666;
241
+ font-size: 12px;
242
+ }
243
+
244
+ /* ── Null controls ── */
245
+ .xeplr-table-filter-null-controls {
246
+ display: flex;
247
+ gap: 4px;
248
+ margin-top: 6px;
249
+ }
250
+
251
+ .xeplr-table-filter-null-controls button {
252
+ flex: 1;
253
+ padding: 4px 0;
254
+ border: 1px solid #3a3a5a;
255
+ border-radius: 3px;
256
+ background: transparent;
257
+ color: #a0a0c0;
258
+ cursor: pointer;
259
+ font-size: 11px;
260
+ }
261
+
262
+ .xeplr-table-filter-null-controls button:hover {
263
+ background: #2a2a4a;
264
+ }
265
+
266
+ .xeplr-table-filter-null-controls button.active {
267
+ background: #3a3a6a;
268
+ color: #7c7cff;
269
+ border-color: #7c7cff;
270
+ }
271
+
272
+ /* ── Boolean filter ── */
273
+ .xeplr-table-boolean-filter {
274
+ display: flex;
275
+ gap: 4px;
276
+ }
277
+
278
+ .xeplr-table-bool-btn {
279
+ flex: 1;
280
+ padding: 6px 0;
281
+ border: 1px solid #3a3a5a;
282
+ border-radius: 4px;
283
+ background: transparent;
284
+ color: #a0a0c0;
285
+ cursor: pointer;
286
+ font-size: 13px;
287
+ }
288
+
289
+ .xeplr-table-bool-btn:hover {
290
+ background: #2a2a4a;
291
+ }
292
+
293
+ .xeplr-table-bool-btn.active {
294
+ background: #3a3a6a;
295
+ color: #7c7cff;
296
+ border-color: #7c7cff;
297
+ }
298
+
299
+ /* ── Pagination ── */
300
+ .xeplr-table-pagination {
301
+ display: flex;
302
+ align-items: center;
303
+ gap: 8px;
304
+ padding: 8px 12px;
305
+ border-top: 1px solid #2a2a4a;
306
+ background: #16162a;
307
+ font-size: 13px;
308
+ }
309
+
310
+ .xeplr-table-pagination button {
311
+ padding: 4px 8px;
312
+ border: 1px solid #3a3a5a;
313
+ border-radius: 4px;
314
+ background: transparent;
315
+ color: #a0a0c0;
316
+ cursor: pointer;
317
+ }
318
+
319
+ .xeplr-table-pagination button:hover:not(:disabled) {
320
+ background: #2a2a4a;
321
+ color: #e0e0e0;
322
+ }
323
+
324
+ .xeplr-table-pagination button:disabled {
325
+ opacity: 0.3;
326
+ cursor: not-allowed;
327
+ }
328
+
329
+ .xeplr-table-page-info {
330
+ color: #a0a0c0;
331
+ }
332
+
333
+ .xeplr-table-page-size {
334
+ padding: 3px 6px;
335
+ border: 1px solid #3a3a5a;
336
+ border-radius: 4px;
337
+ background: #141428;
338
+ color: #e0e0e0;
339
+ font-size: 12px;
340
+ }
341
+
342
+ .xeplr-table-row-count {
343
+ color: #666;
344
+ margin-left: auto;
345
+ }
346
+
347
+ /* ── Scrollbar ── */
348
+ .xeplr-table-filter-list::-webkit-scrollbar {
349
+ width: 6px;
350
+ }
351
+
352
+ .xeplr-table-filter-list::-webkit-scrollbar-track {
353
+ background: transparent;
354
+ }
355
+
356
+ .xeplr-table-filter-list::-webkit-scrollbar-thumb {
357
+ background: #3a3a5a;
358
+ border-radius: 3px;
359
+ }
360
+
361
+ /* ── Expand column ── */
362
+ .xeplr-table-th-expand,
363
+ .xeplr-table-td-expand {
364
+ width: 36px;
365
+ text-align: center;
366
+ padding: 0 4px;
367
+ }
368
+
369
+ .xeplr-table-expand-btn {
370
+ display: inline-flex;
371
+ align-items: center;
372
+ justify-content: center;
373
+ width: 24px;
374
+ height: 24px;
375
+ padding: 0;
376
+ border: none;
377
+ border-radius: 4px;
378
+ background: transparent;
379
+ color: #666;
380
+ cursor: pointer;
381
+ font-size: 12px;
382
+ transition: transform 0.15s;
383
+ }
384
+
385
+ .xeplr-table-expand-btn:hover {
386
+ background: #2a2a4a;
387
+ color: #a0a0c0;
388
+ }
389
+
390
+ .xeplr-table-expand-btn.expanded {
391
+ transform: rotate(90deg);
392
+ color: #7c7cff;
393
+ }
394
+
395
+ /* ── Expanded child row ── */
396
+ .xeplr-table-row-expanded > td {
397
+ padding: 0;
398
+ background: #141428;
399
+ }
400
+
401
+ .xeplr-table-td-expanded {
402
+ padding: 0 !important;
403
+ }
404
+
405
+ .xeplr-table-child-container {
406
+ padding: 12px 16px 12px 48px;
407
+ border-bottom: 2px solid #2a2a4a;
408
+ }
409
+
410
+ .xeplr-table-child-header {
411
+ display: flex;
412
+ align-items: center;
413
+ gap: 10px;
414
+ margin-bottom: 8px;
415
+ }
416
+
417
+ .xeplr-table-child-title {
418
+ font-size: 13px;
419
+ font-weight: 600;
420
+ color: #a0a0c0;
421
+ text-transform: uppercase;
422
+ letter-spacing: 0.5px;
423
+ }
424
+
425
+ .xeplr-table-child-add {
426
+ padding: 2px 10px;
427
+ font-size: 11px;
428
+ }
429
+
430
+ .xeplr-table-child {
431
+ border: 1px solid #2a2a4a;
432
+ border-radius: 6px;
433
+ overflow: hidden;
434
+ }
435
+
436
+ /* ── Toolbar layout ── */
437
+ .xeplr-table-toolbar-spacer {
438
+ flex: 1;
439
+ }
440
+
441
+ .xeplr-table-toolbar-btn-add {
442
+ color: #7c7cff;
443
+ border-color: #7c7cff;
444
+ }
445
+
446
+ .xeplr-table-toolbar-btn-add:hover {
447
+ background: #2a2a5a;
448
+ color: #9d9dff;
449
+ }
450
+
451
+ .xeplr-table-toolbar-btn-delete {
452
+ color: #ff6b6b;
453
+ border-color: #ff6b6b;
454
+ }
455
+
456
+ .xeplr-table-toolbar-btn-delete:hover {
457
+ background: #3a1a1a;
458
+ color: #ff8a8a;
459
+ }
460
+
461
+ .xeplr-table-toolbar-btn-delete:disabled {
462
+ opacity: 0.5;
463
+ cursor: not-allowed;
464
+ }
465
+
466
+ /* ── Commit / discard ── */
467
+ .xeplr-table-toolbar-pending {
468
+ display: flex;
469
+ gap: 6px;
470
+ margin-left: 4px;
471
+ }
472
+
473
+ .xeplr-table-toolbar-btn-commit {
474
+ color: #66bb6a;
475
+ border-color: #66bb6a;
476
+ }
477
+
478
+ .xeplr-table-toolbar-btn-commit:hover {
479
+ background: #1a3a1a;
480
+ color: #81c784;
481
+ }
482
+
483
+ .xeplr-table-toolbar-btn-commit:disabled {
484
+ opacity: 0.5;
485
+ cursor: not-allowed;
486
+ }
487
+
488
+ .xeplr-table-toolbar-btn-discard {
489
+ color: #ff9800;
490
+ border-color: #ff9800;
491
+ }
492
+
493
+ .xeplr-table-toolbar-btn-discard:hover {
494
+ background: #3a2a0a;
495
+ color: #ffb74d;
496
+ }
497
+
498
+ .xeplr-table-toolbar-btn-discard:disabled {
499
+ opacity: 0.5;
500
+ cursor: not-allowed;
501
+ }
502
+
503
+ /* ── Row status indicators ── */
504
+ .xeplr-table-row-new {
505
+ border-left: 3px solid #66bb6a;
506
+ }
507
+
508
+ .xeplr-table-row-edited {
509
+ border-left: 3px solid #ffc107;
510
+ }
511
+
512
+ /* ── Checkbox column ── */
513
+ .xeplr-table-th-checkbox,
514
+ .xeplr-table-td-checkbox {
515
+ width: 40px;
516
+ text-align: center;
517
+ }
518
+
519
+ .xeplr-table-checkbox {
520
+ width: 16px;
521
+ height: 16px;
522
+ cursor: pointer;
523
+ accent-color: #7c7cff;
524
+ }
525
+
526
+ .xeplr-table-row-selected {
527
+ background: #1e1e3a;
528
+ }
529
+
530
+ /* ── Actions column ── */
531
+ .xeplr-table-th-actions {
532
+ width: 1%;
533
+ white-space: nowrap;
534
+ }
535
+
536
+ .xeplr-table-td-actions {
537
+ white-space: nowrap;
538
+ }
539
+
540
+ .xeplr-table-actions-cell {
541
+ display: flex;
542
+ gap: 4px;
543
+ align-items: center;
544
+ }
545
+
546
+ .xeplr-table-action-btn {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: center;
550
+ width: 28px;
551
+ height: 28px;
552
+ padding: 0;
553
+ border: 1px solid transparent;
554
+ border-radius: 4px;
555
+ background: transparent;
556
+ color: #666;
557
+ cursor: pointer;
558
+ }
559
+
560
+ .xeplr-table-action-btn:hover {
561
+ border-color: #3a3a5a;
562
+ background: #2a2a4a;
563
+ }
564
+
565
+ .xeplr-table-action-view:hover { color: #7c7cff; }
566
+ .xeplr-table-action-copy:hover { color: #a0a0c0; }
567
+ .xeplr-table-action-edit:hover { color: #ffc107; }
568
+ .xeplr-table-action-delete:hover { color: #ff6b6b; }
569
+
570
+ /* ── Modal overlay ── */
571
+ .xeplr-table-modal-overlay {
572
+ position: fixed;
573
+ top: 0;
574
+ left: 0;
575
+ right: 0;
576
+ bottom: 0;
577
+ z-index: 1000;
578
+ display: flex;
579
+ align-items: center;
580
+ justify-content: center;
581
+ background: rgba(0, 0, 0, 0.6);
582
+ }
583
+
584
+ .xeplr-table-modal {
585
+ width: 90%;
586
+ max-width: 560px;
587
+ max-height: 85vh;
588
+ display: flex;
589
+ flex-direction: column;
590
+ background: #1e1e38;
591
+ border: 1px solid #3a3a5a;
592
+ border-radius: 10px;
593
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
594
+ }
595
+
596
+ .xeplr-table-modal-header {
597
+ display: flex;
598
+ align-items: center;
599
+ justify-content: space-between;
600
+ padding: 14px 20px;
601
+ border-bottom: 1px solid #2a2a4a;
602
+ }
603
+
604
+ .xeplr-table-modal-title {
605
+ font-size: 16px;
606
+ font-weight: 600;
607
+ color: #e0e0e0;
608
+ }
609
+
610
+ .xeplr-table-modal-close {
611
+ display: flex;
612
+ align-items: center;
613
+ justify-content: center;
614
+ width: 28px;
615
+ height: 28px;
616
+ padding: 0;
617
+ border: none;
618
+ border-radius: 4px;
619
+ background: transparent;
620
+ color: #666;
621
+ cursor: pointer;
622
+ }
623
+
624
+ .xeplr-table-modal-close:hover {
625
+ background: #2a2a4a;
626
+ color: #e0e0e0;
627
+ }
628
+
629
+ .xeplr-table-modal-body {
630
+ padding: 16px 20px;
631
+ overflow-y: auto;
632
+ flex: 1;
633
+ }
634
+
635
+ .xeplr-table-modal-field {
636
+ margin-bottom: 14px;
637
+ }
638
+
639
+ .xeplr-table-modal-label {
640
+ display: block;
641
+ margin-bottom: 4px;
642
+ font-size: 12px;
643
+ font-weight: 600;
644
+ color: #a0a0c0;
645
+ text-transform: uppercase;
646
+ letter-spacing: 0.5px;
647
+ }
648
+
649
+ .xeplr-table-modal-id-badge {
650
+ display: inline-block;
651
+ margin-left: 6px;
652
+ padding: 1px 5px;
653
+ font-size: 9px;
654
+ font-weight: 700;
655
+ color: #7c7cff;
656
+ border: 1px solid #7c7cff;
657
+ border-radius: 3px;
658
+ vertical-align: middle;
659
+ text-transform: uppercase;
660
+ }
661
+
662
+ .xeplr-table-modal-input {
663
+ width: 100%;
664
+ padding: 8px 10px;
665
+ border: 1px solid #3a3a5a;
666
+ border-radius: 5px;
667
+ background: #141428;
668
+ color: #e0e0e0;
669
+ font-size: 14px;
670
+ box-sizing: border-box;
671
+ }
672
+
673
+ .xeplr-table-modal-input:focus {
674
+ outline: none;
675
+ border-color: #7c7cff;
676
+ }
677
+
678
+ .xeplr-table-modal-input:disabled {
679
+ opacity: 0.6;
680
+ cursor: not-allowed;
681
+ }
682
+
683
+ .xeplr-table-modal-checkbox {
684
+ width: 18px;
685
+ height: 18px;
686
+ accent-color: #7c7cff;
687
+ }
688
+
689
+ .xeplr-table-modal-footer {
690
+ display: flex;
691
+ gap: 8px;
692
+ justify-content: flex-end;
693
+ padding-top: 16px;
694
+ margin-top: 4px;
695
+ border-top: 1px solid #2a2a4a;
696
+ }
697
+
698
+ .xeplr-table-modal-btn {
699
+ padding: 8px 18px;
700
+ border: 1px solid #3a3a5a;
701
+ border-radius: 5px;
702
+ background: transparent;
703
+ color: #a0a0c0;
704
+ cursor: pointer;
705
+ font-size: 13px;
706
+ font-weight: 500;
707
+ }
708
+
709
+ .xeplr-table-modal-btn:hover {
710
+ background: #2a2a4a;
711
+ color: #e0e0e0;
712
+ }
713
+
714
+ .xeplr-table-modal-btn-primary {
715
+ background: #7c7cff;
716
+ color: #fff;
717
+ border-color: #7c7cff;
718
+ }
719
+
720
+ .xeplr-table-modal-btn-primary:hover {
721
+ background: #6a6aee;
722
+ }
723
+
724
+ .xeplr-table-modal-btn-primary:disabled {
725
+ opacity: 0.5;
726
+ cursor: not-allowed;
727
+ }
728
+
729
+ /* ── Clickable rows (popup mode) ── */
730
+ .xeplr-table-row-clickable {
731
+ cursor: pointer;
732
+ }
733
+
734
+ .xeplr-table-row-clickable:hover {
735
+ background: #1e1e3a;
736
+ }
737
+
738
+ /* ── Detail popup ── */
739
+ .xeplr-table-detail {
740
+ width: 92%;
741
+ max-width: 900px;
742
+ max-height: 90vh;
743
+ display: flex;
744
+ flex-direction: column;
745
+ background: #1e1e38;
746
+ border: 1px solid #3a3a5a;
747
+ border-radius: 10px;
748
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
749
+ }
750
+
751
+ .xeplr-table-detail-body {
752
+ padding: 20px 24px;
753
+ overflow-y: auto;
754
+ flex: 1;
755
+ }
756
+
757
+ .xeplr-table-detail-fields {
758
+ display: grid;
759
+ grid-template-columns: 1fr 1fr;
760
+ gap: 12px 24px;
761
+ margin-bottom: 16px;
762
+ }
763
+
764
+ .xeplr-table-detail-field {
765
+ display: flex;
766
+ flex-direction: column;
767
+ gap: 2px;
768
+ }
769
+
770
+ .xeplr-table-detail-label {
771
+ font-size: 11px;
772
+ font-weight: 600;
773
+ color: #666;
774
+ text-transform: uppercase;
775
+ letter-spacing: 0.5px;
776
+ }
777
+
778
+ .xeplr-table-detail-value {
779
+ font-size: 14px;
780
+ color: #e0e0e0;
781
+ padding: 6px 0;
782
+ }
783
+
784
+ .xeplr-table-detail-actions {
785
+ display: flex;
786
+ gap: 8px;
787
+ margin-bottom: 20px;
788
+ padding-bottom: 16px;
789
+ border-bottom: 1px solid #2a2a4a;
790
+ }
791
+
792
+ .xeplr-table-detail-children {
793
+ margin-top: 8px;
794
+ }
795
+
796
+ /* ── Light theme ── */
797
+ @media (prefers-color-scheme: light) {
798
+ .xeplr-table-container {
799
+ color: #333;
800
+ background: #fff;
801
+ border-color: #e0e0e0;
802
+ }
803
+
804
+ .xeplr-table-toolbar,
805
+ .xeplr-table-th,
806
+ .xeplr-table-pagination {
807
+ background: #f8f8fa;
808
+ }
809
+
810
+ .xeplr-table-toolbar { border-bottom-color: #e0e0e0; }
811
+ .xeplr-table-th { border-bottom-color: #d0d0d0; }
812
+ .xeplr-table-td { border-bottom-color: #eee; }
813
+ .xeplr-table-pagination { border-top-color: #e0e0e0; }
814
+ .xeplr-table-row:hover { background: #f5f5ff; }
815
+
816
+ .xeplr-table-toolbar-btn,
817
+ .xeplr-table-filter-clear-btn,
818
+ .xeplr-table-pagination button,
819
+ .xeplr-table-filter-bulk button,
820
+ .xeplr-table-filter-null-controls button,
821
+ .xeplr-table-bool-btn {
822
+ border-color: #d0d0d0;
823
+ color: #666;
824
+ }
825
+
826
+ .xeplr-table-filter-close-btn {
827
+ background: #e8e8f0;
828
+ color: #333;
829
+ }
830
+
831
+ .xeplr-table-filter-panel {
832
+ background: #fff;
833
+ border-color: #d0d0d0;
834
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
835
+ }
836
+
837
+ .xeplr-table-filter-search,
838
+ .xeplr-table-filter-input,
839
+ .xeplr-table-filter-operator,
840
+ .xeplr-table-page-size {
841
+ background: #f8f8fa;
842
+ border-color: #d0d0d0;
843
+ color: #333;
844
+ }
845
+
846
+ .xeplr-table-filter-trigger { color: #bbb; }
847
+ .xeplr-table-filter-trigger:hover { background: #f0f0f0; color: #666; }
848
+ .xeplr-table-filter-trigger.xeplr-table-filter-active { color: #5555dd; background: #ededff; }
849
+
850
+ .xeplr-table-header-label.sortable:hover { color: #5555dd; }
851
+ .xeplr-table-sort-icon { color: #5555dd; }
852
+
853
+ .xeplr-table-bool-btn.active,
854
+ .xeplr-table-filter-null-controls button.active {
855
+ background: #ededff;
856
+ color: #5555dd;
857
+ border-color: #5555dd;
858
+ }
859
+
860
+ /* Detail popup */
861
+ .xeplr-table-detail { background: #fff; border-color: #d0d0d0; box-shadow: 0 16px 48px rgba(0,0,0,0.15); }
862
+ .xeplr-table-detail-label { color: #999; }
863
+ .xeplr-table-detail-value { color: #333; }
864
+ .xeplr-table-detail-actions { border-bottom-color: #e0e0e0; }
865
+ .xeplr-table-row-clickable:hover { background: #f5f5ff; }
866
+
867
+ /* Expand / child table */
868
+ .xeplr-table-expand-btn:hover { background: #f0f0f0; color: #666; }
869
+ .xeplr-table-expand-btn.expanded { color: #5555dd; }
870
+ .xeplr-table-row-expanded > td { background: #f8f8fa; }
871
+ .xeplr-table-child-container { border-bottom-color: #e0e0e0; }
872
+ .xeplr-table-child-title { color: #666; }
873
+ .xeplr-table-child { border-color: #e0e0e0; }
874
+
875
+ /* Commit / discard */
876
+ .xeplr-table-toolbar-btn-commit { color: #2e7d32; border-color: #2e7d32; }
877
+ .xeplr-table-toolbar-btn-commit:hover { background: #e8f5e9; }
878
+ .xeplr-table-toolbar-btn-discard { color: #e65100; border-color: #e65100; }
879
+ .xeplr-table-toolbar-btn-discard:hover { background: #fff3e0; }
880
+ .xeplr-table-row-new { border-left-color: #2e7d32; }
881
+ .xeplr-table-row-edited { border-left-color: #f57f17; }
882
+
883
+ /* Actions */
884
+ .xeplr-table-toolbar-btn-add { color: #5555dd; border-color: #5555dd; }
885
+ .xeplr-table-toolbar-btn-add:hover { background: #ededff; }
886
+ .xeplr-table-toolbar-btn-delete { color: #d32f2f; border-color: #d32f2f; }
887
+ .xeplr-table-toolbar-btn-delete:hover { background: #ffebee; }
888
+
889
+ .xeplr-table-checkbox { accent-color: #5555dd; }
890
+ .xeplr-table-row-selected { background: #f5f5ff; }
891
+
892
+ .xeplr-table-action-btn:hover { border-color: #d0d0d0; background: #f5f5f5; }
893
+ .xeplr-table-action-view:hover { color: #5555dd; }
894
+ .xeplr-table-action-edit:hover { color: #f57f17; }
895
+ .xeplr-table-action-delete:hover { color: #d32f2f; }
896
+
897
+ /* Modal */
898
+ .xeplr-table-modal { background: #fff; border-color: #d0d0d0; box-shadow: 0 12px 40px rgba(0,0,0,0.15); }
899
+ .xeplr-table-modal-overlay { background: rgba(0,0,0,0.3); }
900
+ .xeplr-table-modal-header { border-bottom-color: #e0e0e0; }
901
+ .xeplr-table-modal-title { color: #333; }
902
+ .xeplr-table-modal-close:hover { background: #f0f0f0; color: #333; }
903
+ .xeplr-table-modal-label { color: #666; }
904
+ .xeplr-table-modal-id-badge { color: #5555dd; border-color: #5555dd; }
905
+ .xeplr-table-modal-input { background: #f8f8fa; border-color: #d0d0d0; color: #333; }
906
+ .xeplr-table-modal-input:focus { border-color: #5555dd; }
907
+ .xeplr-table-modal-footer { border-top-color: #e0e0e0; }
908
+ .xeplr-table-modal-btn { border-color: #d0d0d0; color: #666; }
909
+ .xeplr-table-modal-btn:hover { background: #f0f0f0; color: #333; }
910
+ .xeplr-table-modal-btn-primary { background: #5555dd; color: #fff; border-color: #5555dd; }
911
+ .xeplr-table-modal-btn-primary:hover { background: #4444cc; }
912
+ .xeplr-table-modal-checkbox { accent-color: #5555dd; }
913
+ }