@morscherlab/mint-sdk 1.0.0-rc.5 → 1.0.0-rc.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 (55) hide show
  1. package/dist/components/AppSidebar.vue.d.ts +6 -3
  2. package/dist/components/BaseCheckbox.vue.d.ts +6 -1
  3. package/dist/components/BasePill.vue.d.ts +1 -1
  4. package/dist/components/BaseRadioGroup.vue.d.ts +1 -1
  5. package/dist/components/BaseToggle.vue.d.ts +6 -1
  6. package/dist/components/CollapsibleCard.vue.d.ts +9 -0
  7. package/dist/components/ControlWorkspaceView.vue.d.ts +1 -1
  8. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +1 -1
  9. package/dist/components/PluginWorkspaceView.vue.d.ts +5 -1
  10. package/dist/components/index.js +2 -2
  11. package/dist/{components-DtHA2bgp.js → components-Blx4MG--.js} +565 -1477
  12. package/dist/components-Blx4MG--.js.map +1 -0
  13. package/dist/composables/controlSchemaTypes.d.ts +7 -1
  14. package/dist/composables/index.js +3 -3
  15. package/dist/{composables-Dlg8jenH.js → composables-CHDjDIQT.js} +2 -2
  16. package/dist/{composables-Dlg8jenH.js.map → composables-CHDjDIQT.js.map} +1 -1
  17. package/dist/index.js +4 -4
  18. package/dist/install.js +2 -2
  19. package/dist/styles.css +867 -126
  20. package/dist/templates/index.js +1 -1
  21. package/dist/{templates-DtdUvJ4c.js → templates-DSbHJC4v.js} +1351 -120
  22. package/dist/templates-DSbHJC4v.js.map +1 -0
  23. package/dist/types/components.d.ts +12 -0
  24. package/dist/types/form-builder.d.ts +3 -0
  25. package/dist/types/index.d.ts +1 -1
  26. package/dist/{useProtocolTemplates-Bm5vyH4_.js → useProtocolTemplates-BbPOYPzO.js} +2 -2
  27. package/dist/{useProtocolTemplates-Bm5vyH4_.js.map → useProtocolTemplates-BbPOYPzO.js.map} +1 -1
  28. package/package.json +1 -1
  29. package/src/__tests__/components/AppSidebar.test.ts +67 -0
  30. package/src/__tests__/components/CollapsibleCard.test.ts +47 -0
  31. package/src/__tests__/components/FormBuilder.test.ts +57 -0
  32. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +2 -0
  33. package/src/components/AppSidebar.story.vue +79 -6
  34. package/src/components/AppSidebar.vue +72 -0
  35. package/src/components/BaseCheckbox.story.vue +27 -0
  36. package/src/components/BaseCheckbox.vue +63 -1
  37. package/src/components/BaseToggle.story.vue +27 -0
  38. package/src/components/BaseToggle.vue +66 -1
  39. package/src/components/CollapsibleCard.vue +123 -45
  40. package/src/components/FormBuilder.story.vue +13 -0
  41. package/src/components/PluginWorkspaceView.shell.ts +1 -0
  42. package/src/components/PluginWorkspaceView.vue +3 -0
  43. package/src/components/internal/FormFieldRendererInternal.vue +23 -5
  44. package/src/composables/controlSchemaAdapters.ts +3 -0
  45. package/src/composables/controlSchemaFormFields.ts +3 -0
  46. package/src/composables/controlSchemaTypes.ts +8 -0
  47. package/src/styles/components/app-sidebar.css +134 -6
  48. package/src/styles/components/checkbox.css +87 -0
  49. package/src/styles/components/collapsible-card.css +154 -14
  50. package/src/styles/components/toggle.css +80 -0
  51. package/src/types/components.ts +21 -0
  52. package/src/types/form-builder.ts +3 -0
  53. package/src/types/index.ts +2 -0
  54. package/dist/components-DtHA2bgp.js.map +0 -1
  55. package/dist/templates-DtdUvJ4c.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  height: 100%;
