@morscherlab/mint-sdk 1.4.0-beta.1 → 1.4.0-beta.10

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 (261) hide show
  1. package/dist/{ActionMenu-CScINahU.js → AlertBox-B2Bgr3ei.js} +40 -209
  2. package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
  3. package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-mvm--GxN.js} +161 -110
  4. package/dist/AppSidebar-mvm--GxN.js.map +1 -0
  5. package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-nbJj51is.js} +2 -2
  6. package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-nbJj51is.js.map} +1 -1
  7. package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
  8. package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
  9. package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-65peG4Up.js} +198 -181
  10. package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
  11. package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-BtnnjWzs.js} +2 -2
  12. package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-BtnnjWzs.js.map} +1 -1
  13. package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-DO3IZ7qz.js} +9 -9
  14. package/dist/SettingsModal-DO3IZ7qz.js.map +1 -0
  15. package/dist/components/AppSidebar.vue.d.ts +1 -1
  16. package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
  17. package/dist/components/AuditTrail.vue.d.ts +1 -1
  18. package/dist/components/BaseSelect.vue.d.ts +2 -2
  19. package/dist/components/ChartContainer.vue.d.ts +2 -0
  20. package/dist/components/DatePicker.vue.d.ts +1 -1
  21. package/dist/components/ExperimentPopover.vue.d.ts +18 -0
  22. package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
  23. package/dist/components/FilePicker.vue.d.ts +1 -1
  24. package/dist/components/FileUploader.vue.d.ts +2 -2
  25. package/dist/components/PluginIcon.vue.d.ts +2 -2
  26. package/dist/components/SampleSelector.vue.d.ts +6 -6
  27. package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
  28. package/dist/components/StepWizard.vue.d.ts +3 -0
  29. package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
  30. package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
  31. package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
  32. package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
  33. package/dist/composables/createClient.d.ts +2 -0
  34. package/dist/composables/index.d.ts +1 -0
  35. package/dist/composables/pluginIdentity.d.ts +24 -0
  36. package/dist/composables/pluginWorkspaceModel.d.ts +2 -2
  37. package/dist/composables/useAppExperiment.d.ts +8 -0
  38. package/dist/composables/useCalendarGrid.d.ts +1 -1
  39. package/dist/composables/useExperimentSelector.d.ts +6 -2
  40. package/dist/composables/usePlatform.d.ts +1 -0
  41. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
  42. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
  43. package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
  44. package/dist/data-CgILxDLW.js.map +1 -0
  45. package/dist/data.js +8 -8
  46. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
  47. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
  48. package/dist/index.js +19 -19
  49. package/dist/{install-DAID6c2-.js → install-CsPFJSx3.js} +15 -14
  50. package/dist/{install-DAID6c2-.js.map → install-CsPFJSx3.js.map} +1 -1
  51. package/dist/install.js +1 -1
  52. package/dist/{lab-DLwRl_Ql.js → lab-MHzp-_J8.js} +128 -147
  53. package/dist/lab-MHzp-_J8.js.map +1 -0
  54. package/dist/lab.js +4 -3
  55. package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
  56. package/dist/records-B6gpM_3e.js.map +1 -0
  57. package/dist/{runtime-D6gVat6r.js → runtime-8bs8EogX.js} +27 -31
  58. package/dist/runtime-8bs8EogX.js.map +1 -0
  59. package/dist/runtime.js +6 -6
  60. package/dist/{shell-5ju97nOS.js → shell-CywENwBT.js} +5 -5
  61. package/dist/{shell-5ju97nOS.js.map → shell-CywENwBT.js.map} +1 -1
  62. package/dist/shell.js +5 -5
  63. package/dist/styles.css +1606 -1666
  64. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  65. package/dist/types/generated/platformContext.d.ts +1 -0
  66. package/dist/types/generated-ui.d.ts +4 -0
  67. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
  68. package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
  69. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
  70. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
  71. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
  72. package/dist/useListReorder-BitdUhxn.js.map +1 -0
  73. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-DiwCt77M.js} +71 -57
  74. package/dist/useRackEditor-DiwCt77M.js.map +1 -0
  75. package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
  76. package/dist/useRealtime-C3iy9QkU.js.map +1 -0
  77. package/dist/useRequest-D506eHi8.js +244 -0
  78. package/dist/useRequest-D506eHi8.js.map +1 -0
  79. package/dist/utils/time.d.ts +7 -0
  80. package/package.json +1 -1
  81. package/src/__tests__/components/AppTopBar.test.ts +51 -2
  82. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  83. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  84. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  85. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  86. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  87. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  88. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  89. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  90. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  91. package/src/__tests__/components/DatePicker.test.ts +21 -0
  92. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  93. package/src/__tests__/components/EmptyState.test.ts +1 -1
  94. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  95. package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
  96. package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
  97. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  98. package/src/__tests__/components/PluginWorkspaceView.test.ts +7 -0
  99. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  100. package/src/__tests__/components/SampleSelector.test.ts +13 -8
  101. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  102. package/src/__tests__/components/StepWizard.test.ts +11 -0
  103. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  104. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  105. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  106. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  107. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  108. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  109. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  110. package/src/__tests__/styles/cssTokens.test.ts +2 -2
  111. package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
  112. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  113. package/src/__tests__/utils/time.test.ts +18 -1
  114. package/src/components/AdductText.story.vue +7 -0
  115. package/src/components/AdductText.vue +1 -1
  116. package/src/components/AlertBox.story.vue +2 -2
  117. package/src/components/AlertBox.vue +18 -16
  118. package/src/components/AppSidebar.story.vue +0 -28
  119. package/src/components/AppTopBar.story.vue +47 -12
  120. package/src/components/AppTopBar.vue +118 -114
  121. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  122. package/src/components/ArtifactSaveDialog.vue +102 -12
  123. package/src/components/AuditTrail.story.vue +2 -1
  124. package/src/components/AuditTrail.vue +2 -21
  125. package/src/components/Avatar.vue +10 -14
  126. package/src/components/BaseSelect.multiple.story.vue +13 -2
  127. package/src/components/BaseSelect.vue +4 -3
  128. package/src/components/BatchProgressList.vue +35 -25
  129. package/src/components/ChartContainer.story.vue +2 -1
  130. package/src/components/ChartContainer.vue +8 -6
  131. package/src/components/ConfirmDialog.story.vue +1 -1
  132. package/src/components/EmptyState.vue +1 -1
  133. package/src/components/ExperimentPopover.story.vue +165 -53
  134. package/src/components/ExperimentPopover.vue +169 -187
  135. package/src/components/ExperimentSelectorModal.story.vue +40 -36
  136. package/src/components/ExperimentSelectorModal.vue +124 -110
  137. package/src/components/FormField.story.vue +8 -48
  138. package/src/components/GeneratedPluginView.vue +7 -1
  139. package/src/components/InstrumentStateBadge.vue +1 -1
  140. package/src/components/JobsStatusTray.vue +1 -1
  141. package/src/components/LoadingSpinner.vue +1 -1
  142. package/src/components/NumberInput.vue +3 -6
  143. package/src/components/PluginIcon.story.vue +2 -10
  144. package/src/components/PluginIcon.vue +2 -2
  145. package/src/components/PluginWorkspaceView.story.vue +1 -1
  146. package/src/components/RuntimeUpdateNotice.vue +1 -1
  147. package/src/components/SampleSelector.story.vue +1 -1
  148. package/src/components/SampleSelector.vue +27 -37
  149. package/src/components/SampleSelectorGroupNode.vue +1 -1
  150. package/src/components/SectionCard.story.vue +2 -2
  151. package/src/components/SequenceProgressBar.story.vue +9 -0
  152. package/src/components/SequenceProgressBar.vue +6 -1
  153. package/src/components/SettingsModal.schema.ts +1 -1
  154. package/src/components/SettingsModal.vue +2 -2
  155. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  156. package/src/components/SmartGroupManual.story.vue +1 -1
  157. package/src/components/StepWizard.story.vue +33 -0
  158. package/src/components/StepWizard.vue +8 -1
  159. package/src/components/WellPlate.story.vue +3 -1
  160. package/src/components/WellPlate.vue +7 -0
  161. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  162. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  163. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  164. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  165. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  166. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  167. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  168. package/src/composables/createClient.ts +2 -0
  169. package/src/composables/index.ts +1 -0
  170. package/src/composables/pluginIdentity.ts +31 -0
  171. package/src/composables/pluginWorkspaceModel.ts +2 -2
  172. package/src/composables/useAppExperiment.ts +20 -0
  173. package/src/composables/useCalendarGrid.ts +4 -3
  174. package/src/composables/useExperimentSelector.ts +77 -31
  175. package/src/composables/usePluginWorkspace.ts +1 -1
  176. package/src/styles/components/adduct-text.css +13 -5
  177. package/src/styles/components/alert-box.css +39 -58
  178. package/src/styles/components/app-layout.css +6 -5
  179. package/src/styles/components/app-page-selector.css +3 -1
  180. package/src/styles/components/app-pill-nav.css +11 -12
  181. package/src/styles/components/app-sidebar.css +9 -18
  182. package/src/styles/components/app-top-bar.css +57 -55
  183. package/src/styles/components/artifact-save-dialog.css +153 -2
  184. package/src/styles/components/audit-trail.css +16 -19
  185. package/src/styles/components/avatar.css +6 -4
  186. package/src/styles/components/batch-progress-list.css +38 -36
  187. package/src/styles/components/button.css +28 -59
  188. package/src/styles/components/calendar.css +12 -12
  189. package/src/styles/components/chart-container.css +34 -23
  190. package/src/styles/components/checkbox.css +2 -12
  191. package/src/styles/components/collapsible-card.css +27 -29
  192. package/src/styles/components/confirm-dialog.css +13 -14
  193. package/src/styles/components/dataframe.css +12 -4
  194. package/src/styles/components/date-picker.css +80 -92
  195. package/src/styles/components/datetime-picker.css +31 -43
  196. package/src/styles/components/divider.css +20 -20
  197. package/src/styles/components/dose-calculator.css +3 -3
  198. package/src/styles/components/empty-state.css +20 -17
  199. package/src/styles/components/experiment-code-badge.css +2 -0
  200. package/src/styles/components/experiment-popover.css +174 -329
  201. package/src/styles/components/experiment-selector-modal.css +75 -56
  202. package/src/styles/components/file-picker.css +3 -3
  203. package/src/styles/components/file-uploader.css +38 -49
  204. package/src/styles/components/form-builder.css +3 -3
  205. package/src/styles/components/formula-input.css +1 -1
  206. package/src/styles/components/icon-button.css +18 -24
  207. package/src/styles/components/input.css +5 -4
  208. package/src/styles/components/instrument-monitor.css +13 -15
  209. package/src/styles/components/jobs-status-tray.css +31 -25
  210. package/src/styles/components/modal.css +2 -4
  211. package/src/styles/components/molecule-input.css +2 -2
  212. package/src/styles/components/multi-select.css +65 -117
  213. package/src/styles/components/number-input.css +26 -19
  214. package/src/styles/components/pill.css +3 -2
  215. package/src/styles/components/plate-editor.css +0 -1
  216. package/src/styles/components/plugin-icon.css +26 -23
  217. package/src/styles/components/popover.css +2 -2
  218. package/src/styles/components/presence-avatars.css +1 -1
  219. package/src/styles/components/protocol-step-editor.css +1 -3
  220. package/src/styles/components/resource-card.css +2 -2
  221. package/src/styles/components/resource-picker-list.css +6 -57
  222. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  223. package/src/styles/components/sample-selector.css +95 -79
  224. package/src/styles/components/schedule-calendar.css +8 -8
  225. package/src/styles/components/searchable-select.css +12 -12
  226. package/src/styles/components/section-card.css +28 -47
  227. package/src/styles/components/segmented-control.css +18 -15
  228. package/src/styles/components/select.css +3 -3
  229. package/src/styles/components/sequence-input.css +2 -2
  230. package/src/styles/components/sequence-progress-bar.css +17 -8
  231. package/src/styles/components/smart-group.css +18 -18
  232. package/src/styles/components/step-wizard.css +52 -16
  233. package/src/styles/components/tabs.css +2 -2
  234. package/src/styles/components/textarea.css +3 -3
  235. package/src/styles/components/time-picker.css +36 -21
  236. package/src/styles/components/toast.css +12 -10
  237. package/src/styles/components/toggle.css +1 -11
  238. package/src/styles/components/tooltip.css +10 -9
  239. package/src/styles/components/unit-input.css +8 -7
  240. package/src/styles/components/well-plate.css +9 -2
  241. package/src/styles/variables.css +106 -75
  242. package/src/types/componentWorkflowTypes.ts +2 -0
  243. package/src/types/generated/platformContext.ts +1 -0
  244. package/src/types/generated-ui.ts +4 -0
  245. package/src/utils/time.ts +21 -0
  246. package/dist/ActionMenu-CScINahU.js.map +0 -1
  247. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  248. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  249. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  250. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  251. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  252. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  253. package/dist/data-C2PwI_dn.js.map +0 -1
  254. package/dist/lab-DLwRl_Ql.js.map +0 -1
  255. package/dist/records-BzTcxekG.js.map +0 -1
  256. package/dist/runtime-D6gVat6r.js.map +0 -1
  257. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  258. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  259. package/dist/useRealtime-PalKue84.js.map +0 -1
  260. package/dist/useRequest-D5JDfsgZ.js +0 -76
  261. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -1,8 +1,8 @@
