@mmlogic/components 0.4.2 → 0.5.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.
Files changed (98) hide show
  1. package/dist/cjs/client-layout-RZ3Ix-4a.js +87 -0
  2. package/dist/cjs/{index-CAzwGt9u.js → index-DzRfoAPz.js} +36 -9
  3. package/dist/cjs/index.cjs.js +56 -81
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/mosterdcomponents.cjs.js +3 -3
  6. package/dist/cjs/{mrd-boolean-field_24.cjs.entry.js → mrd-boolean-field_23.cjs.entry.js} +175 -287
  7. package/dist/collection/collection-manifest.json +1 -2
  8. package/dist/collection/components/documents/mrd-document-container/mrd-document-container.css +0 -17
  9. package/dist/collection/components/documents/mrd-document-container/mrd-document-container.js +20 -5
  10. package/dist/collection/components/documents/mrd-document-list/mrd-document-list.css +9 -43
  11. package/dist/collection/components/documents/mrd-document-list/mrd-document-list.js +36 -11
  12. package/dist/collection/components/documents/mrd-document-list/tree-view.js +1 -1
  13. package/dist/collection/components/documents/mrd-document-view/mrd-document-view.css +3 -44
  14. package/dist/collection/components/documents/mrd-document-view/mrd-document-view.js +37 -85
  15. package/dist/collection/components/fields/mrd-boolean-field/mrd-boolean-field.css +0 -10
  16. package/dist/collection/components/fields/mrd-currency-field/mrd-currency-field.css +0 -7
  17. package/dist/collection/components/fields/mrd-file-field/mrd-file-field.css +0 -11
  18. package/dist/collection/components/fields/mrd-hyperlink-field/mrd-hyperlink-field.css +0 -3
  19. package/dist/collection/components/fields/mrd-image-field/mrd-image-field.css +6 -20
  20. package/dist/collection/components/fields/mrd-list-field/mrd-list-field.css +0 -4
  21. package/dist/collection/components/fields/mrd-longtext-field/mrd-longtext-field.css +0 -1
  22. package/dist/collection/components/fields/mrd-relation-field/mrd-relation-field.css +9 -35
  23. package/dist/collection/components/fields/mrd-textarea-field/mrd-textarea-field.css +0 -9
  24. package/dist/collection/components/form/mrd-field/mrd-field.css +0 -13
  25. package/dist/collection/components/form/mrd-form/mrd-form.css +0 -19
  26. package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.css +3 -58
  27. package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.js +33 -67
  28. package/dist/collection/components/table/mrd-table/mrd-table.css +38 -185
  29. package/dist/collection/components/table/mrd-table/mrd-table.js +20 -6
  30. package/dist/collection/dev/app.js +80 -43
  31. package/dist/collection/index.js +1 -0
  32. package/dist/collection/utils/document-attachments.js +20 -0
  33. package/dist/collection/{components/documents/mrd-file-preview → utils}/file-preview-kind.js +4 -4
  34. package/dist/collection/utils/i18n.js +0 -32
  35. package/dist/collection/utils/query-params.js +0 -4
  36. package/dist/components/document-attachments.js +1 -0
  37. package/dist/components/field-helpers.js +1 -1
  38. package/dist/components/i18n.js +1 -1
  39. package/dist/components/index.js +1 -1
  40. package/dist/components/mrd-document-container2.js +1 -1
  41. package/dist/components/mrd-document-list2.js +1 -1
  42. package/dist/components/mrd-document-view2.js +1 -1
  43. package/dist/components/mrd-email-field2.js +1 -1
  44. package/dist/components/mrd-form.js +1 -1
  45. package/dist/components/mrd-hyperlink-field2.js +1 -1
  46. package/dist/components/mrd-image-field2.js +1 -1
  47. package/dist/components/mrd-layout-section.js +1 -1
  48. package/dist/components/mrd-number-field2.js +1 -1
  49. package/dist/components/mrd-relation-field2.js +1 -1
  50. package/dist/components/mrd-table2.js +1 -1
  51. package/dist/esm/client-layout-DCOAAH92.js +84 -0
  52. package/dist/esm/{index-DiSEJMA8.js → index-DiSe6vjv.js} +36 -9
  53. package/dist/esm/index.js +30 -80
  54. package/dist/esm/loader.js +3 -3
  55. package/dist/esm/mosterdcomponents.js +4 -4
  56. package/dist/esm/{mrd-boolean-field_24.entry.js → mrd-boolean-field_23.entry.js} +85 -196
  57. package/dist/mosterdcomponents/index.esm.js +1 -1
  58. package/dist/mosterdcomponents/mosterdcomponents.css +7 -1
  59. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  60. package/dist/mosterdcomponents/p-DCOAAH92.js +1 -0
  61. package/dist/mosterdcomponents/p-DiSe6vjv.js +2 -0
  62. package/dist/mosterdcomponents/p-b56f9802.entry.js +1 -0
  63. package/dist/types/components/documents/mrd-document-container/mrd-document-container.d.ts +6 -2
  64. package/dist/types/components/documents/mrd-document-list/mrd-document-list.d.ts +13 -2
  65. package/dist/types/components/documents/mrd-document-list/tree-view.d.ts +1 -1
  66. package/dist/types/components/documents/mrd-document-view/mrd-document-view.d.ts +21 -27
  67. package/dist/types/components/layout/mrd-layout-section/mrd-layout-section.d.ts +14 -15
  68. package/dist/types/components/table/mrd-table/mrd-table.d.ts +8 -2
  69. package/dist/types/components.d.ts +54 -190
  70. package/dist/types/index.d.ts +3 -0
  71. package/dist/types/stencil-public-runtime.d.ts +1 -0
  72. package/dist/types/types/client-layout.d.ts +8 -0
  73. package/dist/types/utils/document-attachments.d.ts +8 -0
  74. package/dist/types/utils/file-preview-kind.d.ts +9 -0
  75. package/dist/types/utils/query-params.d.ts +14 -0
  76. package/package.json +10 -12
  77. package/dist/collection/components/documents/mrd-file-preview/mrd-file-preview.css +0 -59
  78. package/dist/collection/components/documents/mrd-file-preview/mrd-file-preview.js +0 -212
  79. package/dist/components/mrd-file-preview.d.ts +0 -11
  80. package/dist/components/mrd-file-preview.js +0 -1
  81. package/dist/components/mrd-file-preview2.js +0 -1
  82. package/dist/mosterdcomponents/cell-renderer-PbcEU4ph.js.map +0 -1
  83. package/dist/mosterdcomponents/client-layout-DCOAAH92.js.map +0 -1
  84. package/dist/mosterdcomponents/field-helpers-CASS3akr.js.map +0 -1
  85. package/dist/mosterdcomponents/file-upload-common-D1ndi6cN.js.map +0 -1
  86. package/dist/mosterdcomponents/format-BAfsQfy1.js.map +0 -1
  87. package/dist/mosterdcomponents/i18n-B1IIkRF9.js.map +0 -1
  88. package/dist/mosterdcomponents/index-AokUFVX0.js.map +0 -1
  89. package/dist/mosterdcomponents/index-CprJSlzK.js.map +0 -1
  90. package/dist/mosterdcomponents/index.esm.js.map +0 -1
  91. package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +0 -1
  92. package/dist/mosterdcomponents/p-DiSEJMA8.js +0 -2
  93. package/dist/mosterdcomponents/p-aae8a9dc.entry.js +0 -1
  94. package/dist/mosterdcomponents/query-params-B1HfnMOl.js.map +0 -1
  95. package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +0 -1
  96. package/dist/mosterdcomponents/validation-DbEViuiw.js.map +0 -1
  97. package/dist/types/components/documents/mrd-file-preview/file-preview-kind.d.ts +0 -9
  98. package/dist/types/components/documents/mrd-file-preview/mrd-file-preview.d.ts +0 -41