7
7
  overflow: hidden;
8
8
  background-color: var(--bg-secondary);
9
- transition: width 180ms ease;
9
+ transition: width 180ms ease, background-color 150ms ease;
10
10
  }
11
11
 
12
12
  .mint-sidebar--hidden {
@@ -54,6 +54,11 @@
54
54
  gap: 0.75rem;
55
55
  }
56
56
 
57
+ .mint-sidebar--analysis.mint-sidebar--dense .mint-sidebar__sections {
58
+ padding: 0.75rem;
59
+ gap: 0.75rem;
60
+ }
61
+
57
62
  /* Header / Footer slots */
58
63
  .mint-sidebar__header {
59
64
  padding: 0.75rem;
@@ -182,6 +187,107 @@
182
187
  gap: 0.5rem;
183
188
  }
184
189
 
190
+ .mint-sidebar__collapsed--default {
191
+ padding-top: 0.75rem;
192
+ }
193
+
194
+ .mint-sidebar__rail-item {
195
+ position: relative;
196
+ display: inline-flex;
197
+ align-items: center;
198
+ justify-content: center;
199
+ width: 2rem;
200
+ height: 2rem;
201
+ border: 0;
202
+ border-radius: var(--radius-md);
203
+ color: var(--text-secondary);
204
+ background: transparent;
205
+ cursor: pointer;
206
+ transition:
207
+ background-color 150ms ease,
208
+ transform 150ms ease;
209
+ }
210
+
211
+ .mint-sidebar__rail-item:hover {
212
+ background: var(--bg-tertiary);
213
+ transform: translateY(-1px);
214
+ }
215
+
216
+ .mint-sidebar__rail-item:focus-visible {
217
+ outline: none;
218
+ box-shadow: var(--focus-ring);
219
+ }
220
+
221
+ .mint-sidebar__rail-icon {
222
+ display: inline-flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ width: 1.75rem;
226
+ height: 1.75rem;
227
+ border-radius: var(--radius-md);
228
+ transition: transform 150ms ease;
229
+ }
230
+
231
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
232
+ transform: scale(1.04);
233
+ }
234
+
235
+ .mint-sidebar__rail-svg {
236
+ width: 0.9375rem;
237
+ height: 0.9375rem;
238
+ }
239
+
240
+ .mint-sidebar__rail-text-icon {
241
+ font-size: 0.8125rem;
242
+ font-weight: 700;
243
+ line-height: 1;
244
+ }
245
+
246
+ .mint-sidebar__rail-badge {
247
+ position: absolute;
248
+ top: -0.25rem;
249
+ right: -0.25rem;
250
+ min-width: 1rem;
251
+ height: 1rem;
252
+ padding: 0 0.25rem;
253
+ border-radius: 9999px;
254
+ background: var(--mint-sidebar-rail-badge-color);
255
+ color: white;
256
+ font-size: 0.625rem;
257
+ font-weight: 700;
258
+ line-height: 1rem;
259
+ text-align: center;
260
+ font-variant-numeric: tabular-nums;
261
+ }
262
+
263
+ .mint-sidebar__rail-badge--primary {
264
+ --mint-sidebar-rail-badge-color: var(--color-primary);
265
+ }
266
+
267
+ .mint-sidebar__rail-badge--cta {
268
+ --mint-sidebar-rail-badge-color: var(--color-cta);
269
+ }
270
+
271
+ .mint-sidebar__rail-badge--success {
272
+ --mint-sidebar-rail-badge-color: var(--mint-success);
273
+ }
274
+
275
+ .mint-sidebar__rail-badge--warning {
276
+ --mint-sidebar-rail-badge-color: var(--mint-warning);
277
+ }
278
+
279
+ .mint-sidebar__rail-badge--error {
280
+ --mint-sidebar-rail-badge-color: var(--mint-error);
281
+ }
282
+
283
+ .mint-sidebar__rail-badge--info {
284
+ --mint-sidebar-rail-badge-color: var(--mint-info);
285
+ }
286
+
287
+ .mint-sidebar__rail-badge--neutral {
288
+ --mint-sidebar-rail-badge-color: var(--text-secondary);
289
+ }
290
+
185
291
  /* Dense sidebar variant — compact sections */
