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

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 (266) 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/__tests__/styles/v2AuditRules.test.d.ts +1 -0
  16. package/dist/components/AppSidebar.vue.d.ts +1 -1
  17. package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
  18. package/dist/components/AuditTrail.vue.d.ts +1 -1
  19. package/dist/components/BaseSelect.vue.d.ts +2 -2
  20. package/dist/components/ChartContainer.vue.d.ts +2 -0
  21. package/dist/components/DatePicker.vue.d.ts +1 -1
  22. package/dist/components/ExperimentPopover.vue.d.ts +18 -0
  23. package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
  24. package/dist/components/FilePicker.vue.d.ts +1 -1
  25. package/dist/components/FileUploader.vue.d.ts +2 -2
  26. package/dist/components/PluginIcon.vue.d.ts +2 -2
  27. package/dist/components/SampleSelector.vue.d.ts +6 -6
  28. package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
  29. package/dist/components/StepWizard.vue.d.ts +3 -0
  30. package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
  31. package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
  32. package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
  33. package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
  34. package/dist/composables/createClient.d.ts +2 -0
  35. package/dist/composables/index.d.ts +1 -0
  36. package/dist/composables/pluginIdentity.d.ts +24 -0
  37. package/dist/composables/pluginWorkspaceModel.d.ts +2 -2
  38. package/dist/composables/useAppExperiment.d.ts +8 -0
  39. package/dist/composables/useCalendarGrid.d.ts +1 -1
  40. package/dist/composables/useExperimentSelector.d.ts +6 -2
  41. package/dist/composables/usePlatform.d.ts +1 -0
  42. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
  43. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
  44. package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
  45. package/dist/data-CgILxDLW.js.map +1 -0
  46. package/dist/data.js +8 -8
  47. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
  48. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
  49. package/dist/index.js +19 -19
  50. package/dist/{install-DAID6c2-.js → install-mB8-IyvO.js} +15 -14
  51. package/dist/{install-DAID6c2-.js.map → install-mB8-IyvO.js.map} +1 -1
  52. package/dist/install.js +1 -1
  53. package/dist/{lab-DLwRl_Ql.js → lab-D5bIX426.js} +128 -147
  54. package/dist/lab-D5bIX426.js.map +1 -0
  55. package/dist/lab.js +4 -3
  56. package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
  57. package/dist/records-B6gpM_3e.js.map +1 -0
  58. package/dist/{runtime-D6gVat6r.js → runtime-D7vKpfbF.js} +27 -31
  59. package/dist/runtime-D7vKpfbF.js.map +1 -0
  60. package/dist/runtime.js +6 -6
  61. package/dist/{shell-5ju97nOS.js → shell-CywENwBT.js} +5 -5
  62. package/dist/{shell-5ju97nOS.js.map → shell-CywENwBT.js.map} +1 -1
  63. package/dist/shell.js +5 -5
  64. package/dist/styles.css +1644 -1688
  65. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  66. package/dist/types/generated/platformContext.d.ts +1 -0
  67. package/dist/types/generated-ui.d.ts +4 -0
  68. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
  69. package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
  70. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
  71. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
  72. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
  73. package/dist/useListReorder-BitdUhxn.js.map +1 -0
  74. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-Q8xO-cCy.js} +72 -58
  75. package/dist/useRackEditor-Q8xO-cCy.js.map +1 -0
  76. package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
  77. package/dist/useRealtime-C3iy9QkU.js.map +1 -0
  78. package/dist/useRequest-D506eHi8.js +244 -0
  79. package/dist/useRequest-D506eHi8.js.map +1 -0
  80. package/dist/utils/time.d.ts +7 -0
  81. package/package.json +1 -1
  82. package/src/__tests__/components/AppTopBar.test.ts +51 -2
  83. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  84. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  85. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  86. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  87. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  88. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  89. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  90. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  91. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  92. package/src/__tests__/components/DatePicker.test.ts +21 -0
  93. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  94. package/src/__tests__/components/EmptyState.test.ts +1 -1
  95. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  96. package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
  97. package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
  98. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  99. package/src/__tests__/components/PluginWorkspaceView.test.ts +7 -0
  100. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  101. package/src/__tests__/components/SampleSelector.test.ts +13 -8
  102. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  103. package/src/__tests__/components/StepWizard.test.ts +11 -0
  104. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  105. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  106. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  107. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  108. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  109. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  110. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  111. package/src/__tests__/styles/cssTokens.test.ts +2 -2
  112. package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
  113. package/src/__tests__/styles/v2AuditRules.test.ts +96 -0
  114. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  115. package/src/__tests__/utils/time.test.ts +18 -1
  116. package/src/components/AdductText.story.vue +7 -0
  117. package/src/components/AdductText.vue +1 -1
  118. package/src/components/AlertBox.story.vue +2 -2
  119. package/src/components/AlertBox.vue +18 -16
  120. package/src/components/AppSidebar.story.vue +0 -28
  121. package/src/components/AppTopBar.story.vue +47 -12
  122. package/src/components/AppTopBar.vue +118 -114
  123. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  124. package/src/components/ArtifactSaveDialog.vue +102 -12
  125. package/src/components/AuditTrail.story.vue +2 -1
  126. package/src/components/AuditTrail.vue +2 -21
  127. package/src/components/Avatar.vue +10 -14
  128. package/src/components/BaseSelect.multiple.story.vue +13 -2
  129. package/src/components/BaseSelect.vue +4 -3
  130. package/src/components/BatchProgressList.vue +35 -25
  131. package/src/components/ChartContainer.story.vue +2 -1
  132. package/src/components/ChartContainer.vue +8 -6
  133. package/src/components/ConfirmDialog.story.vue +1 -1
  134. package/src/components/EmptyState.vue +1 -1
  135. package/src/components/ExperimentPopover.story.vue +165 -53
  136. package/src/components/ExperimentPopover.vue +169 -187
  137. package/src/components/ExperimentSelectorModal.story.vue +40 -36
  138. package/src/components/ExperimentSelectorModal.vue +124 -110
  139. package/src/components/FormField.story.vue +8 -48
  140. package/src/components/GeneratedPluginView.vue +7 -1
  141. package/src/components/GeneratedResultRenderer.vue +3 -4
  142. package/src/components/InstrumentStateBadge.vue +1 -1
  143. package/src/components/JobsStatusTray.vue +1 -1
  144. package/src/components/LoadingSpinner.vue +1 -1
  145. package/src/components/NumberInput.vue +3 -6
  146. package/src/components/PluginIcon.story.vue +2 -10
  147. package/src/components/PluginIcon.vue +2 -2
  148. package/src/components/PluginWorkspaceView.story.vue +1 -1
  149. package/src/components/RuntimeUpdateNotice.vue +1 -1
  150. package/src/components/SampleSelector.story.vue +1 -1
  151. package/src/components/SampleSelector.vue +27 -37
  152. package/src/components/SampleSelectorGroupNode.vue +1 -1
  153. package/src/components/SectionCard.story.vue +2 -2
  154. package/src/components/SequenceProgressBar.story.vue +9 -0
  155. package/src/components/SequenceProgressBar.vue +6 -1
  156. package/src/components/SettingsModal.schema.ts +1 -1
  157. package/src/components/SettingsModal.vue +2 -2
  158. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  159. package/src/components/SmartGroupManual.story.vue +1 -1
  160. package/src/components/StepWizard.story.vue +33 -0
  161. package/src/components/StepWizard.vue +8 -1
  162. package/src/components/WellPlate.story.vue +3 -1
  163. package/src/components/WellPlate.vue +7 -0
  164. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  165. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  166. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  167. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  168. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  169. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  170. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  171. package/src/composables/createClient.ts +2 -0
  172. package/src/composables/index.ts +1 -0
  173. package/src/composables/pluginIdentity.ts +31 -0
  174. package/src/composables/pluginWorkspaceModel.ts +2 -2
  175. package/src/composables/useAppExperiment.ts +20 -0
  176. package/src/composables/useCalendarGrid.ts +4 -3
  177. package/src/composables/useExperimentSelector.ts +77 -31
  178. package/src/composables/usePluginWorkspace.ts +1 -1
  179. package/src/styles/components/adduct-text.css +13 -5
  180. package/src/styles/components/alert-box.css +39 -58
  181. package/src/styles/components/app-layout.css +7 -5
  182. package/src/styles/components/app-page-selector.css +3 -1
  183. package/src/styles/components/app-pill-nav.css +11 -12
  184. package/src/styles/components/app-sidebar.css +9 -18
  185. package/src/styles/components/app-top-bar.css +57 -55
  186. package/src/styles/components/artifact-save-dialog.css +153 -2
  187. package/src/styles/components/audit-trail.css +16 -19
  188. package/src/styles/components/avatar.css +6 -4
  189. package/src/styles/components/batch-progress-list.css +38 -36
  190. package/src/styles/components/button.css +28 -59
  191. package/src/styles/components/calendar.css +12 -12
  192. package/src/styles/components/chart-container.css +34 -23
  193. package/src/styles/components/checkbox.css +2 -12
  194. package/src/styles/components/collapsible-card.css +27 -29
  195. package/src/styles/components/confirm-dialog.css +13 -14
  196. package/src/styles/components/dataframe.css +13 -5
  197. package/src/styles/components/date-picker.css +80 -92
  198. package/src/styles/components/datetime-picker.css +31 -43
  199. package/src/styles/components/divider.css +20 -20
  200. package/src/styles/components/dose-calculator.css +3 -3
  201. package/src/styles/components/empty-state.css +20 -17
  202. package/src/styles/components/experiment-code-badge.css +2 -0
  203. package/src/styles/components/experiment-popover.css +174 -329
  204. package/src/styles/components/experiment-selector-modal.css +75 -56
  205. package/src/styles/components/file-picker.css +3 -3
  206. package/src/styles/components/file-uploader.css +38 -49
  207. package/src/styles/components/form-builder.css +3 -3
  208. package/src/styles/components/formula-input.css +1 -1
  209. package/src/styles/components/icon-button.css +18 -24
  210. package/src/styles/components/input.css +5 -4
  211. package/src/styles/components/instrument-monitor.css +13 -15
  212. package/src/styles/components/jobs-status-tray.css +31 -25
  213. package/src/styles/components/modal.css +4 -6
  214. package/src/styles/components/molecule-input.css +2 -2
  215. package/src/styles/components/multi-select.css +65 -117
  216. package/src/styles/components/number-input.css +26 -19
  217. package/src/styles/components/pill.css +3 -2
  218. package/src/styles/components/plate-editor.css +0 -1
  219. package/src/styles/components/plugin-icon.css +26 -23
  220. package/src/styles/components/popover.css +2 -2
  221. package/src/styles/components/presence-avatars.css +1 -1
  222. package/src/styles/components/progress-bar.css +3 -3
  223. package/src/styles/components/protocol-step-editor.css +1 -3
  224. package/src/styles/components/resource-card.css +2 -2
  225. package/src/styles/components/resource-picker-list.css +6 -57
  226. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  227. package/src/styles/components/sample-selector.css +95 -79
  228. package/src/styles/components/schedule-calendar.css +8 -8
  229. package/src/styles/components/searchable-select.css +12 -12
  230. package/src/styles/components/section-card.css +30 -47
  231. package/src/styles/components/segmented-control.css +18 -15
  232. package/src/styles/components/select.css +3 -3
  233. package/src/styles/components/sequence-input.css +2 -2
  234. package/src/styles/components/sequence-progress-bar.css +17 -8
  235. package/src/styles/components/settings-modal.css +7 -2
  236. package/src/styles/components/smart-group.css +18 -18
  237. package/src/styles/components/step-wizard.css +52 -16
  238. package/src/styles/components/tabs.css +2 -2
  239. package/src/styles/components/textarea.css +3 -3
  240. package/src/styles/components/time-picker.css +36 -21
  241. package/src/styles/components/toast.css +12 -10
  242. package/src/styles/components/toggle.css +1 -11
  243. package/src/styles/components/tooltip.css +10 -9
  244. package/src/styles/components/unit-input.css +8 -7
  245. package/src/styles/components/well-plate.css +9 -2
  246. package/src/styles/variables.css +118 -77
  247. package/src/types/componentWorkflowTypes.ts +2 -0
  248. package/src/types/generated/platformContext.ts +1 -0
  249. package/src/types/generated-ui.ts +4 -0
  250. package/src/utils/time.ts +21 -0
  251. package/dist/ActionMenu-CScINahU.js.map +0 -1
  252. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  253. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  254. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  255. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  256. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  257. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  258. package/dist/data-C2PwI_dn.js.map +0 -1
  259. package/dist/lab-DLwRl_Ql.js.map +0 -1
  260. package/dist/records-BzTcxekG.js.map +0 -1
  261. package/dist/runtime-D6gVat6r.js.map +0 -1
  262. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  263. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  264. package/dist/useRealtime-PalKue84.js.map +0 -1
  265. package/dist/useRequest-D5JDfsgZ.js +0 -76
  266. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -19,12 +19,12 @@
