@morscherlab/mint-sdk 1.0.0-rc.4 → 1.0.0-rc.6

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 (324) hide show
  1. package/dist/__tests__/components/AppTopBar.navigation.test.d.ts +1 -0
  2. package/dist/__tests__/components/DoseCalculatorVolumeField.test.d.ts +1 -0
  3. package/dist/__tests__/components/PlateMapEditorToolbarInternal.test.d.ts +1 -0
  4. package/dist/__tests__/components/PluginWorkspaceView.controls.test.d.ts +1 -0
  5. package/dist/__tests__/components/PluginWorkspaceView.navigation.test.d.ts +1 -0
  6. package/dist/__tests__/components/PluginWorkspaceView.shell.test.d.ts +1 -0
  7. package/dist/__tests__/components/ProtocolStep.presentation.test.d.ts +1 -0
  8. package/dist/__tests__/components/ProtocolStepEditor.state.test.d.ts +1 -0
  9. package/dist/__tests__/components/ProtocolStepParameterField.test.d.ts +1 -0
  10. package/dist/__tests__/components/ReagentList.presentation.test.d.ts +1 -0
  11. package/dist/__tests__/components/SampleSelector.colors.test.d.ts +1 -0
  12. package/dist/__tests__/components/SampleSelector.drag.test.d.ts +1 -0
  13. package/dist/__tests__/components/SampleSelector.groups.test.d.ts +1 -0
  14. package/dist/__tests__/components/SampleSelector.selection.test.d.ts +1 -0
  15. package/dist/__tests__/components/SampleSelectorSampleRow.test.d.ts +1 -0
  16. package/dist/__tests__/components/ScheduleCalendar.test.d.ts +1 -0
  17. package/dist/__tests__/components/SettingsModal.schema.test.d.ts +1 -0
  18. package/dist/__tests__/components/WellPlate.colors.test.d.ts +1 -0
  19. package/dist/__tests__/components/WellPlate.conditions.test.d.ts +1 -0
  20. package/dist/__tests__/components/WellPlate.geometry.test.d.ts +1 -0
  21. package/dist/__tests__/components/WellPlate.interaction.test.d.ts +1 -0
  22. package/dist/__tests__/components/WellPlate.legend.test.d.ts +1 -0
  23. package/dist/__tests__/components/WellPlate.rendering.test.d.ts +1 -0
  24. package/dist/__tests__/components/WellPlate.sampleDrop.test.d.ts +1 -0
  25. package/dist/__tests__/composables/autoGroup/classify.test.d.ts +1 -0
  26. package/dist/__tests__/composables/autoGroup/columns.test.d.ts +1 -0
  27. package/dist/__tests__/composables/autoGroup/compose.test.d.ts +1 -0
  28. package/dist/__tests__/composables/autoGroup/cooccurrence.test.d.ts +1 -0
  29. package/dist/__tests__/composables/autoGroup/fingerprint.test.d.ts +1 -0
  30. package/dist/__tests__/composables/autoGroup/integration.test.d.ts +1 -0
  31. package/dist/__tests__/composables/autoGroup/template.test.d.ts +1 -0
  32. package/dist/__tests__/composables/autoGroup/tokenize.test.d.ts +1 -0
  33. package/dist/__tests__/composables/useAutoGroupInputSources.test.d.ts +1 -0
  34. package/dist/__tests__/composables/useScheduleCalendarLayout.test.d.ts +1 -0
  35. package/dist/__tests__/docs/extractDocsComponents.test.d.ts +1 -0
  36. package/dist/__tests__/docs/extractDocsExports.test.d.ts +1 -0
  37. package/dist/__tests__/docs/extractDocsParsing.test.d.ts +1 -0
  38. package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +1 -0
  39. package/dist/__tests__/docs/extractDocsTheme.test.d.ts +1 -0
  40. package/dist/components/AppSidebar.vue.d.ts +9 -6
  41. package/dist/components/AppTopBar.navigation.d.ts +11 -0
  42. package/dist/components/BaseButton.vue.d.ts +1 -1
  43. package/dist/components/BaseCheckbox.vue.d.ts +7 -2
  44. package/dist/components/BaseInput.vue.d.ts +2 -2
  45. package/dist/components/BasePill.vue.d.ts +2 -2
  46. package/dist/components/BaseRadioGroup.vue.d.ts +2 -2
  47. package/dist/components/BaseSelect.vue.d.ts +1 -1
  48. package/dist/components/BaseSlider.vue.d.ts +2 -2
  49. package/dist/components/BaseTextarea.vue.d.ts +2 -2
  50. package/dist/components/BaseToggle.vue.d.ts +7 -2
  51. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  52. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -1
  53. package/dist/components/CollapsibleCard.vue.d.ts +9 -0
  54. package/dist/components/ColorSlider.vue.d.ts +2 -2
  55. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  56. package/dist/components/ControlWorkspaceView.vue.d.ts +4 -4
  57. package/dist/components/DatePicker.vue.d.ts +1 -1
  58. package/dist/components/DateTimePicker.vue.d.ts +2 -2
  59. package/dist/components/DoseCalculatorVolumeField.vue.d.ts +15 -0
  60. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +2 -2
  61. package/dist/components/DropdownButton.vue.d.ts +1 -1
  62. package/dist/components/FileUploader.vue.d.ts +2 -2
  63. package/dist/components/FormulaInput.vue.d.ts +2 -2
  64. package/dist/components/IconButton.vue.d.ts +1 -1
  65. package/dist/components/LoadingSpinner.vue.d.ts +1 -1
  66. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  67. package/dist/components/MultiSelect.vue.d.ts +1 -1
  68. package/dist/components/NumberInput.vue.d.ts +1 -1
  69. package/dist/components/PlateMapEditor.vue.d.ts +6 -6
  70. package/dist/components/PluginWorkspaceView.controls.d.ts +28 -0
  71. package/dist/components/PluginWorkspaceView.navigation.d.ts +29 -0
  72. package/dist/components/PluginWorkspaceView.props.d.ts +151 -0
  73. package/dist/components/PluginWorkspaceView.shell.d.ts +19 -0
  74. package/dist/components/PluginWorkspaceView.vue.d.ts +51 -196
  75. package/dist/components/ProgressBar.vue.d.ts +1 -1
  76. package/dist/components/ProtocolStep.presentation.d.ts +4 -0
  77. package/dist/components/ProtocolStepEditor.state.d.ts +18 -0
  78. package/dist/components/ProtocolStepParameterField.vue.d.ts +12 -0
  79. package/dist/components/ReagentList.presentation.d.ts +16 -0
  80. package/dist/components/ResourceCard.vue.d.ts +1 -1
  81. package/dist/components/SampleSelector.colors.d.ts +13 -0
  82. package/dist/components/SampleSelector.drag.d.ts +24 -0
  83. package/dist/components/SampleSelector.groups.d.ts +15 -0
  84. package/dist/components/SampleSelector.selection.d.ts +26 -0
  85. package/dist/components/SampleSelector.vue.d.ts +4 -1
  86. package/dist/components/SampleSelectorSampleRow.vue.d.ts +21 -0
  87. package/dist/components/SegmentedControl.vue.d.ts +1 -1
  88. package/dist/components/SequenceInput.vue.d.ts +2 -2
  89. package/dist/components/SequenceProgressBar.vue.d.ts +1 -1
  90. package/dist/components/SettingsModal.schema.d.ts +9 -0
  91. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  92. package/dist/components/TagsInput.vue.d.ts +2 -2
  93. package/dist/components/TimePicker.vue.d.ts +2 -2
  94. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  95. package/dist/components/UnitInput.vue.d.ts +2 -2
  96. package/dist/components/WellPlate.colors.d.ts +9 -0
  97. package/dist/components/WellPlate.conditions.d.ts +26 -0
  98. package/dist/components/WellPlate.geometry.d.ts +23 -0
  99. package/dist/components/WellPlate.interaction.d.ts +71 -0
  100. package/dist/components/WellPlate.legend.d.ts +2 -0
  101. package/dist/components/WellPlate.rendering.d.ts +24 -0
  102. package/dist/components/WellPlate.sampleDrop.d.ts +8 -0
  103. package/dist/components/WellPlate.vue.d.ts +1 -1
  104. package/dist/components/index.js +2 -2
  105. package/dist/components/internal/ActionItemInternal.vue.d.ts +1 -1
  106. package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +28 -0
  107. package/dist/{components-DafPc4rM.js → components-Blx4MG--.js} +4073 -4222
  108. package/dist/components-Blx4MG--.js.map +1 -0
  109. package/dist/composables/autoGroup/classKey.d.ts +4 -0
  110. package/dist/composables/autoGroup/classify.d.ts +28 -0
  111. package/dist/composables/autoGroup/colors.d.ts +2 -0
  112. package/dist/composables/autoGroup/columns.d.ts +10 -0
  113. package/dist/composables/autoGroup/compose.d.ts +8 -0
  114. package/dist/composables/autoGroup/cooccurrence.d.ts +2 -0
  115. package/dist/composables/autoGroup/csv-shim.d.ts +2 -0
  116. package/dist/composables/autoGroup/fingerprint.d.ts +3 -0
  117. package/dist/composables/autoGroup/index.d.ts +16 -0
  118. package/dist/composables/autoGroup/replicatePreGroup.d.ts +38 -0
  119. package/dist/composables/autoGroup/template.d.ts +15 -0
  120. package/dist/composables/autoGroup/tokenize.d.ts +8 -0
  121. package/dist/composables/autoGroupConstants.d.ts +1 -0
  122. package/dist/composables/autoGroupGrouping.d.ts +3 -0
  123. package/dist/composables/controlComponentBindings.d.ts +1 -1
  124. package/dist/composables/controlSchemaAdapters.d.ts +1 -1
  125. package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
  126. package/dist/composables/controlSchemaLayout.d.ts +1 -1
  127. package/dist/composables/controlSchemaModel.d.ts +5 -0
  128. package/dist/composables/controlSchemaNormalize.d.ts +1 -1
  129. package/dist/composables/controlSchemaTypes.d.ts +311 -0
  130. package/dist/composables/controlWorkspaceOptions.d.ts +1 -1
  131. package/dist/composables/formBuilderSchema.d.ts +18 -0
  132. package/dist/composables/index.js +3 -3
  133. package/dist/composables/pluginEndpointBuilder.d.ts +13 -0
  134. package/dist/composables/protocolTemplateCatalog.d.ts +26 -0
  135. package/dist/composables/useAutoGroup.d.ts +61 -74
  136. package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
  137. package/dist/composables/useBioTemplateControls.d.ts +1 -1
  138. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +1 -1
  139. package/dist/composables/useBioTemplateWorkspace.d.ts +1 -1
  140. package/dist/composables/useControlSchema.d.ts +4 -316
  141. package/dist/composables/useControlWorkspace.d.ts +1 -1
  142. package/dist/composables/useForm.d.ts +2 -33
  143. package/dist/composables/useFormBuilder.d.ts +2 -9
  144. package/dist/composables/useFormValidation.d.ts +34 -0
  145. package/dist/composables/usePluginClient.d.ts +1 -4
  146. package/dist/composables/useProtocolTemplates.d.ts +2 -24
  147. package/dist/composables/useScheduleCalendarLayout.d.ts +49 -0
  148. package/dist/{composables-BMkPQhVK.js → composables-CHDjDIQT.js} +33 -31
  149. package/dist/composables-CHDjDIQT.js.map +1 -0
  150. package/dist/index.js +4 -4
  151. package/dist/install.js +2 -2
  152. package/dist/styles.css +1432 -660
  153. package/dist/templates/controlSchemaTypes.d.ts +1 -1
  154. package/dist/templates/index.js +1 -1
  155. package/dist/templates/templateAdapterTypes.d.ts +48 -0
  156. package/dist/templates/templateCreateOptions.d.ts +165 -0
  157. package/dist/templates/templateQpcrTypes.d.ts +42 -0
  158. package/dist/templates/types.d.ts +5 -250
  159. package/dist/{templates-bUAWMn5L.js → templates-DSbHJC4v.js} +1536 -297
  160. package/dist/templates-DSbHJC4v.js.map +1 -0
  161. package/dist/types/auto-group.d.ts +79 -9
  162. package/dist/types/componentLabTypes.d.ts +161 -0
  163. package/dist/types/componentWorkflowTypes.d.ts +150 -0
  164. package/dist/types/components.d.ts +14 -311
  165. package/dist/types/form-builder.d.ts +3 -0
  166. package/dist/types/index.d.ts +1 -1
  167. package/dist/{useProtocolTemplates-QZtHFFH2.js → useProtocolTemplates-BbPOYPzO.js} +1220 -454
  168. package/dist/useProtocolTemplates-BbPOYPzO.js.map +1 -0
  169. package/package.json +1 -1
  170. package/src/__tests__/components/AppSidebar.test.ts +67 -0
  171. package/src/__tests__/components/AppTopBar.navigation.test.ts +70 -0
  172. package/src/__tests__/components/CollapsibleCard.test.ts +47 -0
  173. package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
  174. package/src/__tests__/components/FormBuilder.test.ts +57 -0
  175. package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
  176. package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
  177. package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
  178. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +43 -0
  179. package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
  180. package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
  181. package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
  182. package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
  183. package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
  184. package/src/__tests__/components/SampleSelector.drag.test.ts +100 -0
  185. package/src/__tests__/components/SampleSelector.groups.test.ts +81 -0
  186. package/src/__tests__/components/SampleSelector.selection.test.ts +70 -0
  187. package/src/__tests__/components/SampleSelector.test.ts +32 -0
  188. package/src/__tests__/components/SampleSelectorSampleRow.test.ts +37 -0
  189. package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
  190. package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
  191. package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
  192. package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
  193. package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
  194. package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
  195. package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
  196. package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
  197. package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
  198. package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
  199. package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
  200. package/src/__tests__/composables/autoGroup/compose.test.ts +227 -0
  201. package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
  202. package/src/__tests__/composables/autoGroup/fingerprint.test.ts +50 -0
  203. package/src/__tests__/composables/autoGroup/integration.test.ts +79 -0
  204. package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
  205. package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
  206. package/src/__tests__/composables/useAutoGroup.test.ts +129 -625
  207. package/src/__tests__/composables/useAutoGroupInputSources.test.ts +107 -0
  208. package/src/__tests__/composables/useControlSchema.test.ts +23 -0
  209. package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
  210. package/src/__tests__/docs/extractDocsComponents.test.ts +142 -0
  211. package/src/__tests__/docs/extractDocsExports.test.ts +77 -0
  212. package/src/__tests__/docs/extractDocsParsing.test.ts +69 -0
  213. package/src/__tests__/docs/extractDocsTemplates.test.ts +54 -0
  214. package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
  215. package/src/__tests__/docs/frontendDocsCatalog.test.ts +1 -1
  216. package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
  217. package/src/components/AppSidebar.story.vue +79 -6
  218. package/src/components/AppSidebar.vue +74 -6
  219. package/src/components/AppTopBar.navigation.ts +62 -0
  220. package/src/components/AppTopBar.vue +17 -44
  221. package/src/components/AutoGroupModal.story.vue +50 -0
  222. package/src/components/AutoGroupModal.vue +441 -158
  223. package/src/components/BaseCheckbox.story.vue +27 -0
  224. package/src/components/BaseCheckbox.vue +63 -1
  225. package/src/components/BaseToggle.story.vue +27 -0
  226. package/src/components/BaseToggle.vue +66 -1
  227. package/src/components/CollapsibleCard.vue +123 -45
  228. package/src/components/ControlWorkspaceView.vue +2 -6
  229. package/src/components/DoseCalculator.vue +13 -73
  230. package/src/components/DoseCalculatorVolumeField.vue +61 -0
  231. package/src/components/ExperimentTimeline.vue +6 -31
  232. package/src/components/FormBuilder.story.vue +13 -0
  233. package/src/components/FormBuilder.vue +2 -7
  234. package/src/components/PlateMapEditor.vue +32 -106
  235. package/src/components/PluginWorkspaceView.controls.ts +182 -0
  236. package/src/components/PluginWorkspaceView.navigation.ts +106 -0
  237. package/src/components/PluginWorkspaceView.props.ts +174 -0
  238. package/src/components/PluginWorkspaceView.shell.ts +67 -0
  239. package/src/components/PluginWorkspaceView.vue +88 -404
  240. package/src/components/ProtocolStep.presentation.ts +31 -0
  241. package/src/components/ProtocolStepEditor.state.ts +104 -0
  242. package/src/components/ProtocolStepEditor.vue +48 -179
  243. package/src/components/ProtocolStepParameterField.vue +134 -0
  244. package/src/components/ReagentList.presentation.ts +105 -0
  245. package/src/components/ReagentList.vue +16 -79
  246. package/src/components/SampleSelector.colors.ts +43 -0
  247. package/src/components/SampleSelector.drag.ts +164 -0
  248. package/src/components/SampleSelector.groups.ts +109 -0
  249. package/src/components/SampleSelector.selection.ts +103 -0
  250. package/src/components/SampleSelector.vue +82 -349
  251. package/src/components/SampleSelectorSampleRow.vue +64 -0
  252. package/src/components/ScheduleCalendar.vue +44 -199
  253. package/src/components/SettingsModal.schema.ts +71 -0
  254. package/src/components/SettingsModal.vue +16 -46
  255. package/src/components/WellPlate.colors.ts +56 -0
  256. package/src/components/WellPlate.conditions.ts +100 -0
  257. package/src/components/WellPlate.geometry.ts +91 -0
  258. package/src/components/WellPlate.interaction.ts +272 -0
  259. package/src/components/WellPlate.legend.ts +8 -0
  260. package/src/components/WellPlate.rendering.ts +105 -0
  261. package/src/components/WellPlate.sampleDrop.ts +73 -0
  262. package/src/components/WellPlate.vue +102 -550
  263. package/src/components/internal/FormFieldRendererInternal.vue +23 -5
  264. package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
  265. package/src/composables/autoGroup/classKey.ts +5 -0
  266. package/src/composables/autoGroup/classify.ts +205 -0
  267. package/src/composables/autoGroup/colors.ts +6 -0
  268. package/src/composables/autoGroup/columns.ts +226 -0
  269. package/src/composables/autoGroup/compose.ts +156 -0
  270. package/src/composables/autoGroup/cooccurrence.ts +46 -0
  271. package/src/composables/autoGroup/csv-shim.ts +44 -0
  272. package/src/composables/autoGroup/fingerprint.ts +49 -0
  273. package/src/composables/autoGroup/index.ts +20 -0
  274. package/src/composables/autoGroup/replicatePreGroup.ts +90 -0
  275. package/src/composables/autoGroup/template.ts +126 -0
  276. package/src/composables/autoGroup/tokenize.ts +41 -0
  277. package/src/composables/autoGroup/vocab.json +67 -0
  278. package/src/composables/autoGroupConstants.ts +4 -0
  279. package/src/composables/autoGroupGrouping.ts +148 -0
  280. package/src/composables/controlComponentBindings.ts +1 -1
  281. package/src/composables/controlSchemaAdapters.ts +4 -1
  282. package/src/composables/controlSchemaDoseDesign.ts +215 -0
  283. package/src/composables/controlSchemaFormFields.ts +4 -1
  284. package/src/composables/controlSchemaLayout.ts +1 -1
  285. package/src/composables/controlSchemaModel.ts +163 -0
  286. package/src/composables/controlSchemaNormalize.ts +1 -1
  287. package/src/composables/controlSchemaTypes.ts +372 -0
  288. package/src/composables/controlWorkspaceOptions.ts +1 -1
  289. package/src/composables/formBuilderSchema.ts +153 -0
  290. package/src/composables/pluginEndpointBuilder.ts +203 -0
  291. package/src/composables/protocolTemplateCatalog.ts +325 -0
  292. package/src/composables/useAutoGroup.ts +395 -549
  293. package/src/composables/useAutoGroupInputSources.ts +147 -0
  294. package/src/composables/useBioTemplateControls.ts +1 -1
  295. package/src/composables/useBioTemplatePresetWorkspace.ts +1 -1
  296. package/src/composables/useBioTemplateWorkspace.ts +1 -1
  297. package/src/composables/useControlSchema.ts +21 -692
  298. package/src/composables/useControlWorkspace.ts +7 -13
  299. package/src/composables/useForm.ts +5 -187
  300. package/src/composables/useFormBuilder.ts +11 -153
  301. package/src/composables/useFormValidation.ts +154 -0
  302. package/src/composables/usePluginClient.ts +10 -193
  303. package/src/composables/useProtocolTemplates.ts +10 -328
  304. package/src/composables/useScheduleCalendarLayout.ts +287 -0
  305. package/src/styles/components/app-sidebar.css +134 -6
  306. package/src/styles/components/auto-group-modal.css +248 -310
  307. package/src/styles/components/checkbox.css +87 -0
  308. package/src/styles/components/collapsible-card.css +154 -14
  309. package/src/styles/components/toggle.css +80 -0
  310. package/src/templates/controlSchemaTypes.ts +1 -1
  311. package/src/templates/templateAdapterTypes.ts +58 -0
  312. package/src/templates/templateCreateOptions.ts +208 -0
  313. package/src/templates/templateQpcrTypes.ts +48 -0
  314. package/src/templates/types.ts +79 -275
  315. package/src/types/auto-group.ts +107 -9
  316. package/src/types/componentLabTypes.ts +235 -0
  317. package/src/types/componentWorkflowTypes.ts +190 -0
  318. package/src/types/components.ts +95 -424
  319. package/src/types/form-builder.ts +3 -0
  320. package/src/types/index.ts +2 -0
  321. package/dist/components-DafPc4rM.js.map +0 -1
  322. package/dist/composables-BMkPQhVK.js.map +0 -1
  323. package/dist/templates-bUAWMn5L.js.map +0 -1
  324. package/dist/useProtocolTemplates-QZtHFFH2.js.map +0 -1