186
292
  .mint-sidebar--dense .mint-sidebar__sections {
187
293
  padding: 0.5rem;
@@ -202,24 +308,29 @@
202
308
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
203
309
  }
204
310
 
311
+ .mint-sidebar--analysis .mint-sidebar__sections > .mint-collapsible-card {
312
+ border-color: var(--border-color);
313
+ border-radius: var(--radius-lg);
314
+ }
315
+
205
316
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__header {
206
317
  padding: 0.625rem 0.75rem;
207
318
  min-height: auto;
208
319
  }
209
320
 
210
321
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-badge {
211
- width: 2.25rem;
212
- height: 2.25rem;
322
+ width: 1.75rem;
323
+ height: 1.75rem;
213
324
  border-radius: var(--radius-md);
214
325
  }
215
326
 
216
327
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon {
217
- width: 1.125rem;
218
- height: 1.125rem;
328
+ width: 0.9375rem;
329
+ height: 0.9375rem;
219
330
  }
220
331
 
221
332
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-text {
222
- font-size: 1.125rem;
333
+ font-size: 0.9375rem;
223
334
  }
224
335
 
225
336
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__title {
@@ -262,3 +373,20 @@
262
373
  flex-direction: column;
263
374
  gap: 0.75rem;
264
375
  }
376
+
377
+ .mint-sidebar__footer--collapsed {
378
+ padding: 0.5rem;
379
+ }
380
+
381
+ @media (prefers-reduced-motion: reduce) {
382
+ .mint-sidebar,
383
+ .mint-sidebar__rail-item,
384
+ .mint-sidebar__rail-icon {
385
+ transition: none;
386
+ }
387
+
388
+ .mint-sidebar__rail-item:hover,
389
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
390
+ transform: none;
391
+ }
392
+ }
@@ -8,16 +8,90 @@
8
8
  user-select: none;
9
9
  }
10
10
 
11
+ .mint-checkbox--default {
12
+ width: fit-content;
13
+ }
14
+
15
+ .mint-checkbox--row {
16
+ width: 100%;
17
+ min-height: 2rem;
18
+ gap: 0.5rem;
19
+ padding: 0.375rem 0.5rem;
20
+ border-radius: var(--radius-sm, 0.375rem);
21
+ background: transparent;
22
+ box-sizing: border-box;
23
+ transition:
24
+ background-color 0.15s ease,
25
+ color 0.15s ease;
26
+ }
27
+
28
+ .mint-checkbox--row:hover {
29
+ background: var(--bg-hover);
30
+ }
31
+
11
32
  .mint-checkbox--disabled {
12
33
  opacity: var(--mint-disabled-opacity);
13
34
  cursor: not-allowed;
14
35
  }
15
36
 