1
- /* SectionCard — the MINT 1.1 one-card system.
1
+ /* SectionCard — the one-card system.
2
2
  *
3
- * One card per page region: 12px radius, one shadow token (--card-shadow),
4
- * a single header strip, and hairline-separated regions inside — never a
5
- * card nested in a card.
3
+ * One card per page region: 1px border, 8px radius, no shadow, a single
4
+ * header strip (muted icon, title, mono count, tools on the right), and
5
+ * hairline-separated regions inside — never a card nested in a card.
6
6
  */
7
7
 
8
8
  .mint-section-card {
@@ -11,7 +11,6 @@
11
11
  border-radius: var(--radius-lg);
12
12
  border: 1px solid var(--border-color);
13
13
  background: var(--bg-secondary);
14
- box-shadow: var(--card-shadow);
15
14
  overflow: hidden;
16
15
  transition: background-color var(--mint-transition), border-color var(--mint-transition);
17
16
  }
@@ -33,7 +32,9 @@
33
32
  display: flex;
34
33
  align-items: center;
35
34
  gap: 0.625rem;
36
- padding: 0.6875rem 1rem;
35
+ box-sizing: border-box;
36
+ min-height: 2.5rem;
37
+ padding: 0.375rem 0.625rem 0.375rem 0.75rem;
37
38
  border-bottom: 1px solid var(--border-color);