@@ -7,28 +7,98 @@ export interface OutlierInfo {
7
7
  fieldCount: number;
8
8
  action: OutlierAction;
9
9
  }
10
+ export interface MetadataRow {
11
+ sampleName: string;
12
+ fields: Record<string, string>;
13
+ group: string;
14
+ }
15
+ export interface ParsedCsvData {
16
+ columns: string[];
17
+ rows: Record<string, string>[];
18
+ sampleColumn: string;
19
+ delimiter: string;
20
+ }
21
+ export type SampleClassKind = 'biological' | 'iqc' | 'eqc' | 'standard' | 'spike-in' | 'stock' | 'blank' | 'unknown';
22
+ export type ClassDisposition = 'group' | 'overlay' | 'exclude';
23
+ export interface SampleClass {
24
+ kind: SampleClassKind;
25
+ label: string;
26
+ subKind?: string;
27
+ members: number[];
28
+ classTagPositions: number[];
29
+ disposition: ClassDisposition;
30
+ }
31
+ export type ColumnRole = 'constant' | 'factor' | 'replicate' | 'run-order' | 'numeric' | 'class-tag' | 'ignore';
32
+ export interface NumericParse {
33
+ value: number;
34
+ unit: string;
35
+ raw: string;
36
+ }
37
+ export interface NumericBinning {
38
+ mode: 'discrete' | 'binned';
39
+ edges?: number[];
40
+ labels?: string[];
41
+ }
42
+ export interface ValueOps {
43
+ alias?: Record<string, string>;
44
+ exclude?: string[];
45
+ }
10
46
  export interface ColumnInfo {
11
47
  index: number;
12
48
  name: string;
49
+ sourceIndices: number[];
13
50
  uniqueValues: string[];
14
51
  cardinality: number;
52
+ /** Legacy field, retained alongside `role` during the shim window. */
15
53
  type?: 'prefix' | 'suffix';
54
+ role?: ColumnRole;
55
+ numeric?: {
56
+ byValue: Record<string, NumericParse>;
57
+ };
58
+ binning?: NumericBinning;
59
+ ops?: ValueOps;
16
60
  /** Original CSV column header — used for row lookups when name is renamed */
17
61
  originalName?: string;
62
+ displayName?: string;
18
63
  }
