@morscherlab/mint-sdk 1.4.0-beta.2 → 1.4.0-beta.20

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 (330) hide show
  1. package/README.md +14 -3
  2. package/dist/{ActionMenu-CScINahU.js → AlertBox-CzLg0UaL.js} +40 -209
  3. package/dist/AlertBox-CzLg0UaL.js.map +1 -0
  4. package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-6oTT-gPO.js} +1249 -239
  5. package/dist/AppSidebar-6oTT-gPO.js.map +1 -0
  6. package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-CSls2Nuv.js} +2 -2
  7. package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-CSls2Nuv.js.map} +1 -1
  8. package/dist/ExperimentPopover-9l4QZlvQ.js +337 -0
  9. package/dist/ExperimentPopover-9l4QZlvQ.js.map +1 -0
  10. package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-pR5fK3pA.js} +244 -211
  11. package/dist/ExperimentSelectorModal-pR5fK3pA.js.map +1 -0
  12. package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-CJ7EAmOq.js} +2 -2
  13. package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-CJ7EAmOq.js.map} +1 -1
  14. package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-Dyitgzfp.js} +28 -27
  15. package/dist/SettingsModal-Dyitgzfp.js.map +1 -0
  16. package/dist/__stories__/experiment-helpers.d.ts +10 -0
  17. package/dist/__tests__/components/AppTopBarOnboarding.test.d.ts +1 -0
  18. package/dist/__tests__/composables/useOnboarding.test.d.ts +1 -0
  19. package/dist/__tests__/styles/paletteTokens.test.d.ts +1 -0
  20. package/dist/__tests__/styles/v2AuditRules.test.d.ts +1 -0
  21. package/dist/components/AppSidebar.vue.d.ts +1 -1
  22. package/dist/components/AppTopBar.vue.d.ts +20 -5
  23. package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
  24. package/dist/components/AuditTrail.vue.d.ts +1 -1
  25. package/dist/components/BaseButton.vue.d.ts +4 -2
  26. package/dist/components/BaseSelect.vue.d.ts +2 -2
  27. package/dist/components/ChartContainer.vue.d.ts +2 -0
  28. package/dist/components/DatePicker.vue.d.ts +1 -1
  29. package/dist/components/ExperimentPopover.vue.d.ts +18 -0
  30. package/dist/components/ExperimentSelectorModal.vue.d.ts +15 -5
  31. package/dist/components/FilePicker.vue.d.ts +1 -1
  32. package/dist/components/FileUploader.vue.d.ts +2 -2
  33. package/dist/components/JobsStatusTray.vue.d.ts +15 -4
  34. package/dist/components/PluginIcon.vue.d.ts +2 -2
  35. package/dist/components/PluginWorkspaceView.props.d.ts +3 -0
  36. package/dist/components/PluginWorkspaceView.vue.d.ts +3 -0
  37. package/dist/components/SampleSelector.vue.d.ts +6 -6
  38. package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
  39. package/dist/components/SmartGroupFieldRecipe.vue.d.ts +1 -1
  40. package/dist/components/StepWizard.vue.d.ts +3 -0
  41. package/dist/components/internal/AppTopBarOnboardingInternal.vue.d.ts +7 -0
  42. package/dist/components/internal/AppTopBarPageSelectorInternal.vue.d.ts +2 -1
  43. package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
  44. package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
  45. package/dist/components/internal/OnboardingLayerInternal.vue.d.ts +7 -0
  46. package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
  47. package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
  48. package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +8 -0
  49. package/dist/composables/createClient.d.ts +2 -0
  50. package/dist/composables/index.d.ts +1 -0
  51. package/dist/composables/pluginIdentity.d.ts +24 -0
  52. package/dist/composables/pluginWorkspaceModel.d.ts +2 -2
  53. package/dist/composables/useAppExperiment.d.ts +8 -0
  54. package/dist/composables/useCalendarGrid.d.ts +1 -1
  55. package/dist/composables/useExperimentSelector.d.ts +6 -2
  56. package/dist/composables/useJobCenter.d.ts +41 -3
  57. package/dist/composables/useOnboarding.d.ts +119 -0
  58. package/dist/composables/usePlatform.d.ts +1 -0
  59. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-DCUOx8ll.js} +2 -2
  60. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-DCUOx8ll.js.map} +1 -1
  61. package/dist/{data-C2PwI_dn.js → data-DBnmeBZX.js} +179 -125
  62. package/dist/data-DBnmeBZX.js.map +1 -0
  63. package/dist/data.js +8 -8
  64. package/dist/{experiment-43OJtH7R.js → experiment-DyO54FQB.js} +25 -61
  65. package/dist/experiment-DyO54FQB.js.map +1 -0
  66. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-BFrKpHAH.js} +3 -3
  67. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-BFrKpHAH.js.map} +1 -1
  68. package/dist/index.js +20 -20
  69. package/dist/{install-DAID6c2-.js → install-qjELyNwc.js} +15 -14
  70. package/dist/{install-DAID6c2-.js.map → install-qjELyNwc.js.map} +1 -1
  71. package/dist/install.js +1 -1
  72. package/dist/{lab-DLwRl_Ql.js → lab-UyTbokQC.js} +136 -148
  73. package/dist/lab-UyTbokQC.js.map +1 -0
  74. package/dist/lab.js +4 -3
  75. package/dist/{records-BzTcxekG.js → records-CR_pYzIP.js} +533 -335
  76. package/dist/records-CR_pYzIP.js.map +1 -0
  77. package/dist/{runtime-D6gVat6r.js → runtime-CoHhBP10.js} +417 -54
  78. package/dist/runtime-CoHhBP10.js.map +1 -0
  79. package/dist/runtime.d.ts +1 -1
  80. package/dist/runtime.js +7 -7
  81. package/dist/{shell-5ju97nOS.js → shell-BDuZf2zb.js} +10 -5
  82. package/dist/{shell-5ju97nOS.js.map → shell-BDuZf2zb.js.map} +1 -1
  83. package/dist/shell.d.ts +1 -0
  84. package/dist/shell.js +6 -6
  85. package/dist/stores/index.d.ts +1 -1
  86. package/dist/stores/index.js +2 -2
  87. package/dist/stores/settings.d.ts +4 -12
  88. package/dist/styles.css +2732 -2083
  89. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  90. package/dist/types/components.d.ts +2 -0
  91. package/dist/types/generated/platformContext.d.ts +1 -0
  92. package/dist/types/generated-ui.d.ts +4 -0
  93. package/dist/types/index.d.ts +1 -1
  94. package/dist/types/jobs.d.ts +9 -0
  95. package/dist/types/platform.d.ts +1 -1
  96. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-Bb2N4m40.js} +74 -4
  97. package/dist/useDropdownState-Bb2N4m40.js.map +1 -0
  98. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-Dno1fFMq.js} +4 -4
  99. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-Dno1fFMq.js.map} +1 -1
  100. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-CQ9OCScc.js} +183 -351
  101. package/dist/useListReorder-CQ9OCScc.js.map +1 -0
  102. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-wL3kPrRT.js} +73 -59
  103. package/dist/useRackEditor-wL3kPrRT.js.map +1 -0
  104. package/dist/useRealtime-C3whhVvb.js +508 -0
  105. package/dist/useRealtime-C3whhVvb.js.map +1 -0
  106. package/dist/useRequest-CDkrXNU7.js +244 -0
  107. package/dist/useRequest-CDkrXNU7.js.map +1 -0
  108. package/dist/utils/time.d.ts +7 -0
  109. package/package.json +1 -1
  110. package/src/__stories__/experiment-helpers.ts +3 -3
  111. package/src/__tests__/components/AppTopBar.test.ts +257 -3
  112. package/src/__tests__/components/AppTopBarOnboarding.test.ts +160 -0
  113. package/src/__tests__/components/AppTopBarPageSelector.test.ts +125 -9
  114. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  115. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  116. package/src/__tests__/components/BaseButton.test.ts +19 -0
  117. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  118. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  119. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  120. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  121. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  122. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  123. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  124. package/src/__tests__/components/DatePicker.test.ts +21 -0
  125. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  126. package/src/__tests__/components/EmptyState.test.ts +1 -1
  127. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  128. package/src/__tests__/components/ExperimentSelectorModal.test.ts +153 -14
  129. package/src/__tests__/components/GeneratedPluginView.test.ts +23 -2
  130. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  131. package/src/__tests__/components/JobsStatusTray.test.ts +373 -71
  132. package/src/__tests__/components/PluginWorkspaceView.test.ts +63 -1
  133. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  134. package/src/__tests__/components/SampleSelector.test.ts +33 -8
  135. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  136. package/src/__tests__/components/SettingsModal.test.ts +9 -2
  137. package/src/__tests__/components/StepWizard.test.ts +11 -0
  138. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  139. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  140. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  141. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  142. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  143. package/src/__tests__/composables/useJobCenter.test.ts +262 -3
  144. package/src/__tests__/composables/useOnboarding.test.ts +317 -0
  145. package/src/__tests__/docs/frontendDocsCatalog.test.ts +4 -3
  146. package/src/__tests__/stores/settings.test.ts +21 -21
  147. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  148. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  149. package/src/__tests__/styles/cssTokens.test.ts +6 -3
  150. package/src/__tests__/styles/menusShellRefresh.test.ts +22 -12
  151. package/src/__tests__/styles/paletteTokens.test.ts +44 -0
  152. package/src/__tests__/styles/v2AuditRules.test.ts +104 -0
  153. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  154. package/src/__tests__/utils/time.test.ts +18 -1
  155. package/src/components/AdductText.story.vue +7 -0
  156. package/src/components/AdductText.vue +1 -1
  157. package/src/components/AlertBox.story.vue +2 -2
  158. package/src/components/AlertBox.vue +18 -16
  159. package/src/components/AppSidebar.story.vue +0 -28
  160. package/src/components/AppTopBar.onboarding.story.vue +69 -0
  161. package/src/components/AppTopBar.story.vue +105 -15
  162. package/src/components/AppTopBar.vue +248 -122
  163. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  164. package/src/components/ArtifactSaveDialog.vue +102 -12
  165. package/src/components/AuditTrail.story.vue +2 -1
  166. package/src/components/AuditTrail.vue +2 -21
  167. package/src/components/Avatar.vue +10 -14
  168. package/src/components/BaseButton.vue +16 -2
  169. package/src/components/BaseSelect.multiple.story.vue +13 -2
  170. package/src/components/BaseSelect.vue +4 -3
  171. package/src/components/BatchProgressList.vue +35 -25
  172. package/src/components/ChartContainer.story.vue +2 -1
  173. package/src/components/ChartContainer.vue +8 -6
  174. package/src/components/ConfirmDialog.story.vue +1 -1
  175. package/src/components/EmptyState.vue +1 -1
  176. package/src/components/ExperimentPopover.story.vue +165 -53
  177. package/src/components/ExperimentPopover.vue +169 -187
  178. package/src/components/ExperimentSelectorModal.story.vue +73 -31
  179. package/src/components/ExperimentSelectorModal.vue +144 -111
  180. package/src/components/FormField.story.vue +8 -48
  181. package/src/components/GeneratedPluginView.vue +11 -10
  182. package/src/components/GeneratedResultRenderer.vue +3 -4
  183. package/src/components/InstrumentStateBadge.vue +1 -1
  184. package/src/components/JobsStatusTray.story.vue +97 -43
  185. package/src/components/JobsStatusTray.vue +287 -290
  186. package/src/components/LayoutResizeHandle.story.vue +65 -4
  187. package/src/components/LoadingSpinner.vue +1 -1
  188. package/src/components/NumberInput.vue +3 -6
  189. package/src/components/PluginIcon.story.vue +2 -10
  190. package/src/components/PluginIcon.vue +2 -2
  191. package/src/components/PluginWorkspaceView.props.ts +3 -0
  192. package/src/components/PluginWorkspaceView.story.vue +1 -1
  193. package/src/components/PluginWorkspaceView.vue +17 -0
  194. package/src/components/RuntimeUpdateNotice.vue +1 -1
  195. package/src/components/SampleSelector.story.vue +22 -7
  196. package/src/components/SampleSelector.vue +34 -37
  197. package/src/components/SampleSelectorGroupNode.vue +1 -1
  198. package/src/components/SectionCard.story.vue +35 -2
  199. package/src/components/SequenceProgressBar.story.vue +9 -0
  200. package/src/components/SequenceProgressBar.vue +6 -1
  201. package/src/components/SettingsModal.schema.ts +1 -1
  202. package/src/components/SettingsModal.vue +9 -14
  203. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  204. package/src/components/SmartGroupManual.story.vue +1 -1
  205. package/src/components/StepWizard.story.vue +33 -0
  206. package/src/components/StepWizard.vue +8 -1
  207. package/src/components/WellPlate.story.vue +3 -1
  208. package/src/components/WellPlate.vue +7 -0
  209. package/src/components/internal/AppTopBarOnboardingInternal.vue +172 -0
  210. package/src/components/internal/AppTopBarPageSelectorInternal.vue +140 -72
  211. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  212. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  213. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  214. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  215. package/src/components/internal/OnboardingLayerInternal.vue +173 -0
  216. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  217. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  218. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  219. package/src/components/internal/WorkspaceShellInternal.vue +12 -0
  220. package/src/composables/createClient.ts +2 -0
  221. package/src/composables/index.ts +1 -0
  222. package/src/composables/pluginIdentity.ts +31 -0
  223. package/src/composables/pluginWorkspaceModel.ts +2 -2
  224. package/src/composables/useAppExperiment.ts +20 -0
  225. package/src/composables/useCalendarGrid.ts +4 -3
  226. package/src/composables/useExperimentSelector.ts +77 -31
  227. package/src/composables/useJobCenter.ts +188 -6
  228. package/src/composables/useOnboarding.ts +465 -0
  229. package/src/composables/usePluginWorkspace.ts +1 -1
  230. package/src/runtime.ts +2 -1
  231. package/src/shell.ts +17 -0
  232. package/src/stores/index.ts +0 -2
  233. package/src/stores/settings.ts +20 -50
  234. package/src/styles/components/adduct-text.css +13 -5
  235. package/src/styles/components/alert-box.css +39 -58
  236. package/src/styles/components/app-layout.css +7 -5
  237. package/src/styles/components/app-page-selector.css +121 -44
  238. package/src/styles/components/app-pill-nav.css +11 -12
  239. package/src/styles/components/app-sidebar.css +9 -18
  240. package/src/styles/components/app-top-bar.css +219 -55
  241. package/src/styles/components/artifact-save-dialog.css +153 -2
  242. package/src/styles/components/audit-trail.css +16 -19
  243. package/src/styles/components/avatar.css +6 -4
  244. package/src/styles/components/batch-progress-list.css +38 -36
  245. package/src/styles/components/button.css +36 -59
  246. package/src/styles/components/calendar.css +12 -12
  247. package/src/styles/components/chart-container.css +34 -23
  248. package/src/styles/components/checkbox.css +2 -12
  249. package/src/styles/components/collapsible-card.css +27 -29
  250. package/src/styles/components/confirm-dialog.css +13 -14
  251. package/src/styles/components/dataframe.css +13 -5
  252. package/src/styles/components/date-picker.css +80 -92
  253. package/src/styles/components/datetime-picker.css +31 -43
  254. package/src/styles/components/divider.css +20 -20
  255. package/src/styles/components/dose-calculator.css +3 -3
  256. package/src/styles/components/empty-state.css +20 -17
  257. package/src/styles/components/experiment-code-badge.css +2 -0
  258. package/src/styles/components/experiment-popover.css +174 -329
  259. package/src/styles/components/experiment-selector-modal.css +88 -56
  260. package/src/styles/components/file-picker.css +3 -3
  261. package/src/styles/components/file-uploader.css +38 -49
  262. package/src/styles/components/form-builder.css +3 -3
  263. package/src/styles/components/formula-input.css +1 -1
  264. package/src/styles/components/icon-button.css +18 -24
  265. package/src/styles/components/input.css +5 -4
  266. package/src/styles/components/instrument-monitor.css +13 -15
  267. package/src/styles/components/jobs-status-tray.css +140 -296
  268. package/src/styles/components/layout-resize-handle.css +59 -16
  269. package/src/styles/components/modal.css +4 -6
  270. package/src/styles/components/molecule-input.css +2 -2
  271. package/src/styles/components/multi-select.css +65 -117
  272. package/src/styles/components/number-input.css +26 -19
  273. package/src/styles/components/onboarding.css +368 -0
  274. package/src/styles/components/pill.css +3 -2
  275. package/src/styles/components/plate-editor.css +0 -1
  276. package/src/styles/components/plugin-icon.css +26 -23
  277. package/src/styles/components/popover.css +2 -2
  278. package/src/styles/components/presence-avatars.css +1 -1
  279. package/src/styles/components/progress-bar.css +3 -3
  280. package/src/styles/components/protocol-step-editor.css +1 -3
  281. package/src/styles/components/resource-card.css +2 -2
  282. package/src/styles/components/resource-picker-list.css +6 -57
  283. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  284. package/src/styles/components/sample-selector.css +138 -79
  285. package/src/styles/components/schedule-calendar.css +8 -8
  286. package/src/styles/components/searchable-select.css +12 -12
  287. package/src/styles/components/section-card.css +54 -49
  288. package/src/styles/components/segmented-control.css +18 -15
  289. package/src/styles/components/select.css +3 -3
  290. package/src/styles/components/sequence-input.css +2 -2
  291. package/src/styles/components/sequence-progress-bar.css +17 -8
  292. package/src/styles/components/settings-modal.css +7 -2
  293. package/src/styles/components/smart-group.css +18 -18
  294. package/src/styles/components/step-wizard.css +52 -16
  295. package/src/styles/components/tabs.css +2 -2
  296. package/src/styles/components/textarea.css +3 -3
  297. package/src/styles/components/time-picker.css +36 -21
  298. package/src/styles/components/toast.css +12 -10
  299. package/src/styles/components/toggle.css +1 -11
  300. package/src/styles/components/tooltip.css +10 -9
  301. package/src/styles/components/unit-input.css +8 -7
  302. package/src/styles/components/well-plate.css +9 -2
  303. package/src/styles/index.css +1 -0
  304. package/src/styles/variables.css +241 -78
  305. package/src/types/componentWorkflowTypes.ts +2 -0
  306. package/src/types/components.ts +2 -0
  307. package/src/types/generated/platformContext.ts +1 -0
  308. package/src/types/generated-ui.ts +4 -0
  309. package/src/types/index.ts +1 -0
  310. package/src/types/jobs.ts +10 -0
  311. package/src/types/platform.ts +1 -1
  312. package/src/utils/time.ts +21 -0
  313. package/dist/ActionMenu-CScINahU.js.map +0 -1
  314. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  315. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  316. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  317. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  318. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  319. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  320. package/dist/data-C2PwI_dn.js.map +0 -1
  321. package/dist/experiment-43OJtH7R.js.map +0 -1
  322. package/dist/lab-DLwRl_Ql.js.map +0 -1
  323. package/dist/records-BzTcxekG.js.map +0 -1
  324. package/dist/runtime-D6gVat6r.js.map +0 -1
  325. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  326. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  327. package/dist/useRealtime-PalKue84.js +0 -696
  328. package/dist/useRealtime-PalKue84.js.map +0 -1
  329. package/dist/useRequest-D5JDfsgZ.js +0 -76
  330. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { PillNavOption, PillNavItem, PageSelectorItem, PageSelectorItemInput, PluginWorkspaceTopBarSpec } from '../types/components';
