@morscherlab/mint-sdk 1.0.21 → 1.0.23

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morscherlab/mint-sdk",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "MINT Platform SDK — Vue 3 components, composables, and types for plugin development. MINT = Mass-spec INtegrated Toolkit.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,20 +1,21 @@
1
1
  /* DataFrame Component Styles */
2
2
 
3
3
  .mint-dataframe {
4
- background-color: var(--bg-secondary);
4
+ background-color: var(--bg-primary);
5
5
  border-radius: var(--radius-md);
6
6
  overflow: hidden;
7
7
  }
8
8
 
9
9
  .mint-dataframe--bordered {
10
10
  border: 1px solid var(--border-color);
11
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
11
12
  }
12
13
 
13
14
  /* Search header */
14
15
  .mint-dataframe__header {
15
- padding: 0.625rem 0.75rem;
16
- border-bottom: 1px solid var(--border-color);
17
- background-color: var(--bg-tertiary);
16
+ padding: 0.75rem;
17
+ border-bottom: 1px solid var(--border-light);
18
+ background-color: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
18
19
  }
19
20
 
20
21
  .mint-dataframe__search-wrapper {
@@ -34,14 +35,18 @@
34
35
 
35
36
  .mint-dataframe__search {
36
37
  width: 100%;
37
- padding: 0.375rem 0.5rem 0.375rem 1.75rem;
38
- background-color: var(--bg-secondary);
38
+ min-height: 2.25rem;
39
+ padding: 0.5rem 0.625rem 0.5rem 2rem;
40
+ background-color: var(--bg-primary);
39
41
  border: 1px solid var(--border-color);
40
- border-radius: var(--radius-sm);
42
+ border-radius: var(--radius-md);
41
43
  font-size: 0.8125rem;
42
44
  color: var(--text-primary);
43
45
  outline: none;
44
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
46
+ transition:
47
+ background-color 0.15s ease,
48
+ border-color 0.15s ease,
49
+ box-shadow 0.15s ease;
45
50
  }
46
51
 
47
52
  .mint-dataframe__search::placeholder {
@@ -50,6 +55,7 @@
50
55
 
51
56
  .mint-dataframe__search:focus-visible {
52
57
  border-color: transparent;
58
+ background-color: var(--bg-primary);
53
59
  box-shadow: var(--focus-ring);
54
60
  }
55
61
 
@@ -57,6 +63,24 @@
57
63
  .mint-dataframe__table-wrapper {
58
64
  position: relative;
59
65
  overflow-x: auto;
66
+ background-color: var(--bg-primary);
67
+ scrollbar-width: thin;
68
+ }
69
+
70
+ .mint-dataframe__table-wrapper::-webkit-scrollbar {
71
+ width: 0.5rem;
72
+ height: 0.5rem;
73
+ }
74
+
75
+ .mint-dataframe__table-wrapper::-webkit-scrollbar-track {
76
+ background: transparent;
77
+ }
78
+
79
+ .mint-dataframe__table-wrapper::-webkit-scrollbar-thumb {
80
+ background-color: color-mix(in srgb, var(--text-muted) 30%, transparent);
81
+ border: 2px solid transparent;
82
+ border-radius: 9999px;
83
+ background-clip: content-box;
60
84
  }
61
85
 
62
86
  /* Table */
@@ -90,20 +114,21 @@
90
114
 
91
115
  /* Thead */
92
116
  .mint-dataframe__thead {
93
- background-color: var(--bg-tertiary);
117
+ background-color: color-mix(in srgb, var(--bg-secondary) 92%, var(--bg-primary));
94
118
  }
95
119
 
96
120
  .mint-dataframe__thead--sticky {
97
121
  position: sticky;
98
122
  top: 0;
99
123
  z-index: 2;
124
+ box-shadow: 0 1px 0 var(--border-color);
100
125
  }
101
126
 
102
127
  /* Th */
103
128
  .mint-dataframe__th {
104
129
  font-size: 0.6875rem !important;
105
130
  font-weight: 600 !important;
106
- color: var(--text-muted) !important;
131
+ color: var(--text-secondary) !important;
107
132
  text-transform: uppercase !important;
108
133
  letter-spacing: 0.05em !important;
109
134
  text-align: left !important;
@@ -111,7 +136,7 @@
111
136
  border-top: none !important;
112
137
  border-left: none !important;
113
138
  border-right: none !important;
114
- border-bottom: 1px solid var(--border-color) !important;
139
+ border-bottom: 1px solid var(--border-light) !important;
115
140
  background: transparent !important;
116
141
  }
117
142
 
@@ -140,17 +165,20 @@
140
165
  }
141
166
 
142
167
  .mint-dataframe__th--sortable {
168
+ position: relative;
143
169
  cursor: pointer;
144
170
  user-select: none;
145
- transition: color 0.15s ease;
171
+ transition: color 0.15s ease, background-color 0.15s ease;
146
172
  }
147
173
 
148
174
  .mint-dataframe__th--sortable:hover {
149
- color: var(--text-primary);
175
+ background-color: color-mix(in srgb, var(--color-primary) 6%, transparent) !important;
176
+ color: var(--text-primary) !important;
150
177
  }
151
178
 
152
179
  .mint-dataframe__th--sorted {
153
- color: var(--color-primary);
180
+ color: var(--color-primary) !important;
181
+ background-color: color-mix(in srgb, var(--color-primary) 8%, transparent) !important;
154
182
  }
155
183
 
156
184
  .mint-dataframe__th--checkbox {
@@ -163,6 +191,7 @@
163
191
  display: inline-flex;
164
192
  align-items: center;
165
193
  gap: 0.25rem;
194
+ min-height: 1.25rem;
166
195
  }
167
196
 
168
197
  /* Sort icon */
@@ -190,7 +219,7 @@
190
219
  border-top: none !important;
191
220
  border-left: none !important;
192
221
  border-right: none !important;
193
- border-bottom: 1px solid var(--border-color) !important;
222
+ border-bottom: 1px solid var(--border-light) !important;
194
223
  background: transparent !important;
195
224
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
196
225
  }