37
+ .mint-checkbox--disabled.mint-checkbox--row:hover {
38
+ background: transparent;
39
+ }
40
+
41
+ .mint-checkbox__row-icon {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ width: 0.875rem;
46
+ height: 0.875rem;
47
+ flex-shrink: 0;
48
+ transition:
49
+ color 0.15s ease,
50
+ transform 0.15s ease;
51
+ }
52
+
53
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
54
+ transform: scale(1.04);
55
+ }
56
+
57
+ .mint-checkbox__row-svg {
58
+ width: 0.875rem;
59
+ height: 0.875rem;
60
+ }
61
+
62
+ .mint-checkbox__row-text-icon {
63
+ font-size: 0.75rem;
64
+ font-weight: 700;
65
+ line-height: 1;
66
+ }
67
+
68
+ .mint-checkbox__copy {
69
+ display: block;
70
+ flex: 1 1 auto;
71
+ min-width: 0;
72
+ }
73
+
74
+ .mint-checkbox__copy .mint-tooltip {
75
+ max-width: 100%;
76
+ }
77
+
78
+ .mint-checkbox--row .mint-checkbox__label {
79
+ display: block;
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ white-space: nowrap;
83
+ }
84
+
85
+ .mint-checkbox__label--tooltip {
86
+ cursor: help;
87
+ }
88
+
16
89
  .mint-checkbox__input-wrapper {
17
90
  position: relative;
18
91
  display: flex;
19
92
  align-items: center;
20
93
  justify-content: center;
94
+ flex-shrink: 0;
21
95
  }
22
96
 
23
97
  .mint-checkbox__native {
@@ -108,6 +182,7 @@
108
182
 
109
183
  .mint-checkbox__label {
110
184
  color: var(--text-primary);
185
+ line-height: 1.25;
111
186
  }
112
187
 
113
188
  .mint-checkbox__label--sm {
@@ -121,3 +196,15 @@
121
196
  .mint-checkbox__label--lg {
122
197
  font-size: 1rem;
123
198
  }
199
+
200
+ @media (prefers-reduced-motion: reduce) {
201
+ .mint-checkbox--row,
202
+ .mint-checkbox__row-icon,
203
+ .mint-checkbox__box {
204
+ transition: none;
205
+ }
206
+
207
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
208
+ transform: none;
209
+ }
210
+ }
@@ -5,27 +5,48 @@
5
5
  border-radius: var(--radius-lg);
6
6
  overflow: hidden;
7
7
  background-color: var(--bg-card);
8
+ transition:
9
+ border-color 150ms ease,
10
+ box-shadow 150ms ease,
11
+ transform 150ms ease;
8
12
  }
9
13
 
14
+ .mint-collapsible-card:hover {
15
+ border-color: color-mix(in srgb, var(--color-primary) 20%, var(--border-color));
16
+ box-shadow: var(--shadow-sm);
17
+ }
10
18
 