38
39
  flex-shrink: 0;
39
40
  }
@@ -42,14 +43,15 @@
42
43
  border-bottom-color: var(--border-light);
43
44
  }
44
45
 
46
+ /* Muted icon, no tinted chip: every accent renders the same. */
45
47
  .mint-section-card__icon-chip {
46
48
  display: inline-flex;
47
49
  align-items: center;
48
50
  justify-content: center;
49
51
  flex-shrink: 0;
50
- width: 1.375rem;
51
- height: 1.375rem;
52
- border-radius: var(--radius);
52
+ width: 1rem;
53
+ height: 1rem;
54
+ color: var(--text-muted);
53
55
  }
54
56
 
55
57
  .mint-section-card__icon {
@@ -57,41 +59,6 @@
57
59
  height: 0.8125rem;
58
60
  }
59
61
 
60
- .mint-section-card__icon-chip--primary {
61
- background: var(--color-primary-soft);
62
- color: var(--color-primary);
63
- }
64
-
65
- .mint-section-card__icon-chip--experiment {
66
- background: var(--color-experiment-soft);
67
- color: var(--color-experiment);
68
- }
69
-
70
- .mint-section-card__icon-chip--project {
71
- background: var(--color-project-soft);
72
- color: var(--color-project);
73
- }
74
-
75
- .mint-section-card__icon-chip--success {
76
- background: var(--mint-success-bg);
77
- color: var(--mint-success);
78
- }
79
-
80
- .mint-section-card__icon-chip--error {
81
- background: var(--mint-error-bg);
82
- color: var(--mint-error);
83
- }
84
-
85
- .mint-section-card__icon-chip--warning {
86
- background: var(--mint-warning-bg);
87
- color: var(--mint-warning);
88
- }
89
-
90
- .mint-section-card__icon-chip--info {
91
- background: var(--mint-info-bg);
92
- color: var(--mint-info);
93
- }
94
-
95
62
  .mint-section-card__title {
96
63
  margin: 0;
97
64
  font-size: 0.8125rem;
@@ -99,9 +66,10 @@
99
66
  color: var(--text-primary);
100
67
  }