@@ -240,15 +269,24 @@
240
269
  accent-color: var(--color-primary);
241
270
  }
242
271
 
272
+ .mint-dataframe__checkbox:focus-visible {
273
+ outline: none;
274
+ box-shadow: var(--focus-ring);
275
+ }
276
+
243
277
  /* Row */
244
278
  .mint-dataframe__row {
245
- transition: background-color 0.1s ease;
279
+ transition: background-color 0.15s ease;
246
280
  }
247
281
 
248
282
  .mint-dataframe__row:hover {
249
283
  background-color: var(--bg-hover);
250
284
  }
251
285
 
286
+ .mint-dataframe__row:hover > .mint-dataframe__td {
287
+ background-color: var(--bg-hover) !important;
288
+ }
289
+
252
290
  .mint-dataframe__row--clickable {
253
291
  cursor: pointer;
254
292
  }
@@ -275,19 +313,39 @@
275
313
  }
276
314
 
277
315
  .mint-dataframe__row--striped {
278
- background-color: var(--bg-tertiary);
316
+ background-color: color-mix(in srgb, var(--bg-secondary) 62%, transparent);
317
+ }
318
+
319
+ .mint-dataframe__row--striped > .mint-dataframe__td {
320
+ background-color: color-mix(in srgb, var(--bg-secondary) 62%, transparent) !important;
279
321
  }
280
322
 
281
323
  .mint-dataframe__row--striped:hover {
282
324
  background-color: var(--bg-hover);
283
325
  }
284
326
 
327
+ .mint-dataframe__row--striped:hover > .mint-dataframe__td {
328
+ background-color: var(--bg-hover) !important;
329
+ }
330
+
285
331
  .mint-dataframe__row--selected {
286
- background-color: rgba(59, 130, 246, 0.08);
332
+ background-color: color-mix(in srgb, var(--color-primary) 9%, transparent);
333
+ }
334
+
335
+ .mint-dataframe__row--selected > .mint-dataframe__td {
336
+ background-color: color-mix(in srgb, var(--color-primary) 9%, transparent) !important;
337
+ }
338
+
339
+ .mint-dataframe__row--selected > .mint-dataframe__td:first-child {
340
+ box-shadow: inset 3px 0 0 var(--color-primary);
287
341
  }
288
342
 
289
343
  html.dark .mint-dataframe__row--selected {
290
- background-color: rgba(59, 130, 246, 0.15);
344
+ background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
345
+ }
346
+
347
+ html.dark .mint-dataframe__row--selected > .mint-dataframe__td {
348
+ background-color: color-mix(in srgb, var(--color-primary) 18%, transparent) !important;
291
349
  }
292
350
 