19
19
  gap: 0.625rem;
20
20
  padding: 0.5rem 1rem;
21
21
  border: 0;
22
- border-radius: 9999px;
22
+ border-radius: var(--radius-lg);
23
23
  background: var(--color-primary);
24
- color: white;
25
- box-shadow: var(--shadow-lg);
24
+ color: var(--text-on-accent);
25
+ box-shadow: var(--mint-shadow-pop);
26
26
  cursor: pointer;
27
- transition: background var(--mint-transition), box-shadow var(--mint-transition);
27
+ transition: background var(--mint-transition);
28
28
  }
29
29
 
30
30
  .mint-jobs-tray__trigger:hover {
@@ -63,14 +63,14 @@
63
63
  align-items: center;
64
64
  justify-content: center;
65
65
  padding: 0 0.375rem;
66
- border-radius: 9999px;
66
+ border-radius: var(--radius-sm);
67
67
  font: 600 0.6875rem/1 var(--font-mono);
68
68
  }
69
69
 
70
+ /* Inverted on the accent fill: accent ink on the on-accent colour, in both themes. */
70
71
  .mint-jobs-tray__count {
71
- /* Darken, not lighten: white text keeps >= 4.5:1 on any primary (indigo or the platform teal). */
72
- background: rgb(0 0 0 / 0.4);
73
- color: inherit;
72
+ background: var(--text-on-accent);
73
+ color: var(--_ink-primary);
74
74
  }