101
68
 
69
+ /* Captions are for column and section labels; a card title stays sentence case. */
102
70
  .mint-section-card__title--uppercase {
103
- font-size: 0.75rem;
104
- color: var(--text-secondary);
71
+ text-transform: none;
72
+ letter-spacing: 0;
105
73
  }
106
74
 
107
75
  .mint-section-card__count {
@@ -125,6 +93,8 @@
125
93
  padding: 0.5rem 1rem;
126
94
  border-top: 1px solid var(--border-color);
127
95
  background: var(--bg-primary);
96
+ font-size: 0.75rem;
97
+ color: var(--text-secondary);
128
98
  flex-shrink: 0;
129
99
  }
130
100
 
@@ -141,7 +111,7 @@
141
111
  display: flex;
142
112
  align-items: center;
143
113
  gap: 0.625rem;
144
- padding: 0.5625rem 1rem;
114
+ padding: 0.375rem 0.75rem;
145
115
  background: var(--bg-secondary);
146
116
  transition: background-color var(--mint-transition);
147
117
  }
@@ -157,3 +127,14 @@ a.mint-section-card__row:hover,
157
127
  button.mint-section-card__row:hover {
158
128
  background: var(--bg-primary);
159
129
  }
130
+
131
+ /* Comfortable density gives the header and rows back their height. */
132
+ [data-density="comfortable"] .mint-section-card__header {
133
+ min-height: 2.75rem;
134
+ padding: 0.5rem 0.75rem 0.5rem 0.875rem;
135
+ }
136
+
137
+ [data-density="comfortable"] .mint-section-card__row {
138
+ padding-top: 0.5rem;
139
+ padding-bottom: 0.5rem;
140
+ }
@@ -6,20 +6,21 @@
6
6
  overflow: hidden;
7
7
  }
8
8
 
9
- /* Card variant container - matches RFA design.
9
+ /* Card variant container - a bordered track; options are content-sized.
10
10
  `width: fit-content` is load-bearing: `inline-grid` alone gets blockified and
11
11
  stretched when the control is a stretching flex/grid item. */
12
12
  .mint-segmented-control--card {
13
13
  display: inline-grid;
14
14
  box-sizing: border-box; /* full-width must include the padding */
15
15
  grid-auto-flow: column;
16
- grid-auto-columns: 1fr;
16
+ grid-auto-columns: auto;
17
17
  width: fit-content;
18
18
  max-width: 100%;
19
- gap: 0.1875rem;
20
- padding: 0.1875rem;
19
+ gap: 2px;
20
+ padding: 2px;
21
+ border: 1px solid var(--border-color);
21
22
  border-radius: var(--radius-md);
22
- background-color: var(--bg-tertiary);
23
+ background-color: var(--bg-primary);
23
24
  overflow: visible;
24
25
  }
25
26
 
@@ -30,6 +31,7 @@
30
31
 
31
32
  .mint-segmented-control--card.mint-segmented-control--full-width {
32
33
  display: grid;
34
+ grid-auto-columns: 1fr;
33
35
  width: 100%;
34
36
  }
35
37
 
@@ -50,6 +52,7 @@
50
52
  color: var(--text-primary);
51
53
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
52
54
  text-align: center;
55
+ white-space: nowrap;
53
56
  font-family: inherit;
54
57
  box-sizing: border-box;
55
58
  }
@@ -85,8 +88,6 @@
85
88
  .mint-segmented-control__option--simple {
86
89
  flex: 1;
87
90
  padding: 0.5rem 1rem;
88
- /* `flex: 1` (basis 0) would otherwise squeeze a longer label onto two lines. */
89
- white-space: nowrap;
90
91
  }
91
92
 