293
351
  .mint-dataframe__row:last-child .mint-dataframe__td {
@@ -300,8 +358,10 @@ html.dark .mint-dataframe__row--selected {
300
358
  flex-direction: column;
301
359
  align-items: center;
302
360
  justify-content: center;
303
- padding: 2rem;
361
+ min-height: 12rem;
362
+ padding: 2.5rem 2rem;
304
363
  color: var(--text-muted);
364
+ background-color: var(--bg-primary);
305
365
  }
306
366
 
307
367
  .mint-dataframe__empty-icon {
@@ -325,7 +385,9 @@ html.dark .mint-dataframe__row--selected {
325
385
  display: flex;
326
386
  align-items: center;
327
387
  justify-content: center;
328
- background-color: rgba(255, 255, 255, 0.6);
388
+ background-color: color-mix(in srgb, var(--bg-primary) 74%, transparent);
389
+ backdrop-filter: blur(2px);
390
+ -webkit-backdrop-filter: blur(2px);
329
391
  z-index: 3;
330
392
  }
331
393
 
@@ -350,9 +412,9 @@ html.dark .mint-dataframe__loading {
350
412
  display: flex;
351
413
  align-items: center;
352
414
  justify-content: space-between;
353
- padding: 0.5rem 0.75rem;
354
- border-top: 1px solid var(--border-color);
355
- background-color: var(--bg-tertiary);
415
+ padding: 0.625rem 0.75rem;
416
+ border-top: 1px solid var(--border-light);
417
+ background-color: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
356
418
  }
357
419
 
358
420
  .mint-dataframe__page-info {
@@ -380,15 +442,20 @@ html.dark .mint-dataframe__loading {
380
442
  width: 1.75rem;
381
443
  height: 1.75rem;
382
444
  border: 1px solid var(--border-color);
383
- border-radius: var(--radius-sm);
384
- background: var(--bg-secondary);
445
+ border-radius: var(--radius-md);
446
+ background: var(--bg-primary);
385
447
  color: var(--text-secondary);
386
448
  cursor: pointer;
387
- transition: background-color 0.15s ease, color 0.15s ease;
449
+ transition:
450
+ background-color 0.15s ease,
451
+ border-color 0.15s ease,
452
+ color 0.15s ease,
453
+ box-shadow 0.15s ease;
388
454
  }
389
455
 
390
456
  .mint-dataframe__page-btn:hover:not(:disabled) {
391
457
  background-color: var(--bg-hover);
458
+ border-color: var(--color-primary);
392
459
  color: var(--text-primary);
393
460
  }
394
461
 
@@ -4,6 +4,7 @@
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  gap: 0.75rem;
7
+ min-height: 0;
7
8
  }
8
9
 
9
10
  /* Shared filter row layout */
@@ -37,26 +38,43 @@
37
38
  display: inline-flex;
38
39
  align-items: center;
39
40
  gap: 0.375rem;
40
- padding: 0.375rem 0.625rem;
41
+ min-height: 2.25rem;
42
+ padding: 0.5rem 0.75rem;
41
43
  border: 1px solid var(--border-color);
42
- border-radius: var(--radius-sm);
44
+ border-radius: var(--radius-md);
43
45
  background: var(--bg-primary);
44
46
  color: var(--text-secondary);
45
47
  font-size: 0.8125rem;
48
+ font-weight: 500;
46
49
  cursor: pointer;
47
50
  white-space: nowrap;
48
51
  position: relative;
49
- transition: border-color 0.15s ease, color 0.15s ease;
52
+ transition:
53
+ background-color 0.15s ease,
54
+ border-color 0.15s ease,
55
+ color 0.15s ease,
56
+ box-shadow 0.15s ease;
50
57
  }
51
58
 
52
59
  .mint-experiment-selector__filters-toggle:hover {
53
60
  border-color: var(--color-primary);
61
+ background-color: var(--bg-hover);
54
62
  color: var(--text-primary);
55
63
  }
56
64
 
65
+ .mint-experiment-selector__filters-toggle:focus-visible {
66
+ outline: none;
67
+ box-shadow: var(--focus-ring);
68
+ }
69
+
57
70
  .mint-experiment-selector__filters-toggle--active {
58
71
  color: var(--color-primary);
59
72
  border-color: var(--color-primary);
73
+ background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
74
+ }
75
+
76
+ html.dark .mint-experiment-selector__filters-toggle--active {
77
+ background-color: color-mix(in srgb, var(--color-primary) 16%, transparent);
60
78
  }
61
79
 
62
80
  /* Active filter badge dot */
@@ -70,7 +88,10 @@
70
88
 
71
89
  /* Advanced filters row */
72
90
  .mint-experiment-selector__filters-advanced {
73
- padding-top: 0.25rem;
91
+ padding: 0.625rem;
92
+ border: 1px solid var(--border-light);
93
+ border-radius: var(--radius-md);
94
+ background-color: color-mix(in srgb, var(--bg-secondary) 72%, transparent);
74
95
  }
75
96
 
76
97
  /* Group toggle checkbox label */
@@ -78,6 +99,7 @@
78
99
  display: inline-flex;
79
100
  align-items: center;
80
101
  gap: 0.375rem;
102
+ min-height: 2.25rem;
81
103
  font-size: 0.8125rem;
82
104
  color: var(--text-secondary);
83
105
  cursor: pointer;
@@ -87,19 +109,24 @@
87
109
  }