11
- .mint-collapsible-card__header {
19
+ .mint-collapsible-card__header-shell {
12
20
  display: flex;
13
21
  align-items: center;
14
- justify-content: space-between;
15
22
  width: 100%;
23
+ background-color: var(--bg-card);
24
+ transition: background-color 0.15s ease;
25
+ }
26
+
27
+ .mint-collapsible-card__header-shell:hover {
28
+ background-color: var(--bg-hover);
29
+ }
30
+
31
+ .mint-collapsible-card__header {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: flex-start;
35
+ flex: 1;
36
+ min-width: 0;
16
37
  padding: 0.75rem;
17
38
  text-align: left;
18
- background-color: var(--bg-card);
39
+ background-color: transparent;
19
40
  border: none;
20
41
  cursor: pointer;
21
- transition: background-color 0.15s ease;
42
+ transition: color 0.15s ease;
22
43
  gap: 0.75rem;
23
44
  font-family: inherit;
24
45
  min-height: 3rem;
25
46
  }
26
47
 
27
48
  .mint-collapsible-card__header:hover {
28
- background-color: var(--bg-hover);
49
+ background-color: transparent;
29
50
  }
30
51
 
31
52
  .mint-collapsible-card__header:focus-visible {
@@ -54,6 +75,11 @@
54
75
  height: 2rem;
55
76
  border-radius: var(--radius-md);
56
77
  flex-shrink: 0;
78
+ transition: transform 180ms ease, background-color 150ms ease;
79
+ }
80
+
81
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge {
82
+ transform: scale(1.04);
57
83
  }
58
84
 
59
85
  .mint-collapsible-card__icon {
@@ -101,8 +127,109 @@
101
127
  .mint-collapsible-card__actions {
102
128
  display: flex;
103
129
  align-items: center;
104
- gap: 0.75rem;
130
+ gap: 0.375rem;
105
131
  flex-shrink: 0;
132
+ padding-right: 0.625rem;
133
+ }
134
+
135
+ .mint-collapsible-card__badge {
136
+ display: inline-flex;
137
+ align-items: center;
138
+ justify-content: center;
139
+ min-width: 1.25rem;
140
+ height: 1.25rem;
141
+ padding: 0 0.375rem;
142
+ border-radius: 9999px;
143
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color) 14%, transparent);
144
+ color: var(--mint-sidebar-badge-color);
145
+ font-size: 0.6875rem;
146
+ font-weight: 700;
147
+ line-height: 1;
148
+ font-variant-numeric: tabular-nums;
149
+ }
150
+
151
+ .mint-collapsible-card__badge--primary,
152
+ .mint-collapsible-card__action--primary {
153
+ --mint-sidebar-badge-color: var(--color-primary);
154
+ }
155
+
156
+ .mint-collapsible-card__badge--cta,
157
+ .mint-collapsible-card__action--cta {
158
+ --mint-sidebar-badge-color: var(--color-cta);
159
+ }
160
+
161
+ .mint-collapsible-card__badge--success,
162
+ .mint-collapsible-card__action--success {
163
+ --mint-sidebar-badge-color: var(--mint-success);
164
+ }
165
+
166
+ .mint-collapsible-card__badge--warning,
167
+ .mint-collapsible-card__action--warning {
168
+ --mint-sidebar-badge-color: var(--mint-warning);
169
+ }
170
+
171
+ .mint-collapsible-card__badge--error,
172
+ .mint-collapsible-card__action--error {
173
+ --mint-sidebar-badge-color: var(--mint-error);
174
+ }
175
+
176
+ .mint-collapsible-card__badge--info,
177
+ .mint-collapsible-card__action--info {
178
+ --mint-sidebar-badge-color: var(--mint-info);
179
+ }
180
+
181
+ .mint-collapsible-card__badge--neutral,
182
+ .mint-collapsible-card__action--neutral {
183
+ --mint-sidebar-badge-color: var(--text-secondary);
184
+ }
185
+
186
+ .mint-collapsible-card__action,
187
+ .mint-collapsible-card__chevron-button {
188
+ display: inline-flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ width: 1.75rem;
192
+ height: 1.75rem;
193
+ border: 0;
194
+ border-radius: var(--radius-md);
195
+ color: var(--mint-sidebar-badge-color, var(--text-muted));
196
+ background: transparent;
197
+ cursor: pointer;
198
+ transition:
199
+ color 150ms ease,
200
+ background-color 150ms ease,
201
+ transform 150ms ease;
202
+ }
203
+
204
+ .mint-collapsible-card__action:hover,
205
+ .mint-collapsible-card__chevron-button:hover {
206
+ color: var(--mint-sidebar-badge-color, var(--text-secondary));
207
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color, var(--text-secondary)) 10%, transparent);
208
+ transform: translateY(-1px);
209
+ }
210
+
211
+ .mint-collapsible-card__action:focus-visible,
212
+ .mint-collapsible-card__chevron-button:focus-visible {
213
+ outline: none;
214
+ box-shadow: var(--focus-ring);
215
+ }
216
+
217
+ .mint-collapsible-card__action:disabled,
218
+ .mint-collapsible-card__action--disabled,
219
+ .mint-collapsible-card__chevron-button:disabled {
220
+ opacity: var(--mint-disabled-opacity);
221
+ cursor: not-allowed;
222
+ transform: none;
223
+ }
224
+
225
+ .mint-collapsible-card__action-icon {
226
+ width: 0.875rem;
227
+ height: 0.875rem;
228
+ }
229
+
230
+ .mint-collapsible-card__action-text-icon {
231
+ font-size: 0.8125rem;
232
+ line-height: 1;
106
233
  }