92
93
  .mint-segmented-control__option--simple:hover:not(.mint-segmented-control__option--active):not(.mint-segmented-control__option--disabled) {
@@ -96,11 +97,11 @@
96
97
  .mint-segmented-control__option--simple.mint-segmented-control__option--active {
97
98
  background-color: var(--color-primary);
98
99
  border-color: var(--color-primary);
99
- color: white;
100
+ color: var(--text-on-accent);
100
101
  z-index: 1;
101
102
  }
102
103
 
103
- /* Card variant - matches RFA raised card design */
104
+ /* Card variant - the active option is a card-surface step with a hairline */
104
105
  .mint-segmented-control__option--card {
105
106
  flex: 1;
106
107
  padding: 0.5rem 0.75rem;
@@ -119,31 +120,33 @@
119
120
  .mint-segmented-control__option--card.mint-segmented-control__option--active {
120
121
  background-color: var(--bg-card);
121
122
  color: var(--text-primary);
122
- box-shadow: var(--shadow-sm);
123
+ box-shadow: 0 0 0 1px var(--border-color);
123
124
  }
124
125
 
125
126
  /* Size variants - simple */
126
127
  .mint-segmented-control__option--simple.mint-segmented-control__option--sm {
127
- padding: 0.375rem 0.75rem;
128
+ padding: 0.25rem 0.75rem;
128
129
  font-size: 0.75rem;
129
130
  min-height: var(--form-height-sm);
130
131
  }
131
132
 
132
133
  .mint-segmented-control__option--simple.mint-segmented-control__option--md {
133
- padding: 0.5rem 1rem;
134
+ padding: 0.375rem 1rem;
134
135
  font-size: 0.875rem;
135
136
  min-height: var(--form-height-md);
136
137
  }
137
138
 
138
139
  .mint-segmented-control__option--simple.mint-segmented-control__option--lg {
139
- padding: 0.625rem 1.25rem;
140
+ padding: 0.5rem 1.25rem;
140
141
  font-size: 1rem;
141
142
  min-height: var(--form-height-lg);
142
143
  }
143
144
 
144
145
  /* Size variants - card */
145
146
  .mint-segmented-control__option--card.mint-segmented-control__option--sm {
146
- padding: 0.3125rem 0.625rem;
147
+ min-height: calc(var(--form-height-sm) - 6px);
148
+ padding: 0 0.625rem;
149
+ font-size: 0.75rem;
147
150
  }
148
151
 
149
152
  .mint-segmented-control__option--card.mint-segmented-control__option--md {
@@ -192,7 +195,7 @@
192
195
 
193
196
  /* Description color in active state - use text-muted for card variant, primary for simple */
194
197
  .mint-segmented-control__option--simple.mint-segmented-control__option--active .mint-segmented-control__description {
195
- color: color-mix(in srgb, white 80%, transparent);
198
+ color: color-mix(in srgb, var(--text-on-accent) 80%, transparent);
196
199
  }
197
200
 
198
201
  .mint-segmented-control__option--card.mint-segmented-control__option--active .mint-segmented-control__description {
@@ -46,21 +46,21 @@
46
46
  }
47
47
 
48
48
  .mint-select__control--sm {
49
- padding: 0.375rem 0.625rem;
49
+ padding: 0.25rem 0.625rem;
50
50
  padding-right: 2.5rem;
51
51
  font-size: 0.8125rem;
52
52
  min-height: var(--form-height-sm);
53
53
  }
54
54
 
55
55
  .mint-select__control--md {
56
- padding: 0.5rem 0.75rem;
56
+ padding: 0.375rem 0.75rem;
57
57
  padding-right: 2.5rem;
58
58
  font-size: 0.875rem;
59
59
  min-height: var(--form-height-md);
60
60
  }
61
61
 
62
62
  .mint-select__control--lg {
63
- padding: 0.75rem 1rem;
63
+ padding: 0.5rem 1rem;
64
64
  padding-right: 2.5rem;
65
65
  font-size: 1rem;
66
66
  min-height: var(--form-height-lg);
@@ -7,7 +7,7 @@
7
7
  border: 1px solid var(--border-color);
8
8
  background-color: var(--bg-secondary);
9
9
  overflow: hidden;
10
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
10
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
11
11
  }
12
12
 
13
13
  /* Dark --border-light equals --bg-card; row and band hairlines need --border-color there. */
@@ -62,7 +62,7 @@
62
62
  background: transparent;
63
63
  color: var(--text-secondary-strong);
64
64
  cursor: pointer;
65
- transition: background-color 0.15s ease, color 0.15s ease;
65
+ transition: background-color var(--mint-transition), color var(--mint-transition);
66
66
  }
67
67
 
68
68
  .mint-sequence-input__tool-btn:focus-visible {
@@ -1,4 +1,4 @@
1
- /* SequenceProgressBar (6b): mono counts and times, no colored percent, no ETA pill.
1
+ /* SequenceProgressBar (6b): mono count only, no colored percent, no ETA pill.
2
2
  The bar fill is --color-primary (ProgressBar). */
3
3
  .mint-sequence-progress {
4
4
  display: flex;
@@ -7,16 +7,20 @@
7
7
  min-width: 0;
8
8
  }
9
9
 
10
+ /* Head and footer read as sans prose; only the count is a mono value. */
10
11
  .mint-sequence-progress__header,
11
12
  .mint-sequence-progress__footer {
12
13
  display: flex;
13
14
  align-items: baseline;
14
- justify-content: space-between;
15
15
  gap: 0.75rem;
16
16
  min-width: 0;
17
- font-family: var(--font-mono);
18
17
  font-size: 0.75rem;
19
18
  font-variant-numeric: tabular-nums;
19
+ color: var(--text-secondary);
20
+ }
21
+
22
+ .mint-sequence-progress__footer {
23
+ justify-content: space-between;
20
24
  }
21
25
 
22
26
  .mint-sequence-progress__label,
@@ -27,18 +31,23 @@
27
31
  white-space: nowrap;
28
32
  }
29
33
 
30
- .mint-sequence-progress__label,
31
- .mint-sequence-progress__percent {
34
+ .mint-sequence-progress__count {
35
+ font-family: var(--font-mono);
36
+ font-weight: 500;
32
37
  color: var(--text-primary);
33
38
  }
34
39
 
40
+ .mint-sequence-progress__failed {
41
+ flex: 0 0 auto;
42
+ color: var(--_ink-error);
43
+ }
44
+
35
45
  .mint-sequence-progress__percent,
36
46
  .mint-sequence-progress__eta {
37
47
  flex: 0 0 auto;
38
48
  white-space: nowrap;
39
49
  }
40
50
 
41
- .mint-sequence-progress__remaining,
42
- .mint-sequence-progress__eta {
43
- color: var(--text-secondary);
51
+ .mint-sequence-progress__percent {
52
+ margin-left: auto;
44
53
  }
@@ -1,7 +1,7 @@
1
1
  /* ==========================================================================
2
2
  Smart Group — Full View modal (auto "Field Recipe" + manual cohort modes).
3
3
  Ported from the MINT design-system project; all values resolve against the
4
- SDK token set in styles/variables.css. Fira Sans for UI, Fira Code for
4
+ SDK token set in styles/variables.css. --font-sans for UI, --font-mono for
5
5
  sample identifiers (data). Group colors are --mint-sample-1…8 (3a).
6
6
  ========================================================================== */
7
7
 
@@ -49,7 +49,7 @@
49
49
  border-radius: var(--radius);
50
50
  color: var(--text-muted);
51
51
  font-size: 1.25rem; line-height: 1;
52
- transition: background 0.15s ease, color 0.15s ease;
52
+ transition: background var(--mint-transition), color var(--mint-transition);
53
53
  }
54
54
  .sg-head__close:hover { background: var(--bg-hover); color: var(--text-primary); }
55
55
 
@@ -63,7 +63,7 @@
63
63
  font: inherit; font-size: 0.8125rem; font-weight: 500;
64
64
  color: var(--text-secondary);
65
65
  padding: 0.25rem 0.625rem; border-radius: var(--radius);
66
- transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
66
+ transition: background var(--mint-transition), color var(--mint-transition), box-shadow var(--mint-transition);
67
67
  }
68
68
  .sg-mode__btn:hover { color: var(--text-primary); }
69
69
  .sg-mode__btn--on {
@@ -138,7 +138,7 @@
138
138
  border: 1px solid var(--border-color);
139
139
  border-radius: var(--radius-md);
140
140
  background: var(--bg-card);
141
- transition: border-color 0.15s ease, background 0.15s ease;
141
+ transition: border-color var(--mint-transition), background var(--mint-transition);
142
142
  }
143
143
  .sg-field--on {
144
144
  border-color: var(--color-primary);
@@ -177,7 +177,7 @@
177
177
  .sg-group {
178
178
  display: flex; align-items: center; gap: 0.625rem;
179
179
  padding: 0.4375rem 0.5rem; border-radius: var(--radius);
180
- transition: background 0.15s ease;
180
+ transition: background var(--mint-transition);
181
181
  }
182
182
  .sg-group:hover { background: var(--bg-hover); }
183
183
  .sg-dot {
@@ -241,16 +241,16 @@
241
241
  color: var(--color-primary); background: none; border: none;
242
242
  cursor: pointer; display: inline-flex; align-items: center; gap: 0.375rem;
243
243
  padding: 0.3125rem 0.5rem; border-radius: var(--radius); white-space: nowrap;
244
- transition: background 0.15s ease, color 0.15s ease;
244
+ transition: background var(--mint-transition), color var(--mint-transition);
245
245
  }
246
246
  .sg-foot__link:hover { background: var(--color-primary-soft); color: var(--_ink-primary); }
247
247
  .sg-btn {
248
248
  font: inherit; font-size: 0.875rem; font-weight: 500; cursor: pointer;
249
249
  padding: 0.5rem 1rem; border-radius: var(--radius-md);
250
- border: 1px solid transparent; transition: all 0.15s ease;
250
+ border: 1px solid transparent; transition: all var(--mint-transition);
251
251
  display: inline-flex; align-items: center; gap: 0.4375rem;
252
252
  }
253
- .sg-btn--primary { background: var(--color-primary); color: #fff; }
253
+ .sg-btn--primary { background: var(--color-primary); color: var(--text-on-accent); }
254
254
  .sg-btn--primary:hover { background: var(--color-primary-hover); }
255
255
 
256
256
  /* ==========================================================================
@@ -273,7 +273,7 @@
273
273
  width: 1.25rem; height: 1.25rem; padding: 0; flex-shrink: 0;
274
274
  border: none; border-radius: var(--radius-sm); background: none;
275
275
  color: var(--text-muted); cursor: pointer;
276
- transition: background 0.15s ease, color 0.15s ease;
276
+ transition: background var(--mint-transition), color var(--mint-transition);
277
277
  }
278
278
  .fr-row__grip { cursor: grab; }
279
279
  .fr-row__grip:hover,
@@ -404,7 +404,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
404
404
  padding: 0.5rem 2rem 0.5rem 2.125rem;
405
405
  border: 1px solid var(--border-color); border-radius: var(--radius-md);
406
406
  background: var(--bg-tertiary); color: var(--text-primary); outline: none;
407
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
407
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
408
408
  }
409
409
  .mg2-search input:focus {
410
410
  border-color: var(--color-primary); background: var(--bg-secondary);
@@ -426,17 +426,17 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
426
426
  padding: 0.3125rem 0.625rem; cursor: pointer;
427
427
  background: var(--bg-secondary);
428
428
  border: 1px solid var(--border-color); border-radius: 9999px;
429
- transition: all 0.13s ease;
429
+ transition: all var(--mint-transition);
430
430
  }
431
431
  .mg2-chip:hover { border-color: var(--text-muted); }
432
432
  .mg2-chip--on {
433
- background: var(--color-primary); border-color: var(--color-primary); color: #fff;
433
+ background: var(--color-primary); border-color: var(--color-primary); color: var(--text-on-accent);
434
434
  }
435
435
  .mg2-chip__n {
436
436
  font-variant-numeric: tabular-nums; font-weight: 600;
437
437
  font-size: 0.6875rem; color: var(--text-muted);
438
438
  }
439
- .mg2-chip--on .mg2-chip__n { color: rgba(255, 255, 255, 0.8); }
439
+ .mg2-chip--on .mg2-chip__n { color: color-mix(in srgb, var(--text-on-accent) 80%, transparent); }
440
440
 
441
441
  .mg2-selbar {
442
442
  display: flex; align-items: center; gap: 0.5rem;
@@ -465,7 +465,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
465
465
  .mg2-row {
466
466
  display: flex; align-items: center; gap: 0.625rem;
467
467
  padding: 0.4375rem 0.5rem; border-radius: var(--radius);
468
- cursor: pointer; transition: background 0.12s ease;
468
+ cursor: pointer; transition: background var(--mint-transition);
469
469
  }
470
470
  .mg2-row:hover { background: var(--bg-hover); }
471
471
  .mg2-row--on { background: var(--color-primary-soft); }
@@ -571,7 +571,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
571
571
  font: inherit; font-size: 0.8125rem; color: var(--text-secondary);
572
572
  padding: 0.5625rem 0.625rem; cursor: pointer; text-align: left; width: 100%;
573
573
  border: 1px dashed var(--border-color); border-radius: var(--radius-md);
574
- background: none; transition: all 0.13s ease;
574
+ background: none; transition: all var(--mint-transition);
575
575
  }
576
576
  .mg2-unassigned:hover { border-color: var(--text-muted); background: var(--bg-hover); }
577
577
  .mg2-unassigned--on { border-style: solid; border-color: var(--color-primary); background: var(--color-primary-soft); }
@@ -587,7 +587,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
587
587
  max-height: 0; opacity: 0;
588
588
  border-top: 1px solid transparent;
589
589
  background: linear-gradient(0deg, var(--color-primary-soft), var(--color-primary-soft)), var(--bg-secondary);
590
- transition: max-height 0.22s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.18s ease, border-color 0.2s ease;
590
+ transition: max-height 0.22s cubic-bezier(0.2, 0.7, 0.3, 1), opacity var(--mint-transition), border-color var(--mint-transition);
591
591
  }
592
592
  .mg2-bar--open {
593
593
  max-height: 160px; opacity: 1;
@@ -628,7 +628,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
628
628
  .mg2-swatch {
629
629
  width: 1.125rem; height: 1.125rem; border-radius: 9999px; cursor: pointer;
630
630
  border: 2px solid transparent; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.12);
631
- transition: transform 0.12s ease;
631
+ transition: transform var(--mint-transition);
632
632
  }
633
633
  .mg2-swatch:hover { transform: scale(1.12); }
634
634
  .mg2-swatch--on {
@@ -653,7 +653,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1); }
653
653
  color: var(--text-secondary); cursor: pointer;
654
654
  padding: 0.25rem 0.5rem; border-radius: var(--radius);
655
655
  background: var(--bg-secondary); border: 1px solid var(--border-color);
656
- transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
656
+ transition: background var(--mint-transition), color var(--mint-transition), border-color var(--mint-transition);
657
657
  }
658
658
  .fr-upload:hover {
659
659
  background: var(--bg-tertiary); color: var(--text-primary); border-color: var(--text-muted);
@@ -1,4 +1,5 @@
1
1
  .mint-wizard {
2
+ --_wizard-dot: 1.375rem;
2
3
  display: flex;
3
4
  flex-direction: column;
4
5
  gap: 1.5rem;
@@ -26,7 +27,7 @@
26
27
 
27
28
  .mint-wizard__step-connector {
28
29
  flex: 1;
29
- min-width: 0.75rem;
30
+ min-width: 1rem;
30
31
  height: 1px;
31
32
  background-color: var(--border-color);
32
33
  transition: background-color 150ms ease;
@@ -40,7 +41,7 @@
40
41
  display: flex;
41
42
  flex-shrink: 0;
42
43
  align-items: center;
43
- gap: 0.375rem;
44
+ gap: 0.5rem;
44
45
  cursor: pointer;
45
46
  }
46
47
 
@@ -50,15 +51,15 @@
50
51
  }
51
52
 
52
53
  .mint-wizard__step-dot {
53
- width: 1.25rem;
54
- height: 1.25rem;
54
+ width: var(--_wizard-dot);
55
+ height: var(--_wizard-dot);
55
56
  flex-shrink: 0;
56
57
  border-radius: 9999px;
57
58
  display: flex;
58
59
  align-items: center;
59
60
  justify-content: center;
60
61
  font-family: var(--font-mono);
61
- font-size: 0.6875rem;
62
+ font-size: 0.6875rem; /* v2 draws 10px; 11px is the SDK floor (8d) */
62
63
  font-weight: 600;
63
64
  background-color: var(--bg-card);
64
65
  color: var(--text-secondary);
@@ -72,46 +73,81 @@
72
73
  }
73
74
 
74
75
  /* Size variants for dot */
75
- .mint-wizard--sm .mint-wizard__step-dot {
76
- width: 1.125rem;
77
- height: 1.125rem;
76
+ .mint-wizard--sm {
77
+ --_wizard-dot: 1.125rem;
78
+ }
79
+
80
+ .mint-wizard--lg {
81
+ --_wizard-dot: 1.5rem;
78
82
  }
79
83
 
80
84
  .mint-wizard--lg .mint-wizard__step-dot {
81
- width: 1.5rem;
82
- height: 1.5rem;
83
85
  font-size: 0.75rem;
84
86
  }
85
87
 
86
88
  .mint-wizard__step-indicator--active .mint-wizard__step-dot {
89
+ background-color: var(--color-primary-soft);
87
90
  color: var(--_ink-primary);
88
- box-shadow: inset 0 0 0 1.5px var(--color-primary);
91
+ box-shadow: inset 0 0 0 2px var(--color-primary);
89
92
  }
90
93
 
91
94
  .mint-wizard__step-indicator--completed .mint-wizard__step-dot {
92
95
  background-color: var(--color-primary);
93
- color: white;
96
+ color: var(--text-on-accent);
94
97
  box-shadow: inset 0 0 0 1.5px var(--color-primary);
95
98
  }
96
99
 
97
100
  .mint-wizard__step-label {
98
101
  font-size: 0.8125rem;
99
- color: var(--text-secondary);
102
+ font-weight: 500;
103
+ color: var(--text-muted);
100
104
  white-space: nowrap;
101
105
  }
102
106
 
103
107
  .mint-wizard__step-indicator--active .mint-wizard__step-label {
104
108
  color: var(--text-primary);
105
- font-weight: 600;
106
109
  }
107
110
 
108
111
  .mint-wizard__step-indicator--completed .mint-wizard__step-label {
109
112
  color: var(--text-secondary-strong);
110
113
  }
111
114
 
112
- /* Narrow widths keep only the current step's label. */
115
+ /* Vertical: the step rail sits beside the content and navigation. */
116
+ .mint-wizard--vertical {
117
+ display: grid;
118
+ grid-template-columns: auto minmax(0, 1fr);
119
+ grid-template-rows: minmax(0, 1fr) auto;
120
+ column-gap: 1.5rem;
121
+ row-gap: 1.5rem;
122
+ }
123
+
124
+ .mint-wizard--vertical .mint-wizard__progress {
125
+ grid-row: 1 / span 2;
126
+ }
127
+
128
+ .mint-wizard--vertical .mint-wizard__body,
129
+ .mint-wizard--vertical .mint-wizard__navigation {
130
+ grid-column: 2;
131
+ }
132
+
133
+ .mint-wizard--vertical .mint-wizard__steps-indicator {
134
+ flex-direction: column;
135
+ align-items: stretch;
136
+ gap: 0;
137
+ }
138
+
139
+ /* Connector runs through the dot centre. */
140
+ .mint-wizard--vertical .mint-wizard__step-connector {
141
+ flex: none;
142
+ width: 1px;
143
+ height: 1rem;
144
+ min-width: 0;
145
+ margin: 2px 0 2px calc(var(--_wizard-dot) / 2);
146
+ }
147
+
148
+ /* Narrow horizontal widths keep only the current step's label. */
113
149
  @media (max-width: 640px) {
114
- .mint-wizard__step-indicator:not(.mint-wizard__step-indicator--active) .mint-wizard__step-label {
150
+ .mint-wizard:not(.mint-wizard--vertical) .mint-wizard__step-indicator:not(.mint-wizard__step-indicator--active) .mint-wizard__step-label {
115
151
  display: none;
116
152
  }
117
153
  }
@@ -45,7 +45,7 @@
45
45
 
46
46
  .mint-tabs--underline .mint-tab--active {
47
47
  border-bottom-color: var(--color-primary);
48
- color: var(--color-primary);
48
+ color: var(--text-primary);
49
49
  }
50
50
 
51
51
  /* Tab content */
@@ -68,7 +68,7 @@
68
68
  /* Mono count block */
69
69
  .mint-tab__badge {
70
70
  padding: 0.0625rem 0.25rem;
71
- border-radius: 0.1875rem;
71
+ border-radius: var(--radius-sm);
72
72
  background-color: var(--bg-tertiary);
73
73
  color: var(--text-secondary);
74
74
  font-family: var(--font-mono);
@@ -50,17 +50,17 @@
50
50
 
51
51
  /* Size variants */
52
52
  .mint-textarea--sm {
53
- padding: 0.375rem 0.625rem;
53
+ padding: 0.25rem 0.625rem;
54
54
  font-size: 0.8125rem;
55
55
  }
56
56
 
57
57
  .mint-textarea--md {
58
- padding: 0.5rem 0.75rem;
58
+ padding: 0.375rem 0.75rem;
59
59
  font-size: 0.875rem;
60
60
  }
61
61
 
62
62
  .mint-textarea--lg {
63
- padding: 0.75rem 1rem;
63
+ padding: 0.5rem 1rem;
64
64
  font-size: 1rem;
65
65
  }
66
66