@morscherlab/mint-sdk 1.2.0-beta.3 → 1.2.0-beta.5

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 (1063) hide show
  1. package/README.md +8 -2
  2. package/dist/{EmptyState-p90quq8Z.js → EmptyState-NBqf2_8z.js} +3 -1
  3. package/dist/EmptyState-NBqf2_8z.js.map +1 -0
  4. package/dist/{ExperimentPopover-Bn6PIGHE.js → ExperimentPopover-CfOdh5Rm.js} +11 -6
  5. package/dist/ExperimentPopover-CfOdh5Rm.js.map +1 -0
  6. package/dist/{ExperimentSelectorModal-DGhrJSSV.js → ExperimentSelectorModal-DvIagrxY.js} +13 -8
  7. package/dist/ExperimentSelectorModal-DvIagrxY.js.map +1 -0
  8. package/dist/{SettingsModal-wF2btHu6.js → SettingsModal-W3TYfnP9.js} +13 -11
  9. package/dist/SettingsModal-W3TYfnP9.js.map +1 -0
  10. package/dist/__stories__/experiment-helpers.d.ts +28 -0
  11. package/dist/__tests__/components/ActionItem.test.d.ts +1 -0
  12. package/dist/__tests__/components/ActionMenu.test.d.ts +1 -0
  13. package/dist/__tests__/components/AppAvatarMenu.test.d.ts +1 -0
  14. package/dist/__tests__/components/AppLayout.test.d.ts +1 -0
  15. package/dist/__tests__/components/AppPluginSwitcher.test.d.ts +1 -0
  16. package/dist/__tests__/components/AppSidebar.test.d.ts +1 -0
  17. package/dist/__tests__/components/AppToastContainer.test.d.ts +1 -0
  18. package/dist/__tests__/components/AppTopBar.navigation.test.d.ts +1 -0
  19. package/dist/__tests__/components/AppTopBar.test.d.ts +1 -0
  20. package/dist/__tests__/components/AppTopBarPageSelector.test.d.ts +1 -0
  21. package/dist/__tests__/components/AppTopBarPillNav.test.d.ts +1 -0
  22. package/dist/__tests__/components/AppTopBarPresence.test.d.ts +1 -0
  23. package/dist/__tests__/components/ArtifactSaveDialog.test.d.ts +1 -0
  24. package/dist/__tests__/components/ArtifactSelectorModal.test.d.ts +1 -0
  25. package/dist/__tests__/components/AutoGroupModal.adapter.test.d.ts +1 -0
  26. package/dist/__tests__/components/BaseInput.test.d.ts +1 -0
  27. package/dist/__tests__/components/BaseModal.test.d.ts +1 -0
  28. package/dist/__tests__/components/BasePill.test.d.ts +1 -0
  29. package/dist/__tests__/components/BaseRadioGroup.test.d.ts +1 -0
  30. package/dist/__tests__/components/BaseSelect.test.d.ts +1 -0
  31. package/dist/__tests__/components/BaseTabs.test.d.ts +1 -0
  32. package/dist/__tests__/components/BaseToggle.test.d.ts +1 -0
  33. package/dist/__tests__/components/BatchProgressList.test.d.ts +1 -0
  34. package/dist/__tests__/components/BioTemplateExperimentWorkspaceView.test.d.ts +1 -0
  35. package/dist/__tests__/components/BioTemplatePackWorkspaceView.test.d.ts +1 -0
  36. package/dist/__tests__/components/BioTemplatePresetWorkspaceView.test.d.ts +1 -0
  37. package/dist/__tests__/components/BioTemplateRenderer.test.d.ts +1 -0
  38. package/dist/__tests__/components/Breadcrumb.test.d.ts +1 -0
  39. package/dist/__tests__/components/Calendar.test.d.ts +1 -0
  40. package/dist/__tests__/components/CalendarGridPanel.test.d.ts +1 -0
  41. package/dist/__tests__/components/CollapsibleCard.test.d.ts +1 -0
  42. package/dist/__tests__/components/ComponentBindingRenderer.test.d.ts +1 -0
  43. package/dist/__tests__/components/ConcentrationInput.test.d.ts +1 -0
  44. package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
  45. package/dist/__tests__/components/DataFrame.test.d.ts +1 -0
  46. package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
  47. package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
  48. package/dist/__tests__/components/DoseCalculatorVolumeField.test.d.ts +1 -0
  49. package/dist/__tests__/components/DoseDesignWorkspaceView.test.d.ts +1 -0
  50. package/dist/__tests__/components/DropdownButton.test.d.ts +1 -0
  51. package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
  52. package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
  53. package/dist/__tests__/components/ExperimentSelectorModal.test.d.ts +1 -0
  54. package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
  55. package/dist/__tests__/components/GeneratedPathInput.test.d.ts +1 -0
  56. package/dist/__tests__/components/GeneratedPlotlyResult.test.d.ts +1 -0
  57. package/dist/__tests__/components/GeneratedPluginView.test.d.ts +1 -0
  58. package/dist/__tests__/components/GeneratedResultRenderer.test.d.ts +1 -0
  59. package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
  60. package/dist/__tests__/components/InstrumentAlertLog.test.d.ts +1 -0
  61. package/dist/__tests__/components/JobsStatusTray.test.d.ts +1 -0
  62. package/dist/__tests__/components/LcmsSequenceTable.test.d.ts +1 -0
  63. package/dist/__tests__/components/MobileSupportGate.test.d.ts +1 -0
  64. package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
  65. package/dist/__tests__/components/PlateMapEditorToolbarInternal.test.d.ts +1 -0
  66. package/dist/__tests__/components/PluginIcon.test.d.ts +1 -0
  67. package/dist/__tests__/components/PluginWorkspaceView.controls.test.d.ts +1 -0
  68. package/dist/__tests__/components/PluginWorkspaceView.internal.test.d.ts +1 -0
  69. package/dist/__tests__/components/PluginWorkspaceView.navigation.test.d.ts +1 -0
  70. package/dist/__tests__/components/PluginWorkspaceView.shell.test.d.ts +1 -0
  71. package/dist/__tests__/components/PluginWorkspaceView.test.d.ts +1 -0
  72. package/dist/__tests__/components/ProgressBar.test.d.ts +1 -0
  73. package/dist/__tests__/components/ProtocolStep.presentation.test.d.ts +1 -0
  74. package/dist/__tests__/components/ProtocolStepEditor.state.test.d.ts +1 -0
  75. package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
  76. package/dist/__tests__/components/ProtocolStepParameterField.test.d.ts +1 -0
  77. package/dist/__tests__/components/RackEditor.test.d.ts +1 -0
  78. package/dist/__tests__/components/ReagentList.presentation.test.d.ts +1 -0
  79. package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
  80. package/dist/__tests__/components/RetiredStyles.test.d.ts +1 -0
  81. package/dist/__tests__/components/RuntimeUpdateNotice.test.d.ts +1 -0
  82. package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
  83. package/dist/__tests__/components/SampleSelector.colors.test.d.ts +1 -0
  84. package/dist/__tests__/components/SampleSelector.drag.test.d.ts +1 -0
  85. package/dist/__tests__/components/SampleSelector.groups.test.d.ts +1 -0
  86. package/dist/__tests__/components/SampleSelector.selection.test.d.ts +1 -0
  87. package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
  88. package/dist/__tests__/components/SampleSelectorSampleRow.test.d.ts +1 -0
  89. package/dist/__tests__/components/ScheduleCalendar.test.d.ts +1 -0
  90. package/dist/__tests__/components/SecretInput.test.d.ts +1 -0
  91. package/dist/__tests__/components/SectionCard.test.d.ts +1 -0
  92. package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
  93. package/dist/__tests__/components/SequenceProgressBar.test.d.ts +1 -0
  94. package/dist/__tests__/components/SettingsModal.schema.test.d.ts +1 -0
  95. package/dist/__tests__/components/SettingsModal.test.d.ts +1 -0
  96. package/dist/__tests__/components/SmartGroupFieldRecipe.groups.test.d.ts +1 -0
  97. package/dist/__tests__/components/SmartGroupManual.cohorts.test.d.ts +1 -0
  98. package/dist/__tests__/components/TagsInput.test.d.ts +1 -0
  99. package/dist/__tests__/components/ThemeToggle.test.d.ts +1 -0
  100. package/dist/__tests__/components/TimePicker.test.d.ts +1 -0
  101. package/dist/__tests__/components/WellEditPopupInternal.test.d.ts +1 -0
  102. package/dist/__tests__/components/WellPlate.colors.test.d.ts +1 -0
  103. package/dist/__tests__/components/WellPlate.conditions.test.d.ts +1 -0
  104. package/dist/__tests__/components/WellPlate.geometry.test.d.ts +1 -0
  105. package/dist/__tests__/components/WellPlate.interaction.test.d.ts +1 -0
  106. package/dist/__tests__/components/WellPlate.legend.test.d.ts +1 -0
  107. package/dist/__tests__/components/WellPlate.rendering.test.d.ts +1 -0
  108. package/dist/__tests__/components/WellPlate.sampleDrop.test.d.ts +1 -0
  109. package/dist/__tests__/composables/analysisArtifactTarget.test.d.ts +1 -0
  110. package/dist/__tests__/composables/autoGroup/classKey.test.d.ts +1 -0
  111. package/dist/__tests__/composables/autoGroup/classify.test.d.ts +1 -0
  112. package/dist/__tests__/composables/autoGroup/columns.test.d.ts +1 -0
  113. package/dist/__tests__/composables/autoGroup/compose.test.d.ts +1 -0
  114. package/dist/__tests__/composables/autoGroup/cooccurrence.test.d.ts +1 -0
  115. package/dist/__tests__/composables/autoGroup/fingerprint.test.d.ts +1 -0
  116. package/dist/__tests__/composables/autoGroup/groupByOrder.test.d.ts +1 -0
  117. package/dist/__tests__/composables/autoGroup/groupTree.test.d.ts +1 -0
  118. package/dist/__tests__/composables/autoGroup/integration.test.d.ts +1 -0
  119. package/dist/__tests__/composables/autoGroup/template.test.d.ts +1 -0
  120. package/dist/__tests__/composables/autoGroup/tokenLength.test.d.ts +1 -0
  121. package/dist/__tests__/composables/autoGroup/tokenize.test.d.ts +1 -0
  122. package/dist/__tests__/composables/experiment-utils.test.d.ts +1 -0
  123. package/dist/__tests__/composables/formBuilderRegistry.test.d.ts +1 -0
  124. package/dist/__tests__/composables/resolvePluginFrontendBase.test.d.ts +1 -0
  125. package/dist/__tests__/composables/useAnalysisArtifacts.test.d.ts +1 -0
  126. package/dist/__tests__/composables/useApi.test.d.ts +1 -0
  127. package/dist/__tests__/composables/useAppExperiment.test.d.ts +1 -0
  128. package/dist/__tests__/composables/useAuth.test.d.ts +1 -0
  129. package/dist/__tests__/composables/useAutoGroup.test.d.ts +1 -0
  130. package/dist/__tests__/composables/useAutoGroupInputSources.test.d.ts +1 -0
  131. package/dist/__tests__/composables/useBioTemplatePackWorkspace.test.d.ts +1 -0
  132. package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
  133. package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
  134. package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
  135. package/dist/__tests__/composables/useCommandHistory.test.d.ts +1 -0
  136. package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
  137. package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
  138. package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
  139. package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
  140. package/dist/__tests__/composables/useEventStream.test.d.ts +1 -0
  141. package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
  142. package/dist/__tests__/composables/useExperimentData.test.d.ts +14 -0
  143. package/dist/__tests__/composables/useExperimentSamples.test.d.ts +1 -0
  144. package/dist/__tests__/composables/useExperimentSave.test.d.ts +1 -0
  145. package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
  146. package/dist/__tests__/composables/useFileImport.test.d.ts +1 -0
  147. package/dist/__tests__/composables/useForm.test.d.ts +1 -0
  148. package/dist/__tests__/composables/useFormBuilder.test.d.ts +1 -0
  149. package/dist/__tests__/composables/useGeneratedAnalysis.test.d.ts +1 -0
  150. package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
  151. package/dist/__tests__/composables/useJobsStatusTray.test.d.ts +1 -0
  152. package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
  153. package/dist/__tests__/composables/useMobileSupportGate.test.d.ts +1 -0
  154. package/dist/__tests__/composables/useOptimisticMutation.test.d.ts +1 -0
  155. package/dist/__tests__/composables/usePlatformContext.test.d.ts +1 -0
  156. package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
  157. package/dist/__tests__/composables/usePluginConfig.test.d.ts +15 -0
  158. package/dist/__tests__/composables/usePresenceHeartbeat.test.d.ts +1 -0
  159. package/dist/__tests__/composables/useProtocolTemplates.test.d.ts +1 -0
  160. package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
  161. package/dist/__tests__/composables/useResourceCrud.test.d.ts +1 -0
  162. package/dist/__tests__/composables/useRuntimeAlignment.test.d.ts +1 -0
  163. package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
  164. package/dist/__tests__/composables/useSampleGroups.tree.test.d.ts +1 -0
  165. package/dist/__tests__/composables/useScheduleCalendarLayout.test.d.ts +1 -0
  166. package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
  167. package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
  168. package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
  169. package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
  170. package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
  171. package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
  172. package/dist/__tests__/composables/useWellPainting.test.d.ts +1 -0
  173. package/dist/__tests__/composables/useWellPlateAdapter.test.d.ts +1 -0
  174. package/dist/__tests__/composables/useWellPlateValidation.test.d.ts +1 -0
  175. package/dist/__tests__/docs/extractDocsComponents.test.d.ts +1 -0
  176. package/dist/__tests__/docs/extractDocsExports.test.d.ts +1 -0
  177. package/dist/__tests__/docs/extractDocsParsing.test.d.ts +1 -0
  178. package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +1 -0
  179. package/dist/__tests__/docs/extractDocsTheme.test.d.ts +1 -0
  180. package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
  181. package/dist/__tests__/generatedUi.test.d.ts +1 -0
  182. package/dist/__tests__/stores/experiment.test.d.ts +1 -0
  183. package/dist/__tests__/stores/settings.test.d.ts +1 -0
  184. package/dist/__tests__/templates/templates.test.d.ts +1 -0
  185. package/dist/__tests__/types/GeneratedJsonSchema.test.d.ts +1 -0
  186. package/dist/__tests__/utils/color.test.d.ts +1 -0
  187. package/dist/__tests__/utils/instrument.test.d.ts +1 -0
  188. package/dist/__tests__/utils/jobs.test.d.ts +1 -0
  189. package/dist/__tests__/utils/lcms.test.d.ts +1 -0
  190. package/dist/__tests__/utils/permissions.test.d.ts +1 -0
  191. package/dist/__tests__/utils/rack.test.d.ts +1 -0
  192. package/dist/{analysisArtifactTypes-ejqR8MX3.js → analysisArtifactTypes-DQ0MjwHZ.js} +2 -0
  193. package/dist/analysisArtifactTypes-DQ0MjwHZ.js.map +1 -0
  194. package/dist/chunk-BoAXSpZd.js +33 -0
  195. package/dist/components/AppAvatarMenu.vue.d.ts +4 -0
  196. package/dist/components/AppSidebar.vue.d.ts +1 -1
  197. package/dist/components/AuditTrail.vue.d.ts +38 -0
  198. package/dist/components/AutoGroupModal.vue.d.ts +1 -1
  199. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  200. package/dist/components/ColorSlider.vue.d.ts +34 -0
  201. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +149 -0
  202. package/dist/components/DropdownButton.vue.d.ts +2 -0
  203. package/dist/components/FitPanel.vue.d.ts +46 -0
  204. package/dist/components/GroupAssigner.vue.d.ts +25 -0
  205. package/dist/components/JobsStatusTray.vue.d.ts +11 -2
  206. package/dist/components/PluginWorkspaceView.props.d.ts +29 -1
  207. package/dist/components/PluginWorkspaceView.vue.d.ts +5 -5
  208. package/dist/components/RackEditor.vue.d.ts +78 -0
  209. package/dist/components/ReagentEditor.vue.d.ts +30 -0
  210. package/dist/components/ResourceCard.vue.d.ts +50 -0
  211. package/dist/components/SampleLegend.vue.d.ts +1 -1
  212. package/dist/components/SampleSelector.vue.d.ts +1 -1
  213. package/dist/components/ScientificNumber.vue.d.ts +14 -0
  214. package/dist/components/SecretInput.vue.d.ts +28 -0
  215. package/dist/components/SettingsModal.vue.d.ts +1 -1
  216. package/dist/components/SmartGroupFieldRecipe.vue.d.ts +3 -3
  217. package/dist/components/SmartGroupManual.vue.d.ts +2 -2
  218. package/dist/components/WellPlate.vue.d.ts +1 -1
  219. package/dist/components/index.d.ts +18 -0
  220. package/dist/components/index.js +8 -8
  221. package/dist/components/internal/WellEditPopupInternal.vue.d.ts +3 -1
  222. package/dist/components/internal/WorkspaceControlsInternal.vue.d.ts +23 -0
  223. package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +70 -0
  224. package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +43 -0
  225. package/dist/{components-DpyzaeIc.js → components-B80gV0P6.js} +3729 -1800
  226. package/dist/components-B80gV0P6.js.map +1 -0
  227. package/dist/composables/autoGroupConstants.d.ts +1 -0
  228. package/dist/composables/autoGroupGrouping.d.ts +3 -0
  229. package/dist/composables/flattenWorkspaceBindings.d.ts +61 -0
  230. package/dist/composables/index.d.ts +15 -2
  231. package/dist/composables/index.js +11 -11
  232. package/dist/composables/pluginWorkspaceModel.d.ts +164 -0
  233. package/dist/composables/useAnalysisArtifacts.d.ts +2 -0
  234. package/dist/composables/useAsync.d.ts +132 -0
  235. package/dist/composables/useAuth.d.ts +2 -0
  236. package/dist/composables/useAutoGroup.d.ts +30 -1
  237. package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
  238. package/dist/composables/useBioTemplateWorkspace.d.ts +4 -20
  239. package/dist/composables/useCommandHistory.d.ts +33 -0
  240. package/dist/composables/useFocusTrap.d.ts +21 -0
  241. package/dist/composables/useGeneratedAnalysis.d.ts +5 -1
  242. package/dist/composables/useGroupAssignment.d.ts +31 -0
  243. package/dist/composables/useJobsStatusTray.d.ts +41 -4
  244. package/dist/composables/useMenuKeyboard.d.ts +29 -0
  245. package/dist/composables/useOptimisticMutation.d.ts +5 -1
  246. package/dist/composables/usePluginClient.d.ts +4 -0
  247. package/dist/composables/usePluginConfig.d.ts +25 -0
  248. package/dist/composables/usePluginWorkspace.d.ts +51 -0
  249. package/dist/composables/useRackEditor.d.ts +31 -0
  250. package/dist/composables/useResourceCrud.d.ts +44 -0
  251. package/dist/composables/useRovingFocus.d.ts +24 -0
  252. package/dist/composables/useWellPainting.d.ts +39 -0
  253. package/dist/composables/useWellPlateAdapter.d.ts +40 -0
  254. package/dist/composables/useWellPlateValidation.d.ts +5 -1
  255. package/dist/composables/workspaceRecipes.d.ts +188 -0
  256. package/dist/{composables-yz8bTkEV.js → composables-C8mmD5ta.js} +821 -68
  257. package/dist/composables-C8mmD5ta.js.map +1 -0
  258. package/dist/{experiment-D08H_TIH.js → experiment-Y9Iz7KYi.js} +3 -1
  259. package/dist/experiment-Y9Iz7KYi.js.map +1 -0
  260. package/dist/{experiment-utils-CLnzPPq5.js → experiment-utils-DV3DrvE_.js} +71 -50
  261. package/dist/experiment-utils-DV3DrvE_.js.map +1 -0
  262. package/dist/histoire.setup.d.ts +1 -0
  263. package/dist/index.d.ts +1 -0
  264. package/dist/index.js +20 -35
  265. package/dist/index.js.map +1 -0
  266. package/dist/install.js +28 -0
  267. package/dist/install.js.map +1 -0
  268. package/dist/jobs.d.ts +15 -1
  269. package/dist/permissions.d.ts +5 -0
  270. package/dist/permissions.js +4 -2
  271. package/dist/permissions.js.map +1 -0
  272. package/dist/plotly.min-c2Sez60c.js +180634 -0
  273. package/dist/plotly.min-c2Sez60c.js.map +1 -0
  274. package/dist/stores/auth.d.ts +6 -0
  275. package/dist/stores/index.js +2 -2
  276. package/dist/styles.css +2917 -300
  277. package/dist/tailwind.preset.js +2 -0
  278. package/dist/tailwind.preset.js.map +1 -0
  279. package/dist/templates/builderReadUtils.d.ts +1 -1
  280. package/dist/templates/catalog.d.ts +4 -4
  281. package/dist/templates/index.js +4 -4
  282. package/dist/templates/presets.d.ts +2 -2
  283. package/dist/{templates-Pbxjdqlh.js → templates-CK72aKO1.js} +34 -26
  284. package/dist/templates-CK72aKO1.js.map +1 -0
  285. package/dist/types/auth.d.ts +1 -0
  286. package/dist/types/auto-group.d.ts +7 -0
  287. package/dist/types/componentWorkflowTypes.d.ts +22 -0
  288. package/dist/types/components.d.ts +1 -1
  289. package/dist/types/form-builder.d.ts +1 -1
  290. package/dist/types/generated-ui.d.ts +11 -2
  291. package/dist/types/index.d.ts +4 -4
  292. package/dist/types/index.js +1 -1
  293. package/dist/types/jobs.d.ts +11 -3
  294. package/dist/{useApi-yE0re8k-.js → useApi-CDBq6z23.js} +15 -0
  295. package/dist/useApi-CDBq6z23.js.map +1 -0
  296. package/dist/{useControlSchema-Ds4VeFxt.js → useControlSchema-_OVhavKq.js} +381 -69
  297. package/dist/useControlSchema-_OVhavKq.js.map +1 -0
  298. package/dist/{useDropdownState-WIGW6Rr-.js → useDropdownState-D5G4UvWd.js} +3 -1
  299. package/dist/useDropdownState-D5G4UvWd.js.map +1 -0
  300. package/dist/{useExperimentSelector-DXqsZuSk.js → useExperimentSelector-DSEckf_g.js} +5 -3
  301. package/dist/useExperimentSelector-DSEckf_g.js.map +1 -0
  302. package/dist/{useFormBuilder-1so6QSQL.js → useFormBuilder-Bd714C7y.js} +3 -1
  303. package/dist/useFormBuilder-Bd714C7y.js.map +1 -0
  304. package/dist/{useProtocolTemplates-Cv0ca1AM.js → useProtocolTemplates-Dq5Pzwyd.js} +1055 -83
  305. package/dist/useProtocolTemplates-Dq5Pzwyd.js.map +1 -0
  306. package/dist/utils/pluginSecrets.d.ts +53 -0
  307. package/dist/utils/records.d.ts +4 -0
  308. package/package.json +8 -2
  309. package/src/__stories__/experiment-helpers.ts +86 -0
  310. package/src/__tests__/components/ActionItem.test.ts +99 -0
  311. package/src/__tests__/components/ActionMenu.test.ts +120 -0
  312. package/src/__tests__/components/AppAvatarMenu.test.ts +161 -0
  313. package/src/__tests__/components/AppLayout.test.ts +207 -0
  314. package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
  315. package/src/__tests__/components/AppSidebar.test.ts +857 -0
  316. package/src/__tests__/components/AppToastContainer.test.ts +37 -0
  317. package/src/__tests__/components/AppTopBar.navigation.test.ts +68 -0
  318. package/src/__tests__/components/AppTopBar.test.ts +1256 -0
  319. package/src/__tests__/components/AppTopBarPageSelector.test.ts +156 -0
  320. package/src/__tests__/components/AppTopBarPillNav.test.ts +125 -0
  321. package/src/__tests__/components/AppTopBarPresence.test.ts +47 -0
  322. package/src/__tests__/components/ArtifactSaveDialog.test.ts +566 -0
  323. package/src/__tests__/components/ArtifactSelectorModal.test.ts +178 -0
  324. package/src/__tests__/components/AutoGroupModal.adapter.test.ts +204 -0
  325. package/src/__tests__/components/BaseInput.test.ts +99 -0
  326. package/src/__tests__/components/BaseModal.test.ts +133 -0
  327. package/src/__tests__/components/BasePill.test.ts +291 -0
  328. package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
  329. package/src/__tests__/components/BaseSelect.test.ts +73 -0
  330. package/src/__tests__/components/BaseTabs.test.ts +107 -0
  331. package/src/__tests__/components/BaseToggle.test.ts +40 -0
  332. package/src/__tests__/components/BatchProgressList.test.ts +52 -0
  333. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +159 -0
  334. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +192 -0
  335. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +328 -0
  336. package/src/__tests__/components/BioTemplateRenderer.test.ts +96 -0
  337. package/src/__tests__/components/Breadcrumb.test.ts +23 -0
  338. package/src/__tests__/components/Calendar.test.ts +566 -0
  339. package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
  340. package/src/__tests__/components/CollapsibleCard.test.ts +571 -0
  341. package/src/__tests__/components/ComponentBindingRenderer.test.ts +278 -0
  342. package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
  343. package/src/__tests__/components/ControlWorkspaceView.test.ts +1102 -0
  344. package/src/__tests__/components/DataFrame.test.ts +915 -0
  345. package/src/__tests__/components/DatePicker.test.ts +45 -0
  346. package/src/__tests__/components/DateTimePicker.test.ts +48 -0
  347. package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
  348. package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +185 -0
  349. package/src/__tests__/components/DropdownButton.test.ts +628 -0
  350. package/src/__tests__/components/EmptyState.test.ts +23 -0
  351. package/src/__tests__/components/ExperimentPopover.test.ts +143 -0
  352. package/src/__tests__/components/ExperimentSelectorModal.test.ts +143 -0
  353. package/src/__tests__/components/FormBuilder.test.ts +353 -0
  354. package/src/__tests__/components/GeneratedPathInput.test.ts +132 -0
  355. package/src/__tests__/components/GeneratedPlotlyResult.test.ts +117 -0
  356. package/src/__tests__/components/GeneratedPluginView.test.ts +235 -0
  357. package/src/__tests__/components/GeneratedResultRenderer.test.ts +93 -0
  358. package/src/__tests__/components/GroupAssigner.test.ts +48 -0
  359. package/src/__tests__/components/InstrumentAlertLog.test.ts +59 -0
  360. package/src/__tests__/components/JobsStatusTray.test.ts +165 -0
  361. package/src/__tests__/components/LcmsSequenceTable.test.ts +57 -0
  362. package/src/__tests__/components/MobileSupportGate.test.ts +120 -0
  363. package/src/__tests__/components/MultiSelect.test.ts +48 -0
  364. package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
  365. package/src/__tests__/components/PluginIcon.test.ts +215 -0
  366. package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
  367. package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +230 -0
  368. package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
  369. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +43 -0
  370. package/src/__tests__/components/PluginWorkspaceView.test.ts +719 -0
  371. package/src/__tests__/components/ProgressBar.test.ts +18 -0
  372. package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
  373. package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
  374. package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
  375. package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
  376. package/src/__tests__/components/RackEditor.test.ts +125 -0
  377. package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
  378. package/src/__tests__/components/ReagentList.test.ts +82 -0
  379. package/src/__tests__/components/RetiredStyles.test.ts +82 -0
  380. package/src/__tests__/components/RuntimeUpdateNotice.test.ts +14 -0
  381. package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
  382. package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
  383. package/src/__tests__/components/SampleSelector.drag.test.ts +126 -0
  384. package/src/__tests__/components/SampleSelector.groups.test.ts +94 -0
  385. package/src/__tests__/components/SampleSelector.selection.test.ts +56 -0
  386. package/src/__tests__/components/SampleSelector.test.ts +466 -0
  387. package/src/__tests__/components/SampleSelectorSampleRow.test.ts +40 -0
  388. package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
  389. package/src/__tests__/components/SecretInput.test.ts +87 -0
  390. package/src/__tests__/components/SectionCard.test.ts +181 -0
  391. package/src/__tests__/components/SegmentedControl.test.ts +69 -0
  392. package/src/__tests__/components/SequenceProgressBar.test.ts +39 -0
  393. package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
  394. package/src/__tests__/components/SettingsModal.test.ts +407 -0
  395. package/src/__tests__/components/SmartGroupFieldRecipe.groups.test.ts +101 -0
  396. package/src/__tests__/components/SmartGroupManual.cohorts.test.ts +97 -0
  397. package/src/__tests__/components/TagsInput.test.ts +75 -0
  398. package/src/__tests__/components/ThemeToggle.test.ts +47 -0
  399. package/src/__tests__/components/TimePicker.test.ts +38 -0
  400. package/src/__tests__/components/WellEditPopupInternal.test.ts +108 -0
  401. package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
  402. package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
  403. package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
  404. package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
  405. package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
  406. package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
  407. package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
  408. package/src/__tests__/composables/analysisArtifactTarget.test.ts +77 -0
  409. package/src/__tests__/composables/autoGroup/classKey.test.ts +25 -0
  410. package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
  411. package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
  412. package/src/__tests__/composables/autoGroup/compose.test.ts +226 -0
  413. package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
  414. package/src/__tests__/composables/autoGroup/fingerprint.test.ts +122 -0
  415. package/src/__tests__/composables/autoGroup/groupByOrder.test.ts +278 -0
  416. package/src/__tests__/composables/autoGroup/groupTree.test.ts +99 -0
  417. package/src/__tests__/composables/autoGroup/integration.test.ts +75 -0
  418. package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
  419. package/src/__tests__/composables/autoGroup/tokenLength.test.ts +85 -0
  420. package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
  421. package/src/__tests__/composables/experiment-utils.test.ts +63 -0
  422. package/src/__tests__/composables/formBuilderRegistry.test.ts +191 -0
  423. package/src/__tests__/composables/resolvePluginFrontendBase.test.ts +65 -0
  424. package/src/__tests__/composables/useAnalysisArtifacts.test.ts +740 -0
  425. package/src/__tests__/composables/useApi.test.ts +157 -0
  426. package/src/__tests__/composables/useAppExperiment.test.ts +899 -0
  427. package/src/__tests__/composables/useAuth.test.ts +233 -0
  428. package/src/__tests__/composables/useAutoGroup.test.ts +524 -0
  429. package/src/__tests__/composables/useAutoGroupInputSources.test.ts +127 -0
  430. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +125 -0
  431. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
  432. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +104 -0
  433. package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
  434. package/src/__tests__/composables/useCommandHistory.test.ts +43 -0
  435. package/src/__tests__/composables/useControlSchema.test.ts +1060 -0
  436. package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
  437. package/src/__tests__/composables/useDropdownState.test.ts +95 -0
  438. package/src/__tests__/composables/useEventListener.test.ts +116 -0
  439. package/src/__tests__/composables/useEventStream.test.ts +140 -0
  440. package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
  441. package/src/__tests__/composables/useExperimentData.test.ts +154 -0
  442. package/src/__tests__/composables/useExperimentSamples.test.ts +91 -0
  443. package/src/__tests__/composables/useExperimentSave.test.ts +542 -0
  444. package/src/__tests__/composables/useExperimentSelector.test.ts +338 -0
  445. package/src/__tests__/composables/useFileImport.test.ts +44 -0
  446. package/src/__tests__/composables/useForm.test.ts +263 -0
  447. package/src/__tests__/composables/useFormBuilder.test.ts +994 -0
  448. package/src/__tests__/composables/useGeneratedAnalysis.test.ts +1903 -0
  449. package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
  450. package/src/__tests__/composables/useJobsStatusTray.test.ts +283 -0
  451. package/src/__tests__/composables/useListSelection.test.ts +66 -0
  452. package/src/__tests__/composables/useMobileSupportGate.test.ts +74 -0
  453. package/src/__tests__/composables/useOptimisticMutation.test.ts +40 -0
  454. package/src/__tests__/composables/usePlatformContext.test.ts +148 -0
  455. package/src/__tests__/composables/usePluginClient.test.ts +1912 -0
  456. package/src/__tests__/composables/usePluginConfig.test.ts +497 -0
  457. package/src/__tests__/composables/usePresenceHeartbeat.test.ts +164 -0
  458. package/src/__tests__/composables/useProtocolTemplates.test.ts +64 -0
  459. package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
  460. package/src/__tests__/composables/useResourceCrud.test.ts +56 -0
  461. package/src/__tests__/composables/useRuntimeAlignment.test.ts +145 -0
  462. package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
  463. package/src/__tests__/composables/useSampleGroups.tree.test.ts +145 -0
  464. package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
  465. package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
  466. package/src/__tests__/composables/useSortedItems.test.ts +87 -0
  467. package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
  468. package/src/__tests__/composables/useTextSearch.test.ts +55 -0
  469. package/src/__tests__/composables/useTheme.test.ts +91 -0
  470. package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
  471. package/src/__tests__/composables/useWellPainting.test.ts +52 -0
  472. package/src/__tests__/composables/useWellPlateAdapter.test.ts +50 -0
  473. package/src/__tests__/composables/useWellPlateValidation.test.ts +42 -0
  474. package/src/__tests__/docs/extractDocsComponents.test.ts +156 -0
  475. package/src/__tests__/docs/extractDocsExports.test.ts +92 -0
  476. package/src/__tests__/docs/extractDocsParsing.test.ts +91 -0
  477. package/src/__tests__/docs/extractDocsTemplates.test.ts +53 -0
  478. package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
  479. package/src/__tests__/docs/frontendDocsCatalog.test.ts +436 -0
  480. package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
  481. package/src/__tests__/fixtures/templates/dose-response.json +81 -0
  482. package/src/__tests__/fixtures/templates/plate-map.json +54 -0
  483. package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
  484. package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
  485. package/src/__tests__/generatedUi.test.ts +119 -0
  486. package/src/__tests__/stores/experiment.test.ts +300 -0
  487. package/src/__tests__/stores/settings.test.ts +78 -0
  488. package/src/__tests__/templates/templates.test.ts +1185 -0
  489. package/src/__tests__/types/GeneratedJsonSchema.test.ts +62 -0
  490. package/src/__tests__/utils/color.test.ts +96 -0
  491. package/src/__tests__/utils/instrument.test.ts +47 -0
  492. package/src/__tests__/utils/jobs.test.ts +95 -0
  493. package/src/__tests__/utils/lcms.test.ts +73 -0
  494. package/src/__tests__/utils/permissions.test.ts +62 -0
  495. package/src/__tests__/utils/rack.test.ts +120 -0
  496. package/src/components/ActionMenu.story.vue +26 -0
  497. package/src/components/ActionMenu.vue +209 -0
  498. package/src/components/AlertBox.story.vue +204 -0
  499. package/src/components/AlertBox.vue +88 -0
  500. package/src/components/AppAvatarMenu.story.vue +155 -0
  501. package/src/components/AppAvatarMenu.vue +164 -0
  502. package/src/components/AppContainer.story.vue +104 -0
  503. package/src/components/AppContainer.vue +34 -0
  504. package/src/components/AppLayout.story.vue +331 -0
  505. package/src/components/AppLayout.vue +156 -0
  506. package/src/components/AppPluginSwitcher.vue +137 -0
  507. package/src/components/AppSidebar.story.vue +584 -0
  508. package/src/components/AppSidebar.vue +471 -0
  509. package/src/components/AppToastContainer.story.vue +157 -0
  510. package/src/components/AppToastContainer.vue +62 -0
  511. package/src/components/AppTopBar.navigation.ts +60 -0
  512. package/src/components/AppTopBar.story.vue +280 -0
  513. package/src/components/AppTopBar.vue +474 -0
  514. package/src/components/ArtifactSaveDialog.story.vue +319 -0
  515. package/src/components/ArtifactSaveDialog.vue +434 -0
  516. package/src/components/ArtifactSelectorModal.story.vue +295 -0
  517. package/src/components/ArtifactSelectorModal.vue +333 -0
  518. package/src/components/AuditTrail.story.vue +163 -0
  519. package/src/components/AuditTrail.vue +151 -0
  520. package/src/components/AutoGroupModal.adapter.ts +203 -0
  521. package/src/components/AutoGroupModal.story.vue +458 -0
  522. package/src/components/AutoGroupModal.vue +294 -0
  523. package/src/components/Avatar.story.vue +115 -0
  524. package/src/components/Avatar.vue +79 -0
  525. package/src/components/BaseButton.story.vue +96 -0
  526. package/src/components/BaseButton.vue +75 -0
  527. package/src/components/BaseCheckbox.story.vue +100 -0
  528. package/src/components/BaseCheckbox.vue +131 -0
  529. package/src/components/BaseInput.story.vue +98 -0
  530. package/src/components/BaseInput.vue +76 -0
  531. package/src/components/BaseModal.story.vue +335 -0
  532. package/src/components/BaseModal.vue +280 -0
  533. package/src/components/BasePill.story.vue +142 -0
  534. package/src/components/BasePill.vue +89 -0
  535. package/src/components/BaseRadioGroup.story.vue +145 -0
  536. package/src/components/BaseRadioGroup.vue +128 -0
  537. package/src/components/BaseSelect.story.vue +120 -0
  538. package/src/components/BaseSelect.vue +89 -0
  539. package/src/components/BaseSlider.story.vue +122 -0
  540. package/src/components/BaseSlider.vue +126 -0
  541. package/src/components/BaseTabs.story.vue +127 -0
  542. package/src/components/BaseTabs.vue +107 -0
  543. package/src/components/BaseTextarea.story.vue +91 -0
  544. package/src/components/BaseTextarea.vue +62 -0
  545. package/src/components/BaseToggle.story.vue +108 -0
  546. package/src/components/BaseToggle.vue +143 -0
  547. package/src/components/BatchProgressList.story.vue +92 -0
  548. package/src/components/BatchProgressList.vue +181 -0
  549. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
  550. package/src/components/BioTemplateExperimentWorkspaceView.vue +339 -0
  551. package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
  552. package/src/components/BioTemplatePackWorkspaceView.vue +180 -0
  553. package/src/components/BioTemplatePresetWorkspaceView.story.vue +163 -0
  554. package/src/components/BioTemplatePresetWorkspaceView.vue +403 -0
  555. package/src/components/BioTemplateRenderer.story.vue +57 -0
  556. package/src/components/BioTemplateRenderer.vue +64 -0
  557. package/src/components/Breadcrumb.story.vue +106 -0
  558. package/src/components/Breadcrumb.vue +81 -0
  559. package/src/components/Calendar.story.vue +106 -0
  560. package/src/components/Calendar.vue +367 -0
  561. package/src/components/ChartContainer.story.vue +113 -0
  562. package/src/components/ChartContainer.vue +64 -0
  563. package/src/components/ChemicalFormula.story.vue +102 -0
  564. package/src/components/ChemicalFormula.vue +39 -0
  565. package/src/components/CollapsibleCard.story.vue +135 -0
  566. package/src/components/CollapsibleCard.vue +245 -0
  567. package/src/components/ColorSlider.story.vue +120 -0
  568. package/src/components/ColorSlider.vue +164 -0
  569. package/src/components/ComponentBindingRenderer.story.vue +87 -0
  570. package/src/components/ComponentBindingRenderer.vue +322 -0
  571. package/src/components/ConcentrationInput.story.vue +77 -0
  572. package/src/components/ConcentrationInput.vue +149 -0
  573. package/src/components/ConfirmDialog.story.vue +248 -0
  574. package/src/components/ConfirmDialog.vue +100 -0
  575. package/src/components/ControlWorkspaceView.story.vue +347 -0
  576. package/src/components/ControlWorkspaceView.vue +370 -0
  577. package/src/components/DataFrame.story.vue +148 -0
  578. package/src/components/DataFrame.vue +520 -0
  579. package/src/components/DatePicker.story.vue +119 -0
  580. package/src/components/DatePicker.vue +197 -0
  581. package/src/components/DateTimePicker.story.vue +112 -0
  582. package/src/components/DateTimePicker.vue +271 -0
  583. package/src/components/Divider.story.vue +80 -0
  584. package/src/components/Divider.vue +49 -0
  585. package/src/components/DoseCalculator.story.vue +68 -0
  586. package/src/components/DoseCalculator.vue +416 -0
  587. package/src/components/DoseCalculatorVolumeField.vue +61 -0
  588. package/src/components/DoseDesignWorkspaceView.story.vue +77 -0
  589. package/src/components/DoseDesignWorkspaceView.vue +243 -0
  590. package/src/components/DropdownButton.story.vue +102 -0
  591. package/src/components/DropdownButton.vue +193 -0
  592. package/src/components/EmptyState.story.vue +135 -0
  593. package/src/components/EmptyState.vue +71 -0
  594. package/src/components/ExperimentCodeBadge.story.vue +77 -0
  595. package/src/components/ExperimentCodeBadge.vue +64 -0
  596. package/src/components/ExperimentDataViewer.story.vue +174 -0
  597. package/src/components/ExperimentDataViewer.vue +293 -0
  598. package/src/components/ExperimentPopover.story.vue +442 -0
  599. package/src/components/ExperimentPopover.vue +312 -0
  600. package/src/components/ExperimentSelectorModal.story.vue +381 -0
  601. package/src/components/ExperimentSelectorModal.vue +432 -0
  602. package/src/components/ExperimentTimeline.story.vue +161 -0
  603. package/src/components/ExperimentTimeline.vue +357 -0
  604. package/src/components/FileUploader.story.vue +107 -0
  605. package/src/components/FileUploader.vue +424 -0
  606. package/src/components/FitPanel.story.vue +125 -0
  607. package/src/components/FitPanel.vue +120 -0
  608. package/src/components/FormActions.vue +92 -0
  609. package/src/components/FormBuilder.story.vue +203 -0
  610. package/src/components/FormBuilder.vue +311 -0
  611. package/src/components/FormField.story.vue +132 -0
  612. package/src/components/FormField.vue +59 -0
  613. package/src/components/FormulaInput.story.vue +96 -0
  614. package/src/components/FormulaInput.vue +125 -0
  615. package/src/components/GeneratedPathInput.vue +218 -0
  616. package/src/components/GeneratedPlotlyResult.vue +87 -0
  617. package/src/components/GeneratedPluginView.vue +289 -0
  618. package/src/components/GeneratedResultRenderer.vue +147 -0
  619. package/src/components/GroupAssigner.story.vue +83 -0
  620. package/src/components/GroupAssigner.vue +257 -0
  621. package/src/components/IconButton.story.vue +140 -0
  622. package/src/components/IconButton.vue +73 -0
  623. package/src/components/InstrumentAlertLog.vue +191 -0
  624. package/src/components/InstrumentStateBadge.vue +50 -0
  625. package/src/components/InstrumentStatusCard.vue +188 -0
  626. package/src/components/JobsStatusTray.story.vue +126 -0
  627. package/src/components/JobsStatusTray.vue +407 -0
  628. package/src/components/LcmsSequenceTable.vue +191 -0
  629. package/src/components/LoadingSpinner.story.vue +70 -0
  630. package/src/components/LoadingSpinner.vue +50 -0
  631. package/src/components/MobileSupportGate.story.vue +52 -0
  632. package/src/components/MobileSupportGate.vue +115 -0
  633. package/src/components/MoleculeInput.story.vue +66 -0
  634. package/src/components/MoleculeInput.vue +426 -0
  635. package/src/components/MultiSelect.story.vue +132 -0
  636. package/src/components/MultiSelect.vue +123 -0
  637. package/src/components/NumberInput.story.vue +122 -0
  638. package/src/components/NumberInput.vue +162 -0
  639. package/src/components/PlateMapEditor.story.vue +92 -0
  640. package/src/components/PlateMapEditor.vue +434 -0
  641. package/src/components/PluginIcon.story.vue +103 -0
  642. package/src/components/PluginIcon.vue +158 -0
  643. package/src/components/PluginWorkspaceView.controls.ts +182 -0
  644. package/src/components/PluginWorkspaceView.navigation.ts +106 -0
  645. package/src/components/PluginWorkspaceView.props.ts +207 -0
  646. package/src/components/PluginWorkspaceView.shell.ts +67 -0
  647. package/src/components/PluginWorkspaceView.story.vue +341 -0
  648. package/src/components/PluginWorkspaceView.vue +224 -0
  649. package/src/components/ProgressBar.story.vue +148 -0
  650. package/src/components/ProgressBar.vue +117 -0
  651. package/src/components/ProtocolStep.presentation.ts +31 -0
  652. package/src/components/ProtocolStepEditor.state.ts +104 -0
  653. package/src/components/ProtocolStepEditor.story.vue +69 -0
  654. package/src/components/ProtocolStepEditor.vue +382 -0
  655. package/src/components/ProtocolStepParameterField.vue +134 -0
  656. package/src/components/RackEditor.story.vue +100 -0
  657. package/src/components/RackEditor.vue +442 -0
  658. package/src/components/ReagentEditor.story.vue +153 -0
  659. package/src/components/ReagentEditor.vue +418 -0
  660. package/src/components/ReagentList.presentation.ts +105 -0
  661. package/src/components/ReagentList.story.vue +137 -0
  662. package/src/components/ReagentList.vue +392 -0
  663. package/src/components/ResourceCard.story.vue +150 -0
  664. package/src/components/ResourceCard.vue +161 -0
  665. package/src/components/RuntimeUpdateNotice.vue +51 -0
  666. package/src/components/SampleHierarchyTree.story.vue +161 -0
  667. package/src/components/SampleHierarchyTree.vue +246 -0
  668. package/src/components/SampleLegend.story.vue +91 -0
  669. package/src/components/SampleLegend.vue +119 -0
  670. package/src/components/SampleSelector.colors.ts +48 -0
  671. package/src/components/SampleSelector.drag.ts +164 -0
  672. package/src/components/SampleSelector.groups.ts +109 -0
  673. package/src/components/SampleSelector.selection.ts +64 -0
  674. package/src/components/SampleSelector.story.vue +192 -0
  675. package/src/components/SampleSelector.tree.ts +48 -0
  676. package/src/components/SampleSelector.vue +451 -0
  677. package/src/components/SampleSelectorGroupNode.vue +197 -0
  678. package/src/components/SampleSelectorSampleRow.vue +68 -0
  679. package/src/components/ScheduleCalendar.story.vue +195 -0
  680. package/src/components/ScheduleCalendar.vue +414 -0
  681. package/src/components/ScientificNumber.story.vue +127 -0
  682. package/src/components/ScientificNumber.vue +197 -0
  683. package/src/components/SecretInput.story.vue +79 -0
  684. package/src/components/SecretInput.vue +150 -0
  685. package/src/components/SectionCard.story.vue +163 -0
  686. package/src/components/SectionCard.vue +98 -0
  687. package/src/components/SegmentedControl.story.vue +149 -0
  688. package/src/components/SegmentedControl.vue +94 -0
  689. package/src/components/SequenceInput.story.vue +119 -0
  690. package/src/components/SequenceInput.vue +209 -0
  691. package/src/components/SequenceProgressBar.vue +71 -0
  692. package/src/components/SettingsModal.schema.ts +74 -0
  693. package/src/components/SettingsModal.story.vue +524 -0
  694. package/src/components/SettingsModal.vue +399 -0
  695. package/src/components/Skeleton.story.vue +141 -0
  696. package/src/components/Skeleton.vue +74 -0
  697. package/src/components/SmartGroup.types.ts +98 -0
  698. package/src/components/SmartGroupFieldRecipe.groups.ts +109 -0
  699. package/src/components/SmartGroupFieldRecipe.story.vue +58 -0
  700. package/src/components/SmartGroupFieldRecipe.vue +499 -0
  701. package/src/components/SmartGroupManual.cohorts.ts +112 -0
  702. package/src/components/SmartGroupManual.story.vue +55 -0
  703. package/src/components/SmartGroupManual.vue +398 -0
  704. package/src/components/SmartGroupModal.story.vue +61 -0
  705. package/src/components/SmartGroupModal.vue +61 -0
  706. package/src/components/StatusIndicator.story.vue +99 -0
  707. package/src/components/StatusIndicator.vue +40 -0
  708. package/src/components/StepWizard.story.vue +155 -0
  709. package/src/components/StepWizard.vue +223 -0
  710. package/src/components/TagsInput.story.vue +155 -0
  711. package/src/components/TagsInput.vue +280 -0
  712. package/src/components/ThemeToggle.story.vue +36 -0
  713. package/src/components/ThemeToggle.vue +56 -0
  714. package/src/components/TimePicker.story.vue +96 -0
  715. package/src/components/TimePicker.vue +251 -0
  716. package/src/components/TimeRangeInput.story.vue +104 -0
  717. package/src/components/TimeRangeInput.vue +122 -0
  718. package/src/components/Tooltip.story.vue +138 -0
  719. package/src/components/Tooltip.vue +114 -0
  720. package/src/components/UnitInput.story.vue +194 -0
  721. package/src/components/UnitInput.vue +217 -0
  722. package/src/components/WellPlate.colors.ts +56 -0
  723. package/src/components/WellPlate.conditions.ts +100 -0
  724. package/src/components/WellPlate.geometry.ts +91 -0
  725. package/src/components/WellPlate.interaction.ts +272 -0
  726. package/src/components/WellPlate.legend.ts +8 -0
  727. package/src/components/WellPlate.rendering.ts +105 -0
  728. package/src/components/WellPlate.sampleDrop.ts +73 -0
  729. package/src/components/WellPlate.story.vue +282 -0
  730. package/src/components/WellPlate.vue +497 -0
  731. package/src/components/index.ts +148 -0
  732. package/src/components/internal/ActionItemInternal.vue +82 -0
  733. package/src/components/internal/AppTopBarPageSelectorInternal.vue +127 -0
  734. package/src/components/internal/AppTopBarPillNavInternal.vue +194 -0
  735. package/src/components/internal/CalendarGridPanelInternal.vue +120 -0
  736. package/src/components/internal/FormFieldRendererInternal.vue +68 -0
  737. package/src/components/internal/FormSectionRenderer.vue +78 -0
  738. package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
  739. package/src/components/internal/WellEditPopupInternal.vue +249 -0
  740. package/src/components/internal/WorkspaceControlsInternal.vue +20 -0
  741. package/src/components/internal/WorkspaceShellInternal.vue +125 -0
  742. package/src/components/internal/WorkspaceSidebarInternal.vue +82 -0
  743. package/src/composables/analysisArtifactTarget.ts +53 -0
  744. package/src/composables/autoGroup/classKey.ts +8 -0
  745. package/src/composables/autoGroup/classify.ts +205 -0
  746. package/src/composables/autoGroup/colors.ts +6 -0
  747. package/src/composables/autoGroup/columns.ts +226 -0
  748. package/src/composables/autoGroup/compose.ts +244 -0
  749. package/src/composables/autoGroup/cooccurrence.ts +46 -0
  750. package/src/composables/autoGroup/csv-shim.ts +44 -0
  751. package/src/composables/autoGroup/fingerprint.ts +63 -0
  752. package/src/composables/autoGroup/index.ts +22 -0
  753. package/src/composables/autoGroup/replicatePreGroup.ts +124 -0
  754. package/src/composables/autoGroup/template.ts +126 -0
  755. package/src/composables/autoGroup/tokenLength.ts +53 -0
  756. package/src/composables/autoGroup/tokenize.ts +41 -0
  757. package/src/composables/autoGroup/vocab.json +66 -0
  758. package/src/composables/autoGroupConstants.ts +4 -0
  759. package/src/composables/autoGroupGrouping.ts +148 -0
  760. package/src/composables/controlComponentBindings.ts +80 -0
  761. package/src/composables/controlSchemaAdapters.ts +199 -0
  762. package/src/composables/controlSchemaDoseDesign.ts +222 -0
  763. package/src/composables/controlSchemaFormFields.ts +64 -0
  764. package/src/composables/controlSchemaLayout.ts +59 -0
  765. package/src/composables/controlSchemaModel.ts +172 -0
  766. package/src/composables/controlSchemaNormalize.ts +101 -0
  767. package/src/composables/controlSchemaTypes.ts +372 -0
  768. package/src/composables/controlSchemaUtils.ts +36 -0
  769. package/src/composables/controlWorkspaceOptions.ts +21 -0
  770. package/src/composables/experiment-utils.ts +105 -0
  771. package/src/composables/experimentDesignData.ts +180 -0
  772. package/src/composables/flattenWorkspaceBindings.ts +104 -0
  773. package/src/composables/formBuilderRegistry.ts +86 -0
  774. package/src/composables/formBuilderSchema.ts +153 -0
  775. package/src/composables/index.ts +556 -0
  776. package/src/composables/platformContextHelpers.ts +81 -0
  777. package/src/composables/pluginEndpointBuilder.ts +267 -0
  778. package/src/composables/pluginFrontendBase.ts +22 -0
  779. package/src/composables/pluginWorkspaceModel.ts +182 -0
  780. package/src/composables/protocolTemplateCatalog.ts +325 -0
  781. package/src/composables/useAnalysisArtifacts.ts +361 -0
  782. package/src/composables/useApi.ts +319 -0
  783. package/src/composables/useAppExperiment.ts +228 -0
  784. package/src/composables/useAsync.ts +327 -0
  785. package/src/composables/useAuth.ts +458 -0
  786. package/src/composables/useAutoGroup.ts +682 -0
  787. package/src/composables/useAutoGroupInputSources.ts +147 -0
  788. package/src/composables/useBioTemplateComponents.ts +105 -0
  789. package/src/composables/useBioTemplateControls.ts +41 -0
  790. package/src/composables/useBioTemplatePackWorkspace.ts +199 -0
  791. package/src/composables/useBioTemplatePresetWorkspace.ts +325 -0
  792. package/src/composables/useBioTemplateWorkspace.ts +116 -0
  793. package/src/composables/useCalendarGrid.ts +140 -0
  794. package/src/composables/useChemicalFormula.ts +275 -0
  795. package/src/composables/useCommandHistory.ts +117 -0
  796. package/src/composables/useConcentrationUnits.ts +246 -0
  797. package/src/composables/useControlSchema.ts +135 -0
  798. package/src/composables/useControlWorkspace.ts +209 -0
  799. package/src/composables/useDebouncedWatch.ts +119 -0
  800. package/src/composables/useDoseCalculator.ts +370 -0
  801. package/src/composables/useDropdownState.ts +83 -0
  802. package/src/composables/useEventListener.ts +111 -0
  803. package/src/composables/useEventStream.ts +314 -0
  804. package/src/composables/useExpansionSet.ts +117 -0
  805. package/src/composables/useExperimentData.ts +136 -0
  806. package/src/composables/useExperimentSamples.ts +142 -0
  807. package/src/composables/useExperimentSave.ts +344 -0
  808. package/src/composables/useExperimentSelector.ts +408 -0
  809. package/src/composables/useFileImport.ts +231 -0
  810. package/src/composables/useFocusTrap.ts +91 -0
  811. package/src/composables/useForm.ts +279 -0
  812. package/src/composables/useFormBuilder.ts +292 -0
  813. package/src/composables/useFormValidation.ts +154 -0
  814. package/src/composables/useGeneratedAnalysis.ts +1227 -0
  815. package/src/composables/useGroupAssignment.ts +148 -0
  816. package/src/composables/useJobsStatusTray.ts +493 -0
  817. package/src/composables/useListSelection.ts +158 -0
  818. package/src/composables/useMenuKeyboard.ts +90 -0
  819. package/src/composables/useMobileSupportGate.ts +80 -0
  820. package/src/composables/useOptimisticMutation.ts +111 -0
  821. package/src/composables/usePasskey.ts +216 -0
  822. package/src/composables/usePlatformContext.ts +299 -0
  823. package/src/composables/usePluginClient.ts +1006 -0
  824. package/src/composables/usePluginConfig.ts +250 -0
  825. package/src/composables/usePluginWorkspace.ts +208 -0
  826. package/src/composables/usePresenceHeartbeat.ts +201 -0
  827. package/src/composables/useProtocolTemplates.ts +212 -0
  828. package/src/composables/useRackEditor.ts +223 -0
  829. package/src/composables/useReagentSeries.ts +91 -0
  830. package/src/composables/useRequestSyncState.ts +126 -0
  831. package/src/composables/useResourceCrud.ts +249 -0
  832. package/src/composables/useRovingFocus.ts +66 -0
  833. package/src/composables/useRuntimeAlignment.ts +184 -0
  834. package/src/composables/useSampleGroups.ts +211 -0
  835. package/src/composables/useScheduleCalendarLayout.ts +287 -0
  836. package/src/composables/useScheduleDrag.ts +245 -0
  837. package/src/composables/useSelectionLimit.ts +57 -0
  838. package/src/composables/useSequenceUtils.ts +105 -0
  839. package/src/composables/useSortedItems.ts +118 -0
  840. package/src/composables/useTemplateCollection.ts +229 -0
  841. package/src/composables/useTextSearch.ts +60 -0
  842. package/src/composables/useTheme.ts +32 -0
  843. package/src/composables/useTimeUtils.ts +155 -0
  844. package/src/composables/useToast.ts +40 -0
  845. package/src/composables/useWellPainting.ts +191 -0
  846. package/src/composables/useWellPlateAdapter.ts +151 -0
  847. package/src/composables/useWellPlateEditor.ts +425 -0
  848. package/src/composables/useWellPlateValidation.ts +89 -0
  849. package/src/composables/workspaceRecipes.ts +267 -0
  850. package/src/generated/schema.ts +130 -0
  851. package/src/generated-ui/main.ts +21 -0
  852. package/src/histoire.setup.ts +17 -0
  853. package/src/index.ts +83 -0
  854. package/src/install.ts +39 -0
  855. package/src/instrument.ts +90 -0
  856. package/src/jobs.ts +80 -0
  857. package/src/lcms.ts +108 -0
  858. package/src/permissions.ts +144 -0
  859. package/src/plotly-dist.d.ts +3 -0
  860. package/src/stores/auth.ts +206 -0
  861. package/src/stores/experiment.ts +120 -0
  862. package/src/stores/index.ts +3 -0
  863. package/src/stores/settings.ts +232 -0
  864. package/src/styles/components/action-menu.css +59 -0
  865. package/src/styles/components/alert-box.css +150 -0
  866. package/src/styles/components/app-avatar-menu.css +156 -0
  867. package/src/styles/components/app-container.css +33 -0
  868. package/src/styles/components/app-layout.css +180 -0
  869. package/src/styles/components/app-page-selector.css +212 -0
  870. package/src/styles/components/app-pill-nav.css +133 -0
  871. package/src/styles/components/app-plugin-switcher.css +196 -0
  872. package/src/styles/components/app-sidebar.css +392 -0
  873. package/src/styles/components/app-top-bar.css +249 -0
  874. package/src/styles/components/artifact-save-dialog.css +17 -0
  875. package/src/styles/components/artifact-selector-modal.css +216 -0
  876. package/src/styles/components/audit-trail.css +143 -0
  877. package/src/styles/components/avatar.css +73 -0
  878. package/src/styles/components/batch-progress-list.css +196 -0
  879. package/src/styles/components/breadcrumb.css +64 -0
  880. package/src/styles/components/button.css +192 -0
  881. package/src/styles/components/calendar.css +192 -0
  882. package/src/styles/components/chart-container.css +69 -0
  883. package/src/styles/components/checkbox.css +210 -0
  884. package/src/styles/components/chemical-formula.css +46 -0
  885. package/src/styles/components/collapsible-card.css +393 -0
  886. package/src/styles/components/color-slider.css +110 -0
  887. package/src/styles/components/concentration-input.css +17 -0
  888. package/src/styles/components/confirm-dialog.css +59 -0
  889. package/src/styles/components/dataframe.css +554 -0
  890. package/src/styles/components/date-picker.css +243 -0
  891. package/src/styles/components/datetime-picker.css +229 -0
  892. package/src/styles/components/divider.css +63 -0
  893. package/src/styles/components/dose-calculator.css +297 -0
  894. package/src/styles/components/dropdown-button.css +280 -0
  895. package/src/styles/components/empty-state.css +135 -0
  896. package/src/styles/components/experiment-code-badge.css +33 -0
  897. package/src/styles/components/experiment-data-viewer.css +138 -0
  898. package/src/styles/components/experiment-popover.css +563 -0
  899. package/src/styles/components/experiment-selector-modal.css +341 -0
  900. package/src/styles/components/experiment-timeline.css +529 -0
  901. package/src/styles/components/file-uploader.css +310 -0
  902. package/src/styles/components/fit-panel.css +67 -0
  903. package/src/styles/components/form-builder.css +69 -0
  904. package/src/styles/components/form-field.css +48 -0
  905. package/src/styles/components/formula-input.css +103 -0
  906. package/src/styles/components/group-assigner.css +200 -0
  907. package/src/styles/components/icon-button.css +196 -0
  908. package/src/styles/components/input.css +65 -0
  909. package/src/styles/components/instrument-monitor.css +478 -0
  910. package/src/styles/components/jobs-status-tray.css +420 -0
  911. package/src/styles/components/lcms-sequence-table.css +189 -0
  912. package/src/styles/components/loading-spinner.css +67 -0
  913. package/src/styles/components/mobile-support-gate.css +119 -0
  914. package/src/styles/components/modal.css +646 -0
  915. package/src/styles/components/molecule-input.css +186 -0
  916. package/src/styles/components/multi-select.css +131 -0
  917. package/src/styles/components/number-input.css +199 -0
  918. package/src/styles/components/pill.css +188 -0
  919. package/src/styles/components/plate-map-editor.css +464 -0
  920. package/src/styles/components/plugin-icon.css +46 -0
  921. package/src/styles/components/progress-bar.css +133 -0
  922. package/src/styles/components/protocol-step-editor.css +443 -0
  923. package/src/styles/components/rack-editor.css +265 -0
  924. package/src/styles/components/radio-group.css +240 -0
  925. package/src/styles/components/reagent-editor.css +505 -0
  926. package/src/styles/components/reagent-list.css +407 -0
  927. package/src/styles/components/resource-card.css +360 -0
  928. package/src/styles/components/sample-hierarchy-tree.css +310 -0
  929. package/src/styles/components/sample-legend.css +201 -0
  930. package/src/styles/components/sample-selector.css +682 -0
  931. package/src/styles/components/schedule-calendar.css +472 -0
  932. package/src/styles/components/scientific-number.css +63 -0
  933. package/src/styles/components/secret-input.css +60 -0
  934. package/src/styles/components/section-card.css +161 -0
  935. package/src/styles/components/segmented-control.css +194 -0
  936. package/src/styles/components/select.css +77 -0
  937. package/src/styles/components/sequence-input.css +184 -0
  938. package/src/styles/components/sequence-progress-bar.css +63 -0
  939. package/src/styles/components/settings-modal.css +76 -0
  940. package/src/styles/components/skeleton.css +49 -0
  941. package/src/styles/components/slider.css +74 -0
  942. package/src/styles/components/smart-group.css +734 -0
  943. package/src/styles/components/status-indicator.css +66 -0
  944. package/src/styles/components/step-wizard.css +192 -0
  945. package/src/styles/components/tabs.css +103 -0
  946. package/src/styles/components/tags-input.css +195 -0
  947. package/src/styles/components/textarea.css +81 -0
  948. package/src/styles/components/theme-toggle.css +6 -0
  949. package/src/styles/components/time-picker.css +171 -0
  950. package/src/styles/components/time-range-input.css +42 -0
  951. package/src/styles/components/toast.css +91 -0
  952. package/src/styles/components/toggle.css +226 -0
  953. package/src/styles/components/tooltip.css +91 -0
  954. package/src/styles/components/unit-input.css +123 -0
  955. package/src/styles/components/well-edit-popup.css +258 -0
  956. package/src/styles/components/well-plate.css +286 -0
  957. package/src/styles/index.css +94 -0
  958. package/src/styles/variables.css +1150 -0
  959. package/src/tailwind.preset.ts +66 -0
  960. package/src/templates/adapters.ts +137 -0
  961. package/src/templates/assayLookups.ts +33 -0
  962. package/src/templates/assayMatrixAdapters.ts +78 -0
  963. package/src/templates/assayMatrixBuilder.ts +59 -0
  964. package/src/templates/assayNormalizers.ts +34 -0
  965. package/src/templates/builderDefaults.ts +11 -0
  966. package/src/templates/builderIdUtils.ts +20 -0
  967. package/src/templates/builderPresetControls.ts +165 -0
  968. package/src/templates/builderReadUtils.ts +55 -0
  969. package/src/templates/builders.ts +122 -0
  970. package/src/templates/calibrationCurveAdapters.ts +59 -0
  971. package/src/templates/calibrationCurveBuilder.ts +99 -0
  972. package/src/templates/calibrationNormalizers.ts +60 -0
  973. package/src/templates/catalog.ts +245 -0
  974. package/src/templates/componentBindingCatalog.ts +90 -0
  975. package/src/templates/componentBindingHelpers.ts +93 -0
  976. package/src/templates/componentBindings.ts +253 -0
  977. package/src/templates/componentDoseResponseProps.ts +42 -0
  978. package/src/templates/componentGenericProps.ts +77 -0
  979. package/src/templates/componentPlateHelpers.ts +29 -0
  980. package/src/templates/componentPlateMapProps.ts +32 -0
  981. package/src/templates/componentPropsFactory.ts +21 -0
  982. package/src/templates/componentQpcrPlateProps.ts +28 -0
  983. package/src/templates/componentTargetResolvers.ts +67 -0
  984. package/src/templates/componentTemplateProps.ts +78 -0
  985. package/src/templates/controlSchemaClone.ts +32 -0
  986. package/src/templates/controlSchemaConstants.ts +11 -0
  987. package/src/templates/controlSchemaMerge.ts +40 -0
  988. package/src/templates/controlSchemaTargets.ts +85 -0
  989. package/src/templates/controlSchemaTypes.ts +20 -0
  990. package/src/templates/controlSchemas.ts +104 -0
  991. package/src/templates/defaultBioTemplateBuilder.ts +124 -0
  992. package/src/templates/doseResponseAdapters.ts +45 -0
  993. package/src/templates/doseResponseBuilder.ts +44 -0
  994. package/src/templates/elisaAssayCollectionBuilder.ts +62 -0
  995. package/src/templates/flowCytometryAssayCollectionBuilder.ts +41 -0
  996. package/src/templates/flowCytometryPanelBuilder.ts +53 -0
  997. package/src/templates/flowNormalizers.ts +58 -0
  998. package/src/templates/flowPanelAdapters.ts +58 -0
  999. package/src/templates/index.ts +326 -0
  1000. package/src/templates/instrumentRunAdapterHelpers.ts +94 -0
  1001. package/src/templates/instrumentRunAdapters.ts +163 -0
  1002. package/src/templates/instrumentRunBuilder.ts +97 -0
  1003. package/src/templates/lcmsBatchCollectionBuilder.ts +38 -0
  1004. package/src/templates/lookup.ts +18 -0
  1005. package/src/templates/packs.ts +162 -0
  1006. package/src/templates/plateGeometry.ts +62 -0
  1007. package/src/templates/plateMapAdapters.ts +36 -0
  1008. package/src/templates/plateMapBuilder.ts +43 -0
  1009. package/src/templates/presetControlSchemas.ts +258 -0
  1010. package/src/templates/presets.ts +179 -0
  1011. package/src/templates/protocolAdapters.ts +69 -0
  1012. package/src/templates/protocolNormalizers.ts +37 -0
  1013. package/src/templates/protocolStepsBuilder.ts +36 -0
  1014. package/src/templates/qpcrAdapters.ts +104 -0
  1015. package/src/templates/qpcrExpressionCollectionBuilder.ts +33 -0
  1016. package/src/templates/qpcrPlateBuilder.ts +96 -0
  1017. package/src/templates/reagentAdapters.ts +77 -0
  1018. package/src/templates/reagentListBuilder.ts +30 -0
  1019. package/src/templates/runNormalizers.ts +63 -0
  1020. package/src/templates/sampleNormalizers.ts +58 -0
  1021. package/src/templates/samplePrepAdapters.ts +63 -0
  1022. package/src/templates/samplePrepBuilder.ts +51 -0
  1023. package/src/templates/sampleSheetAdapters.ts +75 -0
  1024. package/src/templates/sampleSheetBuilder.ts +23 -0
  1025. package/src/templates/targetedMetabolomicsCollectionBuilder.ts +79 -0
  1026. package/src/templates/targetedMetabolomicsHelpers.ts +102 -0
  1027. package/src/templates/templateAdapterTypes.ts +58 -0
  1028. package/src/templates/templateControlSchemas.ts +320 -0
  1029. package/src/templates/templateCreateOptions.ts +208 -0
  1030. package/src/templates/templateEnvelopes.ts +137 -0
  1031. package/src/templates/templatePackCollectionBuilder.ts +23 -0
  1032. package/src/templates/templatePresetCollectionBuilder.ts +139 -0
  1033. package/src/templates/templateQpcrTypes.ts +48 -0
  1034. package/src/templates/templateValidators.ts +414 -0
  1035. package/src/templates/timeCourseAdapters.ts +73 -0
  1036. package/src/templates/timeCourseBuilder.ts +64 -0
  1037. package/src/templates/types.ts +493 -0
  1038. package/src/templates/wellPlateScreenCollectionBuilder.ts +36 -0
  1039. package/src/templates/westernBlotAssayCollectionBuilder.ts +68 -0
  1040. package/src/types/analysisArtifactTypes.ts +176 -0
  1041. package/src/types/auth.ts +59 -0
  1042. package/src/types/auto-group.ts +157 -0
  1043. package/src/types/componentLabTypes.ts +235 -0
  1044. package/src/types/componentWorkflowTypes.ts +190 -0
  1045. package/src/types/components.ts +527 -0
  1046. package/src/types/form-builder.ts +208 -0
  1047. package/src/types/generated-ui.ts +189 -0
  1048. package/src/types/index.ts +299 -0
  1049. package/src/types/instrument.ts +62 -0
  1050. package/src/types/jobs.ts +70 -0
  1051. package/src/types/platform.ts +132 -0
  1052. package/src/utils/color.ts +96 -0
  1053. package/src/utils/formModelSync.ts +50 -0
  1054. package/src/utils/items.ts +28 -0
  1055. package/src/utils/options.ts +23 -0
  1056. package/src/utils/pluginIcon.ts +188 -0
  1057. package/src/utils/pluginSecrets.ts +102 -0
  1058. package/src/utils/rack.ts +209 -0
  1059. package/src/utils/records.ts +9 -0
  1060. package/src/utils/sampleGroupPath.ts +19 -0
  1061. package/dist/ExperimentPopover-C1e0cd94.js +0 -3
  1062. package/dist/ExperimentSelectorModal-DCWTFyos.js +0 -4
  1063. package/dist/SettingsModal-Bpybht86.js +0 -5