107
234
 
108
235
  .mint-collapsible-card__toggle {
@@ -147,8 +274,8 @@
147
274
  }
148
275
 
149
276
  .mint-collapsible-card__chevron {
150
- width: 1.25rem;
151
- height: 1.25rem;
277
+ width: 1rem;
278
+ height: 1rem;
152
279
  color: var(--text-muted);
153
280
  transition: transform 0.2s ease;
154
281
  flex-shrink: 0;
@@ -158,7 +285,7 @@
158
285
  transform: rotate(180deg);
159
286
  }
160
287
 
161
- .mint-collapsible-card__header:hover .mint-collapsible-card__chevron {
288
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__chevron {
162
289
  color: var(--text-secondary);
163
290
  }
164
291
 
@@ -184,16 +311,14 @@
184
311
  }
185
312
 
186
313
  .mint-collapsible-card--dense .mint-collapsible-card__icon-badge {
187
- width: 1.5rem;
188
- height: 1.5rem;
314
+ width: 1.75rem;
315
+ height: 1.75rem;
189
316
  border-radius: var(--radius);
190
- background: transparent !important;
191
317
  }
192
318
 
193
319
  .mint-collapsible-card--dense .mint-collapsible-card__icon {
194
320
  width: 0.875rem;
195
321
  height: 0.875rem;
196
- opacity: 0.5;
197
322
  }
198
323
 
199
324
  .mint-collapsible-card--dense .mint-collapsible-card__title {
@@ -205,7 +330,8 @@
205
330
  }
206
331
 
207
332
  .mint-collapsible-card--dense .mint-collapsible-card__actions {
208
- gap: 0.5rem;
333
+ gap: 0.25rem;
334
+ padding-right: 0.5rem;
209
335
  }
210
336
 
211
337
  .mint-collapsible-card--dense .mint-collapsible-card__chevron {
@@ -242,6 +368,20 @@
242
368
  transition: none;
243
369
  }
244
370
 
371
+ .mint-collapsible-card,
372
+ .mint-collapsible-card__icon-badge,
373
+ .mint-collapsible-card__action,
374
+ .mint-collapsible-card__chevron-button {
375
+ transition: none;
376
+ }
377
+
378
+ .mint-collapsible-card:hover,
379
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge,
380
+ .mint-collapsible-card__action:hover,
381
+ .mint-collapsible-card__chevron-button:hover {
382
+ transform: none;
383
+ }
384
+
245
385
  .mint-collapsible-card__toggle-knob {
246
386
  transition: none;
247
387
  }
@@ -8,6 +8,27 @@
8
8
  user-select: none;
9
9
  }
10
10
 
11
+ .mint-toggle--default {
12
+ width: fit-content;
13
+ }
14
+
15
+ .mint-toggle--row {
16
+ width: 100%;
17
+ min-height: 2rem;
18
+ gap: 0.5rem;
19
+ padding: 0.375rem 0.5rem;
20
+ border-radius: var(--radius-sm, 0.375rem);
21
+ background: transparent;
22
+ box-sizing: border-box;
23
+ transition:
24
+ background-color 0.15s ease,
25
+ color 0.15s ease;
26
+ }
27
+
28
+ .mint-toggle--row:hover {
29
+ background: var(--bg-hover);
30
+ }
31
+
11
32
  .mint-toggle--reverse {
12
33
  flex-direction: row-reverse;
13
34
  justify-content: space-between;
@@ -29,6 +50,58 @@
29
50
  cursor: not-allowed;
30
51
  }
31
52
 