19
- export interface MetadataRow {
20
- sampleName: string;
21
- fields: Record<string, string>;
22
- group: string;
64
+ export interface ClassSchema {
65
+ classKind: SampleClassKind;
66
+ subKind?: string;
67
+ columns: ColumnInfo[];
68
+ groupBy: number[];
69
+ replicateColumn?: number;
70
+ }
71
+ export interface MergeSuggestion {
72
+ classKind: SampleClassKind;
73
+ subKind?: string;
74
+ columnIndices: number[];
75
+ proposedName: string;
76
+ confidence: number;
23
77
  }
24
78
  export interface AutoGroupResult {
79
+ /** All emitted groups, experimental + overlay concatenated for source compat. */
25
80
  groups: SampleGroup[];
81
+ /** Class disposition === 'group' only. */
82
+ experimentalGroups?: SampleGroup[];
83
+ /** Class disposition === 'overlay' only. */
84
+ qcGroups?: SampleGroup[];
26
85
  metadata: MetadataRow[];
27
86
  excludedSamples: string[];
87
+ schemas?: ClassSchema[];
88
+ fingerprint?: SchemaFingerprint;
28
89
  }
29
- export interface ParsedCsvData {
30
- columns: string[];
31
- rows: Record<string, string>[];
32
- sampleColumn: string;
33
- delimiter: string;
90
+ export interface SchemaFingerprint {
91
+ version: 1;
92
+ classes: Array<{
93
+ kind: SampleClassKind;
94
+ subKind?: string;
95
+ columns: Array<{
96
+ name: string;
97
+ role: ColumnRole;
98
+ sourceIndices: number[];
99
+ binning?: NumericBinning;
100
+ ops?: ValueOps;
101
+ }>;
102
+ groupBy: number[];
103
+ }>;
34
104
  }
@@ -0,0 +1,161 @@
1
+ export type WellPlateFormat = 6 | 12 | 24 | 48 | 54 | 96 | 384;
2
+ export type WellState = 'empty' | 'filled' | 'selected' | 'disabled';
3
+ export type WellPlateSelectionMode = 'none' | 'single' | 'multiple' | 'rectangle' | 'drag';
4
+ export type WellPlateSize = 'sm' | 'md' | 'lg' | 'xl' | 'fill';
5
+ export type WellShape = 'circle' | 'rounded';
6
+ export interface Well {
7
+ id: string;
8
+ row: number;
9
+ col: number;
10
+ state: WellState;
11
+ sampleType?: string;
12
+ value?: number;
13
+ metadata?: Record<string, unknown>;
14
+ }
15
+ export type HeatmapColorScale = 'viridis' | 'plasma' | 'turbo' | 'custom';
16
+ export interface HeatmapConfig {
17
+ enabled: boolean;
18
+ min?: number;
19
+ max?: number;
20
+ colorScale?: HeatmapColorScale;
21
+ customColors?: string[];
22
+ showLegend?: boolean;
23
+ }
24
+ export type SlotPosition = 'R' | 'G' | 'B' | 'Y';
25
+ export interface WellExtendedData {
26
+ label?: string;
27
+ injectionVolume?: number;
28
+ injectionCount?: number;
29
+ customMethod?: string | null;
30
+ }
31
+ export interface WellEditData {
32
+ wellId: string;
33
+ label: string;
34
+ sampleType: string;
35
+ injectionVolume: number;
36
+ injectionCount: number;
37
+ customMethod: string;
38
+ }
39
+ export type WellEditField = 'label' | 'sampleType' | 'injectionVolume' | 'injectionCount' | 'customMethod';
40
+ export interface WellSampleDropData {
41
+ id?: string;
42
+ sampleName?: string;
43
+ label?: string;
44
+ sampleType?: string;
45
+ injectionVolume?: number;
46
+ injectionCount?: number;
47
+ customMethod?: string | null;
48
+ metadata?: Record<string, unknown>;
49
+ raw?: unknown;
50
+ }
51
+ export interface WellSampleDropContext {
52
+ wellId: string;
53
+ event: DragEvent;
54
+ }
55
+ export type WellSampleDropParser = (event: DragEvent, context: WellSampleDropContext) => WellSampleDropData | null | undefined;
56
+ export interface WellLegendItem {
57
+ type: string;
58
+ label: string;
59
+ color: string;
60
+ }
61
+ export interface PlateCondition {
62
+ label: string;
63
+ color: string;
64
+ concentrations: number[];
65
+ unit?: string;
66
+ }
67
+ export interface ColumnCondition extends PlateCondition {
68
+ cols: number[];
69
+ }
70
+ export interface RowCondition extends PlateCondition {
71
+ rows: string[];
72
+ }
73
+ export interface Rack {
74
+ id: string;
75
+ name: string;
76
+ format: WellPlateFormat;
77
+ slot: SlotPosition;
78
+ injectionVolume: number;
79
+ wells: Record<string, Partial<Well>>;
80
+ }
81
+ export interface RackSampleDropContext {
82
+ rack: Rack;
83
+ rackId: string;
84
+ wellId: string;
85
+ event: DragEvent;
86
+ }
87
+ export type RackSampleDropMapper = (data: WellSampleDropData, context: RackSampleDropContext) => WellEditData | null | undefined;
88
+ export interface SampleType {
89
+ id: string;
90
+ name: string;
91
+ color?: string;
92
+ count?: number;
93
+ description?: string;
94
+ }
95
+ export interface PlateMap {
96
+ id: string;
97
+ name: string;
98
+ format: WellPlateFormat;
99
+ wells: Record<string, Well>;
100
+ }
101
+ export interface PlateMapEditorState {
102
+ plates: PlateMap[];
103
+ activePlateId: string;
104
+ samples: SampleType[];
105
+ selectedWells: string[];
106
+ activeSampleId?: string;
107
+ }
108
+ export type ProtocolStepType = 'incubation' | 'wash' | 'addition' | 'measurement' | 'transfer' | 'centrifuge' | 'mix' | 'custom';
109
+ export type ProtocolStepStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped';
110
+ export interface ProtocolStep {
111
+ id: string;
112
+ type: ProtocolStepType;
113
+ name: string;
114
+ description?: string;
115
+ duration?: number;
116
+ status: ProtocolStepStatus;
117
+ parameters?: Record<string, unknown>;
118
+ order: number;
119
+ }
120
+ export interface SampleGroup {
121
+ name: string;
122
+ color: string;
123
+ samples: string[];
124
+ }
125
+ export interface GroupItem {
126
+ name: string;
127
+ color: string;
128
+ count: number;
129
+ }
130
+ export type FileUploaderMode = 'file' | 'folder';
131
+ export interface MoleculeData {
132
+ smiles: string;
133
+ molfile: string;
134
+ }
135
+ export type StorageCondition = 'RT' | '4C' | '-20C' | '-80C';
136
+ export type ReagentColumn = 'name' | 'catalog' | 'lot' | 'expiry' | 'storage' | 'location' | 'stock' | 'supplier';
137
+ export interface Reagent {
138
+ id: string;
139
+ name: string;
140
+ catalogNumber?: string;
141
+ lotNumber?: string;
142
+ expiryDate?: Date | string;
143
+ storageCondition?: StorageCondition;
144
+ location?: string;
145
+ stockLevel?: number;
146
+ stockUnit?: string;
147
+ supplier?: string;
148
+ url?: string;
149
+ }
150
+ export type TreeNodeType = 'study' | 'experiment' | 'plate' | 'sample' | 'cell_line' | 'passage' | 'clone' | 'treatment' | 'folder' | 'custom';
151
+ export type BadgeVariant = 'default' | 'success' | 'warning' | 'error';
152
+ export interface TreeNode {
153
+ id: string;
154
+ label: string;
155
+ type?: TreeNodeType;
156
+ icon?: string;
157
+ children?: TreeNode[];
158
+ metadata?: Record<string, unknown>;
159
+ badge?: string | number;
160
+ badgeVariant?: BadgeVariant;
161
+ }
@@ -0,0 +1,150 @@
1
+ import { UserSummary } from './platform';
2
+ export type NumberNotation = 'auto' | 'scientific' | 'engineering' | 'compact';
3
+ export interface UnitOption {
4
+ value: string;
5
+ label: string;
6
+ factor?: number;
7
+ group?: string;
8
+ }
9
+ export interface WizardStep {
10
+ id: string;
11
+ label: string;
12
+ description?: string;
13
+ icon?: string;
14
+ optional?: boolean;
15
+ }
16
+ export type WizardStepState = 'pending' | 'active' | 'completed' | 'disabled';
17
+ export type AuditEntryType = 'create' | 'update' | 'delete' | 'system';
18
+ export interface AuditEntry {
19
+ id: string;
20
+ type: AuditEntryType;
21
+ action: string;
22
+ detail?: string;
23
+ user?: string;
24
+ timestamp: Date | string;
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ export type BatchItemStatus = 'pending' | 'processing' | 'completed' | 'error' | 'skipped';
28
+ export interface BatchItem {
29
+ id: string;
30
+ label: string;
31
+ status: BatchItemStatus;
32
+ progress?: number;
33
+ message?: string;
34
+ }
35
+ export interface BatchSummary {
36
+ total: number;
37
+ completed: number;
38
+ processing: number;
39
+ error: number;
40
+ pending: number;
41
+ skipped: number;
42
+ percent: number;
43
+ }
44
+ export type TimePickerFormat = '12h' | '24h';
45
+ export interface TimeRange {
46
+ start: string;
47
+ end: string;
48
+ }
49
+ export type ScheduleView = 'day' | 'week' | 'month';
50
+ export type ScheduleEventStatus = 'confirmed' | 'pending' | 'cancelled' | 'in-progress';
51
+ export interface ScheduleEvent {
52
+ id: string;
53
+ start: string;
54
+ end: string;
55
+ title: string;
56
+ color?: string;
57
+ status?: ScheduleEventStatus;
58
+ draggable?: boolean;
59
+ resizable?: boolean;
60
+ metadata?: Record<string, unknown>;
61
+ }
62
+ export interface ScheduleBlockedSlot {
63
+ start: string;
64
+ end: string;
65
+ label?: string;
66
+ }
67
+ export interface ScheduleSlotContext {
68
+ date: Date;
69
+ hour: number;
70
+ minute: number;
71
+ }
72
+ export interface ScheduleEventCreateContext {
73
+ start: Date;
74
+ end: Date;
75
+ }
76
+ export interface ScheduleEventUpdateContext {
77
+ event: ScheduleEvent;
78
+ newStart: Date;
79
+ newEnd: Date;
80
+ }
81
+ export interface SummarySectionItem {
82
+ label: string;
83
+ metadata?: Record<string, unknown>;
84
+ item_count: number;
85
+ item_key: string;
86
+ columns: string[];
87
+ rows: Record<string, unknown>[];
88
+ }
89
+ export interface SummarySection {
90
+ key: string;
91
+ label: string;
92
+ type: 'table' | 'group';
93
+ /** Group sections: list of group items with embedded tables */
94
+ items?: SummarySectionItem[];
95
+ /** Table sections: flat table columns and rows */
96
+ columns?: string[];
97
+ rows?: Record<string, unknown>[];
98
+ row_count?: number;
99
+ }
100
+ export interface SummaryData {
101
+ metadata: Record<string, unknown>;
102
+ sections: SummarySection[];
103
+ }
104
+ export type ResourceStatus = 'available' | 'in-use' | 'maintenance' | 'offline';
105
+ export interface ResourceSpec {
106
+ label: string;
107
+ value: string;
108
+ }
109
+ export type ExperimentStatus = 'planned' | 'ongoing' | 'completed' | 'cancelled';
110
+ export type DatePreset = 'last_7_days' | 'last_30_days' | 'last_90_days';
111
+ export type ExperimentSortField = 'created_at' | 'updated_at' | 'name' | 'status';
112
+ export interface ExperimentTypeOption {
113
+ value: string;
114
+ label: string;
115
+ color?: string;
116
+ }
117
+ export interface ExperimentSummary {
118
+ id: number;
119
+ experiment_code?: string;
120
+ name: string;
121
+ status: ExperimentStatus;
122
+ experiment_type: string;
123
+ project?: string;
124
+ project_id?: number;
125
+ project_name?: string;
126
+ notes?: string;
127
+ tags?: Record<string, unknown>;
128
+ created_at: string;
129
+ updated_at: string;
130
+ created_by?: number;
131
+ created_by_user?: UserSummary;
132
+ has_design_data: boolean;
133
+ }
134
+ export interface ExperimentListResponse {
135
+ experiments: ExperimentSummary[];
136
+ total: number;
137
+ }
138
+ export interface ExperimentFilters {
139
+ search?: string;
140
+ status?: ExperimentStatus | null;
141
+ project?: string | null;
142
+ experimentType?: string | null;
143
+ datePreset?: DatePreset | null;
144
+ }
145
+ export type FitState = 'idle' | 'running' | 'completed' | 'error';
146
+ export interface FitResultSummary {
147
+ label: string;
148
+ value: string | number;
149
+ variant?: 'default' | 'success' | 'warning' | 'error';
150
+ }