@nuralyui/table 0.0.3 → 0.0.7

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 (89) hide show
  1. package/bundle.js +2351 -0
  2. package/package.json +16 -2
  3. package/react.js +2 -2
  4. package/react.js.map +1 -1
  5. package/table.component.d.ts +112 -12
  6. package/table.component.js +285 -136
  7. package/table.component.js.map +1 -1
  8. package/table.style.js +676 -2
  9. package/table.style.js.map +1 -1
  10. package/table.types.d.ts +60 -4
  11. package/table.types.js +0 -23
  12. package/table.types.js.map +1 -1
  13. package/components/hy-table-actions.d.ts +0 -10
  14. package/components/hy-table-actions.d.ts.map +0 -1
  15. package/components/hy-table-actions.js +0 -39
  16. package/components/hy-table-actions.js.map +0 -1
  17. package/components/hy-table-content.d.ts +0 -25
  18. package/components/hy-table-content.d.ts.map +0 -1
  19. package/components/hy-table-content.js +0 -168
  20. package/components/hy-table-content.js.map +0 -1
  21. package/components/hy-table-filter.d.ts +0 -11
  22. package/components/hy-table-filter.d.ts.map +0 -1
  23. package/components/hy-table-filter.js +0 -59
  24. package/components/hy-table-filter.js.map +0 -1
  25. package/components/hy-table-pagination.d.ts +0 -21
  26. package/components/hy-table-pagination.d.ts.map +0 -1
  27. package/components/hy-table-pagination.js +0 -111
  28. package/components/hy-table-pagination.js.map +0 -1
  29. package/components/table-actions.style.d.ts +0 -2
  30. package/components/table-actions.style.d.ts.map +0 -1
  31. package/components/table-actions.style.js +0 -31
  32. package/components/table-actions.style.js.map +0 -1
  33. package/components/table-actions.variables.d.ts +0 -2
  34. package/components/table-actions.variables.d.ts.map +0 -1
  35. package/components/table-actions.variables.js +0 -13
  36. package/components/table-actions.variables.js.map +0 -1
  37. package/components/table-content.style.d.ts +0 -2
  38. package/components/table-content.style.d.ts.map +0 -1
  39. package/components/table-content.style.js +0 -77
  40. package/components/table-content.style.js.map +0 -1
  41. package/components/table-content.variables.d.ts +0 -2
  42. package/components/table-content.variables.d.ts.map +0 -1
  43. package/components/table-content.variables.js +0 -29
  44. package/components/table-content.variables.js.map +0 -1
  45. package/components/table-filter.style.d.ts +0 -2
  46. package/components/table-filter.style.d.ts.map +0 -1
  47. package/components/table-filter.style.js +0 -39
  48. package/components/table-filter.style.js.map +0 -1
  49. package/components/table-filter.variables.d.ts +0 -2
  50. package/components/table-filter.variables.d.ts.map +0 -1
  51. package/components/table-filter.variables.js +0 -17
  52. package/components/table-filter.variables.js.map +0 -1
  53. package/components/table-pagination.style.d.ts +0 -2
  54. package/components/table-pagination.style.d.ts.map +0 -1
  55. package/components/table-pagination.style.js +0 -102
  56. package/components/table-pagination.style.js.map +0 -1
  57. package/components/table-pagination.variables.d.ts +0 -2
  58. package/components/table-pagination.variables.d.ts.map +0 -1
  59. package/components/table-pagination.variables.js +0 -17
  60. package/components/table-pagination.variables.js.map +0 -1
  61. package/demo/table-demo.d.ts +0 -17
  62. package/demo/table-demo.d.ts.map +0 -1
  63. package/demo/table-demo.js +0 -166
  64. package/demo/table-demo.js.map +0 -1
  65. package/index.d.ts.map +0 -1
  66. package/react.d.ts.map +0 -1
  67. package/table.component.d.ts.map +0 -1
  68. package/table.style.d.ts.map +0 -1
  69. package/table.types.d.ts.map +0 -1
  70. package/test/hy-table-actions_test.d.ts +0 -2
  71. package/test/hy-table-actions_test.d.ts.map +0 -1
  72. package/test/hy-table-actions_test.js +0 -32
  73. package/test/hy-table-actions_test.js.map +0 -1
  74. package/test/hy-table-content_test.d.ts +0 -2
  75. package/test/hy-table-content_test.d.ts.map +0 -1
  76. package/test/hy-table-content_test.js +0 -168
  77. package/test/hy-table-content_test.js.map +0 -1
  78. package/test/hy-table-filter_test.d.ts +0 -2
  79. package/test/hy-table-filter_test.d.ts.map +0 -1
  80. package/test/hy-table-filter_test.js +0 -80
  81. package/test/hy-table-filter_test.js.map +0 -1
  82. package/test/hy-table-pagination_test.d.ts +0 -2
  83. package/test/hy-table-pagination_test.d.ts.map +0 -1
  84. package/test/hy-table-pagination_test.js +0 -114
  85. package/test/hy-table-pagination_test.js.map +0 -1
  86. package/test/hy-table_test.d.ts +0 -2
  87. package/test/hy-table_test.d.ts.map +0 -1
  88. package/test/hy-table_test.js +0 -145
  89. package/test/hy-table_test.js.map +0 -1