53
+ .mint-toggle--disabled.mint-toggle--row:hover {
54
+ background: transparent;
55
+ }
56
+
57
+ .mint-toggle__row-icon {
58
+ display: inline-flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ width: 0.875rem;
62
+ height: 0.875rem;
63
+ flex-shrink: 0;
64
+ transition:
65
+ color 0.15s ease,
66
+ transform 0.15s ease;
67
+ }
68
+
69
+ .mint-toggle--row:hover .mint-toggle__row-icon {
70
+ transform: scale(1.04);
71
+ }
72
+
73
+ .mint-toggle__row-svg {
74
+ width: 0.875rem;
75
+ height: 0.875rem;
76
+ }
77
+
78
+ .mint-toggle__row-text-icon {
79
+ font-size: 0.75rem;
80
+ font-weight: 700;
81
+ line-height: 1;
82
+ }
83
+
84
+ .mint-toggle__copy {
85
+ display: block;
86
+ flex: 1 1 auto;
87
+ min-width: 0;
88
+ }
89
+
90
+ .mint-toggle__copy .mint-tooltip {
91
+ max-width: 100%;
92
+ }
93
+
94
+ .mint-toggle--row .mint-toggle__label {
95
+ display: block;
96
+ overflow: hidden;
97
+ text-overflow: ellipsis;
98
+ white-space: nowrap;
99
+ }
100
+
101
+ .mint-toggle__label--tooltip {
102
+ cursor: help;
103
+ }
104
+
32
105
  .mint-toggle__track {
33
106
  position: relative;
34
107
  display: inline-block;
@@ -125,6 +198,7 @@
125
198
 
126
199
  .mint-toggle__label {
127
200
  color: var(--text-primary);
201
+ line-height: 1.25;
128
202
  }
129
203
 
130
204
  .mint-toggle__label--sm {
@@ -140,7 +214,13 @@
140
214
  }
141
215
 
142
216
  @media (prefers-reduced-motion: reduce) {
217
+ .mint-toggle--row,
218
+ .mint-toggle__row-icon,
143
219
  .mint-toggle__knob {
144
220
  transition: none;
145
221
  }
222
+
223
+ .mint-toggle--row:hover .mint-toggle__row-icon {
224
+ transform: none;
225
+ }
146
226
  }
@@ -67,6 +67,24 @@ export interface FormFieldProps {
67
67
  }
68
68
 
69
69
  // Sidebar types
70
+ export type SidebarBadgeTone =
71
+ | 'primary'
72
+ | 'cta'
73
+ | 'success'
74
+ | 'warning'
75
+ | 'error'
76
+ | 'info'
77
+ | 'neutral'
78
+
79
+ export interface SidebarToolSectionAction {
80
+ id: string
81
+ label: string
82
+ icon?: string | string[]
83
+ iconColor?: string
84
+ tone?: SidebarBadgeTone
85
+ disabled?: boolean
86
+ }
87
+
70
88
  export interface SidebarToolSection {
71
89
  id: string
72
90
  label: string
@@ -74,6 +92,9 @@ export interface SidebarToolSection {
74
92
  icon?: string | string[]
75
93
  iconColor?: string
76
94
  iconBg?: string
95
+ badge?: string | number
96
+ badgeTone?: SidebarBadgeTone
97
+ actions?: SidebarToolSectionAction[]
77
98
  defaultOpen?: boolean
78
99
  showToggle?: boolean
79
100
  }
@@ -79,6 +79,9 @@ export interface FormFieldSchema extends AccessControlled {
79
79
  defaultValue?: unknown
80
80
  placeholder?: string
81
81
  hint?: string
82
+ icon?: string | string[]
83
+ iconColor?: string
84
+ iconBg?: string
82
85
  size?: 'sm' | 'md' | 'lg'
83
86
  disabled?: boolean
84
87
  readonly?: boolean
@@ -16,7 +16,9 @@ export type {
16
16
  RadioOption,
17
17
  RadioOptionInput,
18
18
  FormFieldProps,
19
+ SidebarBadgeTone,
19
20
  SidebarToolSection,
21
+ SidebarToolSectionAction,
20
22
  CollapsibleState,
21
23
  TopBarVariant,
22
24
  TopBarSettingsConfig,