88
110
 
89
111
  .mint-experiment-selector__group-checkbox {
90
- width: 14px;
91
- height: 14px;
112
+ width: 1rem;
113
+ height: 1rem;
92
114
  accent-color: var(--color-primary);
93
115
  cursor: pointer;
94
116
  }
95
117
 
118
+ .mint-experiment-selector__group-checkbox:focus-visible {
119
+ outline: none;
120
+ box-shadow: var(--focus-ring);
121
+ }
122
+
96
123
  /* Loading skeleton */
97
124
  .mint-experiment-selector__skeleton {
98
125
  display: flex;
99
126
  flex-direction: column;
100
- gap: 1px;
101
127
  border: 1px solid var(--border-color);
102
- border-radius: var(--radius);
128
+ border-radius: var(--radius-md);
129
+ overflow: hidden;
103
130
  }
104
131
 
105
132
  .mint-experiment-selector__skeleton-row {
@@ -120,7 +147,8 @@
120
147
  /* Error */
121
148
  .mint-experiment-selector__error {
122
149
  padding: 0.75rem;
123
- border-radius: var(--radius-sm);
150
+ border: 1px solid color-mix(in srgb, var(--mint-error) 30%, transparent);
151
+ border-radius: var(--radius-md);
124
152
  background-color: var(--mint-error-bg);
125
153
  color: var(--mint-error);
126
154
  font-size: 0.875rem;
@@ -128,13 +156,30 @@
128
156
 
129
157
  /* Scrollable list */
130
158
  .mint-experiment-selector__list {
131
- max-height: 400px;
159
+ max-height: min(28rem, calc(100vh - 16rem));
132
160
  overflow-y: auto;
133
161
  display: flex;
134
162
  flex-direction: column;
135
- gap: 1px;
136
163
  border: 1px solid var(--border-color);
137
- border-radius: var(--radius);
164
+ border-radius: var(--radius-md);
165
+ background-color: var(--bg-primary);
166
+ scrollbar-width: thin;
167
+ overscroll-behavior: contain;
168
+ }
169
+
170
+ .mint-experiment-selector__list::-webkit-scrollbar {
171
+ width: 0.5rem;
172
+ }
173
+
174
+ .mint-experiment-selector__list::-webkit-scrollbar-track {
175
+ background: transparent;
176
+ }
177
+
178
+ .mint-experiment-selector__list::-webkit-scrollbar-thumb {
179
+ background-color: color-mix(in srgb, var(--text-muted) 30%, transparent);
180
+ border: 2px solid transparent;
181
+ border-radius: 9999px;
182
+ background-clip: content-box;
138
183
  }
139
184
 
140
185
  /* Project group header */
@@ -142,9 +187,11 @@
142
187
  display: flex;
143
188
  align-items: center;
144
189
  gap: 0.5rem;
145
- padding: 0.5rem 1rem;
146
- background-color: var(--bg-secondary, var(--bg-primary));
190
+ min-height: 2.5rem;
191
+ padding: 0.5rem 0.875rem;
192
+ background-color: color-mix(in srgb, var(--bg-secondary) 82%, transparent);
147
193
  border: none;
194
+ border-bottom: 1px solid var(--border-light);
148
195
  cursor: pointer;
149
196
  width: 100%;
150
197
  text-align: left;
@@ -160,6 +207,11 @@
160
207
  background-color: var(--bg-hover);
161
208
  }
162
209
 
210
+ .mint-experiment-selector__group-header:focus-visible {
211
+ outline: none;
212
+ box-shadow: inset 0 0 0 2px var(--color-primary);
213
+ }
214
+
163
215
  .mint-experiment-selector__group-chevron {
164
216
  flex-shrink: 0;
165
217
  transition: transform 0.15s ease;
@@ -193,16 +245,19 @@
193
245
 
194
246
  /* Row */
195
247
  .mint-experiment-selector__row {
248
+ position: relative;
196
249
  display: flex;
197
250
  align-items: center;
198
251
  gap: 0.75rem;
199
- padding: 0.75rem 1rem;
252
+ min-height: 4.125rem;
253
+ padding: 0.75rem 1rem 0.75rem 1.125rem;
200
254
  cursor: pointer;
201
- border-left: 3px solid transparent;
255
+ border-left: 0 solid transparent;
256
+ border-bottom: 1px solid var(--border-light);
202
257
  background-color: var(--bg-primary);
203
258
  transition:
204
259
  background-color 0.15s ease,
205
- border-color 0.15s ease;
260
+ box-shadow 0.15s ease;
206
261
  }
207
262
 
208
263
  .mint-experiment-selector__row:hover {
@@ -210,7 +265,7 @@
210
265
  }
211
266
 
212
267
  .mint-experiment-selector__row--active {
213
- border-left-color: var(--color-primary);
268
+ box-shadow: inset 3px 0 0 var(--color-primary);
214
269
  background-color: var(--color-primary-soft);
215
270
  }
216
271
 
@@ -221,9 +276,10 @@
221
276
  /* Keyboard focused row */
222
277
  .mint-experiment-selector__row--focused {
223
278
  background-color: var(--bg-hover);
224
- outline: 2px solid var(--color-primary);
225
- outline-offset: -2px;
226
- border-radius: 2px;
279
+ outline: none;
280
+ box-shadow:
281
+ inset 0 0 0 2px var(--color-primary),
282
+ inset 3px 0 0 var(--color-primary);
227
283
  }
228
284
 
229
285
  .mint-experiment-selector__row--active.mint-experiment-selector__row--focused {
@@ -255,6 +311,7 @@
255
311
  display: flex;
256
312
  align-items: center;
257
313
  gap: 0.5rem;
314
+ flex-wrap: wrap;
258
315
  font-size: 0.75rem;
259
316
  color: var(--text-muted);
260
317
  margin-top: 0.125rem;
@@ -283,3 +340,9 @@
283
340
  color: var(--color-primary);
284
341
  text-decoration-color: var(--color-primary);
285
342
  }
343
+
344
+ .mint-experiment-selector__clear-btn:focus-visible {
345
+ outline: none;
346
+ box-shadow: var(--focus-ring);
347
+ border-radius: var(--radius-sm);
348
+ }
@@ -4,6 +4,7 @@
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  gap: 1rem;
7
+ min-height: 0;
7
8
  }
8
9
 
9
10
  .mint-settings-modal__tabs {
@@ -125,7 +126,9 @@ html.dark .mint-settings-modal__option-btn--active {
125
126
  flex-direction: row;
126
127
  gap: 1.25rem;
127
128
  align-items: stretch;
129
+ height: clamp(22rem, calc(100vh - 9rem), 42rem);
128
130
  min-height: 22rem;
131
+ overflow: hidden;
129
132
  }
130
133
 
131
134
  .mint-settings-modal__rail {
@@ -134,16 +137,19 @@ html.dark .mint-settings-modal__option-btn--active {
134
137
  display: flex;
135
138
  flex-direction: column;
136
139
  gap: 0.125rem;
137
- padding-right: 0.75rem;
140
+ padding: 0.125rem 0.75rem 0.125rem 0;
138
141
  border-right: 1px solid var(--border-light);
142
+ overflow: hidden;
139
143
  }
140
144
 
141
145
  .mint-settings-modal__rail-item {
146
+ position: relative;
142
147
  display: flex;
143
148
  align-items: flex-start;
144
149
  gap: 0.625rem;
145
150
  width: 100%;
146
- padding: 0.5rem 0.75rem;
151
+ min-height: 2.5rem;
152
+ padding: 0.5rem 0.75rem 0.5rem 0.875rem;
147
153
  font-size: 0.8125rem;
148
154
  font-weight: 500;
149
155
  color: var(--text-secondary);
@@ -172,6 +178,17 @@ html.dark .mint-settings-modal__option-btn--active {
172
178
  background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
173
179
  }
174
180
 
181
+ .mint-settings-modal__rail-item--active::before {
182
+ content: "";
183
+ position: absolute;
184
+ left: 0.375rem;
185
+ top: 0.625rem;
186
+ bottom: 0.625rem;
187
+ width: 2px;
188
+ border-radius: 9999px;
189
+ background-color: var(--color-primary);
190
+ }
191
+
175
192
  html.dark .mint-settings-modal__rail-item--active {
176
193
  background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
177
194
  }
@@ -204,6 +221,7 @@ html.dark .mint-settings-modal__rail-item--active {
204
221
 
205
222
  .mint-settings-modal__rail-item-label {
206
223
  line-height: 1.3;
224
+ overflow-wrap: anywhere;
207
225
  }
208
226
 
209
227
  .mint-settings-modal__rail-item-description {
@@ -211,6 +229,7 @@ html.dark .mint-settings-modal__rail-item--active {
211
229
  font-weight: 400;
212
230
  color: var(--text-muted);
213
231
  line-height: 1.35;
232
+ overflow-wrap: anywhere;
214
233
  }
215
234
 
216
235
  .mint-settings-modal__rail-item--active .mint-settings-modal__rail-item-description {
@@ -220,11 +239,20 @@ html.dark .mint-settings-modal__rail-item--active {
220
239
  .mint-settings-modal__pane {
221
240
  flex: 1;
222
241
  min-width: 0;
242
+ min-height: 0;
223
243
  display: flex;
224
244
  flex-direction: column;
245
+ overflow: hidden;
246
+ }
247
+
248
+ .mint-settings-modal__pane:focus-visible {
249
+ outline: none;
250
+ box-shadow: var(--focus-ring);
251
+ border-radius: var(--radius-md);
225
252
  }
226
253
 
227
254
  .mint-settings-modal__pane-header {
255
+ flex-shrink: 0;
228
256
  margin-bottom: 1rem;
229
257
  padding-bottom: 0.75rem;
230
258
  border-bottom: 1px solid var(--border-light);
@@ -251,8 +279,31 @@ html.dark .mint-settings-modal__rail-item--active {
251
279
  .mint-settings-modal__pane-body {
252
280
  flex: 1;
253
281
  min-height: 0;
282
+ overflow-y: auto;
283
+ scrollbar-width: thin;
254
284
  /* Trailing breathing room so the last field doesn't hug the modal border */
255
- padding-bottom: 0.25rem;
285
+ padding: 0 0.5rem 0.25rem 0;
286
+ margin-right: -0.25rem;
287
+ overscroll-behavior: contain;
288
+ }
289
+
290
+ .mint-settings-modal__pane-body::-webkit-scrollbar {
291
+ width: 0.5rem;
292
+ }
293
+
294
+ .mint-settings-modal__pane-body::-webkit-scrollbar-track {
295
+ background: transparent;
296
+ }
297
+
298
+ .mint-settings-modal__pane-body::-webkit-scrollbar-thumb {
299
+ background-color: color-mix(in srgb, var(--text-muted) 30%, transparent);
300
+ border: 2px solid transparent;
301
+ border-radius: 9999px;
302
+ background-clip: content-box;
303
+ }
304
+
305
+ .mint-settings-modal__pane-body::-webkit-scrollbar-thumb:hover {
306
+ background-color: color-mix(in srgb, var(--text-muted) 45%, transparent);
256
307
  }
257
308
 
258
309
  /* Mobile — collapse the rail into a horizontal scroll-strip so the modal stays usable.
@@ -261,7 +312,10 @@ html.dark .mint-settings-modal__rail-item--active {
261
312
  .mint-settings-modal--vertical {
262
313
  flex-direction: column;
263
314
  gap: 0.875rem;
315
+ height: auto;
316
+ max-height: none;
264
317
  min-height: 0;
318
+ overflow: visible;
265
319
  }
266
320
 
267
321
  .mint-settings-modal__rail {
@@ -281,6 +335,10 @@ html.dark .mint-settings-modal__rail-item--active {
281
335
  padding: 0.5rem 0.75rem;
282
336
  }
283
337
 
338
+ .mint-settings-modal__rail-item--active::before {
339
+ display: none;
340
+ }
341
+
284
342
  /* Two-line description hides on mobile so the rail strip stays compact */
285
343
  .mint-settings-modal__rail-item-description {
286
344
  display: none;