75
75
 
76
76
  .mint-jobs-tray__backdrop {
@@ -78,7 +78,6 @@
78
78
  inset: 0;
79
79
  z-index: -2;
80
80
  background: rgb(15 23 42 / 0.22);
81
- backdrop-filter: blur(2px);
82
81
  }
83
82
 
84
83
  .mint-jobs-tray__panel {
@@ -86,14 +85,14 @@
86
85
  right: 0;
87
86
  bottom: 3.75rem;
88
87
  display: flex;
89
- width: min(27.5rem, calc(100vw - 2rem));
88
+ width: min(21.25rem, calc(100vw - 2rem));
90
89
  max-height: min(42rem, calc(100vh - 7rem));
91
90
  flex-direction: column;
92
91
  overflow: hidden;
93
92
  border: 1px solid var(--border-color);
94
93
  border-radius: var(--radius-lg);
95
94
  background: var(--bg-card);
96
- box-shadow: var(--shadow-lg);
95
+ box-shadow: var(--mint-shadow-pop);
97
96
  }
98
97
 
99
98
  .mint-jobs-tray__header,
@@ -107,7 +106,8 @@
107
106
 
108
107
  .mint-jobs-tray__header {
109
108
  justify-content: space-between;
110
- padding: 0.75rem 0.75rem 0.75rem 1rem;
109
+ height: 2.5rem;
110
+ padding: 0 0.5rem 0 0.75rem;
111
111
  border-bottom: 1px solid var(--border-color);
112
112
  }