2
+ import { TopBarJob } from '../types/jobs';
2
3
  interface Props {
3
4
  /** App or plugin title shown in the left title group when no page selector is present. */
4
5
  title?: string;
@@ -12,14 +13,25 @@ interface Props {
12
13
  pageSelector?: PageSelectorItemInput[];
13
14
  /** Active id of the platform page selector. */
14
15
  currentPageSelectorId?: string;
16
+ /**
17
+ * The viewer's own job, joined to the experiment chip. Omit it for no jobs control;
18
+ * `null` shows the idle Jobs button. Both emit `job-click`.
19
+ */
20
+ job?: TopBarJob | null;
21
+ /** Completed jobs, shown as a small count on the idle Jobs button. Hidden when 0. */
22
+ jobsDone?: number;
23
+ /** Whether the jobs panel is open; `aria-expanded` of the job control. */
24
+ jobsOpen?: boolean;
25
+ /** DOM id of the jobs panel; `aria-controls` of the job control. */
26
+ jobsPanelId?: string;
15
27
  }
16
28
  declare var __VLS_6: {}, __VLS_13: {}, __VLS_26: {}, __VLS_33: {}, __VLS_40: {}, __VLS_47: {}, __VLS_58: {
17
29
  page: PageSelectorItem;
18
30
  }, __VLS_61: {
19
31
  page: PageSelectorItem;
20
- }, __VLS_63: {}, __VLS_65: {}, __VLS_84: {}, __VLS_91: {}, __VLS_103: `settings-tab-${string}`, __VLS_104: {}, __VLS_107: {};
32
+ }, __VLS_63: {}, __VLS_65: {}, __VLS_103: {}, __VLS_115: {}, __VLS_127: `settings-tab-${string}`, __VLS_128: {}, __VLS_131: {};
21
33
  type __VLS_Slots = {} & {
22
- [K in NonNullable<typeof __VLS_103>]?: (props: typeof __VLS_104) => any;
34
+ [K in NonNullable<typeof __VLS_127>]?: (props: typeof __VLS_128) => any;
23
35
  } & {
24
36
  icon?: (props: typeof __VLS_6) => any;
25
37
  } & {
@@ -41,11 +53,11 @@ type __VLS_Slots = {} & {
41
53
  } & {
42
54
  center?: (props: typeof __VLS_65) => any;
43
55
  } & {
44
- actions?: (props: typeof __VLS_84) => any;
56
+ actions?: (props: typeof __VLS_103) => any;
45
57
  } & {
46
- account?: (props: typeof __VLS_91) => any;
58
+ account?: (props: typeof __VLS_115) => any;
47
59
  } & {
48
- 'settings-appearance'?: (props: typeof __VLS_107) => any;
60
+ 'settings-appearance'?: (props: typeof __VLS_131) => any;
49
61
  };
50
62
  declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
51
63
  "update:pill": (pillId: string) => any;
@@ -53,14 +65,17 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, i
53
65
  "pill-option-select": (option: PillNavOption, item: PillNavItem) => any;
54
66
  "settings-values-change": (data: Record<string, unknown>) => any;
55
67
  "page-selector-select": (page: PageSelectorItem) => any;
68
+ "job-click": () => any;
56
69
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
57
70
  "onUpdate:pill"?: ((pillId: string) => any) | undefined;
58
71
  "onPill-select"?: ((item: PillNavItem) => any) | undefined;
59
72
  "onPill-option-select"?: ((option: PillNavOption, item: PillNavItem) => any) | undefined;
60
73
  "onSettings-values-change"?: ((data: Record<string, unknown>) => any) | undefined;
61
74
  "onPage-selector-select"?: ((page: PageSelectorItem) => any) | undefined;
75
+ "onJob-click"?: (() => any) | undefined;
62
76
  }>, {
63
77
  spec: PluginWorkspaceTopBarSpec;
78
+ jobsOpen: boolean;
64
79
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
65
80
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
66
81
  declare const _default: typeof __VLS_export;
@@ -1,5 +1,5 @@
1
1
  import { AnalysisArtifactDetail, ArtifactFileSource, ArtifactSaveDialogHandler, ArtifactSaveDialogPayload, ArtifactSaveResult } from '../types/analysisArtifactTypes';
2
- import { ModalSize } from '../types';
2
+ import { ExperimentSummary, ModalSize } from '../types';
3
3
  interface Props {
4
4
  open: boolean;
5
5
  /** Performs the backend write; the dialog never calls the platform itself. */
@@ -12,6 +12,11 @@ interface Props {
12
12
  result?: Record<string, unknown>;
13
13
  /** Experiment id override; defaults to the current experiment (`useExperimentStore`). */
14
14
  experimentId?: number | null;
15
+ /**
16
+ * Experiment shown in the strip at the top. Defaults to the store's current
17
+ * experiment when it is the one being saved to; no strip when unknown.
18
+ */
19
+ experiment?: ExperimentSummary | null;
15
20
  /** Existing artifact detail; when set the dialog updates instead of creating. */
16
21
  existingArtifact?: AnalysisArtifactDetail | null;
17
22
  /** Known artifact keys, used to warn (json) or block (file) on collisions. */
@@ -40,6 +45,7 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
40
45
  saved: (result: ArtifactSaveResult & {
41
46
  payload: ArtifactSaveDialogPayload;
42
47
  }) => any;
48
+ "change-experiment": () => any;
43
49
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
44
50
  onError?: ((message: string) => any) | undefined;
45
51
  onCancel?: (() => any) | undefined;
@@ -47,7 +53,9 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
47
53
  onSaved?: ((result: ArtifactSaveResult & {
48
54
  payload: ArtifactSaveDialogPayload;
49
55
  }) => any) | undefined;
56
+ "onChange-experiment"?: (() => any) | undefined;
50
57
  }>, {
58
+ experiment: ExperimentSummary | null;
51
59
  size: ModalSize;
52
60
  mode: "json" | "file" | "both";
53
61
  experimentId: number | null;
@@ -36,8 +36,8 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, i
36
36
  error: string | null;
37
37
  size: "sm" | "md" | "lg";
38
38
  loading: boolean;
39
- emptyText: string;
40
39
  order: "newest" | "oldest";
40
+ emptyText: string;
41
41
  showFilters: boolean;
42
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
43
43
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -12,13 +12,15 @@ interface Props {
12
12
  /** Accessible name and tooltip of an icon-only button. */
13
13
  label?: string;
14
14
  }
15
- declare var __VLS_11: {}, __VLS_13: {}, __VLS_15: {};
15
+ declare var __VLS_11: {}, __VLS_13: {}, __VLS_15: {}, __VLS_17: {};
16
16
  type __VLS_Slots = {} & {
17
17
  'icon-left'?: (props: typeof __VLS_11) => any;
18
18
  } & {
19
19
  default?: (props: typeof __VLS_13) => any;
20
20
  } & {
21
- 'icon-right'?: (props: typeof __VLS_15) => any;
21
+ default?: (props: typeof __VLS_15) => any;
22
+ } & {
23
+ 'icon-right'?: (props: typeof __VLS_17) => any;
22
24
  };
23
25
  declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
24
26
  click: (event: MouseEvent) => any;
@@ -4,7 +4,7 @@ declare const __VLS_export: <M extends boolean = false>(__VLS_props: NonNullable
4
4
  /** The selected value; an array with `multiple`. */
5
5
  modelValue?: (M extends true ? OptionPrimitive[] : OptionPrimitive) | null;
6
6
  options: SelectOptionInput[];
7
- /** Bind an array and pick several options (chip list). */
7
+ /** Bind an array and pick several options (chip field + checkbox listbox). */
8
8
  multiple?: M;
9
9
  /** Single selection in a listbox with a search field. Ignored with `multiple`. */
10
10
  searchable?: boolean;
@@ -19,7 +19,7 @@ declare const __VLS_export: <M extends boolean = false>(__VLS_props: NonNullable
19
19
  invalid?: boolean;
20
20
  size?: "sm" | "md" | "lg";
21
21
  ariaDescribedby?: string;
22
- /** Id of the visible label (`searchable`); the trigger is then named by the label and the selected value. */
22
+ /** Id of the visible label. `searchable`: the trigger is then named by the label and the selected value. */
23
23
  ariaLabelledby?: string;
24
24
  } & {
25
25
  "onUpdate:modelValue"?: ((value: M extends true ? OptionPrimitive[] : OptionPrimitive) => any) | undefined;
@@ -5,6 +5,8 @@ interface Props {
5
5
  loading?: boolean;
6
6
  empty?: boolean;
7
7
  emptyText?: string;
8
+ /** Muted line under the empty title. */
9
+ emptyHint?: string;
8
10
  /** `frame` fills its parent and uses compact workbench chrome. */
9
11
  variant?: 'card' | 'frame';
10
12
  /** Series shown as clickable items in the header; a click emits `legend-toggle`. */
@@ -35,9 +35,9 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
35
35
  modelValue: string;
36
36
  invalid: boolean;
37
37
  step: number;
38
+ format: "12h" | "24h";
38
39
  locale: string;
39
40
  clearable: boolean;
40
- format: "12h" | "24h";
41
41
  disabledSlots: TimeSlotDisabledFn;
42
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
43
43
  declare const _default: typeof __VLS_export;
@@ -2,6 +2,12 @@ interface Props {
2
2
  experimentName?: string;
3
3
  experimentCode?: string;
4
4
  experimentStatus?: string;
5
+ /** Platform id of the bound experiment; enables "Open in MINT". */
6
+ experimentId?: number | null;
7
+ experimentProject?: string;
8
+ experimentOwner?: string;
9
+ /** ISO timestamp of the last update, shown as relative time. */
10
+ experimentUpdatedAt?: string;
5
11
  /** An experiment is bound but the platform has not returned its record yet. */
6
12
  isResolving?: boolean;
7
13
  /** Message explaining why the bound experiment could not be resolved. */
@@ -12,9 +18,16 @@ interface Props {
12
18
  saveLoading?: boolean;
13
19
  saveSuccessMessage?: string;
14
20
  saveDisabledMessage?: string;
21
+ saveLabel?: string;
22
+ /** Unsaved changes: marks the Save button with a dot. */
23
+ dirty?: boolean;
15
24
  confirmSave?: boolean;
16
25
  confirmTitle?: string;
17
26
  confirmMessage?: string;
27
+ /** Empty-state trigger label. */
28
+ placeholder?: string;
29
+ /** The trigger name truncates at this width (px); its title shows code and name in full. */
30
+ maxNameWidth?: number;
18
31
  }
19
32
  declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
20
33
  select: () => any;
@@ -25,12 +38,17 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
25
38
  onSave?: (() => any) | undefined;
26
39
  onDetach?: (() => any) | undefined;
27
40
  }>, {
41
+ placeholder: string;
42
+ experimentId: number | null;
28
43
  isResolving: boolean;
29
44
  showSave: boolean;
30
45
  showDetach: boolean;
31
46
  saveDisabled: boolean;
32
47
  saveLoading: boolean;
48
+ saveLabel: string;
49
+ dirty: boolean;
33
50
  confirmSave: boolean;
51
+ maxNameWidth: number;
34
52
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
35
53
  declare const _default: typeof __VLS_export;
36
54
  export default _default;
@@ -6,10 +6,16 @@ interface Props {
6
6
  currentExperimentId?: number | null;
7
7
  title?: string;
8
8
  size?: ModalSize;
9
- groupByProject?: boolean;
10
- showFilters?: boolean;
11
9
  }
12
- declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ type __VLS_Slots = {
11
+ /** Text above the experiment list: why the caller asks for an experiment. */
12
+ description?: () => unknown;
13
+ /** Extra footer content, before Clear selection. `close()` closes the modal without a selection. */
14
+ footer?: (props: {
15
+ close: () => void;
16
+ }) => unknown;
17
+ };
18
+ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
13
19
  "update:open": (value: boolean) => any;
14
20
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
15
21
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
@@ -17,8 +23,12 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
17
23
  size: ModalSize;
18
24
  title: string;
19
25
  currentExperimentId: number | null;
20
- groupByProject: boolean;
21
- showFilters: boolean;
22
26
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
28
  declare const _default: typeof __VLS_export;
24
29
  export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -27,8 +27,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
27
27
  title: string;
28
28
  view: PickerView;
29
29
  selectionMode: PickerSelectionMode;
30
- sources: PickerSource[];
31
30
  capabilities: PickerCapabilities;
31
+ sources: PickerSource[];
32
32
  initialPath: string;
33
33
  initialSelection: PickerSelection | null;
34
34
  defaultSort: PickerSort;
@@ -17,12 +17,12 @@ type __VLS_Slots = {} & {
17
17
  };
18
18
  declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
19
19
  error: (message: string) => any;
20
- upload: (files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any;
21
20
  remove: (files: File[]) => any;
21
+ upload: (files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any;
22
22
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
23
23
  onError?: ((message: string) => any) | undefined;
24
- onUpload?: ((files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any) | undefined;
25
24
  onRemove?: ((files: File[]) => any) | undefined;
25
+ onUpload?: ((files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any) | undefined;
26
26
  }>, {
27
27
  disabled: boolean;
28
28
  multiple: boolean;
@@ -1,16 +1,27 @@
1
- import { PluginJobCenterSource } from '../composables/useJobCenter';
1
+ import { UseJobCenterReturn } from '../composables/useJobCenter';
2
2
  import { JobState } from '../types/jobs';
3
+ type ConfirmAction = 'cancel' | 'delete' | 'clear';
3
4
  interface Props {
4
- source?: PluginJobCenterSource;
5
- loadOnMount?: boolean;
5
+ /** Job center from `useJobCenter()`; the parent owns it and opens the panel through it. */
6
+ center: UseJobCenterReturn;
6
7
  title?: string;
7
8
  teleportTo?: string | HTMLElement | false;
9
+ /** Ask before Cancel, Delete and Clear (`true`), or before the named ones only. Default off. */
10
+ confirm?: boolean | Partial<Record<ConfirmAction, boolean>>;
8
11
  }
9
12
  type __VLS_Slots = {
10
13
  /** Extra per-row actions, rendered before the built-in Cancel / Delete. */
11
14
  'job-actions'?: (props: {
12
15
  job: JobState;
13
16
  }) => unknown;
17
+ /** Row title. Default: the job name. */
18
+ 'job-title'?: (props: {
19
+ job: JobState;
20
+ }) => unknown;
21
+ /** Detail line under the title. Default: the error, progress message or status. */
22
+ 'job-detail'?: (props: {
23
+ job: JobState;
24
+ }) => unknown;
14
25
  };
15
26
  declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
27
  error: (message: string) => any;
@@ -19,8 +30,8 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, i
19
30
  onError?: ((message: string) => any) | undefined;
20
31
  onSelect?: ((job: JobState) => any) | undefined;
21
32
  }>, {
33
+ confirm: boolean | Partial<Record<ConfirmAction, boolean>>;
22
34
  title: string;
23
- loadOnMount: boolean;
24
35
  teleportTo: string | HTMLElement | false;
25
36
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
37
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -3,9 +3,9 @@ interface Props {
3
3
  icon?: string;
4
4
  size?: 'sm' | 'md' | 'topbar' | 'lg';
5
5
  variant?: 'solid' | 'tinted';
6
- /** Semantic color; without it the chip uses the primary color. */
6
+ /** @deprecated v2 design: the tile is always the neutral accent-soft tile, so the tone has no visible effect. Removed in 1.5. */
7
7
  tone?: Tone;
8
- /** Custom chip color (any CSS color, such as a plugin's manifest color); replaces the tone. */
8
+ /** @deprecated v2 design: the tile is always the neutral accent-soft tile, so the color has no visible effect. Removed in 1.5. */
9
9
  color?: string;
10
10
  }
11
11
  declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
@@ -1,4 +1,5 @@
1
1
  import { ExperimentSummary, PillNavItem, PillNavOption, PluginWorkspaceViewSpec } from '../types';
2
+ import { JobState } from '../types/jobs';
2
3
  import { ControlComponentBinding, ControlComponentBindingsById } from '../composables/useControlSchema';
3
4
  export interface PluginWorkspaceViewProps {
4
5
  /** Structure built with definePluginWorkspaceView(). Optional: every option has a default. */
@@ -36,6 +37,8 @@ export interface PluginWorkspaceViewEmits {
36
37
  'section-action': [sectionId: string, actionId: string];
37
38
  'form-submit': [sectionId: string, values: Record<string, unknown>];
38
39
  'form-cancel': [sectionId: string];
40
+ /** A job row in the jobs tray, or the just-completed job on the top-bar chip, was chosen. */
41
+ 'job-select': [job: JobState];
39
42
  }
40
43
  /** Typed `emit` function shape produced by `defineEmits<PluginWorkspaceViewEmits>()`. */
41
44
  export type PluginWorkspaceViewEmit = <K extends keyof PluginWorkspaceViewEmits>(event: K, ...args: PluginWorkspaceViewEmits[K]) => void;
@@ -1,4 +1,5 @@
1
1
  import { PillNavItem, PillNavOption } from '../types';
2
+ import { JobState } from '../types/jobs';
2
3
  import { PluginWorkspaceForwardedSlotProps, PluginWorkspaceSlotProps, PluginWorkspaceViewProps } from './PluginWorkspaceView.props';
3
4
  type __VLS_Slots = {
4
5
  default?: (props: PluginWorkspaceSlotProps) => unknown;
@@ -29,6 +30,7 @@ declare const __VLS_base: import('vue').DefineComponent<PluginWorkspaceViewProps
29
30
  "section-action": (sectionId: string, actionId: string) => any;
30
31
  "form-submit": (sectionId: string, values: Record<string, unknown>) => any;
31
32
  "form-cancel": (sectionId: string) => any;
33
+ "job-select": (job: JobState) => any;
32
34
  }, string, import('vue').PublicProps, Readonly<PluginWorkspaceViewProps> & Readonly<{
33
35
  "onUpdate:pill"?: ((pillId: string) => any) | undefined;
34
36
  "onUpdate:view"?: ((view: string) => any) | undefined;
@@ -43,6 +45,7 @@ declare const __VLS_base: import('vue').DefineComponent<PluginWorkspaceViewProps
43
45
  "onSection-action"?: ((sectionId: string, actionId: string) => any) | undefined;
44
46
  "onForm-submit"?: ((sectionId: string, values: Record<string, unknown>) => any) | undefined;
45
47
  "onForm-cancel"?: ((sectionId: string) => any) | undefined;
48
+ "onJob-select"?: ((job: JobState) => any) | undefined;
46
49
  }>, {
47
50
  values: Record<string, unknown>;
48
51
  view: string;
@@ -20,15 +20,15 @@ interface Props {
20
20
  emptyText?: string;
21
21
  }
22
22
  declare function handleSmartGroupApply(result: AutoGroupResult): void;
23
- declare var __VLS_1: {
23
+ declare var __VLS_16: {
24
24
  error: string;
25
- }, __VLS_8: {}, __VLS_15: {};
25
+ }, __VLS_23: {}, __VLS_30: {};
26
26
  type __VLS_Slots = {} & {
27
- error?: (props: typeof __VLS_1) => any;
27
+ error?: (props: typeof __VLS_16) => any;
28
28
  } & {
29
- loading?: (props: typeof __VLS_8) => any;
29
+ loading?: (props: typeof __VLS_23) => any;
30
30
  } & {
31
- empty?: (props: typeof __VLS_15) => any;
31
+ empty?: (props: typeof __VLS_30) => any;
32
32
  };
33
33
  declare const __VLS_base: import('vue').DefineComponent<Props, {
34
34
  handleSmartGroupApply: typeof handleSmartGroupApply;
@@ -44,10 +44,10 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {
44
44
  error: string | null;
45
45
  loading: boolean;
46
46
  experimentId: number;
47
- groups: SampleGroup[];
48
47
  emptyText: string;
49
48
  designData: Record<string, unknown>;
50
49
  samples: string[];
50
+ groups: SampleGroup[];
51
51
  enableGrouping: boolean;
52
52
  enableSmartGroup: boolean;
53
53
  autoloadExperimentData: boolean;
@@ -5,9 +5,12 @@ interface Props {
5
5
  label?: string;
6
6
  showEta?: boolean;
7
7
  showRemaining?: boolean;
8
+ /** Failed injections so far; shown as "N failed" in the head when above 0. */
9
+ failed?: number;
8
10
  }
9
11
  declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
10
12
  label: string;
13
+ failed: number;
11
14
  compact: boolean;
12
15
  showEta: boolean;
13
16
  showRemaining: boolean;
@@ -28,8 +28,8 @@ declare const __VLS_export: import('vue').DefineComponent<SmartGroupFieldRecipeP
28
28
  "onDownload-prefilled"?: (() => any) | undefined;
29
29
  }>, {
30
30
  loading: boolean;
31
- fields: SmartGroupField[];
32
31
  palette: string[];
32
+ fields: SmartGroupField[];
33
33
  samples: SmartGroupSampleRecord[];
34
34
  experimentLabel: string;
35
35
  headerCount: number;
@@ -6,6 +6,8 @@ export interface Props {
6
6
  showProgress?: boolean;
7
7
  showStepNumbers?: boolean;
8
8
  size?: 'sm' | 'md' | 'lg';
9
+ /** `vertical` stacks the steps in a rail beside the step content. */
10
+ orientation?: 'horizontal' | 'vertical';
9
11
  }
10
12
  declare function setStepValid(index: number, valid: boolean): void;
11
13
  declare function goNext(): void;
@@ -50,6 +52,7 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {
50
52
  }>, {
51
53
  size: "sm" | "md" | "lg";
52
54
  modelValue: number;
55
+ orientation: "horizontal" | "vertical";
53
56
  linear: boolean;
54
57
  showProgress: boolean;
55
58
  showStepNumbers: boolean;
@@ -0,0 +1,7 @@
1
+ import { OnboardingState } from '../../composables/useOnboarding';
2
+ type __VLS_Props = {
3
+ state: OnboardingState;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -4,6 +4,8 @@ interface Props {
4
4
  currentPageId?: string;
5
5
  placeholder?: string;
6
6
  minWidth?: string;
7
+ /** Plugin name shown before the trigger and in the menu title. */
8
+ pluginName?: string;
7
9
  }
8
10
  declare var __VLS_1: {
9
11
  page: PageSelectorItem;
@@ -21,7 +23,6 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, i
21
23
  onSelect?: ((page: PageSelectorItem) => any) | undefined;
22
24
  }>, {
23
25
  placeholder: string;
24
- minWidth: string;
25
26
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
27
28
  declare const _default: typeof __VLS_export;
@@ -18,9 +18,9 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
18
18
  onApply?: ((result: AutoGroupResult) => any) | undefined;
19
19
  }>, {
20
20
  experimentId: number;
21
- groups: SampleGroup[];
22
21
  designData: Record<string, unknown>;
23
22
  samples: string[];
23
+ groups: SampleGroup[];
24
24
  initialMode: GroupingWorkflow;
25
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
26
  declare const _default: typeof __VLS_export;
@@ -23,8 +23,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
23
23
  placeholder: string;
24
24
  invalid: boolean;
25
25
  step: number;
26
- clearable: boolean;
27
26
  format: "12h" | "24h";
27
+ clearable: boolean;
28
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
29
29
  declare const _default: typeof __VLS_export;
30
30
  export default _default;
@@ -0,0 +1,7 @@
1
+ import { OnboardingState } from '../../composables/useOnboarding';
2
+ type __VLS_Props = {
3
+ state: OnboardingState;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -16,11 +16,6 @@ export interface ResourcePickerRow {
16
16
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
17
  props: import('vue').PublicProps & __VLS_PrettifyLocal<{
18
18
  items: T[];
19
- /** When set, rows render under collapsible group headers in this order. */
20
- groups?: {
21
- label: string;
22
- items: T[];
23
- }[] | null;
24
19
  itemKey: (item: T) => string | number;
25
20
  describe: (item: T) => ResourcePickerRow;
26
21
  selectedKey?: string | number | null;
@@ -32,6 +27,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
32
27
  error?: string | null;
33
28
  emptyTitle?: string;
34
29
  emptyDescription?: string;
30
+ /** Focus the search field when the list mounts (the modal's focus trap honours `autofocus`). */
31
+ autofocusSearch?: boolean;
35
32
  } & {
36
33
  onSelect?: ((item: T) => any) | undefined;
37
34
  "onUpdate:search"?: ((value: string) => any) | undefined;
@@ -45,8 +42,6 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
45
42
  slots: {
46
43
  /** Extra filters on the search row. */
47
44
  filters?: () => unknown;
48
- /** A second filter row under the search. */
49
- advanced?: () => unknown;
50
45
  /** Row controls before the check; keys pressed inside them never select the row. */
51
46
  actions?: (props: {
52
47
  item: T;
@@ -7,6 +7,8 @@ interface Props {
7
7
  invalid?: boolean;
8
8
  max?: number;
9
9
  size?: 'sm' | 'md' | 'lg';
10
+ ariaLabelledby?: string;
11
+ ariaDescribedby?: string;
10
12
  }
11
13
  declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
14
  "update:modelValue": (value: OptionPrimitive[]) => any;
@@ -18,6 +20,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
18
20
  size: "sm" | "md" | "lg";
19
21
  placeholder: string;
20
22
  invalid: boolean;
23
+ ariaDescribedby: string;
24
+ ariaLabelledby: string;
21
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
26
  declare const _default: typeof __VLS_export;
23
27
  export default _default;
@@ -1,7 +1,13 @@
1
1
  import { PillNavItem, PillNavOption } from '../../types';
2
2
  import { PluginWorkspaceShellModel } from '../../composables/pluginWorkspaceModel';
3
+ import { TopBarJob } from '../../types/jobs';
3
4
  type __VLS_Props = {
4
5
  shell: PluginWorkspaceShellModel;
6
+ /** Passed to AppTopBar; undefined means no jobs control. */
7
+ job?: TopBarJob | null;
8
+ jobsDone?: number;
9
+ jobsOpen?: boolean;
10
+ jobsPanelId?: string;
5
11
  };
6
12
  type __VLS_Slots = {
7
13
  topbar?: (props: PluginWorkspaceShellModel['controls']) => unknown;
@@ -18,10 +24,12 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
18
24
  "pill-select": (item: PillNavItem) => any;
19
25
  "pill-option-select": (option: PillNavOption, item: PillNavItem) => any;
20
26
  "settings-values-change": (data: Record<string, unknown>) => any;
27
+ "job-click": () => any;
21
28
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
22
29
  "onPill-select"?: ((item: PillNavItem) => any) | undefined;
23
30
  "onPill-option-select"?: ((option: PillNavOption, item: PillNavItem) => any) | undefined;
24
31
  "onSettings-values-change"?: ((data: Record<string, unknown>) => any) | undefined;
32
+ "onJob-click"?: (() => any) | undefined;
25
33
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
34
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
27
35
  declare const _default: typeof __VLS_export;
@@ -44,6 +44,8 @@ export interface PluginContract {
44
44
  schemaVersion: 2;
45
45
  plugin: {
46
46
  name?: string;
47
+ displayName?: string;
48
+ subtitle?: string;
47
49
  packageName?: string;
48
50
  version?: string;
49
51
  description?: string;
@@ -3,6 +3,7 @@ export { useToast } from './useToast';
3
3
  export { usePlatform } from './usePlatform';
4
4
  export { useExperiment, type ExperimentLoadStatus, type UseExperimentReturn } from './useExperiment';
5
5
  export { resolvePluginFrontendBase } from './pluginFrontendBase';
6
+ export { providePluginIdentity, type PluginIdentityContract } from './pluginIdentity';
6
7
  export { useRequest, type RequestKind, type RequestOperation, type RequestRunOptions, type UseRequestReturn, } from './useRequest';
7
8
  export { downloadBlob, type DownloadBlobOptions } from './createClient';
8
9
  export { defineControlModel, type ControlDefinition, type ControlComponentBinding, type ControlComponentBindingConfig, type ControlComponentBindingRecordConfig, type ControlComponentBindingsById, type ControlComponentBindingsConfig, type ControlComponentPropSource, type ControlComponentPropsByIdMap, type ControlComponentPropsMap, type ControlInput, type ControlModel, type ControlModelBinding, type ControlModelSectionConfig, type ControlModelViewConfig, type ControlOption, type ControlOptionValue, type ControlPrimitive, type ControlSchema, type ControlSchemaOptions, type ControlShorthand, type ControlWorkspaceOptions, type ControlFormActions, type ControlSectionConfig, type ControlSidebarConfig, type ControlViewConfig, } from './useControlSchema';
@@ -0,0 +1,24 @@
1
+ import { PluginContract } from './createClient';
2
+ /** The `plugin` block of the generated contract (`./generated/mint-plugin`) that `providePluginIdentity` reads. */
3
+ export interface PluginIdentityContract {
4
+ plugin: Pick<PluginContract['plugin'], 'name' | 'displayName' | 'subtitle' | 'description' | 'icon'>;
5
+ }
6
+ /** The seeded identity AppTopBar shows in standalone mode. Internal: not exported from the package. */
7
+ export declare const pluginIdentity: {
8
+ readonly name?: string | undefined;
9
+ readonly subtitle?: string | undefined;
10
+ readonly icon?: string | undefined;
11
+ };
12
+ /**
13
+ * Seed the standalone AppTopBar with the plugin name, subtitle and icon. In integrated
14
+ * mode the platform supplies them. Explicit `title`/`subtitle` props and the `#icon` slot still win.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { providePluginIdentity } from '@morscherlab/mint-sdk'
19
+ * import { contract } from './generated/mint-plugin'
20
+ *
21
+ * providePluginIdentity(contract)
22
+ * ```
23
+ */
24
+ export declare function providePluginIdentity(contract: PluginIdentityContract): void;