@@ -1,11 +1,11 @@
1
- import { c as formatExperimentDate, f as BaseModal_default, m as BaseButton_default, p as useEventListener } from "./experiment-utils-CLnzPPq5.js";
2
- import { a as BaseSelect_default, i as BasePill_default, n as Skeleton_default, o as normalizeOptionInput, r as useRequestSyncState, s as BaseInput_default, t as EmptyState_default } from "./EmptyState-p90quq8Z.js";
3
- import { t as useDropdownState } from "./useDropdownState-WIGW6Rr-.js";
4
- import { r as useApi } from "./useApi-yE0re8k-.js";
1
+ import { c as formatExperimentDate, f as BaseModal_default, h as BaseButton_default, m as useEventListener } from "./experiment-utils-DV3DrvE_.js";
2
+ import { a as BaseSelect_default, i as BasePill_default, n as Skeleton_default, o as normalizeOptionInput, r as useRequestSyncState, s as BaseInput_default, t as EmptyState_default } from "./EmptyState-NBqf2_8z.js";
3
+ import { t as useDropdownState } from "./useDropdownState-D5G4UvWd.js";
4
+ import { r as useApi } from "./useApi-CDBq6z23.js";
5
5
  import { hasAllPermissions } from "./permissions.js";
6
6
  import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, getCurrentScope, isRef, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, reactive, ref, renderList, renderSlot, shallowRef, toDisplayString, toValue, unref, useSlots, vModelText, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
