ywana-core8 0.1.79 → 0.1.80

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 (63) hide show
  1. package/dist/index.cjs +3244 -2215
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +2095 -1125
  4. package/dist/index.css.map +1 -1
  5. package/dist/index.modern.js +3244 -2215
  6. package/dist/index.modern.js.map +1 -1
  7. package/dist/index.umd.js +3244 -2215
  8. package/dist/index.umd.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/html/ExampleLayout.css +401 -0
  11. package/src/html/ExampleLayout.js +192 -0
  12. package/src/html/README-sidebar-navigation.md +195 -0
  13. package/src/html/accordion.example.js +123 -4
  14. package/src/html/accordion.example.js.backup +390 -0
  15. package/src/html/button.example.js +50 -3
  16. package/src/html/button.example.js.backup +374 -0
  17. package/src/html/button.example.new.js +416 -0
  18. package/src/html/checkbox.example.js +93 -4
  19. package/src/html/checkbox.example.js.backup +316 -0
  20. package/src/html/chip.example.js +108 -4
  21. package/src/html/chip.example.js.backup +355 -0
  22. package/src/html/color.example.js +108 -4
  23. package/src/html/color.example.js.backup +527 -0
  24. package/src/html/components.example.js +123 -4
  25. package/src/html/components.example.js.backup +492 -0
  26. package/src/html/convert-examples.js +183 -0
  27. package/src/html/demo-sidebar.html +410 -0
  28. package/src/html/form.example.js +93 -4
  29. package/src/html/form.example.js.backup +385 -0
  30. package/src/html/header2.example.js +108 -4
  31. package/src/html/header2.example.js.backup +411 -0
  32. package/src/html/icon.example.js +77 -3
  33. package/src/html/icon.example.js.backup +268 -0
  34. package/src/html/list.example.js +93 -4
  35. package/src/html/list.example.js.backup +404 -0
  36. package/src/html/progress.example.js +74 -4
  37. package/src/html/progress.example.js.backup +424 -0
  38. package/src/html/property.example.js +123 -4
  39. package/src/html/property.example.js.backup +553 -0
  40. package/src/html/radio.example.js +108 -4
  41. package/src/html/radio.example.js.backup +389 -0
  42. package/src/html/section.example.js +42 -3
  43. package/src/html/section.example.js.backup +99 -0
  44. package/src/html/switch.example.js +108 -4
  45. package/src/html/switch.example.js.backup +461 -0
  46. package/src/html/tab.example.js +93 -4
  47. package/src/html/tab.example.js.backup +446 -0
  48. package/src/html/table-export-utils.js +483 -0
  49. package/src/html/table-summary-functions.js +363 -0
  50. package/src/html/table2.css +1449 -479
  51. package/src/html/table2.example.js +2937 -512
  52. package/src/html/table2.example.js.broken +1226 -0
  53. package/src/html/table2.js +1426 -1000
  54. package/src/html/test-resize.html +279 -0
  55. package/src/html/test-selection.html +387 -0
  56. package/src/html/textfield2.example.js +108 -4
  57. package/src/html/textfield2.example.js.backup +1370 -0
  58. package/src/html/tokenfield.example.js +108 -4
  59. package/src/html/tokenfield.example.js.backup +503 -0
  60. package/src/html/tree.css +2 -4
  61. package/src/html/tree.example.js +93 -4
  62. package/src/html/tree.example.js.backup +475 -0
  63. package/src/html/tree.js +19 -3
@@ -1,670 +1,1640 @@
1
- /* DataTable2 CSS - Enhanced version maintaining 100% compatibility */
1
+ /* DataTable2 - Reimplemented with minimal, elegant styles */
2
2
 