@@ -1,27 +1,18 @@
1
- @charset "UTF-8";
2
1
  :host {
3
2
  display: block;
4
3
  width: 100%;
5
4
  }
6
5
 
7
- /* ── Scroll container (paginated mode) ─────────────────────────────────── */
6
+ .mrd-table {
7
+ overflow-x: auto;
8
+ }
8
9
  .mrd-table__scroll {
9
10
  overflow-y: auto;
10
11
  overflow-x: auto;
11
12
  border: 1px solid var(--mrd-border-color);
12
13
  border-radius: var(--mrd-border-radius);
13
- /* Voorkomt dat de browser scrollTop automatisch aanpast wanneer de
14
- top-spacer groeit (scroll anchoring feedbackloop). */
15
14
  overflow-anchor: none;
16
15
  }
17
-
18
- /* ── Inner wrapper: horizontal scroll in non-paginated mode ────────────── */
19
- /* Only used in non-paginated path; paginated mode scrolls via .mrd-table__scroll */
20
- .mrd-table {
21
- overflow-x: auto;
22
- }
23
-
24
- /* ── Table ─────────────────────────────────────────────────────────────── */
25
16
  .mrd-table__table {
26
17
  width: auto;
27
18
  min-width: 100%;
@@ -29,14 +20,9 @@
29
20
  font-size: var(--mrd-font-size-sm);
30
21
  color: var(--mrd-color-neutral-900);
31
22
  }