7
7
  //#region src/components/BaseTextarea.vue?vue&type=script&setup=true&lang.ts
8
- var _hoisted_1$21 = [
8
+ var _hoisted_1$22 = [
9
9
  "value",
10
10
  "placeholder",
11
11
  "disabled",
@@ -73,7 +73,7 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
73
73
  onInput: handleInput,
74
74
  onFocus: _cache[0] || (_cache[0] = ($event) => emit("focus", $event)),
75
75
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event))
76
- }, null, 42, _hoisted_1$21);
76
+ }, null, 42, _hoisted_1$22);
77
77
  };
78
78
  }
79
79
  });
@@ -1064,9 +1064,9 @@ var computePosition = (reference, floating, options) => {
1064
1064
  };
1065
1065
  //#endregion
1066
1066
  //#region src/components/Tooltip.vue?vue&type=script&setup=true&lang.ts
1067
- var _hoisted_1$20 = ["aria-describedby"];
1068
- var _hoisted_2$19 = { class: "mint-tooltip__body" };
1069
- var _hoisted_3$17 = {
1067
+ var _hoisted_1$21 = ["aria-describedby"];
1068
+ var _hoisted_2$20 = { class: "mint-tooltip__body" };
1069
+ var _hoisted_3$18 = {
1070
1070
  key: 0,
1071
1071
  class: "mint-tooltip__shortcut"
1072
1072
  };
@@ -1161,13 +1161,13 @@ var Tooltip_default = /* @__PURE__ */ defineComponent({
1161
1161
  maxWidth: resolvedMaxWidth(__props.maxWidth)
1162
1162
  }),
1163
1163
  role: "tooltip"
1164
- }, [createElementVNode("span", _hoisted_2$19, toDisplayString(__props.text), 1), __props.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_3$17, toDisplayString(__props.shortcut), 1)) : createCommentVNode("", true)], 6)) : createCommentVNode("", true)]))], 40, _hoisted_1$20);
1164
+ }, [createElementVNode("span", _hoisted_2$20, toDisplayString(__props.text), 1), __props.shortcut ? (openBlock(), createElementBlock("kbd", _hoisted_3$18, toDisplayString(__props.shortcut), 1)) : createCommentVNode("", true)], 6)) : createCommentVNode("", true)]))], 40, _hoisted_1$21);
1165
1165
  };