package/table.style.js CHANGED
@@ -3,12 +3,686 @@ export default css `
3
3
  :host {
4
4
  display: block;
5
5
  width: 100%;
6
- font-family: Arial, sans-serif;
6
+ font-family: var(--nuraly-font-family, Arial, sans-serif);
7
+ color: var(--nuraly-color-text);
8
+ background-color: var(--nuraly-color-background);
7
9
  }
10
+
11
+ /* Filter Container Styles */
8
12
  .filter-container {
9
13
  display: flex;
10
- justify-content: end;
14
+ justify-content: flex-end;
11
15
  width: 100%;
16
+ padding: var(--nuraly-spacing-2, 0.5rem) 0;
17
+ position: relative;
18
+ margin-bottom: 5px;
19
+ }
20
+
21
+ .filter-container input {
22
+ padding: 5px;
23
+ padding-left: 30px;
24
+ width: 100%;
25
+ box-sizing: border-box;
26
+ background-color: var(--nuraly-table-filter-background, #ffffff);
27
+ color: var(--nuraly-table-filter-text, #000000);
28
+ }
29
+
30
+ .filter-container input:focus {
31
+ outline-style: none;
32
+ border: 1px solid var(--nuraly-table-filter-border, #1890ff);
33
+ }
34
+
35
+ .filter-container .icon-container {
36
+ height: 25px;
37
+ width: 35px;
38
+ cursor: pointer;
39
+ display: flex;
40
+ justify-content: center;
41
+ align-items: center;
42
+ }
43
+
44
+ .filter-container .search-icon {
45
+ position: absolute;
46
+ left: 10px;
47
+ top: 25%;
48
+ }
49
+
50
+ /* Actions Bar Styles */
51
+ .actions-container {
52
+ background-color: var(--nuraly-table-action-color, #0f62fe);
53
+ padding: 10px;
54
+ box-sizing: border-box;
55
+ display: flex;
56
+ justify-content: space-between;
57
+ color: var(--nuraly-table-background, #ffffff);
58
+ }
59
+
60
+ /* Fixed Header Styles */
61
+ .table-content-wrapper.fixed-header {
62
+ overflow-y: auto;
63
+ overflow-x: auto;
64
+ }
65
+
66
+ .table-content-wrapper.fixed-header table {
67
+ border-collapse: separate;
68
+ border-spacing: 0;
69
+ }
70
+
71
+ .table-content-wrapper.fixed-header thead {
72
+ background-color: var(--nuraly-table-header-background, #fafafa);
73
+ }
74
+
75
+ .table-content-wrapper.fixed-header thead th {
76
+ position: sticky;
77
+ top: 0;
78
+ z-index: 10;
79
+ background-color: var(--nuraly-table-header-background, #fafafa);
80
+ border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);
81
+ }
82
+
83
+ .table-content-wrapper.fixed-header thead tr {
84
+ box-shadow: 0 1px 0 0 var(--nuraly-table-row-border-color, #f0f0f0);
85
+ }
86
+
87
+ .actions-container button {
88
+ cursor: pointer;
89
+ border: none;
90
+ color: var(--nuraly-table-background, #ffffff);
91
+ background-color: var(--nuraly-table-action-color, #0f62fe);
92
+ }
93
+
94
+ .actions-container[data-size='small'] {
95
+ padding: 5px;
96
+ }
97
+
98
+ .actions-container[data-size='large'] {
99
+ padding: 15px;
100
+ }
101
+
102
+ /* Table Content Wrapper Styles */
103
+ .table-content-wrapper {
104
+ display: block;
105
+ overflow: auto;
106
+ }
107
+
108
+ input[type='checkbox'][data-indeterminate='true']::after {
109
+ width: 13px;
110
+ height: 13px;
111
+ background-color: var(--nuraly-table-checkbox-checked, #161616);
112
+ color: var(--nuraly-table-background, #ffffff);
113
+ display: flex;
114
+ justify-content: center;
115
+ align-items: center;
116
+ content: '-';
117
+ }
118
+
119
+ /* Table Styles */
120
+ table {
121
+ width: 100%;
122
+ border-spacing: 0px;
123
+ color: var(--nuraly-table-text-color);
124
+ }
125
+
126
+ td {
127
+ text-align: center;
128
+ border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);
129
+ padding: 10px;
130
+ }
131
+
132
+ th {
133
+ cursor: pointer;
134
+ padding: 10px;
135
+ }
136
+
137
+ th span {
138
+ display: flex;
139
+ justify-content: center;
140
+ gap: 10px;
141
+ }
142
+
143
+ nr-icon {
144
+ display: flex;
145
+ justify-content: center;
146
+ align-items: center;
147
+ --nuraly-icon-color: var(--nuraly-table-text-color);
148
+ }
149
+
150
+ tbody tr {
151
+ background-color: var(--nuraly-table-row-background, #ffffff);
152
+ }
153
+
154
+ tbody tr:hover {
155
+ background-color: var(--nuraly-table-row-hover-background, #f5f5f5);
156
+ }
157
+
158
+ thead tr {
159
+ background-color: var(--nuraly-table-header-background, #fafafa);
160
+ }
161
+
162
+ tbody tr:has(input:checked) {
163
+ background-color: var(--nuraly-table-row-selected-background, #e6f7ff);
164
+ }
165
+
166
+ input,
167
+ .expand-icon {
168
+ cursor: pointer;
169
+ accent-color: var(--nuraly-table-checkbox-checked, #1890ff);
170
+ }
171
+
172
+ /* Size Variants for Table Content */
173
+ :host([size='small']) td,
174
+ :host([size='small']) th {
175
+ padding: 5px;
176
+ }
177
+
178
+ :host([size='large']) td,
179
+ :host([size='large']) th {
180
+ padding: 15px;
181
+ }
182
+
183
+ /* Pagination Styles */
184
+ .pagination-container {
185
+ display: flex;
186
+ justify-content: space-between;
187
+ align-items: center;
188
+ background-color: var(--nuraly-pagination-background-color);
189
+ color: var(--nuraly-pagination-text-color);
190
+ }
191
+
192
+ .pagination-container .left-content {
193
+ display: flex;
194
+ align-items: center;
195
+ }
196
+
197
+ .pagination-container .left-content .items-details {
198
+ border-left: var(--nuraly-pagination-borders);
199
+ padding: 10px;
200
+ }
201
+
202
+ .pagination-container .left-content .select-details {
203
+ display: flex;
204
+ align-items: center;
205
+ gap: 8px;
206
+ padding: 10px;
207
+ }
208
+
209
+ .pagination-container .left-content .select-details label {
210
+ font-size: var(--nuraly-font-size-input, 14px);
211
+ color: var(--nuraly-table-pagination-text, #000000);
212
+ white-space: nowrap;
213
+ }
214
+
215
+ .pagination-container .left-content .select-details nr-select {
216
+ min-width: 60px;
217
+ max-width: 80px;
218
+ --select-border-color: var(--nuraly-table-border-color, #d9d9d9);
219
+ --select-background: var(--nuraly-table-pagination-background, #fafafa);
220
+ --select-text-color: var(--nuraly-table-pagination-text, #000000);
221
+ }
222
+
223
+ .pagination-container .right-content {
224
+ display: flex;
225
+ align-items: center;
226
+ border-left: var(--nuraly-pagination-borders);
227
+ }
228
+
229
+ .pagination-container .right-content .icon-container {
230
+ display: flex;
231
+ align-items: center;
232
+ border-left: var(--nuraly-pagination-borders);
233
+ }
234
+
235
+ .pagination-container .right-content .page-details {
236
+ padding: 10px;
237
+ }
238
+
239
+ .pagination-container .icon-container .left-arrow,
240
+ .pagination-container .icon-container .right-arrow {
241
+ padding: 10px;
242
+ --nuraly-icon-color: var(--nuraly-pagination-text-color);
243
+ }
244
+
245
+ .pagination-container .icon-container .left-arrow {
246
+ border-right: var(--nuraly-pagination-borders);
247
+ }
248
+
249
+ .pagination-container nr-icon[data-enabled='false'] {
250
+ cursor: not-allowed;
251
+ }
252
+
253
+ .pagination-container nr-icon[data-enabled='true'] {
254
+ cursor: pointer;
255
+ }
256
+
257
+ /* Size Variants for Pagination */
258
+ .pagination-container[data-size='small'] .left-content .items-details {
259
+ padding: 5px;
260
+ }
261
+
262
+ .pagination-container[data-size='large'] .left-content .items-details {
263
+ padding: 15px;
264
+ }
265
+
266
+ .pagination-container[data-size='small'] .left-content .select-details {
267
+ padding: 5px;
268
+ gap: 6px;
269
+ }
270
+
271
+ .pagination-container[data-size='large'] .left-content .select-details {
272
+ padding: 15px;
273
+ gap: 10px;
274
+ }
275
+
276
+ .pagination-container[data-size='small'] .right-content .page-details {
277
+ padding: 5px;
278
+ }
279
+
280
+ .pagination-container[data-size='large'] .right-content .page-details {
281
+ padding: 15px;
282
+ }
283
+
284
+ .pagination-container[data-size='small'] .icon-container .left-arrow,
285
+ .pagination-container[data-size='small'] .icon-container .right-arrow {
286
+ padding: 5px;
287
+ }
288
+
289
+ .pagination-container[data-size='large'] .icon-container .left-arrow,
290
+ .pagination-container[data-size='large'] .icon-container .right-arrow {
291
+ padding: 15px;
292
+ }
293
+
294
+ /* Column Filter Styles */
295
+ th .th-content {
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: space-between;
299
+ gap: 8px;
300
+ position: relative;
301
+ }
302
+
303
+ th .th-text {
304
+ display: flex;
305
+ align-items: center;
306
+ gap: 10px;
307
+ flex: 1;
308
+ }
309
+
310
+ th .filter-wrapper {
311
+ position: relative;
312
+ display: flex;
313
+ align-items: center;
314
+ }
315
+
316
+ .filter-trigger {
317
+ background: transparent;
318
+ border: none;
319
+ cursor: pointer;
320
+ padding: 4px;
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: center;
324
+ border-radius: 4px;
325
+ transition: background-color 0.2s;
326
+ }
327
+
328
+ .filter-trigger:hover {
329
+ background-color: var(--nuraly-table-filter-hover, rgba(0, 0, 0, 0.04));
330
+ }
331
+
332
+ .filter-icon {
333
+ position: relative;
334
+ display: flex;
335
+ align-items: center;
336
+ justify-content: center;
337
+ }
338
+
339
+ .filter-icon.has-filter {
340
+ color: var(--nuraly-table-filter-active, #1890ff);
341
+ }
342
+
343
+ .filter-indicator {
344
+ position: absolute;
345
+ top: -2px;
346
+ right: -2px;
347
+ width: 6px;
348
+ height: 6px;
349
+ border-radius: 50%;
350
+ background-color: var(--nuraly-table-filter-active, #1890ff);
351
+ }
352
+
353
+ .column-filter-dropdown {
354
+ position: absolute;
355
+ top: calc(100% + 4px);
356
+ right: 0;
357
+ background: var(--nuraly-table-background, #ffffff);
358
+ border: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
359
+ border-radius: 4px;
360
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
361
+ z-index: 100;
362
+ min-width: 200px;
363
+ padding: 8px;
364
+ }
365
+
366
+ .column-filter-content {
367
+ display: flex;
368
+ flex-direction: column;
369
+ gap: 8px;
370
+ }
371
+
372
+ .column-filter-input {
373
+ padding: 8px;
374
+ border: 1px solid var(--nuraly-table-row-border-color, #d9d9d9);
375
+ border-radius: 4px;
376
+ font-size: 14px;
377
+ width: 100%;
378
+ box-sizing: border-box;
379
+ }
380
+
381
+ .column-filter-input:focus {
382
+ outline: none;
383
+ border-color: var(--nuraly-table-filter-active, #1890ff);
384
+ box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
385
+ }
386
+
387
+ .column-filter-clear {
388
+ background: transparent;
389
+ border: none;
390
+ cursor: pointer;
391
+ padding: 4px;
392
+ display: flex;
393
+ align-items: center;
394
+ justify-content: center;
395
+ color: var(--nuraly-table-text-color, #000);
396
+ align-self: flex-end;
397
+ }
398
+
399
+ .column-filter-clear:hover {
400
+ color: var(--nuraly-table-filter-active, #1890ff);
401
+ }
402
+
403
+ /* Fixed Columns Styles */
404
+ th.fixed-column,
405
+ td.fixed-column {
406
+ position: sticky;
407
+ background-color: var(--nuraly-table-row-background, #ffffff);
408
+ }
409
+
410
+ /* Fixed columns in header - highest priority */
411
+ thead th.fixed-column {
412
+ z-index: 20;
413
+ background-color: var(--nuraly-table-header-background, #fafafa);
414
+ }
415
+
416
+ /* When table has fixed header, fixed columns in header need even higher z-index */
417
+ .table-content-wrapper.fixed-header thead th.fixed-column {
418
+ z-index: 25;
419
+ background-color: var(--nuraly-table-header-background, #fafafa);
420
+ }
421
+
422
+ /* Fixed columns in body */
423
+ tbody td.fixed-column {
424
+ z-index: 8;
425
+ background-color: var(--nuraly-table-row-background, #ffffff);
426
+ }
427
+
428
+ /* Ensure fixed columns in tbody have proper background */
429
+ tbody tr td.fixed-column {
430
+ background-color: var(--nuraly-table-row-background, #ffffff);
431
+ }
432
+
433
+ tbody tr:hover td.fixed-column {
434
+ background-color: var(--nuraly-table-row-hover-background, #f5f5f5);
435
+ }
436
+
437
+ th.fixed-column-left,
438
+ td.fixed-column-left {
439
+ left: 0;
440
+ border-right: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
441
+ }
442
+
443
+ th.fixed-column-right,
444
+ td.fixed-column-right {
445
+ right: 0;
446
+ border-left: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
447
+ }
448
+
449
+ /* Shadow effect for fixed columns */
450
+ th.fixed-column-left::after,
451
+ td.fixed-column-left::after {
452
+ content: '';
453
+ position: absolute;
454
+ top: 0;
455
+ right: -10px;
456
+ bottom: 0;
457
+ width: 10px;
458
+ pointer-events: none;
459
+ transition: box-shadow 0.3s;
460
+ box-shadow: none;
461
+ }
462
+
463
+ .table-content-wrapper.has-scroll th.fixed-column-left::after,
464
+ .table-content-wrapper.has-scroll td.fixed-column-left::after {
465
+ box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
466
+ }
467
+
468
+ th.fixed-column-right::before,
469
+ td.fixed-column-right::before {
470
+ content: '';
471
+ position: absolute;
472
+ top: 0;
473
+ left: -10px;
474
+ bottom: 0;
475
+ width: 10px;
476
+ pointer-events: none;
477
+ transition: box-shadow 0.3s;
478
+ box-shadow: none;
479
+ }
480
+
481
+ .table-content-wrapper.has-scroll th.fixed-column-right::before,
482
+ .table-content-wrapper.has-scroll td.fixed-column-right::before {
483
+ box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
484
+ }
485
+
486
+ /* ============================================ */
487
+ /* Loading State Styles */
488
+ /* ============================================ */
489
+
490
+ /* Skeleton Loading Rows */
491
+ .skeleton-row {
492
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
493
+ }
494
+
495
+ .skeleton-cell {
496
+ padding: var(--nuraly-spacing-3, 0.75rem) var(--nuraly-spacing-4, 1rem);
497
+ border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
498
+ }
499
+
500
+ .skeleton-cell.selection-skeleton {
501
+ width: 48px;
502
+ text-align: center;
503
+ }
504
+
505
+ .skeleton-checkbox {
506
+ width: 16px;
507
+ height: 16px;
508
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
509
+ background-size: 200% 100%;
510
+ animation: skeleton-shimmer 1.5s ease-in-out infinite;
511
+ border-radius: 2px;
512
+ margin: 0 auto;
513
+ }
514
+
515
+ .skeleton-content {
516
+ height: 16px;
517
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
518
+ background-size: 200% 100%;
519
+ animation: skeleton-shimmer 1.5s ease-in-out infinite;
520
+ border-radius: 4px;
521
+ width: 80%;
522
+ }
523
+
524
+ @keyframes skeleton-shimmer {
525
+ 0% {
526
+ background-position: 200% 0;
527
+ }
528
+ 100% {
529
+ background-position: -200% 0;
530
+ }
531
+ }
532
+
533
+ @keyframes skeleton-pulse {
534
+ 0%, 100% {
535
+ opacity: 1;
536
+ }
537
+ 50% {
538
+ opacity: 0.6;
539
+ }
540
+ }
541
+
542
+ /* Spinner Loading */
543
+ .loading-row {
544
+ background-color: var(--nuraly-table-row-background, #ffffff);
545
+ }
546
+
547
+ .loading-cell {
548
+ padding: var(--nuraly-spacing-8, 2rem) var(--nuraly-spacing-4, 1rem);
549
+ text-align: center;
550
+ border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
551
+ }
552
+
553
+ .loading-spinner-container {
554
+ display: flex;
555
+ flex-direction: column;
556
+ align-items: center;
557
+ gap: var(--nuraly-spacing-4, 1rem);
558
+ }
559
+
560
+ .loading-spinner {
561
+ width: 40px;
562
+ height: 40px;
563
+ border: 4px solid var(--nuraly-table-border-color, #f0f0f0);
564
+ border-top-color: var(--nuraly-color-primary, #1890ff);
565
+ border-radius: 50%;
566
+ animation: spinner-rotate 0.8s linear infinite;
567
+ }
568
+
569
+ @keyframes spinner-rotate {
570
+ 0% {
571
+ transform: rotate(0deg);
572
+ }
573
+ 100% {
574
+ transform: rotate(360deg);
575
+ }
576
+ }
577
+
578
+ .loading-text {
579
+ margin: 0;
580
+ color: var(--nuraly-color-text-secondary, #666666);
581
+ font-size: 14px;
582
+ }
583
+
584
+ /* Empty State Styles */
585
+ .empty-row {
586
+ background: var(--nuraly-table-row-bg-color, #ffffff);
587
+ }
588
+
589
+ .empty-row:hover {
590
+ background: var(--nuraly-table-row-bg-color, #ffffff);
591
+ }
592
+
593
+ .empty-cell {
594
+ padding: 64px 24px;
595
+ text-align: center;
596
+ border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
597
+ }
598
+
599
+ .empty-state {
600
+ display: flex;
601
+ flex-direction: column;
602
+ align-items: center;
603
+ gap: 16px;
604
+ }
605
+
606
+ .empty-icon {
607
+ width: 64px;
608
+ height: 64px;
609
+ color: var(--nuraly-color-text-quaternary, #bfbfbf);
610
+ display: flex;
611
+ align-items: center;
612
+ justify-content: center;
613
+ }
614
+
615
+ .empty-icon svg {
616
+ width: 100%;
617
+ height: 100%;
618
+ }
619
+
620
+ .empty-icon nr-icon {
621
+ font-size: 64px;
622
+ }
623
+
624
+ .empty-text {
625
+ margin: 0;
626
+ color: var(--nuraly-color-text-secondary, #666666);
627
+ font-size: 14px;
628
+ line-height: 1.5;
629
+ }
630
+
631
+ /* Expansion Row Styles */
632
+ .expand-icon {
633
+ text-align: center;
634
+ vertical-align: middle;
635
+ transition: transform 0.3s ease;
636
+ outline: none;
637
+ }
638
+
639
+ .expand-icon:hover {
640
+ background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);
641
+ }
642
+
643
+ .expand-icon:focus {
644
+ background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);
645
+ box-shadow: inset 0 0 0 2px var(--nuraly-color-primary, #1890ff);
646
+ }
647
+
648
+ .expand-icon nr-icon {
649
+ transition: transform 0.3s ease;
650
+ }
651
+
652
+ .expand-icon.expanded nr-icon {
653
+ transform: rotate(180deg);
654
+ }
655
+
656
+ .expansion-row {
657
+ transition: all 0.3s ease;
658
+ }
659
+
660
+ .expansion-row.collapsed {
661
+ opacity: 0;
662
+ height: 0;
663
+ overflow: hidden;
664
+ }
665
+
666
+ .expansion-row.expanded {
667
+ opacity: 1;
668
+ animation: slideDown 0.3s ease;
669
+ }
670
+
671
+ .expansion-content {
672
+ padding: 16px;
673
+ background-color: var(--nuraly-color-fill-quaternary, #fafafa);
674
+ border-top: 1px solid var(--nuraly-color-border, #d9d9d9);
675
+ }
676
+
677
+ @keyframes slideDown {
678
+ from {
679
+ opacity: 0;
680
+ transform: translateY(-10px);
681
+ }
682
+ to {
683
+ opacity: 1;
684
+ transform: translateY(0);
685
+ }
12
686
  }
13
687
  `;
14
688
  //# sourceMappingURL=table.style.js.map