3
- /* Original table styles included inline for compatibility */
4
-
5
- .datatable8 {
6
- border: solid 0px var(--divider-color);
7
- background-color: var(--paper-color);
8
- overflow: auto;
9
- max-height: 100%;
3
+ /* Base table styles */
4
+ .datatable2 {
10
5
  width: 100%;
6
+ background: var(--background-color, #ffffff);
7
+ border-radius: 8px;
8
+ overflow: hidden;
9
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
10
+ border: 1px solid var(--divider-color, #e0e0e0);
11
11
  }
12
12
 
13
- .datatable8.outlined {
14
- border: solid 1px var(--divider-color);
13
+ .datatable2__table-container {
14
+ overflow: auto;
15
+ position: relative;
15
16
  }
16
17
 
17
- .datatable8 table {
18
+ .datatable2 table {
18
19
  width: 100%;
20
+ border-collapse: collapse;
21
+ table-layout: auto;
22
+ }
23
+
24
+ /* Header styles */
25
+ .datatable2__header {
26
+ background: var(--surface-color, #f8f9fa);
27
+ border-bottom: 1px solid var(--divider-color, #e0e0e0);
19
28
  }
20
29
 
21
- .datatable8 thead {
30
+ .datatable2__header--sticky {
22
31
  position: sticky;
23
- top: 0px;
24
- overflow: hidden;
25
- color: var(--text-color-light);
32
+ top: 0;
26
33
  z-index: 10;
27
34
  }
28
35
 
29
- .datatable8 thead th {
30
- height: 2.1rem;
31
- padding: 0 1rem;
36
+ .datatable2__header-cell {
37
+ padding: 12px 16px;
32
38
  text-align: left;
33
- font-weight: 600 !important;
34
- border-bottom: solid 1px var(--divider-color);
35
- background-color: var(--paper-color);
39
+ font-weight: 600;
40
+ color: var(--text-color-secondary, #666);
41
+ font-size: 0.875rem;
42
+ border-right: 1px solid var(--divider-color, #e0e0e0);
43
+ position: relative;
44
+ user-select: none;
36
45
  }
37
46
 
38
- .datatable8 thead th>div {
39
- width: 100%;
47
+ .datatable2__header-cell:last-child {
48
+ border-right: none;
49
+ }
50
+
51
+ .datatable2__header-cell.sortable {
52
+ cursor: pointer;
53
+ transition: background-color 0.2s ease;
54
+ }
55
+
56
+ .datatable2__header-cell.sortable:hover {
57
+ background: var(--hover-color, rgba(0, 0, 0, 0.04));
58
+ }
59
+
60
+ .datatable2__header-content {
40
61
  display: flex;
41
- justify-content: space-between;
42
62
  align-items: center;
43
- text-transform: uppercase;
44
- font-size: .8rem;
63
+ justify-content: space-between;
64
+ gap: 8px;
45
65
  }
46
66
 
47
- .datatable8 tbody {
48
- overflow: visible;
49
- height: 5rem;
67
+ /* Resize handle */
68
+ .datatable2__resize-handle {
69
+ position: absolute;
70
+ top: 0;
71
+ right: 0;
72
+ width: 4px;
73
+ height: 100%;
74
+ cursor: col-resize;
75
+ background: transparent;
76
+ transition: background-color 0.2s ease;
77
+ z-index: 10;
50
78
  }
51
79
 
52
- .datatable8 tbody tr.selected {
53
- background-color: rgba(200,200,200,.6);
80
+ .datatable2__resize-handle:hover {
81
+ background: var(--primary-color, #2196f3);
54
82
  }
55
83
 
56
- .datatable8 tbody tr:hover {
57
- background-color: rgba(200,200,200,.2);
58
- cursor: pointer
84
+ .datatable2__resize-handle:active {
85
+ background: var(--primary-color, #2196f3);
59
86
  }
60
87
 
61
- .datatable8 tbody tr.selected:hover {
62
- background-color: rgba(200,200,200,.4);
88
+ /* Global cursor during resize */
89
+ body.datatable2-resizing {
90
+ cursor: col-resize !important;
91
+ user-select: none !important;
92
+ }
93
+
94
+ /* ========================================
95
+ READABLE THEME - Máxima Legibilidad
96
+ ======================================== */
97
+
98
+ .datatable2--readable {
99
+ /* Tipografía optimizada para legibilidad */
100
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', 'SF Pro Text', system-ui, sans-serif;
101
+ font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'pnum' 1, 'tnum' 0, 'onum' 0, 'lnum' 1, 'zero' 1;
102
+ -webkit-font-smoothing: antialiased;
103
+ -moz-osx-font-smoothing: grayscale;
104
+ text-rendering: optimizeLegibility;
105
+
106
+ /* Colores optimizados para contraste */
107
+ --readable-bg: #fefefe;
108
+ --readable-text: #1a1a1a;
109
+ --readable-text-secondary: #4a4a4a;
110
+ --readable-text-muted: #6b6b6b;
111
+ --readable-border: #e1e5e9;
112
+ --readable-border-light: #f0f3f6;
113
+ --readable-hover: #f8fafc;
114
+ --readable-selected: #e8f4fd;
115
+ --readable-header-bg: #f7f9fc;
116
+ --readable-header-text: #2d3748;
117
+ --readable-focus: #3182ce;
118
+ --readable-focus-ring: rgba(49, 130, 206, 0.15);
119
+
120
+ background-color: var(--readable-bg);
121
+ color: var(--readable-text);
122
+ line-height: 1.6;
123
+ letter-spacing: -0.01em;
63
124
  }
64
125
 
65
- .datatable8 tbody td {
66
- height: 3rem;
67
- padding: 0 1rem;
68
- overflow: visible;
69
- text-overflow: ellipsis;
70
- white-space: nowrap;
71
- max-width: 10rem;
72
- color: var(--text-color-light);
126
+ .datatable2--readable .datatable2__table-container {
127
+ border: 1px solid var(--readable-border);
128
+ border-radius: 12px;
129
+ overflow: hidden;
130
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);
73
131
  }
74
132
 
75
- .datatable8 tbody td.index {
76
- width: 3rem;
77
- overflow: hidden;
78
- color: var(--text-color-lighter);
133
+ .datatable2--readable table {
134
+ border-spacing: 0;
135
+ border-collapse: separate;
136
+ width: 100%;
79
137
  }
80
138
 
81
- .datatable8 tbody td.checked
82
- {
83
- width: 3rem;
84
- overflow: hidden;
85
- }
139
+ /* Headers optimizados para legibilidad */
140
+ .datatable2--readable .datatable2__header {
141
+ background: linear-gradient(180deg, var(--readable-header-bg) 0%, #f1f5f9 100%);
142
+ border-bottom: 2px solid var(--readable-border);
143
+ }
86
144
 
87
- .datatable8 tbody td.checked .checkmark {
88
- border-color: var(--text-color-lighter) !important;
145
+ .datatable2--readable .datatable2__header-cell {
146
+ padding: 16px 20px;
147
+ font-weight: 600;
148
+ font-size: 14px;
149
+ color: var(--readable-header-text);
150
+ text-align: left;
151
+ border-right: 1px solid var(--readable-border-light);
152
+ position: relative;
153
+ letter-spacing: -0.005em;
89
154
  }
90
155
 
91
- .datatable8 .string-viewer img {
92
- height: 5rem;
156
+ .datatable2--readable .datatable2__header-cell:last-child {
157
+ border-right: none;
93
158
  }
94
159
 
95
- .datatable8 th.resizable-column {
96
- resize: horizontal;
97
- overflow: hidden;
160
+ .datatable2--readable .datatable2__header-cell.sortable {
161
+ cursor: pointer;
162
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
98
163
  }
99
164
 
100
- /* Enhanced DataTable2 Styles - New functionality while maintaining compatibility */
165
+ .datatable2--readable .datatable2__header-cell.sortable:hover {
166
+ background-color: var(--readable-hover);
167
+ color: var(--readable-focus);
168
+ }
101
169
 
102
- .datatable2 {
103
- position: relative;
104
- width: 100%;
105
- overflow: hidden;
106
- border-radius: 8px;
107
- background: var(--background-color, #ffffff);
108
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
109
- transition: all 0.2s ease;
170
+ .datatable2--readable .datatable2__header-cell.sortable:focus {
171
+ outline: 2px solid var(--readable-focus);
172
+ outline-offset: -2px;
173
+ background-color: var(--readable-focus-ring);
110
174
  }
111
175
 
112
- /* Fix table borders - single 1px borders */
113
- .datatable2 table {
114
- border-collapse: collapse;
115
- width: 100%;
116
- border-spacing: 0;
176
+ /* Celdas optimizadas para lectura */
177
+ .datatable2--readable .datatable2__cell {
178
+ padding: 18px 20px;
179
+ font-size: 15px;
180
+ line-height: 1.5;
181
+ color: var(--readable-text);
182
+ border-right: 1px solid var(--readable-border-light);
183
+ border-bottom: 1px solid var(--readable-border-light);
184
+ vertical-align: top;
185
+ word-wrap: break-word;
186
+ hyphens: auto;
117
187
  }
118
188
 
119
- .datatable2 th,
120
- .datatable2 td {
121
- border: 1px solid var(--divider-color, #e0e0e0);
122
- padding: 0.5rem 0.75rem;
123
- text-align: left;
124
- vertical-align: middle;
125
- position: relative;
189
+ .datatable2--readable .datatable2__cell:last-child {
190
+ border-right: none;
126
191
  }
127
192
 
128
- /* Fix editable fields to stay within cells */
129
- .datatable2 .field-editor {
130
- width: 100%;
131
- max-width: 100%;
132
- box-sizing: border-box;
193
+ /* Filas con mejor separación visual */
194
+ .datatable2--readable .datatable2__row {
195
+ transition: all 0.15s ease-in-out;
133
196
  }
134
197
 
135
- .datatable2 .field-editor input,
136
- .datatable2 .field-editor select,
137
- .datatable2 .field-editor textarea {
138
- width: 100%;
139
- max-width: 100%;
140
- box-sizing: border-box;
141
- border: none;
142
- outline: none;
143
- background: transparent;
144
- padding: 0.25rem;
145
- margin: 0;
146
- font-size: inherit;
147
- font-family: inherit;
148
- line-height: inherit;
198
+ .datatable2--readable .datatable2__row:hover {
199
+ background-color: var(--readable-hover);
149
200
  }
150
201
 
151
- .datatable2 .field-editor input:focus,
152
- .datatable2 .field-editor select:focus,
153
- .datatable2 .field-editor textarea:focus {
154
- background: rgba(33, 150, 243, 0.05);
155
- border-radius: 2px;
202
+ .datatable2--readable .datatable2__row:hover .datatable2__cell {
203
+ border-bottom-color: var(--readable-border);
156
204
  }
157
205
 
158
- /* Search functionality */
159
- .datatable2__search {
160
- padding: 1rem;
161
- border-bottom: 1px solid var(--divider-color, #e0e0e0);
162
- background: var(--background-color-light, #f8f9fa);
206
+ .datatable2--readable .datatable2__row--selected {
207
+ background-color: var(--readable-selected) !important;
163
208
  }
164
209
 
165
- /* Toolbar */
166
- .datatable2__toolbar {
167
- display: flex;
168
- justify-content: space-between;
169
- align-items: center;
170
- padding: 0.5rem 1rem;
171
- border-bottom: 1px solid var(--divider-color, #e0e0e0);
172
- background: var(--background-color-light, #f8f9fa);
210
+ .datatable2--readable .datatable2__row--selected .datatable2__cell {
211
+ border-bottom-color: #bee3f8;
173
212
  }
174
213
 
175
- .datatable2__export-btn {
176
- display: flex;
177
- align-items: center;
178
- gap: 0.5rem;
179
- padding: 0.5rem 1rem;
180
- border: 1px solid var(--primary-color, #2196f3);
181
- background: transparent;
182
- color: var(--primary-color, #2196f3);
183
- border-radius: 4px;
184
- cursor: pointer;
185
- font-size: 0.9rem;
186
- transition: all 0.2s ease;
214
+ /* Filas alternas para mejor escaneado */
215
+ .datatable2--readable.datatable2--striped .datatable2__row:nth-child(even) {
216
+ background-color: #fbfcfd;
187
217
  }
188
218
 
189
- .datatable2__export-btn:hover:not(:disabled) {
190
- background: var(--primary-color, #2196f3);
191
- color: white;
219
+ .datatable2--readable.datatable2--striped .datatable2__row:nth-child(even):hover {
220
+ background-color: var(--readable-hover);
192
221
  }
193
222
 
194
- .datatable2__export-btn:disabled {
195
- opacity: 0.6;
196
- cursor: not-allowed;
223
+ /* Números y datos numéricos */
224
+ .datatable2--readable .datatable2__cell[data-type="number"],
225
+ .datatable2--readable .datatable2__cell[data-type="Number"] {
226
+ font-variant-numeric: tabular-nums;
227
+ text-align: right;
228
+ font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Consolas', monospace;
229
+ font-size: 14px;
230
+ letter-spacing: 0.025em;
197
231
  }
198
232
 
199
- /* Table variants */
200
- .datatable2--striped tbody tr:nth-child(even) {
201
- background-color: var(--background-color-light, #f8f9fa);
233
+ /* Texto secundario */
234
+ .datatable2--readable .datatable2__cell--secondary {
235
+ color: var(--readable-text-secondary);
236
+ font-size: 14px;
202
237
  }
203
238
 
204
- .datatable2--compact {
205
- font-size: 0.85rem;
239
+ .datatable2--readable .datatable2__cell--muted {
240
+ color: var(--readable-text-muted);
241
+ font-size: 13px;
206
242
  }
207
243
 
208
- .datatable2--compact th,
209
- .datatable2--compact td {
210
- padding: 0.375rem 0.5rem;
244
+ /* Estados de carga mejorados */
245
+ .datatable2--readable .datatable2__loading {
246
+ background-color: var(--readable-bg);
247
+ color: var(--readable-text-secondary);
211
248
  }
212
249
 
213
- .datatable2--bordered {
214
- border: 1px solid var(--divider-color, #e0e0e0);
250
+ /* Checkboxes y controles */
251
+ .datatable2--readable .datatable2__select-header,
252
+ .datatable2--readable .datatable2__select-cell {
253
+ padding: 16px 12px;
254
+ text-align: center;
255
+ border-right: 1px solid var(--readable-border-light);
215
256
  }
216
257
 
217
- .datatable2--bordered th,
218
- .datatable2--bordered td {
219
- border: 1px solid var(--divider-color, #e0e0e0);
258
+ .datatable2--readable input[type="checkbox"] {
259
+ width: 18px;
260
+ height: 18px;
261
+ accent-color: var(--readable-focus);
220
262
  }
221
263
 
222
- .datatable2--no-hover tbody tr:hover {
223
- background-color: inherit !important;
264
+ /* Filtros y búsqueda */
265
+ .datatable2--readable .datatable2__search {
266
+ padding: 16px 20px;
267
+ background-color: var(--readable-header-bg);
268
+ border-bottom: 1px solid var(--readable-border);
224
269
  }
225
270
 
226
- /* Row height variants - Clear differences */
227
- .datatable2--small th,
228
- .datatable2--small td {
229
- padding: 0.25rem 0.5rem;
230
- font-size: 0.75rem;
231
- line-height: 1.2;
232
- height: 32px;
271
+ .datatable2--readable .datatable2__search input {
272
+ font-size: 15px;
273
+ padding: 12px 16px;
274
+ border: 2px solid var(--readable-border);
275
+ border-radius: 8px;
276
+ background-color: var(--readable-bg);
277
+ color: var(--readable-text);
278
+ transition: border-color 0.2s ease;
233
279
  }
234
280
 
235
- .datatable2--medium th,
236
- .datatable2--medium td {
237
- padding: 0.5rem 0.75rem;
238
- font-size: 0.875rem;
239
- line-height: 1.4;
240
- height: 44px;
281
+ .datatable2--readable .datatable2__search input:focus {
282
+ outline: none;
283
+ border-color: var(--readable-focus);
284
+ box-shadow: 0 0 0 3px var(--readable-focus-ring);
241
285
  }
242
286
 
243
- .datatable2--large th,
244
- .datatable2--large td {
245
- padding: 0.75rem 1rem;
246
- font-size: 1rem;
287
+ /* Iconos con mejor contraste */
288
+ .datatable2--readable .icon {
289
+ color: var(--readable-text-secondary);
290
+ transition: color 0.2s ease;
291
+ }
292
+
293
+ .datatable2--readable .datatable2__header-cell:hover .icon {
294
+ color: var(--readable-focus);
295
+ }
296
+
297
+ /* Responsive mejorado */
298
+ @media (max-width: 768px) {
299
+ .datatable2--readable .datatable2__cell {
300
+ padding: 14px 16px;
301
+ font-size: 14px;
302
+ }
303
+
304
+ .datatable2--readable .datatable2__header-cell {
305
+ padding: 12px 16px;
306
+ font-size: 13px;
307
+ }
308
+ }
309
+
310
+ /* ========================================
311
+ READABLE VARIANTS - Variantes de Legibilidad
312
+ ======================================== */
313
+
314
+ /* Large Text - Para mejor accesibilidad */
315
+ .datatable2--readable-large {
316
+ font-size: 16px;
317
+ }
318
+
319
+ .datatable2--readable-large .datatable2__cell {
320
+ padding: 20px 24px;
321
+ font-size: 16px;
247
322
  line-height: 1.6;
248
- height: 56px;
249
323
  }
250
324
 
251
- /* Density variants - Clear differences */
252
- .datatable2--compact {
253
- font-size: 0.8rem;
325
+ .datatable2--readable-large .datatable2__header-cell {
326
+ padding: 18px 24px;
327
+ font-size: 15px;
328
+ font-weight: 600;
254
329
  }
255
330
 
256
- .datatable2--compact th,
257
- .datatable2--compact td {
258
- padding: 0.25rem 0.5rem;
259
- line-height: 1.2;
260
- height: 28px;
331
+ .datatable2--readable-large .datatable2__cell[data-type="number"],
332
+ .datatable2--readable-large .datatable2__cell[data-type="Number"] {
333
+ font-size: 15px;
261
334
  }
262
335
 
263
- .datatable2--normal {
264
- font-size: 0.9rem;
336
+ /* High Contrast - Para mejor visibilidad */
337
+ .datatable2--readable-contrast {
338
+ --readable-bg: #ffffff;
339
+ --readable-text: #000000;
340
+ --readable-text-secondary: #2d2d2d;
341
+ --readable-text-muted: #4a4a4a;
342
+ --readable-border: #cccccc;
343
+ --readable-border-light: #e0e0e0;
344
+ --readable-hover: #f0f0f0;
345
+ --readable-selected: #e6f3ff;
346
+ --readable-header-bg: #f5f5f5;
347
+ --readable-header-text: #000000;
348
+ --readable-focus: #0066cc;
349
+ --readable-focus-ring: rgba(0, 102, 204, 0.25);
265
350
  }
266
351
 
267
- .datatable2--normal th,
268
- .datatable2--normal td {
269
- padding: 0.5rem 0.75rem;
270
- line-height: 1.4;
271
- height: 40px;
352
+ .datatable2--readable-contrast .datatable2__table-container {
353
+ border: 2px solid var(--readable-border);
354
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
272
355
  }
273
356
 
274
- .datatable2--comfortable {
275
- font-size: 1rem;
357
+ .datatable2--readable-contrast .datatable2__header {
358
+ border-bottom: 3px solid var(--readable-border);
276
359
  }
277
360
 
278
- .datatable2--comfortable th,
279
- .datatable2--comfortable td {
280
- padding: 0.875rem 1.25rem;
281
- line-height: 1.6;
282
- height: 52px;
361
+ .datatable2--readable-contrast .datatable2__cell {
362
+ border-bottom: 1px solid var(--readable-border);
363
+ border-right: 1px solid var(--readable-border);
283
364
  }
284
365
 
285
- /* Theme variants */
286
- .datatable2--dark {
287
- background: var(--background-color-dark, #303030);
288
- color: var(--text-color-dark, #ffffff);
366
+ /* Dyslexia Friendly - Optimizado para dislexia */
367
+ .datatable2--readable-dyslexia {
368
+ font-family: 'OpenDyslexic', 'Comic Sans MS', 'Trebuchet MS', sans-serif;
369
+ letter-spacing: 0.05em;
370
+ word-spacing: 0.1em;
371
+ }
372
+
373
+ .datatable2--readable-dyslexia .datatable2__cell {
374
+ padding: 20px 24px;
375
+ font-size: 15px;
376
+ line-height: 1.8;
377
+ letter-spacing: 0.05em;
378
+ word-spacing: 0.1em;
289
379
  }
290
380
 
291
- .datatable2--dark th {
292
- background: var(--background-color-light-dark, #424242);
293
- color: var(--text-color-dark, #ffffff);
381
+ .datatable2--readable-dyslexia .datatable2__header-cell {
382
+ padding: 18px 24px;
383
+ font-size: 14px;
384
+ font-weight: 700;
385
+ letter-spacing: 0.1em;
386
+ text-transform: uppercase;
294
387
  }
295
388
 
296
- .datatable2--dark tbody tr:hover {
297
- background-color: var(--hover-color-dark, rgba(255, 255, 255, 0.08));
389
+ .datatable2--readable-dyslexia .datatable2__row:nth-child(even) {
390
+ background-color: #fafbfc;
298
391
  }
299
392
 
300
- .datatable2--minimal {
393
+ .datatable2--readable-dyslexia .datatable2__row:nth-child(odd) {
394
+ background-color: #ffffff;
395
+ }
396
+
397
+ /* Print Optimized - Para impresión */
398
+ .datatable2--readable-print {
399
+ font-family: 'Times New Roman', 'Georgia', serif;
400
+ color: #000000;
401
+ background-color: #ffffff;
402
+ }
403
+
404
+ .datatable2--readable-print .datatable2__table-container {
405
+ border: 2px solid #000000;
406
+ border-radius: 0;
301
407
  box-shadow: none;
302
- border: none;
303
408
  }
304
409
 
305
- .datatable2--minimal th {
306
- border-bottom: 2px solid var(--primary-color, #2196f3);
307
- background: transparent;
410
+ .datatable2--readable-print .datatable2__cell {
411
+ padding: 12px 16px;
412
+ font-size: 12px;
413
+ line-height: 1.4;
414
+ border: 1px solid #000000;
308
415
  }
309
416
 
310
- /* Header enhancements */
311
- .datatable2__header--sticky {
312
- position: sticky;
313
- top: 0;
314
- z-index: 10;
315
- background: var(--background-color, #ffffff);
316
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
417
+ .datatable2--readable-print .datatable2__header-cell {
418
+ padding: 12px 16px;
419
+ font-size: 12px;
420
+ font-weight: bold;
421
+ background-color: #f0f0f0;
422
+ border: 1px solid #000000;
317
423
  }
318
424
 
319
- .datatable2__row-number-header {
320
- width: 60px;
321
- text-align: center;
322
- background: var(--background-color-light, #f8f9fa);
323
- font-weight: 600;
425
+ @media print {
426
+ .datatable2--readable-print {
427
+ -webkit-print-color-adjust: exact;
428
+ print-color-adjust: exact;
429
+ }
324
430
  }
325
431
 
326
- /* Row numbers */
327
- .datatable2__row-number {
328
- width: 60px;
329
- text-align: center;
330
- background: var(--background-color-light, #f8f9fa);
331
- font-weight: 500;
332
- color: var(--text-color-light, #666);
333
- border-right: 1px solid var(--divider-color, #e0e0e0);
432
+ /* Compact Readable - Legible pero compacto */
433
+ .datatable2--readable-compact .datatable2__cell {
434
+ padding: 12px 16px;
435
+ font-size: 14px;
436
+ line-height: 1.5;
334
437
  }
335
438
 
336
- /* Column resizing - Enhanced visibility */
337
- .resizable-column {
338
- position: relative;
339
- user-select: none;
439
+ .datatable2--readable-compact .datatable2__header-cell {
440
+ padding: 12px 16px;
441
+ font-size: 13px;
340
442
  }
341
443
 
342
- .column-resizer {
343
- position: absolute;
344
- top: 0;
345
- right: -2px;
346
- width: 6px;
347
- height: 100%;
348
- cursor: col-resize;
444
+ /* Focus Mode - Reduce distracciones */
445
+ .datatable2--readable-focus {
446
+ --readable-border-light: transparent;
447
+ --readable-hover: rgba(59, 130, 246, 0.05);
448
+ }
449
+
450
+ .datatable2--readable-focus .datatable2__table-container {
451
+ border: none;
452
+ box-shadow: none;
453
+ }
454
+
455
+ .datatable2--readable-focus .datatable2__cell {
456
+ border-right: none;
457
+ border-bottom: 1px solid #f1f5f9;
458
+ }
459
+
460
+ .datatable2--readable-focus .datatable2__header-cell {
461
+ border-right: none;
349
462
  background: transparent;
350
- transition: all 0.2s ease;
351
- z-index: 10;
352
- border-right: 2px solid transparent;
463
+ border-bottom: 2px solid #e2e8f0;
353
464
  }
354
465
 
355
- .column-resizer:hover {
356
- background: rgba(33, 150, 243, 0.1);
357
- border-right-color: var(--primary-color, #2196f3);
466
+ .datatable2--readable-focus .datatable2__row:hover {
467
+ background-color: var(--readable-hover);
468
+ transform: translateY(-1px);
469
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
358
470
  }
359
471
 
360
- .column-resizer:active {
361
- background: rgba(33, 150, 243, 0.2);
362
- border-right-color: var(--primary-color, #2196f3);
472
+ /* Dark Mode Readable */
473
+ .datatable2--readable-dark {
474
+ --readable-bg: #1a202c;
475
+ --readable-text: #f7fafc;
476
+ --readable-text-secondary: #e2e8f0;
477
+ --readable-text-muted: #a0aec0;
478
+ --readable-border: #2d3748;
479
+ --readable-border-light: #4a5568;
480
+ --readable-hover: #2d3748;
481
+ --readable-selected: #2a4a6b;
482
+ --readable-header-bg: #2d3748;
483
+ --readable-header-text: #f7fafc;
484
+ --readable-focus: #63b3ed;
485
+ --readable-focus-ring: rgba(99, 179, 237, 0.25);
363
486
  }
364
487
 
365
- /* Add resize indicator */
366
- .resizable-column:hover .column-resizer::after {
367
- content: '';
368
- position: absolute;
369
- top: 50%;
370
- right: 1px;
371
- transform: translateY(-50%);
372
- width: 2px;
373
- height: 20px;
374
- background: var(--primary-color, #2196f3);
375
- border-radius: 1px;
488
+ .datatable2--readable-dark .datatable2__table-container {
489
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
376
490
  }
377
491
 
378
- /* Loading states */
379
- .datatable2--loading {
380
- opacity: 0.7;
381
- pointer-events: none;
492
+ /* Accessibility Helpers */
493
+ .datatable2--readable [role="columnheader"]:focus,
494
+ .datatable2--readable [role="gridcell"]:focus {
495
+ outline: 3px solid var(--readable-focus);
496
+ outline-offset: -3px;
497
+ z-index: 1;
498
+ position: relative;
382
499
  }
383
500
 
384
- .datatable2--skeleton .skeleton-text {
385
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
386
- background-size: 200% 100%;
387
- animation: skeleton-loading 1.5s infinite;
388
- border-radius: 4px;
389
- height: 1rem;
390
- margin: 0.25rem 0;
501
+ .datatable2--readable .sr-only {
502
+ position: absolute;
503
+ width: 1px;
504
+ height: 1px;
505
+ padding: 0;
506
+ margin: -1px;
507
+ overflow: hidden;
508
+ clip: rect(0, 0, 0, 0);
509
+ white-space: nowrap;
510
+ border: 0;
391
511
  }
392
512
 
393
- .datatable2--skeleton .skeleton-text--header {
394
- height: 1.2rem;
395
- background: linear-gradient(90deg, #e0e0e0 25%, #d0d0d0 50%, #e0e0e0 75%);
396
- background-size: 200% 100%;
513
+ /* ========================================
514
+ TOOLBAR & PANEL SYSTEM - Sistema de Toolbar y Panel
515
+ ======================================== */
516
+
517
+ .datatable2__container {
518
+ position: relative;
519
+ display: flex;
520
+ width: 100%;
521
+ border: 1px solid #e2e8f0;
522
+ border-radius: 8px;
523
+ overflow: visible; /* Permitir que el panel se vea cuando se desliza */
524
+ /* min-height removido - ahora es dinámico */
397
525
  }
398
526
 
399
- /* Row selection */
400
- .datatable2 tbody tr.selected {
401
- background-color: rgba(33, 150, 243, 0.1);
402
- border-left: 3px solid var(--primary-color, #2196f3);
527
+ .datatable2__main {
528
+ flex: 1;
529
+ min-width: 0;
530
+ transition: margin-right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
531
+ overflow: hidden;
403
532
  }
404
533
 
405
- .datatable2 tbody tr:hover {
406
- background-color: var(--hover-color, rgba(0, 0, 0, 0.04));
534
+ .datatable2__main--with-panel {
535
+ margin-right: 320px; /* Espacio para el panel */
407
536
  }
408
537
 
409
- /* Footer */
410
- .datatable2__footer {
411
- padding: 1rem;
412
- border-top: 1px solid var(--divider-color, #e0e0e0);
413
- background: var(--background-color-light, #f8f9fa);
538
+ /* Vertical Toolbar */
539
+ .datatable2__toolbar {
540
+ width: 50px;
541
+ min-width: 50px;
542
+ background: #f8fafc;
543
+ border-left: 1px solid #e2e8f0;
414
544
  display: flex;
415
- justify-content: space-between;
545
+ flex-direction: column;
416
546
  align-items: center;
547
+ padding: 1rem 0;
548
+ gap: 0.5rem;
417
549
  }
418
550
 
419
- /* Pagination */
420
- .datatable2__pagination {
551
+ .datatable2__toolbar-button {
552
+ width: 36px;
553
+ height: 36px;
554
+ background: #ffffff;
555
+ border: 1px solid #e2e8f0;
556
+ border-radius: 6px;
421
557
  display: flex;
422
- justify-content: center;
423
558
  align-items: center;
424
- gap: 1rem;
425
- padding: 1rem;
426
- border-top: 1px solid var(--divider-color, #e0e0e0);
559
+ justify-content: center;
560
+ cursor: pointer;
561
+ transition: all 0.2s ease;
562
+ color: #64748b;
563
+ position: relative;
564
+ font-size: 16px;
565
+ line-height: 1;
427
566
  }
428
567
 
429
- .datatable2__pagination button {
430
- padding: 0.5rem 1rem;
431
- border: 1px solid var(--divider-color, #e0e0e0);
432
- background: white;
433
- color: var(--text-color, #333);
568
+ /* Active state for toolbar icons */
569
+ .datatable2__toolbar-icon--active {
570
+ color: #3b82f6 !important;
571
+ background: rgba(59, 130, 246, 0.1) !important;
434
572
  border-radius: 4px;
435
- cursor: pointer;
436
- transition: all 0.2s ease;
437
573
  }
438
574
 
439
- .datatable2__pagination button:hover:not(:disabled) {
440
- background: var(--primary-color, #2196f3);
441
- color: white;
442
- border-color: var(--primary-color, #2196f3);
575
+ .datatable2__toolbar-button:hover {
576
+ background: #f1f5f9;
577
+ border-color: #cbd5e1;
578
+ color: #3b82f6;
579
+ transform: translateY(-1px);
580
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
443
581
  }
444
582
 
445
- .datatable2__pagination button:disabled {
446
- opacity: 0.6;
447
- cursor: not-allowed;
583
+ .datatable2__toolbar-button--active {
584
+ background: #3b82f6;
585
+ border-color: #3b82f6;
586
+ color: #ffffff;
587
+ box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
588
+ }
589
+
590
+ .datatable2__toolbar-button--active:hover {
591
+ background: #2563eb;
592
+ border-color: #2563eb;
593
+ color: #ffffff;
594
+ }
595
+
596
+ /* Sliding Panel */
597
+ .datatable2__panel {
598
+ width: 320px;
599
+ min-width: 320px;
600
+ background: #ffffff;
601
+ border-left: 1px solid #e2e8f0;
602
+ transform: translateX(100%);
603
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
604
+ overflow-y: auto;
605
+ max-height: 100%;
606
+ position: absolute;
607
+ right: 50px; /* Posicionado después de la toolbar */
608
+ top: 0;
609
+ height: 100%;
610
+ z-index: 10;
611
+ }
612
+
613
+ .datatable2__panel--open {
614
+ transform: translateX(0);
448
615
  }
449
616
 
450
- /* Enhanced cell viewers */
451
- .image-cell {
617
+ .datatable2__panel-header {
618
+ padding: 1.5rem;
619
+ border-bottom: 1px solid #e2e8f0;
620
+ background: #f8fafc;
452
621
  display: flex;
453
622
  align-items: center;
454
- gap: 0.5rem;
623
+ justify-content: space-between;
624
+ position: sticky;
625
+ top: 0;
626
+ z-index: 10;
627
+ }
628
+
629
+ .datatable2__panel-title {
630
+ font-size: 1rem;
631
+ font-weight: 600;
632
+ color: #1a202c;
633
+ margin: 0;
455
634
  }
456
635
 
457
- .image-cell img {
636
+ .datatable2__panel-close {
637
+ background: none;
638
+ border: none;
639
+ padding: 0.5rem;
640
+ cursor: pointer;
641
+ border-radius: 6px;
642
+ color: #64748b;
643
+ transition: all 0.2s ease;
458
644
  width: 32px;
459
645
  height: 32px;
460
- border-radius: 50%;
461
- object-fit: cover;
646
+ display: flex;
647
+ align-items: center;
648
+ justify-content: center;
462
649
  }
463
650
 
464
- .entity-cell {
465
- padding: 0.25rem 0.5rem;
651
+ .datatable2__panel-close:hover {
652
+ background: #e2e8f0;
653
+ color: #1a202c;
466
654
  }
467
655
 
468
- .field-editor {
469
- width: 100%;
656
+ .datatable2__panel-content {
657
+ padding: 1.5rem;
470
658
  }
471
659
 
472
- .string-viewer {
473
- max-width: 200px;
474
- overflow: hidden;
475
- text-overflow: ellipsis;
476
- white-space: nowrap;
660
+ .datatable2__panel-section {
661
+ margin-bottom: 2rem;
477
662
  }
478
663
 
479
- /* Responsive design */
480
- .datatable2--responsive {
481
- overflow-x: auto;
664
+ .datatable2__panel-section:last-child {
665
+ margin-bottom: 0;
482
666
  }
483
667
 
484
- @media (max-width: 768px) {
485
- .datatable2--responsive table {
486
- min-width: 600px;
487
- }
488
-
489
- .datatable2__search {
490
- padding: 0.75rem;
491
- }
492
-
493
- .datatable2__toolbar {
494
- padding: 0.5rem 0.75rem;
495
- flex-direction: column;
496
- gap: 0.5rem;
497
- }
498
-
499
- .datatable2__export-btn {
500
- width: 100%;
501
- justify-content: center;
502
- }
503
-
504
- .datatable2__row-number {
505
- width: 40px;
506
- }
507
-
508
- .datatable2__row-number-header {
509
- width: 40px;
510
- }
511
-
512
- .datatable2--small th,
513
- .datatable2--small td,
514
- .datatable2--medium th,
515
- .datatable2--medium td,
516
- .datatable2--large th,
517
- .datatable2--large td {
518
- padding: 0.375rem 0.5rem;
519
- font-size: 0.8rem;
520
- }
668
+ .datatable2__panel-section-title {
669
+ font-size: 0.875rem;
670
+ font-weight: 600;
671
+ color: #374151;
672
+ margin: 0 0 1rem 0;
673
+ text-transform: uppercase;
674
+ letter-spacing: 0.05em;
521
675
  }
522
676
 
523
- /* Animations */
524
- @keyframes skeleton-loading {
525
- 0% {
526
- background-position: 200% 0;
527
- }
528
- 100% {
529
- background-position: -200% 0;
530
- }
677
+ /* Column Visibility Controls */
678
+ .datatable2__column-list {
679
+ list-style: none;
680
+ padding: 0;
681
+ margin: 0;
531
682
  }
532
683
 
533
- /* Dark theme support */
534
- @media (prefers-color-scheme: dark) {
535
- .datatable2 {
536
- background: var(--background-color-dark, #303030);
537
- color: var(--text-color-dark, #ffffff);
538
- }
539
-
540
- .datatable2__search,
541
- .datatable2__toolbar,
542
- .datatable2__footer {
543
- background: var(--background-color-light-dark, #424242);
544
- border-color: var(--divider-color-dark, #616161);
684
+ .datatable2__column-item {
685
+ display: flex;
686
+ align-items: center;
687
+ padding: 0.75rem 0;
688
+ border-bottom: 1px solid #f1f5f9;
689
+ }
690
+
691
+ .datatable2__column-item:last-child {
692
+ border-bottom: none;
693
+ }
694
+
695
+ .datatable2__column-checkbox {
696
+ margin-right: 0.75rem;
697
+ width: 18px;
698
+ height: 18px;
699
+ accent-color: #3b82f6;
700
+ cursor: pointer;
701
+ }
702
+
703
+ .datatable2__column-label {
704
+ flex: 1;
705
+ font-size: 0.875rem;
706
+ color: #374151;
707
+ cursor: pointer;
708
+ user-select: none;
709
+ }
710
+
711
+ .datatable2__column-label:hover {
712
+ color: #1f2937;
713
+ }
714
+
715
+ .datatable2__column-count {
716
+ font-size: 0.75rem;
717
+ color: #6b7280;
718
+ background: #f3f4f6;
719
+ padding: 0.25rem 0.5rem;
720
+ border-radius: 12px;
721
+ min-width: 24px;
722
+ text-align: center;
723
+ }
724
+
725
+ /* Export Options */
726
+ .datatable2__export-options {
727
+ display: flex;
728
+ flex-direction: column;
729
+ gap: 0.75rem;
730
+ }
731
+
732
+ .datatable2__export-button {
733
+ display: flex;
734
+ align-items: center;
735
+ gap: 0.75rem;
736
+ padding: 0.75rem 1rem;
737
+ background: #ffffff;
738
+ border: 1px solid #e2e8f0;
739
+ border-radius: 6px;
740
+ cursor: pointer;
741
+ transition: all 0.2s ease;
742
+ font-size: 0.875rem;
743
+ color: #374151;
744
+ text-align: left;
745
+ width: 100%;
746
+ }
747
+
748
+ .datatable2__export-button:hover {
749
+ background: #f8fafc;
750
+ border-color: #cbd5e1;
751
+ color: #1f2937;
752
+ transform: translateY(-1px);
753
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
754
+ }
755
+
756
+ .datatable2__export-button .icon {
757
+ color: #6b7280;
758
+ transition: color 0.2s ease;
759
+ }
760
+
761
+ .datatable2__export-button:hover .icon {
762
+ color: #3b82f6;
763
+ }
764
+
765
+ /* Filter Options */
766
+ .datatable2__filter-options {
767
+ padding: 1rem 0;
768
+ }
769
+
770
+ /* Filters Row */
771
+ .datatable2__filters-row {
772
+ background: #f8fafc;
773
+ border-bottom: 1px solid #e2e8f0;
774
+ }
775
+
776
+ .datatable2__filter-cell {
777
+ padding: 0.5rem;
778
+ vertical-align: middle;
779
+ border-bottom: 1px solid #e2e8f0;
780
+ }
781
+
782
+ .datatable2__filter-cell--checkbox,
783
+ .datatable2__filter-cell--row-number {
784
+ background: #f1f5f9;
785
+ border-right: 1px solid #e2e8f0;
786
+ }
787
+
788
+ .datatable2__filter-cell--actions {
789
+ text-align: center;
790
+ background: #f1f5f9;
791
+ border-left: 1px solid #e2e8f0;
792
+ }
793
+
794
+ .datatable2__filter-field {
795
+ width: 100%;
796
+ min-width: 120px;
797
+ font-size: 0.875rem;
798
+ }
799
+
800
+ .datatable2__filter-field input,
801
+ .datatable2__filter-field select {
802
+ border: 1px solid #d1d5db;
803
+ border-radius: 4px;
804
+ padding: 0.375rem 0.75rem;
805
+ font-size: 0.875rem;
806
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
807
+ }
808
+
809
+ .datatable2__filter-field input:focus,
810
+ .datatable2__filter-field select:focus {
811
+ outline: none;
812
+ border-color: #3b82f6;
813
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
814
+ }
815
+
816
+ .datatable2__clear-filters {
817
+ opacity: 0.5;
818
+ transition: opacity 0.2s ease;
819
+ }
820
+
821
+ .datatable2__clear-filters--active {
822
+ opacity: 1;
823
+ }
824
+
825
+ .datatable2__clear-filters:hover {
826
+ opacity: 1;
827
+ color: #ef4444;
828
+ }
829
+
830
+ /* Responsive filters */
831
+ @media (max-width: 768px) {
832
+ .datatable2__filter-field {
833
+ min-width: 80px;
834
+ font-size: 0.8rem;
545
835
  }
546
-
547
- .datatable2--striped tbody tr:nth-child(even) {
548
- background-color: var(--background-color-light-dark, #424242);
836
+
837
+ .datatable2__filter-cell {
838
+ padding: 0.25rem;
549
839
  }
550
-
551
- .datatable2__header--sticky {
552
- background: var(--background-color-dark, #303030);
840
+ }
841
+
842
+ /* Summary Row */
843
+ .datatable2__summary-row {
844
+ background: #f8fafc;
845
+ border-top: 2px solid #e2e8f0;
846
+ font-weight: 600;
847
+ }
848
+
849
+ .datatable2__summary-cell {
850
+ padding: 0.75rem;
851
+ vertical-align: middle;
852
+ border-top: 1px solid #e2e8f0;
853
+ background: #f1f5f9;
854
+ color: #374151;
855
+ font-size: 0.875rem;
856
+ }
857
+
858
+ .datatable2__summary-cell--checkbox,
859
+ .datatable2__summary-cell--row-number {
860
+ background: #e2e8f0;
861
+ border-right: 1px solid #cbd5e1;
862
+ text-align: center;
863
+ font-weight: bold;
864
+ color: #1f2937;
865
+ }
866
+
867
+ .datatable2__summary-cell--actions {
868
+ background: #e2e8f0;
869
+ border-left: 1px solid #cbd5e1;
870
+ }
871
+
872
+ .datatable2__summary-value {
873
+ display: inline-block;
874
+ padding: 0.25rem 0.5rem;
875
+ background: #ffffff;
876
+ border: 1px solid #d1d5db;
877
+ border-radius: 4px;
878
+ font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
879
+ font-size: 0.8rem;
880
+ font-weight: 600;
881
+ color: #059669;
882
+ cursor: help;
883
+ transition: all 0.2s ease;
884
+ }
885
+
886
+ .datatable2__summary-value:hover {
887
+ background: #f0fdf4;
888
+ border-color: #059669;
889
+ transform: translateY(-1px);
890
+ box-shadow: 0 2px 4px rgba(5, 150, 105, 0.1);
891
+ }
892
+
893
+ /* Summary row responsive */
894
+ @media (max-width: 768px) {
895
+ .datatable2__summary-cell {
896
+ padding: 0.5rem 0.25rem;
897
+ font-size: 0.8rem;
553
898
  }
554
-
555
- .datatable2__row-number,
556
- .datatable2__row-number-header {
557
- background: var(--background-color-light-dark, #424242);
558
- color: var(--text-color-light-dark, #cccccc);
559
- border-color: var(--divider-color-dark, #616161);
899
+
900
+ .datatable2__summary-value {
901
+ font-size: 0.75rem;
902
+ padding: 0.2rem 0.4rem;
560
903
  }
561
-
562
- .datatable2 tbody tr:hover {
563
- background-color: var(--hover-color-dark, rgba(255, 255, 255, 0.08));
904
+ }
905
+
906
+ /* Export Panel */
907
+ .datatable2__export-environment-notice {
908
+ display: flex;
909
+ align-items: flex-start;
910
+ gap: 0.75rem;
911
+ padding: 0.75rem;
912
+ margin-bottom: 1rem;
913
+ background: #fffbeb;
914
+ border: 1px solid #fbbf24;
915
+ border-radius: 6px;
916
+ color: #92400e;
917
+ }
918
+
919
+ .datatable2__export-environment-notice strong {
920
+ display: block;
921
+ font-size: 0.875rem;
922
+ margin-bottom: 0.25rem;
923
+ }
924
+
925
+ .datatable2__export-environment-notice p {
926
+ margin: 0;
927
+ font-size: 0.8rem;
928
+ color: #a16207;
929
+ }
930
+
931
+ .datatable2__export-stats {
932
+ display: flex;
933
+ gap: 1rem;
934
+ margin-bottom: 1rem;
935
+ padding: 0.75rem;
936
+ background: #f8fafc;
937
+ border: 1px solid #e2e8f0;
938
+ border-radius: 6px;
939
+ }
940
+
941
+ .datatable2__stat {
942
+ display: flex;
943
+ flex-direction: column;
944
+ align-items: center;
945
+ gap: 0.25rem;
946
+ }
947
+
948
+ .datatable2__stat-label {
949
+ font-size: 0.75rem;
950
+ color: #6b7280;
951
+ font-weight: 500;
952
+ }
953
+
954
+ .datatable2__stat-value {
955
+ font-size: 1.25rem;
956
+ font-weight: bold;
957
+ color: #1f2937;
958
+ }
959
+
960
+ .datatable2__export-status {
961
+ display: flex;
962
+ align-items: center;
963
+ gap: 0.5rem;
964
+ padding: 0.75rem;
965
+ border-radius: 6px;
966
+ margin-bottom: 1rem;
967
+ font-size: 0.875rem;
968
+ font-weight: 500;
969
+ }
970
+
971
+ .datatable2__export-status--success {
972
+ background: #f0fdf4;
973
+ color: #166534;
974
+ border: 1px solid #bbf7d0;
975
+ }
976
+
977
+ .datatable2__export-status--error {
978
+ background: #fef2f2;
979
+ color: #dc2626;
980
+ border: 1px solid #fecaca;
981
+ }
982
+
983
+ .datatable2__export-section {
984
+ margin-bottom: 1.5rem;
985
+ }
986
+
987
+ .datatable2__export-section-title {
988
+ font-size: 0.875rem;
989
+ font-weight: 600;
990
+ color: #374151;
991
+ margin: 0 0 0.75rem 0;
992
+ padding-bottom: 0.5rem;
993
+ border-bottom: 1px solid #e5e7eb;
994
+ }
995
+
996
+ .datatable2__export-options {
997
+ display: flex;
998
+ flex-direction: column;
999
+ gap: 0.5rem;
1000
+ }
1001
+
1002
+ .datatable2__export-button {
1003
+ display: flex;
1004
+ align-items: center;
1005
+ gap: 0.75rem;
1006
+ padding: 0.75rem 1rem;
1007
+ background: #ffffff;
1008
+ border: 1px solid #d1d5db;
1009
+ border-radius: 6px;
1010
+ cursor: pointer;
1011
+ transition: all 0.2s ease;
1012
+ font-size: 0.875rem;
1013
+ font-weight: 500;
1014
+ color: #374151;
1015
+ text-align: left;
1016
+ width: 100%;
1017
+ }
1018
+
1019
+ .datatable2__export-button:hover:not(:disabled) {
1020
+ background: #f9fafb;
1021
+ border-color: #9ca3af;
1022
+ transform: translateY(-1px);
1023
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1024
+ }
1025
+
1026
+ .datatable2__export-button:active:not(:disabled) {
1027
+ transform: translateY(0);
1028
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
1029
+ }
1030
+
1031
+ .datatable2__export-button:disabled {
1032
+ opacity: 0.5;
1033
+ cursor: not-allowed;
1034
+ background: #f3f4f6;
1035
+ }
1036
+
1037
+ .datatable2__export-button--selected {
1038
+ border-color: #3b82f6;
1039
+ background: #eff6ff;
1040
+ color: #1d4ed8;
1041
+ }
1042
+
1043
+ .datatable2__export-button--selected:hover:not(:disabled) {
1044
+ background: #dbeafe;
1045
+ border-color: #2563eb;
1046
+ }
1047
+
1048
+ .datatable2__export-description {
1049
+ font-size: 0.75rem;
1050
+ color: #6b7280;
1051
+ font-weight: normal;
1052
+ margin-left: auto;
1053
+ }
1054
+
1055
+ .datatable2__export-info {
1056
+ margin-top: 1rem;
1057
+ padding: 0.75rem;
1058
+ background: #f0f9ff;
1059
+ border: 1px solid #bae6fd;
1060
+ border-radius: 6px;
1061
+ }
1062
+
1063
+ .datatable2__export-note {
1064
+ display: flex;
1065
+ align-items: center;
1066
+ gap: 0.5rem;
1067
+ margin: 0;
1068
+ font-size: 0.8rem;
1069
+ color: #0c4a6e;
1070
+ }
1071
+
1072
+ /* Export responsive */
1073
+ @media (max-width: 768px) {
1074
+ .datatable2__export-stats {
1075
+ flex-direction: column;
1076
+ gap: 0.5rem;
564
1077
  }
565
-
566
- .datatable2 tbody tr.selected {
567
- background-color: rgba(100, 181, 246, 0.2);
568
- border-left-color: var(--primary-color-dark, #64b5f6);
1078
+
1079
+ .datatable2__stat {
1080
+ flex-direction: row;
1081
+ justify-content: space-between;
569
1082
  }
570
-
571
- .datatable2--skeleton .skeleton-text {
572
- background: linear-gradient(90deg, #424242 25%, #616161 50%, #424242 75%);
573
- background-size: 200% 100%;
1083
+
1084
+ .datatable2__export-button {
1085
+ padding: 0.5rem 0.75rem;
1086
+ font-size: 0.8rem;
574
1087
  }
575
-
576
- .datatable2--skeleton .skeleton-text--header {
577
- background: linear-gradient(90deg, #616161 25%, #757575 50%, #616161 75%);
578
- background-size: 200% 100%;
1088
+
1089
+ .datatable2__export-description {
1090
+ display: none;
579
1091
  }
580
-
581
- .datatable2__pagination button {
582
- background: var(--background-color-dark, #303030);
583
- color: var(--text-color-dark, #ffffff);
584
- border-color: var(--divider-color-dark, #616161);
1092
+ }
1093
+
1094
+ /* Table Container Adjustments */
1095
+ .datatable2__table-container {
1096
+ width: 100%;
1097
+ overflow-x: auto;
1098
+ border: none; /* El border está en el container principal */
1099
+ border-radius: 0;
1100
+ }
1101
+
1102
+ /* Row Numbers */
1103
+ .datatable2__row-number-header {
1104
+ width: 60px;
1105
+ min-width: 60px;
1106
+ max-width: 60px;
1107
+ text-align: center;
1108
+ padding: 0.75rem 0.5rem;
1109
+ font-weight: 600;
1110
+ font-size: 0.875rem;
1111
+ color: #6b7280;
1112
+ background: #f8fafc;
1113
+ border-right: 1px solid #e2e8f0;
1114
+ position: sticky;
1115
+ left: 0;
1116
+ z-index: 5;
1117
+ }
1118
+
1119
+ .datatable2__row-number {
1120
+ width: 60px;
1121
+ min-width: 60px;
1122
+ max-width: 60px;
1123
+ text-align: center;
1124
+ padding: 0.75rem 0.5rem;
1125
+ font-size: 0.875rem;
1126
+ color: #6b7280;
1127
+ background: #fafbfc;
1128
+ border-right: 1px solid #e2e8f0;
1129
+ position: sticky;
1130
+ left: 0;
1131
+ z-index: 5;
1132
+ font-variant-numeric: tabular-nums;
1133
+ }
1134
+
1135
+ .datatable2--striped .datatable2__row:nth-child(even) .datatable2__row-number {
1136
+ background: #f1f5f9;
1137
+ }
1138
+
1139
+ .datatable2__row:hover .datatable2__row-number {
1140
+ background: #e2e8f0;
1141
+ color: #374151;
1142
+ }
1143
+
1144
+ /* Responsive Design */
1145
+ @media (max-width: 1024px) {
1146
+ .datatable2__main--with-panel {
1147
+ width: calc(100% - 320px); /* Solo panel, toolbar se oculta */
585
1148
  }
586
-
587
- .datatable2__export-btn {
588
- border-color: var(--primary-color-dark, #64b5f6);
589
- color: var(--primary-color-dark, #64b5f6);
1149
+
1150
+ .datatable2__toolbar {
1151
+ display: none;
590
1152
  }
591
-
592
- .datatable2__export-btn:hover:not(:disabled) {
593
- background: var(--primary-color-dark, #64b5f6);
594
- color: var(--text-color-dark, #000);
1153
+
1154
+ .datatable2__panel {
1155
+ width: 320px;
1156
+ position: absolute;
1157
+ right: 0;
1158
+ top: 0;
1159
+ height: 100%;
1160
+ z-index: 1000;
1161
+ box-shadow: -4px 0 12px rgba(0, 0, 0, 0.1);
595
1162
  }
596
1163
  }
597
1164
 
598
- /* High contrast mode */
599
- @media (prefers-contrast: high) {
600
- .datatable2 {
601
- border: 2px solid currentColor;
1165
+ @media (max-width: 768px) {
1166
+ .datatable2__main--with-panel {
1167
+ width: 100%;
602
1168
  }
603
-
604
- .datatable2--bordered th,
605
- .datatable2--bordered td {
606
- border-width: 2px;
1169
+
1170
+ .datatable2__panel {
1171
+ width: 100%;
1172
+ max-width: 320px;
1173
+ position: fixed;
1174
+ top: 0;
1175
+ right: 0;
1176
+ height: 100vh;
1177
+ z-index: 1001;
607
1178
  }
608
-
609
- .datatable2 tbody tr.selected {
610
- outline: 3px solid var(--primary-color, #2196f3);
611
- outline-offset: -3px;
1179
+
1180
+ .datatable2__panel-content {
1181
+ padding: 1rem;
612
1182
  }
613
-
614
- .datatable2__export-btn {
615
- border-width: 2px;
616
- font-weight: 600;
1183
+
1184
+ .datatable2__row-number-header,
1185
+ .datatable2__row-number {
1186
+ width: 50px;
1187
+ min-width: 50px;
1188
+ max-width: 50px;
1189
+ padding: 0.5rem 0.25rem;
1190
+ font-size: 0.75rem;
617
1191
  }
618
1192
  }
619
1193
 
620
- /* Reduced motion */
621
- @media (prefers-reduced-motion: reduce) {
622
- .datatable2,
623
- .datatable2__export-btn,
624
- .datatable2__pagination button,
625
- .column-resizer {
626
- transition: none;
627
- }
628
-
629
- .datatable2--skeleton .skeleton-text,
630
- .datatable2--skeleton .skeleton-text--header {
631
- animation: none;
632
- background: #e0e0e0;
633
- }
1194
+ /* Dark theme adjustments */
1195
+ .datatable2--dark .datatable2__container {
1196
+ border-color: #2d3748;
634
1197
  }
635
1198
 
636
- /* Print styles */
637
- @media print {
638
- .datatable2 {
639
- break-inside: avoid;
640
- box-shadow: none !important;
641
- border: 1px solid black !important;
642
- }
643
-
644
- .datatable2__search,
645
- .datatable2__toolbar,
646
- .datatable2__footer,
647
- .datatable2__pagination {
648
- display: none !important;
649
- }
650
-
651
- .datatable2 th,
652
- .datatable2 td {
653
- border: 1px solid black !important;
654
- background: white !important;
655
- color: black !important;
656
- }
657
-
658
- .datatable2 tbody tr:hover {
659
- background: white !important;
660
- }
661
-
662
- .datatable2 tbody tr.selected {
663
- background: #f0f0f0 !important;
664
- border-left: none !important;
1199
+ .datatable2--dark .datatable2__toolbar {
1200
+ background: #2d3748;
1201
+ border-left-color: #4a5568;
1202
+ }
1203
+
1204
+ .datatable2--dark .datatable2__toolbar-button {
1205
+ background: #1a202c;
1206
+ border-color: #4a5568;
1207
+ color: #a0aec0;
1208
+ }
1209
+
1210
+ .datatable2--dark .datatable2__toolbar-button:hover {
1211
+ background: #2d3748;
1212
+ border-color: #63b3ed;
1213
+ color: #63b3ed;
1214
+ }
1215
+
1216
+ .datatable2--dark .datatable2__toolbar-button--active {
1217
+ background: #63b3ed;
1218
+ border-color: #63b3ed;
1219
+ color: #1a202c;
1220
+ }
1221
+
1222
+ .datatable2--dark .datatable2__panel {
1223
+ background: #1a202c;
1224
+ border-left-color: #2d3748;
1225
+ }
1226
+
1227
+ .datatable2--dark .datatable2__panel-header {
1228
+ background: #2d3748;
1229
+ border-bottom-color: #4a5568;
1230
+ }
1231
+
1232
+ .datatable2--dark .datatable2__panel-title {
1233
+ color: #f7fafc;
1234
+ }
1235
+
1236
+ .datatable2--dark .datatable2__panel-close {
1237
+ color: #a0aec0;
1238
+ }
1239
+
1240
+ .datatable2--dark .datatable2__panel-close:hover {
1241
+ background: #4a5568;
1242
+ color: #f7fafc;
1243
+ }
1244
+
1245
+ .datatable2--dark .datatable2__column-item {
1246
+ border-bottom-color: #2d3748;
1247
+ }
1248
+
1249
+ .datatable2--dark .datatable2__column-label {
1250
+ color: #e2e8f0;
1251
+ }
1252
+
1253
+ .datatable2--dark .datatable2__column-label:hover {
1254
+ color: #f7fafc;
1255
+ }
1256
+
1257
+ .datatable2--dark .datatable2__row-number-header {
1258
+ background: #2d3748;
1259
+ border-right-color: #4a5568;
1260
+ color: #a0aec0;
1261
+ }
1262
+
1263
+ .datatable2--dark .datatable2__row-number {
1264
+ background: #1a202c;
1265
+ border-right-color: #4a5568;
1266
+ color: #a0aec0;
1267
+ }
1268
+
1269
+ /* Selection styles */
1270
+ .datatable2__select-header {
1271
+ width: 50px;
1272
+ min-width: 50px;
1273
+ max-width: 50px;
1274
+ text-align: center;
1275
+ padding: 0.5rem;
1276
+ vertical-align: middle;
1277
+ }
1278
+
1279
+ .datatable2__select-header input[type="checkbox"] {
1280
+ margin: 0;
1281
+ cursor: pointer;
1282
+ vertical-align: middle;
1283
+ }
1284
+
1285
+ .datatable2__select-cell {
1286
+ width: 50px;
1287
+ min-width: 50px;
1288
+ max-width: 50px;
1289
+ text-align: center;
1290
+ padding: 0.5rem;
1291
+ vertical-align: middle;
1292
+ }
1293
+
1294
+ .datatable2__select-cell input[type="checkbox"] {
1295
+ margin: 0;
1296
+ cursor: pointer;
1297
+ vertical-align: middle;
1298
+ }
1299
+
1300
+ .datatable2__row--selected {
1301
+ background-color: var(--selection-bg, #e3f2fd) !important;
1302
+ border-color: var(--selection-border, #2196f3) !important;
1303
+ }
1304
+
1305
+ .datatable2__row--selected:hover {
1306
+ background-color: var(--selection-hover-bg, #bbdefb) !important;
1307
+ }
1308
+
1309
+ /* Row styles */
1310
+ .datatable2__row {
1311
+ border-bottom: 1px solid var(--divider-color-light, #f0f0f0);
1312
+ transition: background-color 0.2s ease;
1313
+ }
1314
+
1315
+ .datatable2__row:last-child {
1316
+ border-bottom: none;
1317
+ }
1318
+
1319
+ .datatable2__row:hover {
1320
+ background: var(--hover-color, rgba(0, 0, 0, 0.02));
1321
+ }
1322
+
1323
+ .datatable2__row--selected {
1324
+ background: var(--selection-color, rgba(33, 150, 243, 0.08));
1325
+ border-left: 3px solid var(--primary-color, #2196f3);
1326
+ }
1327
+
1328
+ /* Cell styles */
1329
+ .datatable2__cell {
1330
+ padding: 12px 16px;
1331
+ color: var(--text-color, #333);
1332
+ font-size: 0.875rem;
1333
+ border-right: 1px solid var(--divider-color-light, #f0f0f0);
1334
+ position: relative;
1335
+ vertical-align: middle;
1336
+ }
1337
+
1338
+ .datatable2__cell:last-child {
1339
+ border-right: none;
1340
+ }
1341
+
1342
+ .datatable2__cell--editable {
1343
+ cursor: pointer;
1344
+ transition: background-color 0.2s ease;
1345
+ }
1346
+
1347
+ .datatable2__cell--editable:hover {
1348
+ background: var(--hover-color, rgba(0, 0, 0, 0.02));
1349
+ }
1350
+
1351
+ .datatable2__cell--editing {
1352
+ padding: 0;
1353
+ background: var(--edit-color, rgba(33, 150, 243, 0.05));
1354
+ }
1355
+
1356
+ /* Editable field styles - seamlessly integrated */
1357
+ .datatable2__edit-field {
1358
+ width: 100% !important;
1359
+ height: 100% !important;
1360
+ border: none !important;
1361
+ outline: none !important;
1362
+ background: transparent !important;
1363
+ margin: 0 !important;
1364
+ padding: 12px 16px !important;
1365
+ font-size: 0.875rem !important;
1366
+ color: inherit !important;
1367
+ box-shadow: none !important;
1368
+ border-radius: 0 !important;
1369
+ }
1370
+
1371
+ .datatable2__edit-field:focus {
1372
+ background: var(--edit-focus-color, rgba(33, 150, 243, 0.1)) !important;
1373
+ }
1374
+
1375
+ /* Special cell types */
1376
+ .datatable2__select-cell,
1377
+ .datatable2__actions-cell {
1378
+ width: 48px;
1379
+ text-align: center;
1380
+ padding: 8px;
1381
+ }
1382
+
1383
+ .datatable2__row-number {
1384
+ width: 60px;
1385
+ text-align: center;
1386
+ color: var(--text-color-secondary, #666);
1387
+ font-size: 0.75rem;
1388
+ background: var(--surface-color, #f8f9fa);
1389
+ }
1390
+
1391
+ /* Expanded row styles */
1392
+ .datatable2__expanded-row {
1393
+ background: var(--expanded-bg, #f8f9fa);
1394
+ border-bottom: 1px solid var(--divider-color-light, #f0f0f0);
1395
+ }
1396
+
1397
+ .datatable2__expanded-cell {
1398
+ padding: 0;
1399
+ border-right: none;
1400
+ }
1401
+
1402
+ .datatable2__expanded-content {
1403
+ padding: 16px;
1404
+ border-left: 3px solid var(--primary-color, #2196f3);
1405
+ background: var(--expanded-content-bg, #ffffff);
1406
+ margin: 8px;
1407
+ border-radius: 4px;
1408
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1409
+ }
1410
+
1411
+ /* Filter row styles */
1412
+ .datatable2__filters-row {
1413
+ background: var(--surface-color, #f8f9fa);
1414
+ border-bottom: 1px solid var(--divider-color, #e0e0e0);
1415
+ }
1416
+
1417
+ .datatable2__filter-cell {
1418
+ padding: 8px 12px;
1419
+ }
1420
+
1421
+ .datatable2__filter-field {
1422
+ width: 100% !important;
1423
+ height: 32px !important;
1424
+ border: 1px solid var(--divider-color, #e0e0e0) !important;
1425
+ border-radius: 4px !important;
1426
+ padding: 4px 8px !important;
1427
+ font-size: 0.75rem !important;
1428
+ background: white !important;
1429
+ }
1430
+
1431
+ .datatable2__filter-field:focus {
1432
+ border-color: var(--primary-color, #2196f3) !important;
1433
+ box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2) !important;
1434
+ }
1435
+
1436
+ .datatable2__filter-actions-cell {
1437
+ text-align: center;
1438
+ padding: 8px;
1439
+ }
1440
+
1441
+ /* Empty state */
1442
+ .datatable2__empty-cell {
1443
+ padding: 48px 24px;
1444
+ text-align: center;
1445
+ }
1446
+
1447
+ .datatable2__empty-state {
1448
+ display: flex;
1449
+ flex-direction: column;
1450
+ align-items: center;
1451
+ gap: 16px;
1452
+ color: var(--text-color-secondary, #666);
1453
+ }
1454
+
1455
+ /* Skeleton loading */
1456
+ .datatable2__skeleton-row {
1457
+ animation: pulse 1.5s ease-in-out infinite;
1458
+ }
1459
+
1460
+ .datatable2__skeleton-cell {
1461
+ padding: 12px 16px;
1462
+ }
1463
+
1464
+ .datatable2__skeleton-text {
1465
+ height: 16px;
1466
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
1467
+ background-size: 200% 100%;
1468
+ animation: shimmer 1.5s infinite;
1469
+ border-radius: 4px;
1470
+ }
1471
+
1472
+ .datatable2__skeleton-text--short {
1473
+ width: 60%;
1474
+ }
1475
+
1476
+ @keyframes shimmer {
1477
+ 0% { background-position: -200% 0; }
1478
+ 100% { background-position: 200% 0; }
1479
+ }
1480
+
1481
+ @keyframes pulse {
1482
+ 0%, 100% { opacity: 1; }
1483
+ 50% { opacity: 0.7; }
1484
+ }
1485
+
1486
+ /* Search */
1487
+ .datatable2__search {
1488
+ padding: 16px;
1489
+ border-bottom: 1px solid var(--divider-color, #e0e0e0);
1490
+ background: var(--surface-color, #f8f9fa);
1491
+ }
1492
+
1493
+ /* Footer */
1494
+ .datatable2__footer {
1495
+ padding: 16px;
1496
+ border-top: 1px solid var(--divider-color, #e0e0e0);
1497
+ background: var(--surface-color, #f8f9fa);
1498
+ display: flex;
1499
+ justify-content: flex-end;
1500
+ }
1501
+
1502
+ .datatable2__export-btn {
1503
+ display: flex;
1504
+ align-items: center;
1505
+ gap: 8px;
1506
+ padding: 8px 16px;
1507
+ border: 1px solid var(--primary-color, #2196f3);
1508
+ background: transparent;
1509
+ color: var(--primary-color, #2196f3);
1510
+ border-radius: 4px;
1511
+ cursor: pointer;
1512
+ font-size: 0.875rem;
1513
+ transition: all 0.2s ease;
1514
+ }
1515
+
1516
+ .datatable2__export-btn:hover {
1517
+ background: var(--primary-color, #2196f3);
1518
+ color: white;
1519
+ }
1520
+
1521
+ /* Size variants */
1522
+ .datatable2--small .datatable2__cell,
1523
+ .datatable2--small .datatable2__header-cell {
1524
+ padding: 8px 12px;
1525
+ font-size: 0.75rem;
1526
+ }
1527
+
1528
+ .datatable2--large .datatable2__cell,
1529
+ .datatable2--large .datatable2__header-cell {
1530
+ padding: 16px 20px;
1531
+ font-size: 1rem;
1532
+ }
1533
+
1534
+ /* Density variants */
1535
+ .datatable2--compact .datatable2__cell,
1536
+ .datatable2--compact .datatable2__header-cell {
1537
+ padding: 6px 12px;
1538
+ height: 32px;
1539
+ }
1540
+
1541
+ .datatable2--compact .datatable2__edit-field {
1542
+ padding: 6px 12px !important;
1543
+ height: 32px !important;
1544
+ }
1545
+
1546
+ .datatable2--comfortable .datatable2__cell,
1547
+ .datatable2--comfortable .datatable2__header-cell {
1548
+ padding: 16px 20px;
1549
+ height: 56px;
1550
+ }
1551
+
1552
+ .datatable2--comfortable .datatable2__edit-field {
1553
+ padding: 16px 20px !important;
1554
+ height: 56px !important;
1555
+ }
1556
+
1557
+ /* Style variants */
1558
+ .datatable2--striped .datatable2__row:nth-child(even) {
1559
+ background: var(--stripe-color, rgba(0, 0, 0, 0.02));
1560
+ }
1561
+
1562
+ .datatable2--bordered {
1563
+ border: 1px solid var(--divider-color, #e0e0e0);
1564
+ }
1565
+
1566
+ .datatable2--bordered .datatable2__cell,
1567
+ .datatable2--bordered .datatable2__header-cell {
1568
+ border: 1px solid var(--divider-color, #e0e0e0);
1569
+ }
1570
+
1571
+ .datatable2--no-hover .datatable2__row:hover {
1572
+ background: transparent;
1573
+ }
1574
+
1575
+ /* Theme variants */
1576
+ .datatable2--minimal {
1577
+ box-shadow: none;
1578
+ border: 1px solid var(--divider-color-light, #f0f0f0);
1579
+ background: transparent;
1580
+ }
1581
+
1582
+ .datatable2--dark {
1583
+ background: #2c1810;
1584
+ color: #f4e6d7;
1585
+ border-color: #5d4037;
1586
+ }
1587
+
1588
+ .datatable2--dark .datatable2__header {
1589
+ background: #3e2723;
1590
+ color: #f4e6d7;
1591
+ border-color: #5d4037;
1592
+ }
1593
+
1594
+ .datatable2--dark .datatable2__cell,
1595
+ .datatable2--dark .datatable2__header-cell {
1596
+ border-color: #5d4037;
1597
+ color: #f4e6d7;
1598
+ }
1599
+
1600
+ .datatable2--dark .datatable2__row:hover {
1601
+ background: #3e2723;
1602
+ }
1603
+
1604
+ .datatable2--dark .datatable2__row--selected {
1605
+ background: #4e342e;
1606
+ border-left-color: #8d6e63;
1607
+ }
1608
+
1609
+ .datatable2--dark .datatable2__edit-field {
1610
+ color: #f4e6d7 !important;
1611
+ }
1612
+
1613
+ .datatable2--dark .datatable2__filter-field {
1614
+ background: #3e2723 !important;
1615
+ border-color: #5d4037 !important;
1616
+ color: #f4e6d7 !important;
1617
+ }
1618
+
1619
+ .datatable2--dark .datatable2__expanded-row {
1620
+ background: #3a251a;
1621
+ }
1622
+
1623
+ .datatable2--dark .datatable2__expanded-content {
1624
+ background: #2c1810;
1625
+ border-left-color: #8d6e63;
1626
+ color: #f4e6d7;
1627
+ }
1628
+
1629
+ /* Responsive */
1630
+ @media (max-width: 768px) {
1631
+ .datatable2__table-container {
1632
+ overflow-x: auto;
665
1633
  }
666
1634
 
667
- .column-resizer {
668
- display: none !important;
1635
+ .datatable2__cell,
1636
+ .datatable2__header-cell {
1637
+ min-width: 120px;
1638
+ white-space: nowrap;
669
1639
  }
670
1640
  }