1166
1166
  }
1167
1167
  });
1168
1168
  //#endregion
1169
1169
  //#region src/components/BaseCheckbox.vue?vue&type=script&setup=true&lang.ts
1170
- var _hoisted_1$19 = {
1170
+ var _hoisted_1$20 = {
1171
1171
  key: 0,
1172
1172
  class: "mint-checkbox__row-svg",
1173
1173
  viewBox: "0 0 24 24",
@@ -1177,8 +1177,8 @@ var _hoisted_1$19 = {
1177
1177
  "stroke-linecap": "round",
1178
1178
  "stroke-linejoin": "round"
1179
1179
  };
1180
- var _hoisted_2$18 = ["d"];
1181
- var _hoisted_3$16 = ["d"];
1180
+ var _hoisted_2$19 = ["d"];
1181
+ var _hoisted_3$17 = ["d"];
1182
1182
  var _hoisted_4$15 = {
1183
1183
  key: 1,
1184
1184
  class: "mint-checkbox__row-text-icon"
@@ -1242,15 +1242,15 @@ var BaseCheckbox_default = /* @__PURE__ */ defineComponent({
1242
1242
  class: "mint-checkbox__row-icon",
1243
1243
  style: normalizeStyle(iconStyle()),
1244
1244
  "aria-hidden": "true"
1245
- }, [isSvgIcon(props.icon) ? (openBlock(), createElementBlock("svg", _hoisted_1$19, [Array.isArray(props.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(props.icon, (d, i) => {
1245
+ }, [isSvgIcon(props.icon) ? (openBlock(), createElementBlock("svg", _hoisted_1$20, [Array.isArray(props.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(props.icon, (d, i) => {
1246
1246
  return openBlock(), createElementBlock("path", {
1247
1247
  key: i,
1248
1248
  d
1249
- }, null, 8, _hoisted_2$18);
1249
+ }, null, 8, _hoisted_2$19);
1250
1250
  }), 128)) : (openBlock(), createElementBlock("path", {
1251
1251
  key: 1,
1252
1252
  d: props.icon
1253
- }, null, 8, _hoisted_3$16))])) : (openBlock(), createElementBlock("span", _hoisted_4$15, toDisplayString(props.icon), 1))], 4)) : createCommentVNode("", true),
1253
+ }, null, 8, _hoisted_3$17))])) : (openBlock(), createElementBlock("span", _hoisted_4$15, toDisplayString(props.icon), 1))], 4)) : createCommentVNode("", true),
1254
1254
  props.variant === "row" && props.label ? (openBlock(), createElementBlock("span", _hoisted_5$13, [props.description ? (openBlock(), createBlock(Tooltip_default, {
1255
1255
  key: 0,
1256
1256
  text: props.description,
@@ -1301,7 +1301,7 @@ var BaseCheckbox_default = /* @__PURE__ */ defineComponent({
1301
1301
  });
1302
1302
  //#endregion
1303
1303
  //#region src/components/BaseToggle.vue?vue&type=script&setup=true&lang.ts
1304
- var _hoisted_1$18 = {
1304
+ var _hoisted_1$19 = {
1305
1305
  key: 0,
1306
1306
  class: "mint-toggle__row-svg",
1307
1307
  viewBox: "0 0 24 24",
@@ -1311,8 +1311,8 @@ var _hoisted_1$18 = {
1311
1311
  "stroke-linecap": "round",
1312
1312
  "stroke-linejoin": "round"
1313
1313
  };
1314
- var _hoisted_2$17 = ["d"];
1315
- var _hoisted_3$15 = ["d"];
1314
+ var _hoisted_2$18 = ["d"];
1315
+ var _hoisted_3$16 = ["d"];
1316
1316
  var _hoisted_4$14 = {
1317
1317
  key: 1,
1318
1318
  class: "mint-toggle__row-text-icon"
@@ -1389,15 +1389,15 @@ var BaseToggle_default = /* @__PURE__ */ defineComponent({
1389
1389
  class: "mint-toggle__row-icon",
1390
1390
  style: normalizeStyle(iconStyle()),
1391
1391
  "aria-hidden": "true"
1392
- }, [isSvgIcon(__props.icon) ? (openBlock(), createElementBlock("svg", _hoisted_1$18, [Array.isArray(__props.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.icon, (d, i) => {
1392
+ }, [isSvgIcon(__props.icon) ? (openBlock(), createElementBlock("svg", _hoisted_1$19, [Array.isArray(__props.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.icon, (d, i) => {
1393
1393
  return openBlock(), createElementBlock("path", {
1394
1394
  key: i,
1395
1395
  d
1396
- }, null, 8, _hoisted_2$17);
1396
+ }, null, 8, _hoisted_2$18);
1397
1397
  }), 128)) : (openBlock(), createElementBlock("path", {
1398
1398
  key: 1,
1399
1399
  d: __props.icon
1400
- }, null, 8, _hoisted_3$15))])) : (openBlock(), createElementBlock("span", _hoisted_4$14, toDisplayString(__props.icon), 1))], 4)) : createCommentVNode("", true),
1400
+ }, null, 8, _hoisted_3$16))])) : (openBlock(), createElementBlock("span", _hoisted_4$14, toDisplayString(__props.icon), 1))], 4)) : createCommentVNode("", true),
1401
1401
  __props.variant === "row" && __props.label ? (openBlock(), createElementBlock("span", _hoisted_5$12, [__props.description ? (openBlock(), createBlock(Tooltip_default, {
1402
1402
  key: 0,
1403
1403
  text: __props.description,
@@ -1440,7 +1440,7 @@ var BaseToggle_default = /* @__PURE__ */ defineComponent({
1440
1440
  });
1441
1441
  //#endregion
1442
1442
  //#region src/components/BaseRadioGroup.vue?vue&type=script&setup=true&lang.ts
1443
- var _hoisted_1$17 = [
1443
+ var _hoisted_1$18 = [
1444
1444
  "name",
1445
1445
  "value",
1446
1446
  "checked",
@@ -1448,8 +1448,8 @@ var _hoisted_1$17 = [
1448
1448
  "aria-describedby",
1449
1449
  "onChange"
1450
1450
  ];
1451
- var _hoisted_2$16 = { class: "mint-radio-option__content" };
1452
- var _hoisted_3$14 = ["id"];
1451
+ var _hoisted_2$17 = { class: "mint-radio-option__content" };
1452
+ var _hoisted_3$15 = ["id"];
1453
1453
  var _hoisted_4$13 = [
1454
1454
  "name",
1455
1455
  "value",
@@ -1511,18 +1511,18 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
1511
1511
  "aria-describedby": option.description ? `${props.name}-${option.value}-desc` : void 0,
1512
1512
  class: "mint-radio-option__native",
1513
1513
  onChange: ($event) => handleChange(option.value)
1514
- }, null, 40, _hoisted_1$17), createElementVNode("div", { class: normalizeClass([
1514
+ }, null, 40, _hoisted_1$18), createElementVNode("div", { class: normalizeClass([
1515
1515
  "mint-radio-option__circle",
1516
1516
  `mint-radio-option__circle--${props.size}`,
1517
1517
  props.modelValue === option.value ? "mint-radio-option__circle--checked" : ""
1518
1518
  ]) }, [props.modelValue === option.value ? (openBlock(), createElementBlock("div", {
1519
1519
  key: 0,
1520
1520
  class: normalizeClass(["mint-radio-option__dot", `mint-radio-option__dot--${props.size}`])
1521
- }, null, 2)) : createCommentVNode("", true)], 2)], 2), createElementVNode("div", _hoisted_2$16, [createElementVNode("span", { class: normalizeClass(["mint-radio-option__label", `mint-radio-option__label--${props.size}`]) }, toDisplayString(option.label), 3), option.description ? (openBlock(), createElementBlock("span", {
1521
+ }, null, 2)) : createCommentVNode("", true)], 2)], 2), createElementVNode("div", _hoisted_2$17, [createElementVNode("span", { class: normalizeClass(["mint-radio-option__label", `mint-radio-option__label--${props.size}`]) }, toDisplayString(option.label), 3), option.description ? (openBlock(), createElementBlock("span", {
1522
1522
  key: 0,
1523
1523
  id: `${props.name}-${option.value}-desc`,
1524
1524
  class: normalizeClass(["mint-radio-option__description", `mint-radio-option__description--${props.size}`])
1525
- }, toDisplayString(option.description), 11, _hoisted_3$14)) : createCommentVNode("", true)])], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1525
+ }, toDisplayString(option.description), 11, _hoisted_3$15)) : createCommentVNode("", true)])], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1526
1526
  createElementVNode("input", {
1527
1527
  type: "radio",
1528
1528
  name: props.name,
@@ -1553,8 +1553,8 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
1553
1553
  });