113
113
 
@@ -119,16 +119,22 @@
119
119
  }
120
120
 
121
121
  .mint-jobs-tray__title {
122
+ flex-shrink: 0;
122
123
  margin: 0;
123
124
  color: var(--text-primary);
124
- font-size: 0.875rem;
125
+ font-size: 0.8125rem;
125
126
  font-weight: 600;
127
+ white-space: nowrap;
126
128
  }
127
129
 
128
130
  .mint-jobs-tray__subtitle {
131
+ min-width: 0;
129
132
  margin: 0;
130
- color: var(--text-secondary);
133
+ overflow: hidden;
134
+ color: var(--text-muted);
131
135
  font: 0.6875rem/1.3 var(--font-mono);
136
+ text-overflow: ellipsis;
137
+ white-space: nowrap;
132
138
  }
133
139
 
134
140
  .mint-jobs-tray__header-actions {
@@ -189,7 +195,7 @@
189
195
  }
190
196
 
191
197
  .mint-jobs-tray__tab--active {
192
- color: var(--color-primary);
198
+ color: var(--_ink-primary);
193
199
  }
194
200
 
195
201
  .mint-jobs-tray__tab--active::after {
@@ -233,7 +239,7 @@
233
239
 
234
240
  /* 2f: rows + hairlines, no card per job. */
235
241
  .mint-jobs-tray__job {
236
- padding: 0.75rem 1rem;
242
+ padding: 0.625rem 0.75rem;
237
243
  border-bottom: 1px solid var(--border-light);
238
244
  }
239
245
 
@@ -263,7 +269,7 @@
263
269
  color: var(--text-primary);
264
270
  cursor: pointer;
265
271
  font-size: 0.8125rem;
266
- font-weight: 600;
272
+ font-weight: 500;
267
273
  text-align: left;
268
274
  text-overflow: ellipsis;
269
275
  white-space: nowrap;
@@ -295,7 +301,7 @@
295
301
  background: var(--mint-jobs-tray-tone);
296
302
  }
297
303
 
298
- .mint-jobs-tray__status--running { --mint-jobs-tray-tone: var(--mint-info); }
304
+ .mint-jobs-tray__status--running { --mint-jobs-tray-tone: var(--color-primary); }
299
305
  .mint-jobs-tray__status--completed { --mint-jobs-tray-tone: var(--mint-success); }
300
306
 
301
307
  .mint-jobs-tray__status--awaiting-input {
@@ -320,10 +326,10 @@
320
326
  }
321
327
 
322
328
  .mint-jobs-tray__progress {
323
- height: 2px;
324
- margin-top: 0.5rem;
329
+ height: 4px;
330
+ margin-top: 0.375rem;
325
331
  overflow: hidden;
326
- border-radius: 9999px;
332
+ border-radius: 2px;
327
333
  background: var(--bg-tertiary);
328
334
  }
329
335
 
@@ -363,7 +369,7 @@
363
369
  .mint-jobs-tray__job--awaiting-input .mint-jobs-tray__action:not(.mint-jobs-tray__action--danger) {
364
370
  border-color: var(--color-primary);
365
371
  background: var(--color-primary);
366
- color: white;
372
+ color: var(--text-on-accent);
367
373
  }
368
374
 
369
375
  .mint-jobs-tray__job--awaiting-input .mint-jobs-tray__action:not(.mint-jobs-tray__action--danger):hover {
@@ -382,7 +388,7 @@
382
388
 
383
389
  .mint-jobs-tray__clear-row {
384
390
  justify-content: flex-end;
385
- padding: 0.5rem 1rem;
391
+ padding: 0.5rem 0.75rem;
386
392
  border-bottom: 1px solid var(--border-light);
387
393
  }
388
394
 
@@ -391,11 +397,12 @@
391
397
  cursor: not-allowed;
392
398
  }
393
399
 
400
+ /* Overlays fade in 180ms; no lift or scale (v2). */
394
401
  .mint-jobs-tray-fade-enter-active,
395
402
  .mint-jobs-tray-fade-leave-active,
396
403
  .mint-jobs-tray-slide-enter-active,
397
404
  .mint-jobs-tray-slide-leave-active {
398
- transition: opacity var(--mint-transition), transform var(--mint-transition);
405
+ transition: opacity 180ms ease;
399
406
  }
400
407
 
401
408
  .mint-jobs-tray-fade-enter-from,
@@ -406,7 +413,6 @@
406
413
  .mint-jobs-tray-slide-enter-from,
407
414
  .mint-jobs-tray-slide-leave-to {
408
415
  opacity: 0;
409
- transform: translateY(0.5rem) scale(0.98);
410
416
  }
411
417
 
