@mmlogic/components 0.3.4 → 0.3.6

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