1554
1554
  //#endregion
1555
1555
  //#region src/components/BaseSlider.vue?vue&type=script&setup=true&lang.ts
1556
- var _hoisted_1$16 = { class: "mint-slider__container" };
1557
- var _hoisted_2$15 = [
1556
+ var _hoisted_1$17 = { class: "mint-slider__container" };
1557
+ var _hoisted_2$16 = [
1558
1558
  "value",
1559
1559
  "min",
1560
1560
  "max",
@@ -1565,7 +1565,7 @@ var _hoisted_2$15 = [
1565
1565
  "aria-valuemax",
1566
1566
  "aria-valuenow"
1567
1567
  ];
1568
- var _hoisted_3$13 = {
1568
+ var _hoisted_3$14 = {
1569
1569
  key: 0,
1570
1570
  class: "mint-slider__value"
1571
1571
  };
@@ -1627,7 +1627,7 @@ var BaseSlider_default = /* @__PURE__ */ defineComponent({
1627
1627
  emit("update:modelValue", Number(target.value));
1628
1628
  }
1629
1629
  return (_ctx, _cache) => {
1630
- return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-slider", { "mint-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$16, [
1630
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-slider", { "mint-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$17, [
1631
1631
  createElementVNode("div", {
1632
1632
  class: "mint-slider__track",
1633
1633
  style: normalizeStyle({ height: `${sizeConfig.value.height}px` })
@@ -1656,7 +1656,7 @@ var BaseSlider_default = /* @__PURE__ */ defineComponent({
1656
1656
  onMouseup: _cache[1] || (_cache[1] = ($event) => isDragging.value = false),
1657
1657
  onTouchstartPassive: _cache[2] || (_cache[2] = ($event) => isDragging.value = true),
1658
1658
  onTouchend: _cache[3] || (_cache[3] = ($event) => isDragging.value = false)
1659
- }, null, 40, _hoisted_2$15),
1659
+ }, null, 40, _hoisted_2$16),
1660
1660
  createElementVNode("div", {
1661
1661
  class: normalizeClass(["mint-slider__thumb", { "mint-slider__thumb--dragging": isDragging.value }]),
1662
1662
  style: normalizeStyle({
@@ -1665,7 +1665,7 @@ var BaseSlider_default = /* @__PURE__ */ defineComponent({
1665
1665
  left: thumbPosition.value
1666
1666
  })
1667
1667
  }, null, 6)
1668
- ]), __props.showValue ? (openBlock(), createElementBlock("span", _hoisted_3$13, toDisplayString(currentValue.value), 1)) : createCommentVNode("", true)], 2);
1668
+ ]), __props.showValue ? (openBlock(), createElementBlock("span", _hoisted_3$14, toDisplayString(currentValue.value), 1)) : createCommentVNode("", true)], 2);
1669
1669
  };