412
418
  @keyframes mint-jobs-tray-pulse {
@@ -36,9 +36,7 @@
36
36
  .mint-modal__overlay {
37
37
  position: absolute;
38
38
  inset: 0;
39
- background-color: rgba(15, 23, 42, 0.55);
40
- backdrop-filter: blur(4px) saturate(0.6);
41
- -webkit-backdrop-filter: blur(4px) saturate(0.6);
39
+ background-color: rgba(15, 23, 42, 0.45);
42
40
  }
43
41
 
44
42
  /* ========================================================================
@@ -117,7 +115,7 @@
117
115
  width: 2.5rem;
118
116
  height: 3px;
119
117
  background-color: var(--border-color);
120
- border-radius: 9999px;
118
+ border-radius: var(--radius-sm);
121
119
  margin: 0.5rem auto 0;
122
120
  flex-shrink: 0;
123
121
  }
@@ -130,7 +128,7 @@
130
128
  display: flex;
131
129
  align-items: flex-start;
132
130
  gap: 0.625rem;
133
- padding: 1.125rem 1.25rem;
131
+ padding: 1rem 1.25rem 0.875rem;
134
132
  border-bottom: 1px solid var(--border-light);
135
133
  }
136
134
 
@@ -165,7 +163,7 @@
165
163
  width: 1.75rem;
166
164
  height: 1.75rem;
167
165
  padding: 0;
168
- border-radius: 0.4375rem;
166
+ border-radius: var(--radius-md);
169
167
  color: var(--text-secondary);
170
168
  background: none;
171
169
  border: none;
@@ -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. */
@@ -177,7 +177,7 @@
177
177
  border-radius: var(--radius);
178
178
  color: var(--text-secondary-strong);
179
179
  cursor: pointer;
180
- transition: color 0.15s ease, background-color 0.15s ease;
180
+ transition: color var(--mint-transition), background-color var(--mint-transition);
181
181
  }
182
182
 