32
-
33
- /* When table-layout: fixed is applied (after col widths are locked), allow
34
- horizontal overflow so the scroll container can scroll. */
35
23
  .mrd-table__scroll .mrd-table__table {
36
24
  min-width: max-content;
37
25
  }
38
-
39
- /* ── Sticky header ─────────────────────────────────────────────────────── */
40
26
  .mrd-table__header {
41
27
  position: sticky;
42
28
  top: 0;
@@ -52,39 +38,34 @@
52
38
  text-transform: uppercase;
53
39
  letter-spacing: 0.04em;
54
40
  }
55
-
56
41
  .mrd-table__header--sortable {
57
42
  cursor: pointer;
58
43
  user-select: none;
59
44
  }
60
-
61
45
  .mrd-table__header--sortable:hover {
62
46
  background: var(--mrd-color-neutral-50);
63
47
  color: var(--mrd-color-neutral-800);
64
48
  }
65
-
66
- .mrd-table__header--sorted-asc,
67
- .mrd-table__header--sorted-desc {
49
+ .mrd-table__header--sorted-asc, .mrd-table__header--sorted-desc {
50
+ color: var(--mrd-color-primary);
51
+ border-bottom-color: var(--mrd-color-primary);
52
+ }
53
+ .mrd-table__header--filtered {
68
54
  color: var(--mrd-color-primary);
69
55
  border-bottom-color: var(--mrd-color-primary);
70
56
  }
71
-
72
57
  .mrd-table__header-label {
73
58
  margin-right: var(--mrd-space-1);
74
59
  }
75
-
76
60
  .mrd-table__sort-icon {
77
61
  font-size: 0.85rem;
78
62
  opacity: 0.4;
79
63
  vertical-align: middle;
80
64
  }
81
-
82
- .mrd-table__header--sorted-asc .mrd-table__sort-icon,
83
- .mrd-table__header--sorted-desc .mrd-table__sort-icon {
65
+ .mrd-table__header--sorted-asc .mrd-table__sort-icon, .mrd-table__header--sorted-desc .mrd-table__sort-icon {
84
66
  opacity: 1;
85
67
  color: var(--mrd-color-primary);
86
68
  }
87
-
88
69
  .mrd-table__filter-icon {
89
70
  display: inline-flex;
90
71
  align-items: center;
@@ -92,55 +73,45 @@
92
73
  margin-left: var(--mrd-space-1);
93
74
  color: var(--mrd-color-primary);
94
75
  }
95
-
96
- /* ── Data rows ─────────────────────────────────────────────────────────── */
97
- /* Background is set via inline style based on absolute row index,
98
- so zebra striping stays correct even with virtual spacer rows. */
99
76
  .mrd-table__row {
100
77
  border-bottom: 1px solid var(--mrd-border-color);
101
78
  }
102
-
103
- /* !important overrides the inline zebra background on hover */
104
79
  .mrd-table__row:hover {
105
80
  background: var(--mrd-color-neutral-200) !important;
106
81
  }
107
-
108
82
  .mrd-table__row--clickable {
109
83
  cursor: pointer;
110
84
  }
111
-
112
- /* ── Spacer rows (virtual scroll padding above/below render window) ─────── */
85
+ .mrd-table__row--loading {
86
+ background: transparent;
87
+ }
88
+ .mrd-table__row--failed {
89
+ background: transparent;
90
+ }
113
91
  .mrd-table__spacer {
114
92
  border: none;
115
93
  }
116
-
117
94
  .mrd-table__spacer td {
118
95
  padding: 0;
119
96
  border: none;
120
97
  }
121
-
122
- /* ── Cells ─────────────────────────────────────────────────────────────── */
123
98
  .mrd-table__cell {
124
99
  padding: var(--mrd-space-2) var(--mrd-space-4);
125
100
  vertical-align: top;
126
101
  white-space: nowrap;
127
102
  }
128
-
129
103
  .mrd-table__cell--numeric {
130
104
  text-align: right;
131
105
  font-variant-numeric: tabular-nums;
132
106
  }
133
-
134
- /* ── Loading placeholder row ───────────────────────────────────────────── */
135
- .mrd-table__row--loading {
136
- background: transparent;
137
- }
138
-
139
107
  .mrd-table__cell--placeholder {
140
108
  padding: var(--mrd-space-2) var(--mrd-space-4);
141
109
  border-bottom: 1px solid var(--mrd-border-color);
142
110
  }
143
-
111
+ .mrd-table__cell--failed {
112
+ padding: var(--mrd-space-2) var(--mrd-space-4);
113
+ border-bottom: 1px solid var(--mrd-border-color);
114
+ }
144
115
  .mrd-table__placeholder-bar {
145
116
  display: block;
146
117
  height: 0.75rem;
@@ -150,25 +121,6 @@
150
121
  background-size: 200% 100%;
151
122
  animation: mrd-shimmer 1.4s ease infinite;
152
123
  }
153
-
154
- @keyframes mrd-shimmer {
155
- 0% {
156
- background-position: 200% 0;
157
- }
158
- 100% {
159
- background-position: -200% 0;
160
- }
161
- }
162
- /* ── Failed page-load row ─────────────────────────────────────────────── */
163
- .mrd-table__row--failed {
164
- background: transparent;
165
- }
166
-
167
- .mrd-table__cell--failed {
168
- padding: var(--mrd-space-2) var(--mrd-space-4);
169
- border-bottom: 1px solid var(--mrd-border-color);
170
- }
171
-
172
124
  .mrd-table__retry-button {
173
125
  border: none;
174
126
  background: none;
@@ -178,22 +130,17 @@
178
130
  cursor: pointer;
179
131
  text-decoration: underline;
180
132
  }
181
-
182
- /* ── Toolbar ───────────────────────────────────────────────────────────── */
183
133
  .mrd-table__toolbar {
184
134
  display: flex;
185
135
  align-items: center;
186
136
  justify-content: space-between;
187
137
  padding-bottom: var(--mrd-space-2);
188
138
  }
189
-
190
- .mrd-table__toolbar-left,
191
- .mrd-table__toolbar-right {
139
+ .mrd-table__toolbar-left, .mrd-table__toolbar-right {
192
140
  display: flex;
193
141
  gap: var(--mrd-space-2);
194
142
  align-items: center;
195
143
  }
196
-
197
144
  .mrd-table__toolbar-center {
198
145
  flex: 1;
199
146
  display: flex;
@@ -201,14 +148,11 @@
201
148
  align-items: center;
202
149
  gap: var(--mrd-space-1);
203
150
  }
204
-
205
- /* ── View switcher ───────────────────────────────────────────────────────── */
206
151
  .mrd-table__view-switcher {
207
152
  display: flex;
208
153
  align-items: center;
209
154
  gap: var(--mrd-space-1);
210
155
  }
211
-
212
156
  .mrd-table__view-arrow {
213
157
  background: none;
214
158
  border: none;
@@ -218,15 +162,12 @@
218
162
  font-size: var(--mrd-font-size-xs);
219
163
  line-height: 1;
220
164
  }
221
-
222
165
  .mrd-table__view-arrow:hover {
223
166
  color: var(--mrd-color-neutral-800);
224
167
  }
225
-
226
168
  .mrd-table__view-title-wrap {
227
169
  position: relative;
228
170
  }
229
-
230
171
  .mrd-table__view-title {
231
172
  font-size: var(--mrd-font-size-sm);
232
173
  font-weight: 600;
@@ -242,11 +183,9 @@
242
183
  overflow: hidden;
243
184
  text-overflow: ellipsis;
244
185
  }
245
-
246
186
  .mrd-table__view-title:hover {
247
187
  color: var(--mrd-color-primary);
248
188
  }
249
-
250
189
  .mrd-table__view-popover {
251
190
  position: absolute;
252
191
  top: calc(100% + var(--mrd-space-1));
@@ -260,7 +199,6 @@
260
199
  min-width: 160px;
261
200
  padding: var(--mrd-space-1) 0;
262
201
  }
263
-
264
202
  .mrd-table__view-popover-item {
265
203
  display: block;
266
204
  width: 100%;
@@ -274,16 +212,13 @@
274
212
  color: var(--mrd-color-neutral-700);
275
213
  white-space: nowrap;
276
214
  }
277
-
278
215
  .mrd-table__view-popover-item:hover {
279
216
  background: var(--mrd-color-neutral-50);
280
217
  }
281
-
282
218
  .mrd-table__view-popover-item--active {
283
219
  font-weight: 600;
284
220
  color: var(--mrd-color-primary);
285
221
  }
286
-
287
222
  .mrd-table__action {
288
223
  position: relative;
289
224
  display: inline-flex;
@@ -299,46 +234,39 @@
299
234
  color: var(--mrd-color-neutral-400);
300
235
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
301
236
  }
302
-
303
237
  .mrd-table__action:hover {
304
238
  background-color: var(--mrd-color-neutral-100);
305
239
  border-color: var(--mrd-color-neutral-300);
306
240
  color: var(--mrd-color-neutral-700);
307
241
  }
308
-
242
+ .mrd-table__action:hover .mrd-table__action-tooltip {
243
+ display: block;
244
+ }
309
245
  .mrd-table__action:disabled {
310
246
  opacity: 0.4;
311
247
  cursor: not-allowed;
312
248
  }
313
-
314
- /* Primary: slightly more prominent than regular at rest; primary fill on hover */
315
249
  .mrd-table__action--primary {
316
250
  color: var(--mrd-color-neutral-500);
317
251
  }
318
-
319
252
  .mrd-table__action--primary:hover {
320
253
  background: var(--mrd-color-primary);
321
254
  border-color: var(--mrd-color-primary);
322
255
  color: var(--mrd-color-white);
323
256
  }
324
-
325
257
  .mrd-table__action--danger {
326
258
  color: var(--mrd-color-error);
327
259
  }
328
-
329
260
  .mrd-table__action--danger:hover {
330
261
  background-color: var(--mrd-color-error-light, #fef2f2);
331
262
  border-color: var(--mrd-color-error);
332
263
  }
333
-
334
264
  .mrd-table__action-icon {
335
265
  width: 1.25rem;
336
266
  height: 1.25rem;
337
267
  pointer-events: none;
338
268
  fill: currentColor;
339
269
  }
340
-
341
- /* CSS tooltip — appears above the button on hover */
342
270
  .mrd-table__action-tooltip {
343
271
  display: none;
344
272
  position: absolute;
@@ -354,16 +282,9 @@
354
282
  pointer-events: none;
355
283
  z-index: 10;
356
284
  }
357
-
358
- .mrd-table__action:hover .mrd-table__action-tooltip {
359
- display: block;
360
- }
361
-
362
- /* ── Create-type picker ──────────────────────────────────────────────────── */
363
285
  .mrd-table__create-picker-wrap {
364
286
  position: relative;
365
287
  }
366
-
367
288
  .mrd-table__create-picker {
368
289
  position: absolute;
369
290
  right: 0;
@@ -376,7 +297,6 @@
376
297
  min-width: 10rem;
377
298
  padding: var(--mrd-space-1) 0;
378
299
  }
379
-
380
300
  .mrd-table__create-picker-item {
381
301
  display: block;
382
302
  width: 100%;
@@ -389,26 +309,20 @@
389
309
  font-family: var(--mrd-font-family);
390
310
  color: var(--mrd-color-neutral-800);
391
311
  }
392
-
393
312
  .mrd-table__create-picker-item:hover {
394
313
  background: var(--mrd-color-neutral-50);
395
314
  color: var(--mrd-color-neutral-900);
396
315
  }
397
-
398
- /* ── Filter toggle active state ────────────────────────────────────────── */
399
316
  .mrd-table__filter-toggle--active {
400
317
  background: var(--mrd-color-primary);
401
318
  border-color: var(--mrd-color-primary);
402
319
  color: var(--mrd-color-white);
403
320
  }
404
-
405
321
  .mrd-table__filter-toggle--active:hover {
406
322
  background: var(--mrd-color-primary-dark, var(--mrd-color-primary));
407
323
  border-color: var(--mrd-color-primary-dark, var(--mrd-color-primary));
408
324
  color: var(--mrd-color-white);
409
325
  }
410
-
411
- /* Badge showing count of active filters */
412
326
  .mrd-table__filter-badge {
413
327
  position: absolute;
414
328
  top: -6px;
@@ -425,14 +339,6 @@
425
339
  text-align: center;
426
340
  pointer-events: none;
427
341
  }
428
-
429
- /* ── Header: filtered indicator ─────────────────────────────────────────── */
430
- .mrd-table__header--filtered {
431
- color: var(--mrd-color-primary);
432
- border-bottom-color: var(--mrd-color-primary);
433
- }
434
-
435
- /* ── Filter popup ───────────────────────────────────────────────────────── */
436
342
  .mrd-table__filter-popup {
437
343
  position: fixed;
438
344
  width: 280px;
@@ -443,7 +349,6 @@
443
349
  z-index: var(--mrd-z-dropdown, 200);
444
350
  font-size: var(--mrd-font-size-sm);
445
351
  }
446
-
447
352
  .mrd-table__filter-popup-header {
448
353
  display: flex;
449
354
  align-items: center;
@@ -451,13 +356,11 @@
451
356
  padding: var(--mrd-space-2) var(--mrd-space-3);
452
357
  border-bottom: 1px solid var(--mrd-border-color);
453
358
  }
454
-
455
359
  .mrd-table__filter-popup-title {
456
360
  font-weight: var(--mrd-font-weight-medium);
457
361
  color: var(--mrd-color-neutral-800);
458
362
  font-size: var(--mrd-font-size-sm);
459
363
  }
460
-
461
364
  .mrd-table__filter-close {
462
365
  background: transparent;
463
366
  border: none;
@@ -468,16 +371,13 @@
468
371
  border-radius: 3px;
469
372
  line-height: 1;
470
373
  }
471
-
472
374
  .mrd-table__filter-close:hover {
473
375
  background: var(--mrd-color-neutral-100);
474
376
  color: var(--mrd-color-neutral-800);
475
377
  }
476
-
477
378
  .mrd-table__filter-section {
478
379
  padding: var(--mrd-space-2) var(--mrd-space-3);
479
380
  }
480
-
481
381
  .mrd-table__filter-section-label {
482
382
  font-size: var(--mrd-font-size-xs);
483
383
  font-weight: var(--mrd-font-weight-medium);
@@ -486,12 +386,10 @@
486
386
  color: var(--mrd-color-neutral-500);
487
387
  margin-bottom: var(--mrd-space-2);
488
388
  }
489
-
490
389
  .mrd-table__filter-sort-buttons {
491
390
  display: flex;
492
391
  gap: var(--mrd-space-2);
493
392
  }
494
-
495
393
  .mrd-table__filter-sort-btn {
496
394
  flex: 1;
497
395
  padding: var(--mrd-space-1) var(--mrd-space-2);
@@ -502,32 +400,25 @@
502
400
  font-size: var(--mrd-font-size-xs);
503
401
  color: var(--mrd-color-neutral-700);
504
402
  }
505
-
506
403
  .mrd-table__filter-sort-btn:hover {
507
404
  background: var(--mrd-color-neutral-100);
508
405
  }
509
-
510
406
  .mrd-table__filter-sort-btn--active {
511
407
  background: var(--mrd-color-primary);
512
408
  border-color: var(--mrd-color-primary);
513
409
  color: var(--mrd-color-white);
514
410
  }
515
-
516
411
  .mrd-table__filter-divider {
517
412
  height: 1px;
518
413
  background: var(--mrd-border-color);
519
414
  margin: 0;
520
415
  }
521
-
522
- /* ── Filter editors ─────────────────────────────────────────────────────── */
523
416
  .mrd-table__filter-editor {
524
417
  display: flex;
525
418
  flex-direction: column;
526
419
  gap: var(--mrd-space-2);
527
420
  }
528
-
529
- .mrd-table__filter-select,
530
- .mrd-table__filter-input {
421
+ .mrd-table__filter-select, .mrd-table__filter-input {
531
422
  width: 100%;
532
423
  padding: var(--mrd-space-1) var(--mrd-space-2);
533
424
  border: 1px solid var(--mrd-border-color);
@@ -537,54 +428,43 @@
537
428
  background: var(--mrd-color-white);
538
429
  box-sizing: border-box;
539
430
  }
540
-
541
- .mrd-table__filter-select:focus,
542
- .mrd-table__filter-input:focus {
431
+ .mrd-table__filter-select:focus, .mrd-table__filter-input:focus {
543
432
  outline: none;
544
433
  border-color: var(--mrd-color-primary);
545
434
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06);
546
435
  }
547
-
548
436
  .mrd-table__filter-range {
549
437
  display: flex;
550
438
  align-items: center;
551
439
  gap: var(--mrd-space-1);
552
440
  }
553
-
554
441
  .mrd-table__filter-range .mrd-table__filter-input {
555
442
  flex: 1;
556
443
  min-width: 0;
557
444
  }
558
-
559
- .mrd-table__filter-range-sep {
560
- color: var(--mrd-color-neutral-400);
561
- flex-shrink: 0;
562
- }
563
-
564
445
  .mrd-table__filter-range--stacked {
565
446
  flex-direction: column;
566
447
  align-items: stretch;
567
448
  gap: var(--mrd-space-2);
568
449
  }
569
-
450
+ .mrd-table__filter-range-sep {
451
+ color: var(--mrd-color-neutral-400);
452
+ flex-shrink: 0;
453
+ }
570
454
  .mrd-table__filter-range-label {
571
455
  font-size: var(--mrd-font-size-xs);
572
456
  color: var(--mrd-color-neutral-500);
573
457
  margin-bottom: 2px;
574
458
  }
575
-
576
- /* Radio group */
577
459
  .mrd-table__filter-radio-group {
578
460
  display: flex;
579
461
  flex-direction: column;
580
462
  gap: var(--mrd-space-1);
581
463
  }
582
-
583
464
  .mrd-table__filter-radio-group--inline {
584
465
  flex-direction: row;
585
466
  gap: var(--mrd-space-3);
586
467
  }
587
-
588
468
  .mrd-table__filter-radio-label {
589
469
  display: flex;
590
470
  align-items: center;
@@ -593,8 +473,6 @@
593
473
  font-size: var(--mrd-font-size-sm);
594
474
  color: var(--mrd-color-neutral-800);
595
475
  }
596
-
597
- /* List (enum) checkboxes */
598
476
  .mrd-table__filter-list {
599
477
  display: flex;
600
478
  flex-direction: column;
@@ -602,13 +480,11 @@
602
480
  max-height: 180px;
603
481
  overflow-y: auto;
604
482
  }
605
-
606
483
  .mrd-table__filter-list-controls {
607
484
  display: flex;
608
485
  gap: var(--mrd-space-2);
609
486
  margin-bottom: var(--mrd-space-1);
610
487
  }
611
-
612
488
  .mrd-table__filter-list-btn {
613
489
  font-size: var(--mrd-font-size-xs);
614
490
  color: var(--mrd-color-primary);
@@ -618,7 +494,6 @@
618
494
  padding: 0;
619
495
  text-decoration: underline;
620
496
  }
621
-
622
497
  .mrd-table__filter-checkbox-label {
623
498
  display: flex;
624
499
  align-items: center;
@@ -627,15 +502,12 @@
627
502
  font-size: var(--mrd-font-size-sm);
628
503
  color: var(--mrd-color-neutral-800);
629
504
  }
630
-
631
505
  .mrd-table__filter-no-support {
632
506
  font-size: var(--mrd-font-size-sm);
633
507
  color: var(--mrd-color-neutral-500);
634
508
  margin: 0;
635
509
  font-style: italic;
636
510
  }
637
-
638
- /* ── Popup footer ───────────────────────────────────────────────────────── */
639
511
  .mrd-table__filter-popup-footer {
640
512
  display: flex;
641
513
  justify-content: flex-end;
@@ -643,7 +515,6 @@
643
515
  padding: var(--mrd-space-2) var(--mrd-space-3);
644
516
  border-top: 1px solid var(--mrd-border-color);
645
517
  }
646
-
647
518
  .mrd-table__filter-btn {
648
519
  padding: var(--mrd-space-1) var(--mrd-space-3);
649
520
  border-radius: var(--mrd-border-radius);
@@ -651,32 +522,25 @@
651
522
  font-size: var(--mrd-font-size-sm);
652
523
  cursor: pointer;
653
524
  }
654
-
655
525
  .mrd-table__filter-btn--clear {
656
526
  background: transparent;
657
527
  color: var(--mrd-color-neutral-600);
658
528
  }
659
-
660
529
  .mrd-table__filter-btn--clear:hover {
661
530
  background: var(--mrd-color-neutral-100);
662
531
  }
663
-
664
532
  .mrd-table__filter-btn--apply {
665
533
  background: var(--mrd-color-primary);
666
534
  border-color: var(--mrd-color-primary);
667
535
  color: var(--mrd-color-white);
668
536
  }
669
-
670
537
  .mrd-table__filter-btn--apply:hover {
671
538
  background: var(--mrd-color-primary-dark, var(--mrd-color-primary));
672
539
  border-color: var(--mrd-color-primary-dark, var(--mrd-color-primary));
673
540
  }
674
-
675
- /* ── Totals row ─────────────────────────────────────────────────────────── */
676
541
  .mrd-table__totals-row {
677
542
  border-top: 2px solid var(--mrd-border-color);
678
543
  }
679
-
680
544
  .mrd-table__totals-cell {
681
545
  position: sticky;
682
546
  bottom: 0;
@@ -688,20 +552,15 @@
688
552
  white-space: nowrap;
689
553
  border-top: 2px solid var(--mrd-border-color);
690
554
  }
691
-
692
555
  .mrd-table__totals-cell--numeric {
693
556
  text-align: right;
694
557
  }
695
-
696
- /* ── Pagination footer ─────────────────────────────────────────────────── */
697
558
  .mrd-table__footer {
698
559
  padding: var(--mrd-space-1) var(--mrd-space-2);
699
560
  font-size: var(--mrd-font-size-xs);
700
561
  color: var(--mrd-color-neutral-500);
701
562
  text-align: right;
702
563
  }
703
-
704
- /* ── Empty state ───────────────────────────────────────────────────────── */
705
564
  .mrd-table__empty {
706
565
  padding: var(--mrd-space-4) var(--mrd-space-3);
707
566
  color: var(--mrd-color-neutral-500);
@@ -709,8 +568,6 @@
709
568
  text-align: center;
710
569
  margin: 0;
711
570
  }
712
-
713
- /* ── File / image download cell ─────────────────────────────────────────── */
714
571
  .mrd-table__file-btn {
715
572
  display: inline-flex;
716
573
  align-items: center;
@@ -725,19 +582,15 @@
725
582
  max-width: 100%;
726
583
  overflow: hidden;
727
584
  }
728
-
729
585
  .mrd-table__file-btn:hover {
730
586
  text-decoration: underline;
731
587
  color: var(--mrd-color-primary-dark);
732
588
  }
733
-
734
589
  .mrd-table__file-icon {
735
590
  flex-shrink: 0;
736
591
  width: 1rem;
737
592
  height: 1rem;
738
593
  }
739
-
740
- /* ── TEXTBLOCK expand button ────────────────────────────────────────────── */
741
594
  .mrd-table__textblock-btn {
742
595
  display: inline;
743
596
  background: none;
@@ -750,12 +603,9 @@
750
603
  line-height: inherit;
751
604
  vertical-align: middle;
752
605
  }
753
-
754
606
  .mrd-table__textblock-btn:hover {
755
607
  color: var(--mrd-color-primary-dark);
756
608
  }
757
-
758
- /* ── TEXTBLOCK modal ────────────────────────────────────────────────────── */
759
609
  .mrd-table__modal-backdrop {
760
610
  position: fixed;
761
611
  inset: 0;
@@ -765,7 +615,6 @@
765
615
  align-items: center;
766
616
  justify-content: center;
767
617
  }
768
-
769
618
  .mrd-table__modal {
770
619
  background: #fff;
771
620
  border-radius: var(--mrd-radius-md, 0.5rem);
@@ -776,7 +625,6 @@
776
625
  position: relative;
777
626
  box-shadow: var(--mrd-shadow-lg);
778
627
  }
779
-
780
628
  .mrd-table__modal-close {
781
629
  position: absolute;
782
630
  top: var(--mrd-space-3);
@@ -789,11 +637,9 @@
789
637
  color: var(--mrd-color-text-muted, #6b7280);
790
638
  padding: 0;
791
639
  }
792
-
793
640
  .mrd-table__modal-close:hover {
794
641
  color: var(--mrd-color-text, #111827);
795
642
  }
796
-
797
643
  .mrd-table__modal-text {
798
644
  margin: 0;
799
645
  padding-right: var(--mrd-space-6);
@@ -802,7 +648,6 @@
802
648
  font-size: var(--mrd-font-size-sm);
803
649
  line-height: 1.6;
804
650
  }
805
-
806
651
  .mrd-table__json-preview {
807
652
  font-family: var(--mrd-font-family-mono);
808
653
  font-size: var(--mrd-font-size-xs);
@@ -813,7 +658,6 @@
813
658
  max-width: calc(100% - 1.5rem);
814
659
  vertical-align: middle;
815
660
  }
816
-
817
661
  .mrd-table__modal-json {
818
662
  margin: 0;
819
663
  padding-right: var(--mrd-space-6);
@@ -824,4 +668,13 @@
824
668
  line-height: 1.6;
825
669
  background: none;
826
670
  border: none;
671
+ }
672
+
673
+ @keyframes mrd-shimmer {
674
+ 0% {
675
+ background-position: 200% 0;
676
+ }
677
+ 100% {
678
+ background-position: -200% 0;
679
+ }
827
680
  }