1670
1670
  }
1671
1671
  });
@@ -1791,15 +1791,15 @@ function uniqueValues(values) {
1791
1791
  }
1792
1792
  //#endregion
1793
1793
  //#region src/components/MultiSelect.vue?vue&type=script&setup=true&lang.ts
1794
- var _hoisted_1$15 = {
1794
+ var _hoisted_1$16 = {
1795
1795
  key: 0,
1796
1796
  class: "mint-multi-select__placeholder"
1797
1797
  };
1798
- var _hoisted_2$14 = {
1798
+ var _hoisted_2$15 = {
1799
1799
  class: "mint-multi-select__options",
1800
1800
  role: "group"
1801
1801
  };
1802
- var _hoisted_3$12 = [
1802
+ var _hoisted_3$13 = [
1803
1803
  "aria-checked",
1804
1804
  "disabled",
1805
1805
  "onClick",
@@ -1871,8 +1871,8 @@ var MultiSelect_default = /* @__PURE__ */ defineComponent({
1871
1871
  `mint-multi-select--${__props.size}`,
1872
1872
  __props.disabled ? "mint-multi-select--disabled" : ""
1873
1873
  ]) }, [
1874
- __props.modelValue.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_1$15, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true),
1875
- createElementVNode("div", _hoisted_2$14, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
1874
+ __props.modelValue.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_1$16, toDisplayString(__props.placeholder), 1)) : createCommentVNode("", true),
1875
+ createElementVNode("div", _hoisted_2$15, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
1876
1876
  return openBlock(), createElementBlock("button", {
1877
1877
  key: String(option.value),
1878
1878
  type: "button",
@@ -1888,7 +1888,7 @@ var MultiSelect_default = /* @__PURE__ */ defineComponent({
1888
1888
  ]),
1889
1889
  onClick: ($event) => toggleOption(option),
1890
1890
  onKeydown: ($event) => handleKeydown($event, option)
1891
- }, [createElementVNode("span", _hoisted_4$12, toDisplayString(option.label), 1), isSelected(option.value) ? (openBlock(), createElementBlock("svg", _hoisted_5$10, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)], 42, _hoisted_3$12);
1891
+ }, [createElementVNode("span", _hoisted_4$12, toDisplayString(option.label), 1), isSelected(option.value) ? (openBlock(), createElementBlock("svg", _hoisted_5$10, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)], 42, _hoisted_3$13);
1892
1892
  }), 128))]),
1893
1893
  __props.modelValue.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_6$10, toDisplayString(selectedLabels.value.join(", ")), 1)) : createCommentVNode("", true)
1894
1894
  ], 2);
@@ -2001,9 +2001,9 @@ function startOfDay(date) {
2001
2001
  }
2002
2002
  //#endregion
2003
2003
  //#region src/components/internal/CalendarGridPanelInternal.vue?vue&type=script&setup=true&lang.ts
2004
- var _hoisted_1$14 = { class: "mint-calendar-grid-panel" };
2005
- var _hoisted_2$13 = { class: "mint-date-picker__header" };
2006
- var _hoisted_3$11 = ["aria-label"];
2004
+ var _hoisted_1$15 = { class: "mint-calendar-grid-panel" };
2005
+ var _hoisted_2$14 = { class: "mint-date-picker__header" };
2006
+ var _hoisted_3$12 = ["aria-label"];
2007
2007
  var _hoisted_4$11 = { class: "mint-date-picker__month-year" };
2008
2008
  var _hoisted_5$9 = ["aria-label"];
2009
2009
  var _hoisted_6$9 = { class: "mint-date-picker__weekdays" };
@@ -2052,8 +2052,8 @@ var CalendarGridPanelInternal_default = /* @__PURE__ */ defineComponent({
2052
2052
  });
2053
2053
  }