183
183
  .mint-molecule-input__action-btn:hover:not(:disabled) {
@@ -1,140 +1,88 @@
1
- /* BaseSelect multiple (chip list) styles */
1
+ /* BaseSelect multiple: a chip field (same shell as the searchable trigger) that opens
2
+ the searchable popover (.mint-popover + .mint-searchable-select__panel/__search/__list)
3
+ with checkbox rows (.mint-menu-item). */
2
4
 
3
- .mint-multi-select {
4
- display: flex;
5
- flex-direction: column;
6
- gap: 0.5rem;
7
- }
8
-
9
- .mint-multi-select--disabled {
10
- opacity: var(--mint-disabled-opacity);
11
- pointer-events: none;
12
- }
13
-
14
- /* Invalid: the chip borders take the error color */
15
- .mint-multi-select--error .mint-multi-select__chip {
16
- border-color: var(--mint-error);
17
- }
18
-
19
- /* Placeholder */
20
- .mint-multi-select__placeholder {
21
- font-size: 0.875rem;
22
- color: var(--text-muted);
23
- }
24
-
25
- .mint-multi-select--sm .mint-multi-select__placeholder {
26
- font-size: 0.75rem;
27
- }
5
+ .mint-multi-select { position: relative; min-width: 0; }
28
6
 
29
- .mint-multi-select--lg .mint-multi-select__placeholder {
30
- font-size: 1rem;
31
- }
32
-
33
- /* Options container */
34
- .mint-multi-select__options {
7
+ .mint-multi-select__field {
35
8
  display: flex;
36
- flex-wrap: wrap;
37
- gap: 0.5rem;
38
- }
39
-
40
- /* Chip styles — a toggleable option, not a status pill (1i) */
41
- .mint-multi-select__chip {
42
- display: inline-flex;
43
9
  align-items: center;
10
+ width: 100%;
11
+ min-height: var(--form-height-md);
12
+ gap: 0.375rem;
13
+ padding: 0 0.625rem;
44
14
  box-sizing: border-box;
45
- border-radius: var(--radius);
46
15
  border: 1px solid var(--border-color);
47
- background-color: var(--bg-card);
48
- color: var(--text-secondary-strong);
49
- font-family: inherit;
50
- font-weight: 500;
51
- line-height: 1;
16
+ border-radius: var(--radius-md);
17
+ background: var(--bg-secondary);
18
+ color: var(--text-primary);
19
+ font-size: 0.8125rem;
52
20
  cursor: pointer;
53
- transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
54
- }
55
-
56
- .mint-multi-select__chip:hover:not(.mint-multi-select__chip--active):not(.mint-multi-select__chip--disabled) {
57
- background-color: var(--bg-hover);
21
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
58
22
  }
59
23
 
60
- .mint-multi-select__chip:focus-visible {
61
- outline: none;
62
- box-shadow: var(--focus-ring-offset);
63
- }
64
-
65
- .mint-multi-select__chip--active {
66
- background-color: var(--color-primary-soft);
67
- border-color: var(--color-primary);
68
- color: var(--_ink-primary);
69
- }
24
+ .mint-multi-select--sm .mint-multi-select__field { min-height: var(--form-height-sm); font-size: 0.75rem; }
25
+ .mint-multi-select--lg .mint-multi-select__field { min-height: var(--form-height-lg); padding: 0 1rem; font-size: 1rem; }
26
+ .mint-multi-select__field:hover:not(.mint-multi-select__field--disabled) { border-color: var(--_field-border-hover); }
27
+ .mint-multi-select__field:focus-visible,
28
+ .mint-multi-select__field--open { outline: none; border-color: var(--color-primary); box-shadow: var(--focus-ring-soft); }
29
+ .mint-multi-select__field--error,
30
+ .mint-multi-select__field--error:hover:not(.mint-multi-select__field--disabled) { border-color: var(--mint-error); }
31
+ .mint-multi-select__field--error:focus-visible,
32
+ .mint-multi-select__field--error.mint-multi-select__field--open { border-color: var(--mint-error); box-shadow: var(--focus-ring-soft-error); }
33
+ .mint-multi-select__field--disabled { background: var(--bg-tertiary); color: var(--text-muted); cursor: not-allowed; }
70
34
 
71
- .mint-multi-select__chip--disabled {
72
- opacity: var(--mint-disabled-opacity);
73
- cursor: not-allowed;
74
- }
35
+ .mint-multi-select__chips { display: flex; flex: 1; flex-wrap: wrap; min-width: 0; gap: 4px; padding: 4px 0; }
36
+ .mint-multi-select--sm .mint-multi-select__chips { padding: 3px 0; }
37
+ .mint-multi-select__placeholder { color: var(--text-muted); line-height: 20px; }
75
38
 
76
- /* Size variants — fixed heights line up with neighbouring fields */
77
- .mint-multi-select__chip--sm {
78
- height: 1.5rem;
79
- padding: 0 0.5rem;
39
+ .mint-multi-select__chip {
40
+ display: inline-flex;
41
+ align-items: center;
42
+ height: 20px;
43
+ gap: 4px;
44
+ padding: 0 4px 0 6px;
45
+ border-radius: var(--radius);
46
+ background: var(--bg-tertiary);
47
+ color: var(--text-secondary-strong);
80
48
  font-size: 0.75rem;
81
- gap: 0.25rem;
82
- }
83
-
84
- .mint-multi-select__chip--md {
85
- height: 1.75rem;
86
- padding: 0 0.625rem;
87
- font-size: 0.8125rem;
88
- gap: 0.375rem;
49
+ white-space: nowrap;
89
50
  }
90
51
 
91
- .mint-multi-select__chip--lg {
92
- height: 2rem;
93
- padding: 0 0.75rem;
94
- font-size: 0.875rem;
95
- gap: 0.375rem;
96
- }
52
+ /* The disabled field is --bg-tertiary too, so the chip keeps a hairline edge. */
53
+ .mint-multi-select__field--disabled .mint-multi-select__chip { padding-right: 6px; box-shadow: inset 0 0 0 1px var(--border-strong); }
97
54
 
98
- /* Chip label */
99
- .mint-multi-select__chip-label {
100
- line-height: 1.25;
55
+ .mint-multi-select__chip-remove {
56
+ display: flex;
57
+ padding: 1px;
58
+ border: 0;
59
+ border-radius: 2px;
60
+ background: transparent;
61
+ color: inherit;
62
+ opacity: 0.6;
63
+ cursor: pointer;
101
64
  }
102
65
 
103
- /* Check icon — always rendered so the chip width never jumps */
104
- .mint-multi-select__chip-check {
105
- flex-shrink: 0;
106
- width: 0.75rem;
107
- height: 0.75rem;
108
- opacity: 0.28;
109
- transition: opacity 120ms ease;
110
- }
66
+ .mint-multi-select__chip-remove:hover { opacity: 1; }
67
+ .mint-multi-select__icon { flex: none; color: var(--text-muted); }
111
68
 
112
- .mint-multi-select__chip--active .mint-multi-select__chip-check {
113
- opacity: 1;
69
+ /* Row checkbox: same fill and ink as a checked BaseCheckbox. */
70
+ .mint-multi-select__check {
71
+ display: inline-flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ width: 14px;
75
+ height: 14px;
76
+ flex: none;
77
+ box-sizing: border-box;
78
+ border: 1px solid var(--border-strong);
79
+ border-radius: 3px;
80
+ color: var(--text-on-accent);
114
81
  }
115
82
 
116
- .mint-multi-select__chip--lg .mint-multi-select__chip-check {
117
- width: 0.875rem;
118
- height: 0.875rem;
119
- }
83
+ .mint-multi-select__check--on { border-color: var(--color-primary); background: var(--color-primary); }
84
+ .mint-multi-select__option[aria-disabled='true'] .mint-multi-select__check { opacity: var(--mint-disabled-opacity); }
120
85
 
121
86
  @media (prefers-reduced-motion: reduce) {
122
- .mint-multi-select__chip,
123
- .mint-multi-select__chip-check {
124
- transition: none;
125
- }
126
- }
127
-
128
- /* Summary text */
129
- .mint-multi-select__summary {
130
- font-size: 0.75rem;
131
- color: var(--text-muted);
132
- }
133
-
134
- .mint-multi-select--sm .mint-multi-select__summary {
135
- font-size: 0.6875rem;
136
- }
137
-
138
- .mint-multi-select--lg .mint-multi-select__summary {
139
- font-size: 0.875rem;
87
+ .mint-multi-select__field { transition: none; }
140
88
  }
@@ -14,10 +14,11 @@
14
14
  min-width: 0;
15
15
  align-items: stretch;
16
16
  overflow: hidden;
17
+ box-sizing: border-box;
17
18
  background-color: var(--bg-secondary);
18
19
  border: 1px solid var(--border-color);
19
- border-radius: var(--radius);
20
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
20
+ border-radius: var(--radius-md);
21
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
21
22
  }
22
23
 
23
24
  .mint-number-input--sm .mint-number-input__field { min-height: var(--form-height-sm); }
@@ -25,7 +26,7 @@
25
26
  .mint-number-input--lg .mint-number-input__field { min-height: var(--form-height-lg); }
26
27
 
27
28
  .mint-number-input__field:hover:not(:has(:disabled)) {
28
- border-color: var(--text-muted);
29
+ border-color: var(--_field-border-hover);
29
30
  }
30
31
 
31
32
  .mint-number-input__field:focus-within {
@@ -87,7 +88,7 @@
87
88
  background: var(--color-primary);
88
89
  }
89
90
 
90
- /* ---------- Numeric input — left-aligned, Fira Code ---------- */
91
+ /* ---------- Numeric input — left-aligned, mono ---------- */
91
92
 
92
93
  .mint-number-input__input {
93
94
  position: relative;
@@ -119,47 +120,53 @@
119
120
 
120
121
  /* Horizontal padding matches BaseInput canonical scale (10/12/16) so FormField's
121
122
  12px label indent aligns with the numeric text across all input types. */
122
- .mint-number-input__input--sm { padding: 0.375rem 0.625rem; font-size: 0.8125rem; }
123
- .mint-number-input__input--md { padding: 0.5rem 0.75rem; font-size: 0.875rem; }
124
- .mint-number-input__input--lg { padding: 0.75rem 1rem; font-size: 1rem; }
123
+ .mint-number-input__input--sm { padding: 0.25rem 0.625rem; font-size: 0.8125rem; }
124
+ .mint-number-input__input--md { padding: 0.375rem 0.75rem; font-size: 0.875rem; }
125
+ .mint-number-input__input--lg { padding: 0.5rem 1rem; font-size: 1rem; }
125
126
 
126
127
  /* ---------- Unit suffix ---------- */
127
128
 
128
129
  .mint-number-input__unit {
129
130
  position: relative;
130
131
  flex-shrink: 0;
131
- padding-right: 0.5rem;
132
+ padding: 0 0.5rem 0 0.25rem;
132
133
  color: var(--text-muted);
133
- font-size: 0.6875rem;
134
+ font-size: 0.75rem;
134
135
  font-family: var(--font-mono);
135
136
  user-select: none;
136
137
  white-space: nowrap;
137
138
  }
138
139
 
139
- /* ---------- Steppers — always visible, horizontal, hairline-divided ---------- */
140
+ /* ---------- Steppers — always visible, stacked (increase on top), hairline-divided ---------- */
140
141
 
141
142
  .mint-number-input__steppers {
142
143
  display: flex;
144
+ flex-direction: column-reverse; /* markup is decrease, increase */
143
145
  flex-shrink: 0;
146
+ width: 22px;
147
+ border-left: 1px solid var(--border-color);
144
148
  }
145
149
 
146
150
  .mint-number-input__stepper {
147
151
  display: flex;
152
+ flex: 1;
148
153
  align-items: center;
149
154
  justify-content: center;
150
- width: 1.625rem;
151
155
  padding: 0;
152
- background: transparent;
153
- color: var(--text-secondary-strong);
156
+ background: var(--bg-primary);
157
+ color: var(--text-muted);
154
158
  border: none;
155
- border-left: 1px solid var(--border-color);
156
159
  cursor: pointer;
157
- transition: background-color 0.12s ease, color 0.12s ease;
160
+ transition: background-color var(--mint-transition), color var(--mint-transition);
161
+ }
162
+
163
+ .mint-number-input__stepper--down {
164
+ border-top: 1px solid var(--border-color);
158
165
  }
159
166
 
160
167
  .mint-number-input__stepper:hover:not(:disabled) {
161
- background: var(--color-primary-soft);
162
- color: var(--_ink-primary);
168
+ background: var(--bg-hover);
169
+ color: var(--text-primary);
163
170
  }
164
171
 
165
172
  .mint-number-input__stepper:disabled {
@@ -169,8 +176,8 @@
169
176
  }
170
177
 
171
178
  .mint-number-input__stepper svg {
172
- width: 0.625rem;
173
- height: 0.625rem;
179
+ width: 0.75rem;
180
+ height: 0.75rem;
174
181
  }
175
182
 
176
183
  @media (prefers-reduced-motion: reduce) {
@@ -4,7 +4,8 @@
4
4
  display: inline-flex;
5
5
  align-items: center;
6
6
  gap: 0.25rem;
7
- border-radius: 9999px;
7
+ /* Tags, not capsules: only the status dot stays round. */
8
+ border-radius: var(--radius);
8
9
  font-weight: 500;
9
10
  line-height: 1;
10
11
  white-space: nowrap;
@@ -156,7 +157,7 @@ html.dark .mint-pill--soft {
156
157
  padding: 0.0625rem;
157
158
  margin-left: 0.125rem;
158
159
  margin-right: -0.125rem;
159
- border-radius: 9999px;
160
+ border-radius: var(--radius-sm);
160
161
  background: transparent;
161
162
  border: none;
162
163
  cursor: pointer;
@@ -211,7 +211,6 @@
211
211
  border-color: transparent;
212
212
  background: var(--_slot);
213
213
  color: white;
214
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
215
214
  }
216
215
 
217
216
  .mint-plate-editor__slot:focus-visible {
@@ -1,12 +1,12 @@
1
- /* PluginIcon — BEM. Renders a plugin's icon inside a sized chip with two
2
- visual variants. Tintable via `--mint-plugin-icon-tone` custom property. */
1
+ /* PluginIcon — BEM. Renders a plugin's icon inside a sized chip. Both
2
+ variants draw one accent-soft tile; an image mark fills the tile instead. */
3
3
 
4
4
  .mint-plugin-icon {
5
5
  display: inline-flex;
6
6
  align-items: center;
7
7
  justify-content: center;
8
8
  flex-shrink: 0;
9
- border-radius: var(--radius-md, 0.5rem);
9
+ border-radius: var(--radius-md);
10
10
  overflow: hidden;
11
11
  }
12
12
 
@@ -14,9 +14,9 @@
14
14
  .mint-plugin-icon--sm { width: 1.5rem; height: 1.5rem; }
15
15
  .mint-plugin-icon--md { width: 2rem; height: 2rem; }
16
16
  .mint-plugin-icon--topbar { width: 2.25rem; height: 2.25rem; }
17
- .mint-plugin-icon--lg { width: 3rem; height: 3rem; border-radius: 0.75rem; }
17
+ .mint-plugin-icon--lg { width: 3rem; height: 3rem; }
18
18
 
19
- /* Tones — a `color` prop sets `--mint-plugin-icon-tone` inline and wins over the class. */
19
+ /* Tones (deprecated with the tone/color props, removed in 1.5): the v2 tile no longer reads the variable. */
20
20
  .mint-plugin-icon--neutral { --mint-plugin-icon-tone: var(--text-secondary); }
21
21
  .mint-plugin-icon--primary { --mint-plugin-icon-tone: var(--color-primary); }
22
22
  .mint-plugin-icon--cta { --mint-plugin-icon-tone: var(--color-cta); }
@@ -25,27 +25,30 @@
25
25
  .mint-plugin-icon--error { --mint-plugin-icon-tone: var(--mint-error); }
26
26
  .mint-plugin-icon--info { --mint-plugin-icon-tone: var(--mint-info); }
27
27
 
28
- /* Variants — `--mint-plugin-icon-tone` falls back to --color-primary */
29
- .mint-plugin-icon--solid {
30
- background-color: var(--mint-plugin-icon-tone, var(--color-primary));
31
- color: white;
32
- }
28
+ /* Variants — no solid colour fills: both render the accent-soft tile. */
29
+ .mint-plugin-icon--solid,
33
30
  .mint-plugin-icon--tinted {
34
- background-color: color-mix(in srgb, var(--mint-plugin-icon-tone, var(--color-primary)) 12%, transparent);
35
- color: var(--mint-plugin-icon-tone, var(--color-primary));
31
+ background-color: var(--color-primary-soft);
32
+ color: var(--_ink-primary);
33
+ box-shadow: inset 0 0 0 1px var(--color-primary-border);
34
+ }
35
+
36
+ /* An image mark fills the whole tile on a clear background, borderless. */
37
+ .mint-plugin-icon:has(> .mint-plugin-icon__img) {
38
+ background: transparent;
39
+ box-shadow: none;
36
40
  }
37
41
 
38
- /* Inner svg/img — sized to ~62% of chip */
39
- .mint-plugin-icon--sm .mint-plugin-icon__svg,
40
- .mint-plugin-icon--sm .mint-plugin-icon__img { width: 0.9375rem; height: 0.9375rem; }
41
- .mint-plugin-icon--md .mint-plugin-icon__svg,
42
- .mint-plugin-icon--md .mint-plugin-icon__img { width: 1.125rem; height: 1.125rem; }
43
- .mint-plugin-icon--topbar .mint-plugin-icon__svg,
44
- .mint-plugin-icon--topbar .mint-plugin-icon__img { width: 1.25rem; height: 1.25rem; }
45
- .mint-plugin-icon--lg .mint-plugin-icon__svg,
46
- .mint-plugin-icon--lg .mint-plugin-icon__img { width: 1.5rem; height: 1.5rem; }
47
-
48
- .mint-plugin-icon__img {
42
+ /* Inner svg — sized to ~62% of chip */
43
+ .mint-plugin-icon--sm .mint-plugin-icon__svg { width: 0.9375rem; height: 0.9375rem; }
44
+ .mint-plugin-icon--md .mint-plugin-icon__svg { width: 1.125rem; height: 1.125rem; }
45
+ .mint-plugin-icon--topbar .mint-plugin-icon__svg { width: 1.25rem; height: 1.25rem; }
46
+ .mint-plugin-icon--lg .mint-plugin-icon__svg { width: 1.5rem; height: 1.5rem; }
47
+
48
+ .mint-plugin-icon .mint-plugin-icon__img {
49
+ width: 100%;
50
+ height: 100%;
51
+ border-radius: var(--radius-md);
49
52
  object-fit: contain;
50
53
  }
51
54
 
@@ -21,9 +21,9 @@
21
21
  flex-direction: column;
22
22
  padding: 4px;
23
23
  border: 1px solid var(--border-color);
24
- border-radius: var(--radius-md);
24
+ border-radius: var(--radius-lg);
25
25
  background: var(--bg-card);
26
- box-shadow: var(--shadow-lg);
26
+ box-shadow: var(--mint-shadow-pop);
27
27
  }
28
28
 
29
29
  .mint-menu-item {
@@ -76,7 +76,7 @@
76
76
  height: 13px;
77
77
  border-radius: 50%;
78
78
  background: var(--mint-presence-editing);
79
- color: white;
79
+ color: var(--text-on-accent);
80
80
  box-shadow: 0 0 0 2px var(--mint-presence-surface);
81
81
  }
82
82