2054
2054
  return (_ctx, _cache) => {
2055
- return openBlock(), createElementBlock("div", _hoisted_1$14, [
2056
- createElementVNode("div", _hoisted_2$13, [
2055
+ return openBlock(), createElementBlock("div", _hoisted_1$15, [
2056
+ createElementVNode("div", _hoisted_2$14, [
2057
2057
  createElementVNode("button", {
2058
2058
  type: "button",
2059
2059
  class: "mint-date-picker__nav-btn",
@@ -2067,7 +2067,7 @@ var CalendarGridPanelInternal_default = /* @__PURE__ */ defineComponent({
2067
2067
  "stroke-linecap": "round",
2068
2068
  "stroke-linejoin": "round",
2069
2069
  "aria-hidden": "true"
2070
- }, [createElementVNode("path", { d: "m15 18-6-6 6-6" })], -1)])], 8, _hoisted_3$11),
2070
+ }, [createElementVNode("path", { d: "m15 18-6-6 6-6" })], -1)])], 8, _hoisted_3$12),
2071
2071
  createElementVNode("span", _hoisted_4$11, toDisplayString(__props.monthYear), 1),
2072
2072
  createElementVNode("button", {
2073
2073
  type: "button",
@@ -2113,12 +2113,12 @@ var CalendarGridPanelInternal_default = /* @__PURE__ */ defineComponent({
2113
2113
  });
2114
2114
  //#endregion
2115
2115
  //#region src/components/DatePicker.vue?vue&type=script&setup=true&lang.ts
2116
- var _hoisted_1$13 = [
2116
+ var _hoisted_1$14 = [
2117
2117
  "value",
2118
2118
  "placeholder",
2119
2119
  "disabled"
2120
2120
  ];
2121
- var _hoisted_2$12 = { class: "mint-date-picker__footer" };
2121
+ var _hoisted_2$13 = { class: "mint-date-picker__footer" };
2122
2122
  //#endregion
2123
2123
  //#region src/components/DatePicker.vue
2124
2124
  var DatePicker_default = /* @__PURE__ */ defineComponent({
@@ -2233,7 +2233,7 @@ var DatePicker_default = /* @__PURE__ */ defineComponent({
2233
2233
  __props.disabled ? "mint-date-picker__input--disabled" : ""
2234
2234
  ]),
2235
2235
  onClick: toggleCalendar
2236
- }, null, 10, _hoisted_1$13), _cache[0] || (_cache[0] = createStaticVNode("<div class=\"mint-date-picker__icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 2v4\"></path><path d=\"M16 2v4\"></path><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"></rect><path d=\"M3 10h18\"></path></svg></div>", 1))], 512), (openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(Transition, {
2236
+ }, null, 10, _hoisted_1$14), _cache[0] || (_cache[0] = createStaticVNode("<div class=\"mint-date-picker__icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 2v4\"></path><path d=\"M16 2v4\"></path><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"></rect><path d=\"M3 10h18\"></path></svg></div>", 1))], 512), (openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(Transition, {
2237
2237
  "enter-active-class": "mint-date-picker__dropdown-enter-active",
2238
2238
  "enter-from-class": "mint-date-picker__dropdown-enter-from",
2239
2239
  "enter-to-class": "mint-date-picker__dropdown-enter-to",
@@ -2265,7 +2265,7 @@ var DatePicker_default = /* @__PURE__ */ defineComponent({
2265
2265
  "selected-date",
2266
2266
  "onPreviousMonth",
2267
2267
  "onNextMonth"
2268
- ]), createElementVNode("div", _hoisted_2$12, [createElementVNode("button", {
2268
+ ]), createElementVNode("div", _hoisted_2$13, [createElementVNode("button", {
2269
2269
  type: "button",
2270
2270
  class: "mint-date-picker__footer-btn mint-date-picker__today-btn",
2271
2271
  onClick: goToToday
@@ -2411,14 +2411,14 @@ function useTimeUtils() {
2411
2411
  }
2412
2412
  //#endregion
2413
2413
  //#region src/components/TimePicker.vue?vue&type=script&setup=true&lang.ts
2414
- var _hoisted_1$12 = { class: "mint-time-picker__input-wrapper" };
2415
- var _hoisted_2$11 = [
2414
+ var _hoisted_1$13 = { class: "mint-time-picker__input-wrapper" };
2415
+ var _hoisted_2$12 = [
2416
2416
  "value",
2417
2417
  "placeholder",
2418
2418
  "disabled",
2419
2419
  "aria-expanded"
2420
2420
  ];
2421
- var _hoisted_3$10 = {
2421
+ var _hoisted_3$11 = {
2422
2422
  key: 0,
2423
2423
  class: "mint-time-picker__dropdown"
2424
2424
  };
@@ -2564,7 +2564,7 @@ var TimePicker_default = /* @__PURE__ */ defineComponent({
2564
2564
  ref: rootRef,
2565
2565
  class: "mint-time-picker",
2566
2566
  onKeydown: handleKeydown
2567
- }, [createElementVNode("div", _hoisted_1$12, [
2567
+ }, [createElementVNode("div", _hoisted_1$13, [
2568
2568
  createElementVNode("input", {
2569
2569
  type: "text",
2570
2570
  readonly: "",
@@ -2581,7 +2581,7 @@ var TimePicker_default = /* @__PURE__ */ defineComponent({
2581
2581
  "aria-haspopup": "listbox",
2582
2582
  "aria-expanded": unref(isOpen),
2583
2583
  onClick: toggleDropdown
2584
- }, null, 10, _hoisted_2$11),
2584
+ }, null, 10, _hoisted_2$12),
2585
2585
  __props.clearable && __props.modelValue ? (openBlock(), createElementBlock("button", {
2586
2586
  key: 0,
2587
2587
  type: "button",
@@ -2616,7 +2616,7 @@ var TimePicker_default = /* @__PURE__ */ defineComponent({
2616
2616
  "leave-from-class": "mint-time-picker__dropdown-leave-from",
2617
2617
  "leave-to-class": "mint-time-picker__dropdown-leave-to"
2618
2618
  }, {
2619
- default: withCtx(() => [unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_3$10, [createElementVNode("ul", {
2619
+ default: withCtx(() => [unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_3$11, [createElementVNode("ul", {
2620
2620
  ref_key: "listRef",
2621
2621
  ref: listRef,
2622
2622
  class: "mint-time-picker__list",
@@ -2644,12 +2644,12 @@ var TimePicker_default = /* @__PURE__ */ defineComponent({
2644
2644
  });
2645
2645
  //#endregion
2646
2646
  //#region src/components/TagsInput.vue?vue&type=script&setup=true&lang.ts
2647
- var _hoisted_1$11 = {
2647
+ var _hoisted_1$12 = {
2648
2648
  key: 0,
2649
2649
  class: "mint-tags-input__categories"
2650
2650
  };
2651
- var _hoisted_2$10 = ["disabled", "onClick"];
2652
- var _hoisted_3$9 = ["aria-label", "onClick"];
2651
+ var _hoisted_2$11 = ["disabled", "onClick"];
2652
+ var _hoisted_3$10 = ["aria-label", "onClick"];
2653
2653
  var _hoisted_4$9 = ["placeholder", "disabled"];
2654
2654
  var _hoisted_5$8 = {
2655
2655
  key: 0,
@@ -2799,7 +2799,7 @@ var TagsInput_default = /* @__PURE__ */ defineComponent({
2799
2799
  __props.disabled ? "mint-tags-input--disabled" : "",
2800
2800
  __props.categories.length ? "mint-tags-input--categorized" : ""
2801
2801
  ])
2802
- }, [__props.categories.length ? (openBlock(), createElementBlock("div", _hoisted_1$11, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.categories, (cat) => {
2802
+ }, [__props.categories.length ? (openBlock(), createElementBlock("div", _hoisted_1$12, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.categories, (cat) => {
2803
2803
  return openBlock(), createElementBlock("button", {
2804
2804
  key: cat.prefix,
2805
2805
  type: "button",
@@ -2810,7 +2810,7 @@ var TagsInput_default = /* @__PURE__ */ defineComponent({
2810
2810
  ]),
2811
2811
  disabled: __props.disabled,
2812
2812
  onClick: ($event) => setCategory(cat.prefix)
2813
- }, toDisplayString(cat.name), 11, _hoisted_2$10);
2813
+ }, toDisplayString(cat.name), 11, _hoisted_2$11);
2814
2814
  }), 128))])) : createCommentVNode("", true), createElementVNode("div", {
2815
2815
  class: "mint-tags-input__field",
2816
2816
  onClick: focusInput
@@ -2837,7 +2837,7 @@ var TagsInput_default = /* @__PURE__ */ defineComponent({
2837
2837
  "stroke-linecap": "round",
2838
2838
  "stroke-linejoin": "round",
2839
2839
  viewBox: "0 0 24 24"
2840
- }, [createElementVNode("path", { d: "M18 6 6 18" }), createElementVNode("path", { d: "m6 6 12 12" })], -1)])], 8, _hoisted_3$9)) : createCommentVNode("", true)], 2);
2840
+ }, [createElementVNode("path", { d: "M18 6 6 18" }), createElementVNode("path", { d: "m6 6 12 12" })], -1)])], 8, _hoisted_3$10)) : createCommentVNode("", true)], 2);
2841
2841
  }), 128)),
2842
2842
  withDirectives(createElementVNode("input", {
2843
2843
  ref_key: "inputRef",
@@ -2866,6 +2866,207 @@ var TagsInput_default = /* @__PURE__ */ defineComponent({
2866
2866
  }
2867
2867
  });
2868
2868
  //#endregion
2869
+ //#region src/utils/pluginSecrets.ts
2870
+ /**
2871
+ * Stable references for plugin secret settings.
2872
+ *
2873
+ * A settings response never carries a secret's value. Every secret leaf is a
2874
+ * marker instead:
2875
+ *
2876
+ * - `{ "$secret": "sec_…", "set": true }` — a stored secret, referenced by a
2877
+ * stable opaque id. Send the marker back unchanged to keep the stored value.
2878
+ * - `null` — nothing stored at that position.
2879
+ * - `{ "$secret": null, "locked": true }` — the effective value comes from the
2880
+ * environment and is never written back.
2881
+ *
2882
+ * On save each secret leaf accepts the reference, a plain string (a new value),
2883
+ * or `null` (clear). Payloads carry `secret_format: "ref"` so a `null` reads as
2884
+ * a deliberate clear rather than the deprecated "unchanged" placeholder.
2885
+ */
2886
+ /** Reserved marker key that references a stored secret. */
2887
+ var PLUGIN_SECRET_REF_KEY = "$secret";
2888
+ /** Reserved payload key declaring which secret wire format a client speaks. */
2889
+ var PLUGIN_SECRET_FORMAT_KEY = "secret_format";
2890
+ /** Wire format published and understood by this SDK. */
2891
+ var PLUGIN_SECRET_FORMAT_REF = "ref";
2892
+ var MARKER_KEYS = new Set([
2893
+ PLUGIN_SECRET_REF_KEY,
2894
+ "set",
2895
+ "locked"
2896
+ ]);
2897
+ /** Return whether one settings value is a `$secret` reference marker. */
2898
+ function isPluginSecretRef(value) {
2899
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
2900
+ const record = value;
2901
+ if (!("$secret" in record)) return false;
2902
+ return Object.keys(record).every((key) => MARKER_KEYS.has(key));
2903
+ }
2904
+ /** Return the stored secret id behind a marker, or `null` when nothing is stored. */
2905
+ function pluginSecretId(value) {
2906
+ if (!isPluginSecretRef(value)) return null;
2907
+ return typeof value.$secret === "string" ? value.$secret : null;
2908
+ }
2909
+ /** Classify one secret field for display: stored, unset, or environment-provided. */
2910
+ function pluginSecretState(value) {
2911
+ if (isPluginSecretRef(value)) {
2912
+ if (value.locked) return "environment";
2913
+ return typeof value.$secret === "string" ? "set" : "unset";
2914
+ }
2915
+ return typeof value === "string" && value.length > 0 ? "set" : "unset";
2916
+ }
2917
+ /** Human label for one secret field's state. */
2918
+ function pluginSecretLabel(value) {
2919
+ const state = pluginSecretState(value);
2920
+ if (state === "environment") return "Provided by environment";
2921
+ return state === "set" ? "Set" : "Not set";
2922
+ }
2923
+ /** Whether a secret field is read-only because the environment supplies it. */
2924
+ function isPluginSecretLocked(value) {
2925
+ return isPluginSecretRef(value) && value.locked === true;
2926
+ }
2927
+ /**
2928
+ * Value to submit for an untouched secret field: the reference, unchanged.
2929
+ *
2930
+ * A locked marker round-trips too, which is how the platform keeps a stored
2931
+ * value that an environment variable currently hides.
2932
+ */
2933
+ function keepPluginSecret(current) {
2934
+ if (isPluginSecretRef(current)) return { ...current };
2935
+ return null;
2936
+ }
2937
+ /** Value to submit when the user typed a new secret. */
2938
+ function setPluginSecret(value) {
2939
+ return value;
2940
+ }
2941
+ /** Value to submit when the user cleared a secret. */
2942
+ function clearPluginSecret() {
2943
+ return null;
2944
+ }
2945
+ /** Whether a settings response declares the `$secret` reference wire format. */
2946
+ function usesPluginSecretReferences(response) {
2947
+ if (!response || typeof response !== "object") return false;
2948
+ return response[PLUGIN_SECRET_FORMAT_KEY] === "ref";
2949
+ }
2950
+ //#endregion
2951
+ //#region src/components/SecretInput.vue?vue&type=script&setup=true&lang.ts
2952
+ var _hoisted_1$11 = { class: "mint-secret-input__status" };
2953
+ var _hoisted_2$10 = {
2954
+ key: 0,
2955
+ class: "mint-secret-input__hint"
2956
+ };
2957
+ var _hoisted_3$9 = { class: "mint-secret-input__actions" };
2958
+ //#endregion
2959
+ //#region src/components/SecretInput.vue
2960
+ var SecretInput_default = /* @__PURE__ */ defineComponent({
2961
+ __name: "SecretInput",
2962
+ props: {
2963
+ modelValue: { default: null },
2964
+ placeholder: { default: "Enter a new value" },
2965
+ disabled: {
2966
+ type: Boolean,
2967
+ default: false
2968
+ },
2969
+ error: {
2970
+ type: Boolean,
2971
+ default: false
2972
+ },
2973
+ size: { default: "md" },
2974
+ changeLabel: { default: "Change" },
2975
+ clearLabel: { default: "Clear" }
2976
+ },
2977
+ emits: ["update:modelValue"],
2978
+ setup(__props, { emit: __emit }) {
2979
+ /** Edits one plugin secret setting: shows set / not set / provided by environment, and submits a `$secret` reference, a new value, or `null`. */
2980
+ const props = __props;
2981
+ const emit = __emit;
2982
+ /** The reference this field started from, so an abandoned edit can restore it. */
2983
+ const storedReference = ref(keepPluginSecret(props.modelValue));
2984
+ const isEditing = ref(typeof props.modelValue === "string");
2985
+ watch(() => props.modelValue, (value) => {
2986
+ if (isPluginSecretRef(value)) {
2987
+ storedReference.value = keepPluginSecret(value);
2988
+ isEditing.value = false;
2989
+ }
2990
+ });
2991
+ const state = computed(() => pluginSecretState(props.modelValue));
2992
+ const locked = computed(() => isPluginSecretLocked(props.modelValue) || isPluginSecretLocked(storedReference.value));
2993
+ const statusLabel = computed(() => isEditing.value ? "New value" : pluginSecretLabel(props.modelValue));
2994
+ const typedValue = computed(() => typeof props.modelValue === "string" ? props.modelValue : "");
2995
+ const canClear = computed(() => !locked.value && (state.value === "set" || isEditing.value));
2996
+ function startEditing() {
2997
+ if (props.disabled || locked.value) return;
2998
+ isEditing.value = true;
2999
+ emit("update:modelValue", setPluginSecret(""));
3000
+ }
3001
+ function updateTyped(value) {
3002
+ emit("update:modelValue", setPluginSecret(value == null ? "" : String(value)));
3003
+ }
3004
+ function cancelEditing() {
3005
+ isEditing.value = false;
3006
+ emit("update:modelValue", storedReference.value ? { ...storedReference.value } : null);
3007
+ }
3008
+ function clear() {
3009
+ if (props.disabled || locked.value) return;
3010
+ isEditing.value = false;
3011
+ storedReference.value = null;
3012
+ emit("update:modelValue", clearPluginSecret());
3013
+ }
3014
+ return (_ctx, _cache) => {
3015
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-secret-input", { "mint-secret-input--error": __props.error }]) }, [
3016
+ createElementVNode("div", _hoisted_1$11, [createElementVNode("span", { class: normalizeClass(["mint-secret-input__badge", `mint-secret-input__badge--${isEditing.value ? "pending" : state.value}`]) }, toDisplayString(statusLabel.value), 3), locked.value ? (openBlock(), createElementBlock("span", _hoisted_2$10, " This value comes from the environment and cannot be edited here. ")) : createCommentVNode("", true)]),
3017
+ isEditing.value ? (openBlock(), createBlock(BaseInput_default, {
3018
+ key: 0,
3019
+ type: "password",
3020
+ autocomplete: "new-password",
3021
+ "model-value": typedValue.value,
3022
+ placeholder: __props.placeholder,
3023
+ disabled: __props.disabled,
3024
+ error: __props.error,
3025
+ size: __props.size,
3026
+ "onUpdate:modelValue": updateTyped
3027
+ }, null, 8, [
3028
+ "model-value",
3029
+ "placeholder",
3030
+ "disabled",
3031
+ "error",
3032
+ "size"
3033
+ ])) : createCommentVNode("", true),
3034
+ createElementVNode("div", _hoisted_3$9, [!isEditing.value ? (openBlock(), createBlock(BaseButton_default, {
3035
+ key: 0,
3036
+ type: "button",
3037
+ variant: "secondary",
3038
+ size: __props.size === "lg" ? "md" : "sm",
3039
+ disabled: __props.disabled || locked.value,
3040
+ onClick: startEditing
3041
+ }, {
3042
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.changeLabel), 1)]),
3043
+ _: 1
3044
+ }, 8, ["size", "disabled"])) : (openBlock(), createBlock(BaseButton_default, {
3045
+ key: 1,
3046
+ type: "button",
3047
+ variant: "ghost",
3048
+ size: __props.size === "lg" ? "md" : "sm",
3049
+ disabled: __props.disabled,
3050
+ onClick: cancelEditing
3051
+ }, {
3052
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Cancel ", -1)])]),
3053
+ _: 1
3054
+ }, 8, ["size", "disabled"])), canClear.value ? (openBlock(), createBlock(BaseButton_default, {
3055
+ key: 2,
3056
+ type: "button",
3057
+ variant: "ghost",
3058
+ size: __props.size === "lg" ? "md" : "sm",
3059
+ disabled: __props.disabled,
3060
+ onClick: clear
3061
+ }, {
3062
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.clearLabel), 1)]),
3063
+ _: 1
3064
+ }, 8, ["size", "disabled"])) : createCommentVNode("", true)])
3065
+ ], 2);
3066
+ };
3067
+ }
3068
+ });
3069
+ //#endregion
2869
3070
  //#region src/components/NumberInput.vue?vue&type=script&setup=true&lang.ts
2870
3071
  var _hoisted_1$10 = { class: "mint-number-input__field" };
2871
3072
  var _hoisted_2$9 = [
@@ -3579,6 +3780,16 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
3579
3780
  return target;
3580
3781
  };
3581
3782
  //#endregion
3783
+ //#region src/utils/records.ts
3784
+ /** Narrow an unknown value to a plain object (arrays and null excluded). */
3785
+ function isRecord(value) {
3786
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3787
+ }
3788
+ /** Narrow an unknown value to any non-null object, arrays included. */
3789
+ function isObjectLike(value) {
3790
+ return typeof value === "object" && value !== null;
3791
+ }
3792
+ //#endregion
3582
3793
  //#region src/components/DateTimePicker.vue?vue&type=script&setup=true&lang.ts
3583
3794
  var _hoisted_1$7 = { class: "mint-datetime-picker__input-wrapper" };
3584
3795
  var _hoisted_2$6 = [
@@ -4016,6 +4227,66 @@ function isAbortError(cause) {
4016
4227
  return cause instanceof DOMException && cause.name === "AbortError";
4017
4228
  }
4018
4229
  //#endregion
4230
+ //#region src/jobs.ts
4231
+ var ACTIVE_JOB_STATUSES = new Set([
4232
+ "awaiting_input",
4233
+ "queued",
4234
+ "running"
4235
+ ]);
4236
+ var TERMINAL_JOB_STATUSES = new Set([
4237
+ "completed",
4238
+ "failed",
4239
+ "cancelled"
4240
+ ]);
4241
+ /** Resolve action support while retaining one-cycle legacy status inference. */
4242
+ function resolveJobCapabilities(job) {
4243
+ const legacyCanCancel = job.status === "queued" || job.status === "running";
4244
+ const legacyCanDelete = TERMINAL_JOB_STATUSES.has(job.status);
4245
+ return {
4246
+ can_cancel: typeof job.can_cancel === "boolean" ? job.can_cancel : legacyCanCancel,
4247
+ can_delete: typeof job.can_delete === "boolean" ? job.can_delete : legacyCanDelete
4248
+ };
4249
+ }
4250
+ /** Clamp invalid or out-of-range progress values for safe display. */
4251
+ function normalizeJobPercent(value) {
4252
+ if (!Number.isFinite(value)) return 0;
4253
+ return Math.min(100, Math.max(0, value));
4254
+ }
4255
+ /** Create a detached canonical state without changing the transport input. */
4256
+ function normalizeJobState(job) {
4257
+ const capabilities = resolveJobCapabilities(job);
4258
+ return {
4259
+ ...job,
4260
+ definition_id: job.definition_id ?? (typeof job.metadata.definition_id === "string" ? job.metadata.definition_id : null),
4261
+ result_status: job.result_status ?? (job.status === "completed" && job.metadata.has_result === true ? "available" : "none"),
4262
+ result_expires_at: job.result_expires_at ?? null,
4263
+ progress: {
4264
+ ...job.progress,
4265
+ percent: normalizeJobPercent(job.progress.percent)
4266
+ },
4267
+ warnings: [...job.warnings],
4268
+ folders: [...job.folders],
4269
+ metadata: { ...job.metadata },
4270
+ ...capabilities
4271
+ };
4272
+ }
4273
+ function isActiveJobStatus(status) {
4274
+ return ACTIVE_JOB_STATUSES.has(status);
4275
+ }
4276
+ function isTerminalJobStatus(status) {
4277
+ return TERMINAL_JOB_STATUSES.has(status);
4278
+ }
4279
+ function jobStatusLabel(status) {
4280
+ return {
4281
+ awaiting_input: "Waiting for input",
4282
+ queued: "Queued",
4283
+ running: "Running",
4284
+ completed: "Completed",
4285
+ failed: "Failed",
4286
+ cancelled: "Cancelled"
4287
+ }[status];
4288
+ }
4289
+ //#endregion
4019
4290
  //#region src/composables/useGeneratedAnalysis.ts
4020
4291
  var ACTIVE_STATUSES = new Set([
4021
4292
  "awaiting_input",
@@ -4090,6 +4361,7 @@ function createPluginJobs(options, manifestPath) {
4090
4361
  let initialized = false;
4091
4362
  let initializePromise;
4092
4363
  let refreshPromise;
4364
+ let initializeRefreshPromise;
4093
4365
  let jobsRevision = 0;
4094
4366
  let resultCacheOrder = [];
4095
4367
  const resultRequests = /* @__PURE__ */ new Map();
@@ -4175,7 +4447,7 @@ function createPluginJobs(options, manifestPath) {
4175
4447
  session.value = await resolveSession();
4176
4448
  jobInput = await submitToSession(session.value.id, clientRequestId, await stagePathInputs(inputs, session.value.id, definitionId));
4177
4449
  }
4178
- const job = upsertJob(jobInput);
4450
+ const job = upsertJob(jobInput, definitionId);
4179
4451
  if (!jobStream.isConnected.value) schedulePoll();
4180
4452
  return job;
4181
4453
  } catch (cause) {
@@ -4285,6 +4557,16 @@ function createPluginJobs(options, manifestPath) {
4285
4557
  refreshPromise = pending;
4286
4558
  return pending;
4287
4559
  }
4560
+ function refresh() {
4561
+ if (disposed) return Promise.resolve(jobs.value);
4562
+ if (initialized) return refreshJobs();
4563
+ if (initializeRefreshPromise) return initializeRefreshPromise;
4564
+ const pending = initialize().then(() => jobs.value).finally(() => {
4565
+ if (initializeRefreshPromise === pending) initializeRefreshPromise = void 0;
4566
+ });
4567
+ initializeRefreshPromise = pending;
4568
+ return pending;
4569
+ }
4288
4570
  async function getJob(jobId, options = {}) {
4289
4571
  const revision = beginJobOperation(jobId);
4290
4572
  try {
@@ -4363,6 +4645,18 @@ function createPluginJobs(options, manifestPath) {
4363
4645
  function jobsFor(definitionId) {
4364
4646
  return jobs.value.filter((job) => job.definition_id === definitionId);
4365
4647
  }
4648
+ function canonicalJob(input, fallbackDefinitionId) {
4649
+ const normalized = normalizeJobState(input);
4650
+ const definitionId = normalized.definition_id ?? fallbackDefinitionId ?? null;
4651
+ return {
4652
+ ...normalized,
4653
+ definition_id: definitionId,
4654
+ metadata: definitionId ? {
4655
+ ...normalized.metadata,
4656
+ definition_id: definitionId
4657
+ } : normalized.metadata
4658
+ };
4659
+ }
4366
4660
  function recordJobsMutation(jobIds) {
4367
4661
  jobsRevision += 1;
4368
4662
  for (const jobId of jobIds) jobRevisions.set(jobId, (jobRevisions.get(jobId) ?? 0) + 1);
@@ -4385,7 +4679,7 @@ function createPluginJobs(options, manifestPath) {
4385
4679
  const previousJobs = new Map(jobs.value.map((job) => [job.job_id, job]));
4386
4680
  const previousJobIds = new Set(jobs.value.map((job) => job.job_id));
4387
4681
  const nextJobs = inputs.map((input) => {
4388
- const incoming = input;
4682
+ const incoming = canonicalJob(input);
4389
4683
  const current = previousJobs.get(incoming.job_id);
4390
4684
  return current && shouldPreserveJobLifecycle(current, incoming) ? current : incoming;
4391
4685
  });
@@ -4398,8 +4692,8 @@ function createPluginJobs(options, manifestPath) {
4398
4692
  pruneJobRevisions();
4399
4693
  return nextJobs;
4400
4694
  }
4401
- function upsertJob(input) {
4402
- const incoming = input;
4695
+ function upsertJob(input, fallbackDefinitionId) {
4696
+ const incoming = canonicalJob(input, fallbackDefinitionId);
4403
4697
  const current = jobs.value.find((candidate) => candidate.job_id === incoming.job_id);
4404
4698
  const job = current && shouldPreserveJobLifecycle(current, incoming) ? current : incoming;
4405
4699
  if (job === current) {
@@ -4416,7 +4710,7 @@ function createPluginJobs(options, manifestPath) {
4416
4710
  return job;
4417
4711
  }
4418
4712
  function mergeJobResponse(input, expectedRevision) {
4419
- const incoming = input;
4713
+ const incoming = canonicalJob(input);
4420
4714
  const current = jobs.value.find((candidate) => candidate.job_id === incoming.job_id);
4421
4715
  if (disposed) return current ?? incoming;
4422
4716
  if (current && shouldPreserveJobLifecycle(current, incoming)) return current;
@@ -4593,6 +4887,12 @@ function createPluginJobs(options, manifestPath) {
4593
4887
  if (payload.deleted > 0) await refreshJobs();
4594
4888
  return payload.deleted;
4595
4889
  }
4890
+ const jobsAdapter = {
4891
+ listJobs: async () => ({ jobs: await refreshJobs() }),
4892
+ cancelJob: async (job) => cancelJob(job),
4893
+ deleteJob: async (job) => deleteJob(job),
4894
+ clearFinishedJobs: async () => clearFinishedJobs()
4895
+ };
4596
4896
  function pause() {
4597
4897
  if (disposed || paused) return;
4598
4898
  paused = true;
@@ -4655,6 +4955,7 @@ function createPluginJobs(options, manifestPath) {
4655
4955
  error,
4656
4956
  status,
4657
4957
  initialize,
4958
+ ready: initialize,
4658
4959
  uploadPath,
4659
4960
  uploadStagedPart,
4660
4961
  getJobStaging,
@@ -4663,6 +4964,7 @@ function createPluginJobs(options, manifestPath) {
4663
4964
  loadResult,
4664
4965
  resultForJob,
4665
4966
  refreshJobs,
4967
+ refresh,
4666
4968
  getJob,
4667
4969
  waitForJob,
4668
4970
  jobsFor,
@@ -4671,7 +4973,8 @@ function createPluginJobs(options, manifestPath) {
4671
4973
  clearFinishedJobs,
4672
4974
  pause,
4673
4975
  resume,
4674
- dispose
4976
+ dispose,
4977
+ jobsAdapter
4675
4978
  };
4676
4979
  }
4677
4980
  function jobIdFromReference(job) {
@@ -4986,6 +5289,7 @@ function useAnalysisArtifacts(options = {}) {
4986
5289
  statusFilter,
4987
5290
  pluginFilter,
4988
5291
  list,
5292
+ refresh: list,
4989
5293
  getDetail,
4990
5294
  resolveTarget,
4991
5295
  updateMetadata,
@@ -6852,6 +7156,11 @@ var registry = {
6852
7156
  defaults: { type: "password" },
6853
7157
  vModel: true
6854
7158
  },
7159
+ secret: {
7160
+ component: SecretInput_default,
7161
+ defaults: {},
7162
+ vModel: true
7163
+ },
6855
7164
  tel: {
6856
7165
  component: BaseInput_default,
6857
7166
  defaults: { type: "tel" },
@@ -6976,6 +7285,7 @@ function getTypeDefault(type) {
6976
7285
  case "slider": return;
6977
7286
  case "multiselect":
6978
7287
  case "tags": return [];
7288
+ case "secret": return null;
6979
7289
  default: return "";
6980
7290
  }
6981
7291
  }
@@ -7763,4 +8073,6 @@ function useControlSchema(controls, options = {}) {
7763
8073
  };
7764
8074
  }
7765
8075
  //#endregion
7766
- export { NumberInput_default as $, useConcentrationUnits as A, shift as At, currentExperimentFromContext as B, controlsToViewIds as C, BaseRadioGroup_default as Ct, getTypeDefault as D, computePosition as Dt, getFieldRegistryEntry as E, Tooltip_default as Et, ATOMIC_WEIGHTS as F, createGeneratedAnalysisTransport as G, parseExperimentId as H, useChemicalFormula as I, useEventStream as J, useGeneratedAnalysis as K, GeneratedPathInput_default as L, SequenceInput_default as M, useSequenceUtils as N, ConcentrationInput_default as O, flip as Ot, FormulaInput_default as P, FileUploader_default as Q, ArtifactSelectorModal_default as R, controlsToTopBarSettingsConfig as S, BaseSlider_default as St, getDefaultControlView as T, BaseCheckbox_default as Tt, resolveCurrentExperimentId as U, getInjectedPlatformContext as V, resolveCurrentPluginId as W, _plugin_vue_export_helper_default as X, DateTimePicker_default as Y, AlertBox_default as Z, controlsToFormSchema as _, useTimeUtils as _t, defineDoseCalculatorControlProps as a, findAvailableSlots as at, controlsToSettingsSchema as b, useListSelection as bt, defineWellPlateDoseComponentBindings as c, formatTime as ct, defineControlModel as d, generateTimeSlots as dt, TagsInput_default as et, resolveControlModel as f, isTimeInRange as ft, mergeControlWorkspaceOptions as g, toMinutes as gt, controlValuesToComponentProps as h, snapToSlot as ht, useControlSchema as i, durationMinutes as it, MoleculeInput_default as j, BaseTextarea_default as jt, UnitInput_default as k, offset as kt, defineWellPlateDoseControlProps as l, formatTimeSlot as lt, controlValuesToComponentBindingsById as m, rangesOverlap as mt, defineControls as n, addMinutes as nt, defineDoseDesignControlModel as o, findNearestTimeSlotIndex as ot, controlValuesToComponentBindings as p, parseTime as pt, usePluginJobs as q, getControlDefaults as r, compareTime as rt, defineWellPlateControlProps as s, formatDuration as st, defineControlComponentBindings as t, TimePicker_default as tt, useControlWorkspace as u, fromMinutes as ut, controlsToSectionFormSchema as v, DatePicker_default as vt, controlsToViewItems as w, BaseToggle_default as wt, controlsToSidebarPanels as x, useSelectionLimit as xt, controlsToSectionFormSchemas as y, MultiSelect_default as yt, useAnalysisArtifacts as z };
8076
+ export { resolveJobCapabilities as $, useConcentrationUnits as A, formatTimeSlot as At, currentExperimentFromContext as B, MultiSelect_default as Bt, controlsToViewIds as C, addMinutes as Ct, getTypeDefault as D, findNearestTimeSlotIndex as Dt, getFieldRegistryEntry as E, findAvailableSlots as Et, ATOMIC_WEIGHTS as F, rangesOverlap as Ft, createGeneratedAnalysisTransport as G, BaseToggle_default as Gt, parseExperimentId as H, useSelectionLimit as Ht, useChemicalFormula as I, snapToSlot as It, isActiveJobStatus as J, computePosition as Jt, useGeneratedAnalysis as K, BaseCheckbox_default as Kt, GeneratedPathInput_default as L, toMinutes as Lt, SequenceInput_default as M, generateTimeSlots as Mt, useSequenceUtils as N, isTimeInRange as Nt, ConcentrationInput_default as O, formatDuration as Ot, FormulaInput_default as P, parseTime as Pt, normalizeJobState as Q, BaseTextarea_default as Qt, ArtifactSelectorModal_default as R, useTimeUtils as Rt, controlsToTopBarSettingsConfig as S, TimePicker_default as St, getDefaultControlView as T, durationMinutes as Tt, resolveCurrentExperimentId as U, BaseSlider_default as Ut, getInjectedPlatformContext as V, useListSelection as Vt, resolveCurrentPluginId as W, BaseRadioGroup_default as Wt, jobStatusLabel as X, offset as Xt, isTerminalJobStatus as Y, flip as Yt, normalizeJobPercent as Z, shift as Zt, controlsToFormSchema as _, pluginSecretLabel as _t, defineDoseCalculatorControlProps as a, AlertBox_default as at, controlsToSettingsSchema as b, usesPluginSecretReferences as bt, defineWellPlateDoseComponentBindings as c, SecretInput_default as ct, defineControlModel as d, PLUGIN_SECRET_REF_KEY as dt, useEventStream as et, resolveControlModel as f, clearPluginSecret as ft, mergeControlWorkspaceOptions as g, pluginSecretId as gt, controlValuesToComponentProps as h, keepPluginSecret as ht, useControlSchema as i, _plugin_vue_export_helper_default as it, MoleculeInput_default as j, fromMinutes as jt, UnitInput_default as k, formatTime as kt, defineWellPlateDoseControlProps as l, PLUGIN_SECRET_FORMAT_KEY as lt, controlValuesToComponentBindingsById as m, isPluginSecretRef as mt, defineControls as n, isObjectLike as nt, defineDoseDesignControlModel as o, FileUploader_default as ot, controlValuesToComponentBindings as p, isPluginSecretLocked as pt, usePluginJobs as q, Tooltip_default as qt, getControlDefaults as r, isRecord as rt, defineWellPlateControlProps as s, NumberInput_default as st, defineControlComponentBindings as t, DateTimePicker_default as tt, useControlWorkspace as u, PLUGIN_SECRET_FORMAT_REF as ut, controlsToSectionFormSchema as v, pluginSecretState as vt, controlsToViewItems as w, compareTime as wt, controlsToSidebarPanels as x, TagsInput_default as xt, controlsToSectionFormSchemas as y, setPluginSecret as yt, useAnalysisArtifacts as z, DatePicker_default as zt };
8077
+
8078
+ //# sourceMappingURL=useControlSchema-_OVhavKq.js.map