@morscherlab/mint-sdk 1.0.0-rc.2 → 1.0.0-rc.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 (443) 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/AppTopBar.navigation.d.ts +11 -0
  41. package/dist/components/BaseButton.vue.d.ts +1 -1
  42. package/dist/components/BaseCheckbox.vue.d.ts +1 -1
  43. package/dist/components/BaseInput.vue.d.ts +2 -2
  44. package/dist/components/BasePill.vue.d.ts +1 -1
  45. package/dist/components/BaseRadioGroup.vue.d.ts +1 -1
  46. package/dist/components/BaseSelect.vue.d.ts +1 -1
  47. package/dist/components/BaseSlider.vue.d.ts +2 -2
  48. package/dist/components/BaseTextarea.vue.d.ts +2 -2
  49. package/dist/components/BaseToggle.vue.d.ts +1 -1
  50. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  51. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -1
  52. package/dist/components/ColorSlider.vue.d.ts +2 -2
  53. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  54. package/dist/components/DatePicker.vue.d.ts +1 -1
  55. package/dist/components/DateTimePicker.vue.d.ts +2 -2
  56. package/dist/components/DoseCalculatorVolumeField.vue.d.ts +15 -0
  57. package/dist/components/DropdownButton.vue.d.ts +1 -1
  58. package/dist/components/FileUploader.vue.d.ts +2 -2
  59. package/dist/components/FormulaInput.vue.d.ts +2 -2
  60. package/dist/components/IconButton.vue.d.ts +1 -1
  61. package/dist/components/LoadingSpinner.vue.d.ts +1 -1
  62. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  63. package/dist/components/MultiSelect.vue.d.ts +1 -1
  64. package/dist/components/NumberInput.vue.d.ts +1 -1
  65. package/dist/components/PlateMapEditor.vue.d.ts +6 -6
  66. package/dist/components/PluginWorkspaceView.controls.d.ts +28 -0
  67. package/dist/components/PluginWorkspaceView.navigation.d.ts +29 -0
  68. package/dist/components/PluginWorkspaceView.props.d.ts +151 -0
  69. package/dist/components/PluginWorkspaceView.shell.d.ts +19 -0
  70. package/dist/components/PluginWorkspaceView.vue.d.ts +46 -195
  71. package/dist/components/ProgressBar.vue.d.ts +1 -1
  72. package/dist/components/ProtocolStep.presentation.d.ts +4 -0
  73. package/dist/components/ProtocolStepEditor.state.d.ts +18 -0
  74. package/dist/components/ProtocolStepParameterField.vue.d.ts +12 -0
  75. package/dist/components/ReagentList.presentation.d.ts +16 -0
  76. package/dist/components/ResourceCard.vue.d.ts +1 -1
  77. package/dist/components/SampleSelector.colors.d.ts +13 -0
  78. package/dist/components/SampleSelector.drag.d.ts +24 -0
  79. package/dist/components/SampleSelector.groups.d.ts +15 -0
  80. package/dist/components/SampleSelector.selection.d.ts +26 -0
  81. package/dist/components/SampleSelector.vue.d.ts +4 -1
  82. package/dist/components/SampleSelectorSampleRow.vue.d.ts +21 -0
  83. package/dist/components/SegmentedControl.vue.d.ts +1 -1
  84. package/dist/components/SequenceInput.vue.d.ts +2 -2
  85. package/dist/components/SequenceProgressBar.vue.d.ts +1 -1
  86. package/dist/components/SettingsModal.schema.d.ts +9 -0
  87. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  88. package/dist/components/TagsInput.vue.d.ts +2 -2
  89. package/dist/components/TimePicker.vue.d.ts +2 -2
  90. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  91. package/dist/components/UnitInput.vue.d.ts +2 -2
  92. package/dist/components/WellPlate.colors.d.ts +9 -0
  93. package/dist/components/WellPlate.conditions.d.ts +26 -0
  94. package/dist/components/WellPlate.geometry.d.ts +23 -0
  95. package/dist/components/WellPlate.interaction.d.ts +71 -0
  96. package/dist/components/WellPlate.legend.d.ts +2 -0
  97. package/dist/components/WellPlate.rendering.d.ts +24 -0
  98. package/dist/components/WellPlate.sampleDrop.d.ts +8 -0
  99. package/dist/components/WellPlate.vue.d.ts +1 -1
  100. package/dist/components/index.js +2 -2
  101. package/dist/components/internal/ActionItemInternal.vue.d.ts +1 -1
  102. package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +28 -0
  103. package/dist/{components-BhK-dW99.js → components-DtHA2bgp.js} +3754 -2991
  104. package/dist/components-DtHA2bgp.js.map +1 -0
  105. package/dist/composables/autoGroup/classKey.d.ts +4 -0
  106. package/dist/composables/autoGroup/classify.d.ts +28 -0
  107. package/dist/composables/autoGroup/colors.d.ts +2 -0
  108. package/dist/composables/autoGroup/columns.d.ts +10 -0
  109. package/dist/composables/autoGroup/compose.d.ts +8 -0
  110. package/dist/composables/autoGroup/cooccurrence.d.ts +2 -0
  111. package/dist/composables/autoGroup/csv-shim.d.ts +2 -0
  112. package/dist/composables/autoGroup/fingerprint.d.ts +3 -0
  113. package/dist/composables/autoGroup/index.d.ts +16 -0
  114. package/dist/composables/autoGroup/replicatePreGroup.d.ts +38 -0
  115. package/dist/composables/autoGroup/template.d.ts +15 -0
  116. package/dist/composables/autoGroup/tokenize.d.ts +8 -0
  117. package/dist/composables/autoGroupConstants.d.ts +1 -0
  118. package/dist/composables/autoGroupGrouping.d.ts +3 -0
  119. package/dist/composables/controlComponentBindings.d.ts +7 -0
  120. package/dist/composables/controlSchemaAdapters.d.ts +20 -0
  121. package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
  122. package/dist/composables/controlSchemaFormFields.d.ts +3 -0
  123. package/dist/composables/controlSchemaLayout.d.ts +7 -0
  124. package/dist/composables/controlSchemaModel.d.ts +5 -0
  125. package/dist/composables/controlSchemaNormalize.d.ts +15 -0
  126. package/dist/composables/controlSchemaTypes.d.ts +305 -0
  127. package/dist/composables/controlSchemaUtils.d.ts +9 -0
  128. package/dist/composables/controlWorkspaceOptions.d.ts +2 -0
  129. package/dist/composables/formBuilderSchema.d.ts +18 -0
  130. package/dist/composables/index.js +3 -3
  131. package/dist/composables/pluginEndpointBuilder.d.ts +13 -0
  132. package/dist/composables/protocolTemplateCatalog.d.ts +26 -0
  133. package/dist/composables/useAutoGroup.d.ts +61 -74
  134. package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
  135. package/dist/composables/useBioTemplateControls.d.ts +1 -1
  136. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +1 -1
  137. package/dist/composables/useBioTemplateWorkspace.d.ts +1 -1
  138. package/dist/composables/useControlSchema.d.ts +8 -346
  139. package/dist/composables/useControlWorkspace.d.ts +5 -0
  140. package/dist/composables/useForm.d.ts +2 -33
  141. package/dist/composables/useFormBuilder.d.ts +2 -9
  142. package/dist/composables/useFormValidation.d.ts +34 -0
  143. package/dist/composables/usePluginClient.d.ts +1 -4
  144. package/dist/composables/useProtocolTemplates.d.ts +2 -24
  145. package/dist/composables/useScheduleCalendarLayout.d.ts +49 -0
  146. package/dist/{composables-Bg7CFuNz.js → composables-Dlg8jenH.js} +33 -31
  147. package/dist/composables-Dlg8jenH.js.map +1 -0
  148. package/dist/index.js +4 -4
  149. package/dist/install.js +2 -2
  150. package/dist/styles.css +547 -516
  151. package/dist/templates/adapters.d.ts +14 -47
  152. package/dist/templates/assayLookups.d.ts +3 -0
  153. package/dist/templates/assayMatrixAdapters.d.ts +6 -0
  154. package/dist/templates/assayMatrixBuilder.d.ts +2 -0
  155. package/dist/templates/assayNormalizers.d.ts +4 -0
  156. package/dist/templates/builderDefaults.d.ts +1 -0
  157. package/dist/templates/builderIdUtils.d.ts +4 -0
  158. package/dist/templates/builderPresetControls.d.ts +10 -0
  159. package/dist/templates/builderReadUtils.d.ts +8 -0
  160. package/dist/templates/builders.d.ts +26 -67
  161. package/dist/templates/calibrationCurveAdapters.d.ts +4 -0
  162. package/dist/templates/calibrationCurveBuilder.d.ts +2 -0
  163. package/dist/templates/calibrationNormalizers.d.ts +5 -0
  164. package/dist/templates/componentBindingCatalog.d.ts +25 -0
  165. package/dist/templates/componentBindingHelpers.d.ts +17 -0
  166. package/dist/templates/componentDoseResponseProps.d.ts +3 -0
  167. package/dist/templates/componentGenericProps.d.ts +8 -0
  168. package/dist/templates/componentPlateHelpers.d.ts +5 -0
  169. package/dist/templates/componentPlateMapProps.d.ts +3 -0
  170. package/dist/templates/componentPropsFactory.d.ts +3 -0
  171. package/dist/templates/componentQpcrPlateProps.d.ts +3 -0
  172. package/dist/templates/componentTargetResolvers.d.ts +5 -0
  173. package/dist/templates/componentTemplateProps.d.ts +3 -0
  174. package/dist/templates/controlSchemaClone.d.ts +4 -0
  175. package/dist/templates/controlSchemaConstants.d.ts +10 -0
  176. package/dist/templates/controlSchemaMerge.d.ts +3 -0
  177. package/dist/templates/controlSchemaTargets.d.ts +17 -0
  178. package/dist/templates/controlSchemaTypes.d.ts +4 -0
  179. package/dist/templates/controlSchemas.d.ts +4 -4
  180. package/dist/templates/defaultBioTemplateBuilder.d.ts +2 -0
  181. package/dist/templates/doseResponseAdapters.d.ts +4 -0
  182. package/dist/templates/doseResponseBuilder.d.ts +2 -0
  183. package/dist/templates/elisaAssayCollectionBuilder.d.ts +2 -0
  184. package/dist/templates/flowCytometryAssayCollectionBuilder.d.ts +2 -0
  185. package/dist/templates/flowCytometryPanelBuilder.d.ts +2 -0
  186. package/dist/templates/flowNormalizers.d.ts +8 -0
  187. package/dist/templates/flowPanelAdapters.d.ts +4 -0
  188. package/dist/templates/index.js +1 -1
  189. package/dist/templates/instrumentRunAdapterHelpers.d.ts +8 -0
  190. package/dist/templates/instrumentRunAdapters.d.ts +8 -0
  191. package/dist/templates/instrumentRunBuilder.d.ts +2 -0
  192. package/dist/templates/lcmsBatchCollectionBuilder.d.ts +2 -0
  193. package/dist/templates/plateGeometry.d.ts +4 -0
  194. package/dist/templates/plateMapAdapters.d.ts +3 -0
  195. package/dist/templates/plateMapBuilder.d.ts +2 -0
  196. package/dist/templates/presetControlSchemas.d.ts +534 -0
  197. package/dist/templates/protocolAdapters.d.ts +5 -0
  198. package/dist/templates/protocolNormalizers.d.ts +6 -0
  199. package/dist/templates/protocolStepsBuilder.d.ts +2 -0
  200. package/dist/templates/qpcrAdapters.d.ts +5 -0
  201. package/dist/templates/qpcrExpressionCollectionBuilder.d.ts +2 -0
  202. package/dist/templates/qpcrPlateBuilder.d.ts +2 -0
  203. package/dist/templates/reagentAdapters.d.ts +5 -0
  204. package/dist/templates/reagentListBuilder.d.ts +2 -0
  205. package/dist/templates/runNormalizers.d.ts +10 -0
  206. package/dist/templates/sampleNormalizers.d.ts +4 -0
  207. package/dist/templates/samplePrepAdapters.d.ts +4 -0
  208. package/dist/templates/samplePrepBuilder.d.ts +2 -0
  209. package/dist/templates/sampleSheetAdapters.d.ts +5 -0
  210. package/dist/templates/sampleSheetBuilder.d.ts +2 -0
  211. package/dist/templates/targetedMetabolomicsCollectionBuilder.d.ts +2 -0
  212. package/dist/templates/targetedMetabolomicsHelpers.d.ts +5 -0
  213. package/dist/templates/templateAdapterTypes.d.ts +48 -0
  214. package/dist/templates/templateControlSchemas.d.ts +400 -0
  215. package/dist/templates/templateCreateOptions.d.ts +165 -0
  216. package/dist/templates/templateEnvelopes.d.ts +9 -0
  217. package/dist/templates/templatePackCollectionBuilder.d.ts +2 -0
  218. package/dist/templates/templatePresetCollectionBuilder.d.ts +18 -0
  219. package/dist/templates/templateQpcrTypes.d.ts +42 -0
  220. package/dist/templates/templateValidators.d.ts +13 -0
  221. package/dist/templates/timeCourseAdapters.d.ts +5 -0
  222. package/dist/templates/timeCourseBuilder.d.ts +2 -0
  223. package/dist/templates/types.d.ts +5 -250
  224. package/dist/templates/wellPlateScreenCollectionBuilder.d.ts +2 -0
  225. package/dist/templates/westernBlotAssayCollectionBuilder.d.ts +2 -0
  226. package/dist/{templates-BorLR_7p.js → templates-DtdUvJ4c.js} +3565 -3411
  227. package/dist/templates-DtdUvJ4c.js.map +1 -0
  228. package/dist/types/auto-group.d.ts +79 -9
  229. package/dist/types/componentLabTypes.d.ts +161 -0
  230. package/dist/types/componentWorkflowTypes.d.ts +150 -0
  231. package/dist/types/components.d.ts +2 -311
  232. package/dist/{useProtocolTemplates-n6AJqSqv.js → useProtocolTemplates-Bm5vyH4_.js} +1220 -454
  233. package/dist/useProtocolTemplates-Bm5vyH4_.js.map +1 -0
  234. package/package.json +1 -1
  235. package/src/__tests__/components/AppTopBar.navigation.test.ts +70 -0
  236. package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
  237. package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
  238. package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
  239. package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
  240. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +41 -0
  241. package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
  242. package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
  243. package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
  244. package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
  245. package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
  246. package/src/__tests__/components/SampleSelector.drag.test.ts +100 -0
  247. package/src/__tests__/components/SampleSelector.groups.test.ts +81 -0
  248. package/src/__tests__/components/SampleSelector.selection.test.ts +70 -0
  249. package/src/__tests__/components/SampleSelector.test.ts +32 -0
  250. package/src/__tests__/components/SampleSelectorSampleRow.test.ts +37 -0
  251. package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
  252. package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
  253. package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
  254. package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
  255. package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
  256. package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
  257. package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
  258. package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
  259. package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
  260. package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
  261. package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
  262. package/src/__tests__/composables/autoGroup/compose.test.ts +227 -0
  263. package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
  264. package/src/__tests__/composables/autoGroup/fingerprint.test.ts +50 -0
  265. package/src/__tests__/composables/autoGroup/integration.test.ts +79 -0
  266. package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
  267. package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
  268. package/src/__tests__/composables/useAutoGroup.test.ts +129 -625
  269. package/src/__tests__/composables/useAutoGroupInputSources.test.ts +107 -0
  270. package/src/__tests__/composables/useControlSchema.test.ts +23 -0
  271. package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
  272. package/src/__tests__/docs/extractDocsComponents.test.ts +142 -0
  273. package/src/__tests__/docs/extractDocsExports.test.ts +77 -0
  274. package/src/__tests__/docs/extractDocsParsing.test.ts +69 -0
  275. package/src/__tests__/docs/extractDocsTemplates.test.ts +54 -0
  276. package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
  277. package/src/__tests__/docs/frontendDocsCatalog.test.ts +1 -1
  278. package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
  279. package/src/components/AppSidebar.vue +2 -6
  280. package/src/components/AppTopBar.navigation.ts +62 -0
  281. package/src/components/AppTopBar.vue +17 -44
  282. package/src/components/AutoGroupModal.story.vue +50 -0
  283. package/src/components/AutoGroupModal.vue +441 -158
  284. package/src/components/ControlWorkspaceView.vue +2 -6
  285. package/src/components/DoseCalculator.vue +13 -73
  286. package/src/components/DoseCalculatorVolumeField.vue +61 -0
  287. package/src/components/ExperimentTimeline.vue +6 -31
  288. package/src/components/FormBuilder.vue +2 -7
  289. package/src/components/PlateMapEditor.vue +32 -106
  290. package/src/components/PluginWorkspaceView.controls.ts +182 -0
  291. package/src/components/PluginWorkspaceView.navigation.ts +106 -0
  292. package/src/components/PluginWorkspaceView.props.ts +174 -0
  293. package/src/components/PluginWorkspaceView.shell.ts +66 -0
  294. package/src/components/PluginWorkspaceView.vue +85 -404
  295. package/src/components/ProtocolStep.presentation.ts +31 -0
  296. package/src/components/ProtocolStepEditor.state.ts +104 -0
  297. package/src/components/ProtocolStepEditor.vue +48 -179
  298. package/src/components/ProtocolStepParameterField.vue +134 -0
  299. package/src/components/ReagentList.presentation.ts +105 -0
  300. package/src/components/ReagentList.vue +16 -79
  301. package/src/components/SampleSelector.colors.ts +43 -0
  302. package/src/components/SampleSelector.drag.ts +164 -0
  303. package/src/components/SampleSelector.groups.ts +109 -0
  304. package/src/components/SampleSelector.selection.ts +103 -0
  305. package/src/components/SampleSelector.vue +82 -349
  306. package/src/components/SampleSelectorSampleRow.vue +64 -0
  307. package/src/components/ScheduleCalendar.vue +44 -199
  308. package/src/components/SettingsModal.schema.ts +71 -0
  309. package/src/components/SettingsModal.vue +16 -46
  310. package/src/components/WellPlate.colors.ts +56 -0
  311. package/src/components/WellPlate.conditions.ts +100 -0
  312. package/src/components/WellPlate.geometry.ts +91 -0
  313. package/src/components/WellPlate.interaction.ts +272 -0
  314. package/src/components/WellPlate.legend.ts +8 -0
  315. package/src/components/WellPlate.rendering.ts +105 -0
  316. package/src/components/WellPlate.sampleDrop.ts +73 -0
  317. package/src/components/WellPlate.vue +102 -550
  318. package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
  319. package/src/composables/autoGroup/classKey.ts +5 -0
  320. package/src/composables/autoGroup/classify.ts +205 -0
  321. package/src/composables/autoGroup/colors.ts +6 -0
  322. package/src/composables/autoGroup/columns.ts +226 -0
  323. package/src/composables/autoGroup/compose.ts +156 -0
  324. package/src/composables/autoGroup/cooccurrence.ts +46 -0
  325. package/src/composables/autoGroup/csv-shim.ts +44 -0
  326. package/src/composables/autoGroup/fingerprint.ts +49 -0
  327. package/src/composables/autoGroup/index.ts +20 -0
  328. package/src/composables/autoGroup/replicatePreGroup.ts +90 -0
  329. package/src/composables/autoGroup/template.ts +126 -0
  330. package/src/composables/autoGroup/tokenize.ts +41 -0
  331. package/src/composables/autoGroup/vocab.json +67 -0
  332. package/src/composables/autoGroupConstants.ts +4 -0
  333. package/src/composables/autoGroupGrouping.ts +148 -0
  334. package/src/composables/controlComponentBindings.ts +80 -0
  335. package/src/composables/controlSchemaAdapters.ts +196 -0
  336. package/src/composables/controlSchemaDoseDesign.ts +215 -0
  337. package/src/composables/controlSchemaFormFields.ts +61 -0
  338. package/src/composables/controlSchemaLayout.ts +59 -0
  339. package/src/composables/controlSchemaModel.ts +163 -0
  340. package/src/composables/controlSchemaNormalize.ts +101 -0
  341. package/src/composables/controlSchemaTypes.ts +364 -0
  342. package/src/composables/controlSchemaUtils.ts +36 -0
  343. package/src/composables/controlWorkspaceOptions.ts +21 -0
  344. package/src/composables/formBuilderSchema.ts +153 -0
  345. package/src/composables/pluginEndpointBuilder.ts +203 -0
  346. package/src/composables/protocolTemplateCatalog.ts +325 -0
  347. package/src/composables/useAutoGroup.ts +395 -549
  348. package/src/composables/useAutoGroupInputSources.ts +147 -0
  349. package/src/composables/useBioTemplateControls.ts +1 -1
  350. package/src/composables/useBioTemplatePresetWorkspace.ts +1 -1
  351. package/src/composables/useBioTemplateWorkspace.ts +1 -1
  352. package/src/composables/useControlSchema.ts +64 -1312
  353. package/src/composables/useControlWorkspace.ts +201 -0
  354. package/src/composables/useForm.ts +5 -187
  355. package/src/composables/useFormBuilder.ts +11 -153
  356. package/src/composables/useFormValidation.ts +154 -0
  357. package/src/composables/usePluginClient.ts +10 -193
  358. package/src/composables/useProtocolTemplates.ts +10 -328
  359. package/src/composables/useScheduleCalendarLayout.ts +287 -0
  360. package/src/styles/components/auto-group-modal.css +248 -310
  361. package/src/templates/adapters.ts +89 -930
  362. package/src/templates/assayLookups.ts +33 -0
  363. package/src/templates/assayMatrixAdapters.ts +78 -0
  364. package/src/templates/assayMatrixBuilder.ts +59 -0
  365. package/src/templates/assayNormalizers.ts +34 -0
  366. package/src/templates/builderDefaults.ts +11 -0
  367. package/src/templates/builderIdUtils.ts +20 -0
  368. package/src/templates/builderPresetControls.ts +165 -0
  369. package/src/templates/builderReadUtils.ts +57 -0
  370. package/src/templates/builders.ts +122 -2350
  371. package/src/templates/calibrationCurveAdapters.ts +59 -0
  372. package/src/templates/calibrationCurveBuilder.ts +99 -0
  373. package/src/templates/calibrationNormalizers.ts +60 -0
  374. package/src/templates/componentBindingCatalog.ts +90 -0
  375. package/src/templates/componentBindingHelpers.ts +93 -0
  376. package/src/templates/componentBindings.ts +12 -461
  377. package/src/templates/componentDoseResponseProps.ts +42 -0
  378. package/src/templates/componentGenericProps.ts +77 -0
  379. package/src/templates/componentPlateHelpers.ts +29 -0
  380. package/src/templates/componentPlateMapProps.ts +32 -0
  381. package/src/templates/componentPropsFactory.ts +21 -0
  382. package/src/templates/componentQpcrPlateProps.ts +28 -0
  383. package/src/templates/componentTargetResolvers.ts +69 -0
  384. package/src/templates/componentTemplateProps.ts +78 -0
  385. package/src/templates/controlSchemaClone.ts +32 -0
  386. package/src/templates/controlSchemaConstants.ts +11 -0
  387. package/src/templates/controlSchemaMerge.ts +40 -0
  388. package/src/templates/controlSchemaTargets.ts +87 -0
  389. package/src/templates/controlSchemaTypes.ts +20 -0
  390. package/src/templates/controlSchemas.ts +22 -704
  391. package/src/templates/defaultBioTemplateBuilder.ts +124 -0
  392. package/src/templates/doseResponseAdapters.ts +45 -0
  393. package/src/templates/doseResponseBuilder.ts +44 -0
  394. package/src/templates/elisaAssayCollectionBuilder.ts +62 -0
  395. package/src/templates/flowCytometryAssayCollectionBuilder.ts +41 -0
  396. package/src/templates/flowCytometryPanelBuilder.ts +53 -0
  397. package/src/templates/flowNormalizers.ts +58 -0
  398. package/src/templates/flowPanelAdapters.ts +58 -0
  399. package/src/templates/instrumentRunAdapterHelpers.ts +94 -0
  400. package/src/templates/instrumentRunAdapters.ts +163 -0
  401. package/src/templates/instrumentRunBuilder.ts +97 -0
  402. package/src/templates/lcmsBatchCollectionBuilder.ts +38 -0
  403. package/src/templates/plateGeometry.ts +62 -0
  404. package/src/templates/plateMapAdapters.ts +36 -0
  405. package/src/templates/plateMapBuilder.ts +43 -0
  406. package/src/templates/presetControlSchemas.ts +258 -0
  407. package/src/templates/protocolAdapters.ts +69 -0
  408. package/src/templates/protocolNormalizers.ts +37 -0
  409. package/src/templates/protocolStepsBuilder.ts +36 -0
  410. package/src/templates/qpcrAdapters.ts +104 -0
  411. package/src/templates/qpcrExpressionCollectionBuilder.ts +33 -0
  412. package/src/templates/qpcrPlateBuilder.ts +96 -0
  413. package/src/templates/reagentAdapters.ts +77 -0
  414. package/src/templates/reagentListBuilder.ts +30 -0
  415. package/src/templates/runNormalizers.ts +63 -0
  416. package/src/templates/sampleNormalizers.ts +58 -0
  417. package/src/templates/samplePrepAdapters.ts +63 -0
  418. package/src/templates/samplePrepBuilder.ts +51 -0
  419. package/src/templates/sampleSheetAdapters.ts +75 -0
  420. package/src/templates/sampleSheetBuilder.ts +23 -0
  421. package/src/templates/targetedMetabolomicsCollectionBuilder.ts +79 -0
  422. package/src/templates/targetedMetabolomicsHelpers.ts +102 -0
  423. package/src/templates/templateAdapterTypes.ts +58 -0
  424. package/src/templates/templateControlSchemas.ts +320 -0
  425. package/src/templates/templateCreateOptions.ts +208 -0
  426. package/src/templates/templateEnvelopes.ts +137 -0
  427. package/src/templates/templatePackCollectionBuilder.ts +23 -0
  428. package/src/templates/templatePresetCollectionBuilder.ts +139 -0
  429. package/src/templates/templateQpcrTypes.ts +48 -0
  430. package/src/templates/templateValidators.ts +414 -0
  431. package/src/templates/timeCourseAdapters.ts +73 -0
  432. package/src/templates/timeCourseBuilder.ts +64 -0
  433. package/src/templates/types.ts +79 -275
  434. package/src/templates/wellPlateScreenCollectionBuilder.ts +36 -0
  435. package/src/templates/westernBlotAssayCollectionBuilder.ts +68 -0
  436. package/src/types/auto-group.ts +107 -9
  437. package/src/types/componentLabTypes.ts +235 -0
  438. package/src/types/componentWorkflowTypes.ts +190 -0
  439. package/src/types/components.ts +74 -424
  440. package/dist/components-BhK-dW99.js.map +0 -1
  441. package/dist/composables-Bg7CFuNz.js.map +0 -1
  442. package/dist/templates-BorLR_7p.js.map +0 -1
  443. package/dist/useProtocolTemplates-n6AJqSqv.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import type { SampleGroup } from './components'
2
2
 
3
+ // ---- Legacy (kept for source-compatibility) ----
3
4
  export type OutlierAction = 'include' | 'exclude' | 'qc'
4
5
  export type InputMode = 'paste' | 'csv' | 'experiment'
5
6
 
@@ -10,31 +11,128 @@ export interface OutlierInfo {
10
11
  action: OutlierAction
11
12
  }
12
13
 
14
+ export interface MetadataRow {
15
+ sampleName: string
16
+ fields: Record<string, string>
17
+ group: string
18
+ }
19
+
20
+ export interface ParsedCsvData {
21
+ columns: string[]
22
+ rows: Record<string, string>[]
23
+ sampleColumn: string
24
+ delimiter: string
25
+ }
26
+
27
+ // ---- Class detection ----
28
+
29
+ export type SampleClassKind =
30
+ | 'biological'
31
+ | 'iqc'
32
+ | 'eqc'
33
+ | 'standard'
34
+ | 'spike-in'
35
+ | 'stock'
36
+ | 'blank'
37
+ | 'unknown'
38
+
39
+ export type ClassDisposition = 'group' | 'overlay' | 'exclude'
40
+
41
+ export interface SampleClass {
42
+ kind: SampleClassKind
43
+ label: string
44
+ subKind?: string
45
+ members: number[]
46
+ classTagPositions: number[]
47
+ disposition: ClassDisposition
48
+ }
49
+
50
+ // ---- Column / role classifier ----
51
+
52
+ export type ColumnRole =
53
+ | 'constant'
54
+ | 'factor'
55
+ | 'replicate'
56
+ | 'run-order'
57
+ | 'numeric'
58
+ | 'class-tag'
59
+ | 'ignore'
60
+
61
+ export interface NumericParse {
62
+ value: number
63
+ unit: string
64
+ raw: string
65
+ }
66
+
67
+ export interface NumericBinning {
68
+ mode: 'discrete' | 'binned'
69
+ edges?: number[]
70
+ labels?: string[]
71
+ }
72
+
73
+ export interface ValueOps {
74
+ alias?: Record<string, string>
75
+ exclude?: string[]
76
+ }
77
+
13
78
  export interface ColumnInfo {
14
79
  index: number
15
80
  name: string
81
+ sourceIndices: number[]
16
82
  uniqueValues: string[]
17
83
  cardinality: number
84
+ /** Legacy field, retained alongside `role` during the shim window. */
18
85
  type?: 'prefix' | 'suffix'
86
+ role?: ColumnRole
87
+ numeric?: { byValue: Record<string, NumericParse> }
88
+ binning?: NumericBinning
89
+ ops?: ValueOps
19
90
  /** Original CSV column header — used for row lookups when name is renamed */
20
91
  originalName?: string
92
+ displayName?: string
21
93
  }
22
94
 
23
- export interface MetadataRow {
24
- sampleName: string
25
- fields: Record<string, string>
26
- group: string
95
+ export interface ClassSchema {
96
+ classKind: SampleClassKind
97
+ subKind?: string
98
+ columns: ColumnInfo[]
99
+ groupBy: number[]
100
+ replicateColumn?: number
101
+ }
102
+
103
+ export interface MergeSuggestion {
104
+ classKind: SampleClassKind
105
+ subKind?: string
106
+ columnIndices: number[]
107
+ proposedName: string
108
+ confidence: number
27
109
  }
28
110
 
29
111
  export interface AutoGroupResult {
112
+ /** All emitted groups, experimental + overlay concatenated for source compat. */
30
113
  groups: SampleGroup[]
114
+ /** Class disposition === 'group' only. */
115
+ experimentalGroups?: SampleGroup[]
116
+ /** Class disposition === 'overlay' only. */
117
+ qcGroups?: SampleGroup[]
31
118
  metadata: MetadataRow[]
32
119
  excludedSamples: string[]
120
+ schemas?: ClassSchema[]
121
+ fingerprint?: SchemaFingerprint
33
122
  }
34
123
 
35
- export interface ParsedCsvData {
36
- columns: string[]
37
- rows: Record<string, string>[]
38
- sampleColumn: string
39
- delimiter: string
124
+ export interface SchemaFingerprint {
125
+ version: 1
126
+ classes: Array<{
127
+ kind: SampleClassKind
128
+ subKind?: string
129
+ columns: Array<{
130
+ name: string
131
+ role: ColumnRole
132
+ sourceIndices: number[]
133
+ binning?: NumericBinning
134
+ ops?: ValueOps
135
+ }>
136
+ groupBy: number[]
137
+ }>
40
138
  }
@@ -0,0 +1,235 @@
1
+ // Well Plate types
2
+ export type WellPlateFormat = 6 | 12 | 24 | 48 | 54 | 96 | 384
3
+ export type WellState = 'empty' | 'filled' | 'selected' | 'disabled'
4
+ export type WellPlateSelectionMode = 'none' | 'single' | 'multiple' | 'rectangle' | 'drag'
5
+ export type WellPlateSize = 'sm' | 'md' | 'lg' | 'xl' | 'fill'
6
+ export type WellShape = 'circle' | 'rounded'
7
+
8
+ export interface Well {
9
+ id: string
10
+ row: number
11
+ col: number
12
+ state: WellState
13
+ sampleType?: string
14
+ value?: number
15
+ metadata?: Record<string, unknown>
16
+ }
17
+
18
+ export type HeatmapColorScale = 'viridis' | 'plasma' | 'turbo' | 'custom'
19
+
20
+ export interface HeatmapConfig {
21
+ enabled: boolean
22
+ min?: number
23
+ max?: number
24
+ colorScale?: HeatmapColorScale
25
+ customColors?: string[]
26
+ showLegend?: boolean
27
+ }
28
+
29
+ // Slot position for rack color coding
30
+ export type SlotPosition = 'R' | 'G' | 'B' | 'Y'
31
+
32
+ // Extended well data stored in Well.metadata
33
+ export interface WellExtendedData {
34
+ label?: string
35
+ injectionVolume?: number
36
+ injectionCount?: number
37
+ customMethod?: string | null
38
+ }
39
+
40
+ // Data emitted when editing a well
41
+ export interface WellEditData {
42
+ wellId: string
43
+ label: string
44
+ sampleType: string
45
+ injectionVolume: number
46
+ injectionCount: number
47
+ customMethod: string
48
+ }
49
+
50
+ // Fields shown in the edit popup
51
+ export type WellEditField = 'label' | 'sampleType' | 'injectionVolume' | 'injectionCount' | 'customMethod'
52
+
53
+ // External sample drop payloads for WellPlate / RackEditor
54
+ export interface WellSampleDropData {
55
+ id?: string
56
+ sampleName?: string
57
+ label?: string
58
+ sampleType?: string
59
+ injectionVolume?: number
60
+ injectionCount?: number
61
+ customMethod?: string | null
62
+ metadata?: Record<string, unknown>
63
+ raw?: unknown
64
+ }
65
+
66
+ export interface WellSampleDropContext {
67
+ wellId: string
68
+ event: DragEvent
69
+ }
70
+
71
+ export type WellSampleDropParser = (
72
+ event: DragEvent,
73
+ context: WellSampleDropContext
74
+ ) => WellSampleDropData | null | undefined
75
+
76
+ // Legend item for sample type display
77
+ export interface WellLegendItem {
78
+ type: string
79
+ label: string
80
+ color: string
81
+ }
82
+
83
+ // Condition headers for dose-response / drug treatment plates
84
+ export interface PlateCondition {
85
+ label: string
86
+ color: string
87
+ concentrations: number[]
88
+ unit?: string
89
+ }
90
+
91
+ export interface ColumnCondition extends PlateCondition {
92
+ cols: number[]
93
+ }
94
+
95
+ export interface RowCondition extends PlateCondition {
96
+ rows: string[]
97
+ }
98
+
99
+ // Rack for RackEditor
100
+ export interface Rack {
101
+ id: string
102
+ name: string
103
+ format: WellPlateFormat
104
+ slot: SlotPosition
105
+ injectionVolume: number
106
+ wells: Record<string, Partial<Well>>
107
+ }
108
+
109
+ export interface RackSampleDropContext {
110
+ rack: Rack
111
+ rackId: string
112
+ wellId: string
113
+ event: DragEvent
114
+ }
115
+
116
+ export type RackSampleDropMapper = (
117
+ data: WellSampleDropData,
118
+ context: RackSampleDropContext
119
+ ) => WellEditData | null | undefined
120
+
121
+ // Sample Legend types
122
+ export interface SampleType {
123
+ id: string
124
+ name: string
125
+ color?: string
126
+ count?: number
127
+ description?: string
128
+ }
129
+
130
+ // Plate Map Editor types
131
+ export interface PlateMap {
132
+ id: string
133
+ name: string
134
+ format: WellPlateFormat
135
+ wells: Record<string, Well>
136
+ }
137
+
138
+ export interface PlateMapEditorState {
139
+ plates: PlateMap[]
140
+ activePlateId: string
141
+ samples: SampleType[]
142
+ selectedWells: string[]
143
+ activeSampleId?: string
144
+ }
145
+
146
+ // Experiment Timeline types
147
+ export type ProtocolStepType = 'incubation' | 'wash' | 'addition' | 'measurement' | 'transfer' | 'centrifuge' | 'mix' | 'custom'
148
+ export type ProtocolStepStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped'
149
+
150
+ export interface ProtocolStep {
151
+ id: string
152
+ type: ProtocolStepType
153
+ name: string
154
+ description?: string
155
+ duration?: number
156
+ status: ProtocolStepStatus
157
+ parameters?: Record<string, unknown>
158
+ order: number
159
+ }
160
+
161
+ // Sample Selector types
162
+ export interface SampleGroup {
163
+ name: string
164
+ color: string
165
+ samples: string[]
166
+ }
167
+
168
+ // Group Assigner types
169
+ export interface GroupItem {
170
+ name: string
171
+ color: string
172
+ count: number
173
+ }
174
+
175
+ // FileUploader types
176
+ export type FileUploaderMode = 'file' | 'folder'
177
+
178
+ // MoleculeInput types
179
+ export interface MoleculeData {
180
+ smiles: string
181
+ molfile: string
182
+ }
183
+
184
+ // ReagentList types
185
+ export type StorageCondition = 'RT' | '4C' | '-20C' | '-80C'
186
+
187
+ export type ReagentColumn =
188
+ | 'name'
189
+ | 'catalog'
190
+ | 'lot'
191
+ | 'expiry'
192
+ | 'storage'
193
+ | 'location'
194
+ | 'stock'
195
+ | 'supplier'
196
+
197
+ export interface Reagent {
198
+ id: string
199
+ name: string
200
+ catalogNumber?: string
201
+ lotNumber?: string
202
+ expiryDate?: Date | string
203
+ storageCondition?: StorageCondition
204
+ location?: string
205
+ stockLevel?: number
206
+ stockUnit?: string
207
+ supplier?: string
208
+ url?: string
209
+ }
210
+
211
+ // SampleHierarchyTree types
212
+ export type TreeNodeType =
213
+ | 'study'
214
+ | 'experiment'
215
+ | 'plate'
216
+ | 'sample'
217
+ | 'cell_line'
218
+ | 'passage'
219
+ | 'clone'
220
+ | 'treatment'
221
+ | 'folder'
222
+ | 'custom'
223
+
224
+ export type BadgeVariant = 'default' | 'success' | 'warning' | 'error'
225
+
226
+ export interface TreeNode {
227
+ id: string
228
+ label: string
229
+ type?: TreeNodeType
230
+ icon?: string
231
+ children?: TreeNode[]
232
+ metadata?: Record<string, unknown>
233
+ badge?: string | number
234
+ badgeVariant?: BadgeVariant
235
+ }
@@ -0,0 +1,190 @@
1
+ import type { UserSummary } from './platform'
2
+
3
+ // ScientificNumber types
4
+ export type NumberNotation = 'auto' | 'scientific' | 'engineering' | 'compact'
5
+
6
+ // UnitInput types
7
+ export interface UnitOption {
8
+ value: string
9
+ label: string
10
+ factor?: number
11
+ group?: string
12
+ }
13
+
14
+ // StepWizard types
15
+ export interface WizardStep {
16
+ id: string
17
+ label: string
18
+ description?: string
19
+ icon?: string
20
+ optional?: boolean
21
+ }
22
+
23
+ export type WizardStepState = 'pending' | 'active' | 'completed' | 'disabled'
24
+
25
+ // AuditTrail types
26
+ export type AuditEntryType = 'create' | 'update' | 'delete' | 'system'
27
+
28
+ export interface AuditEntry {
29
+ id: string
30
+ type: AuditEntryType
31
+ action: string
32
+ detail?: string
33
+ user?: string
34
+ timestamp: Date | string
35
+ metadata?: Record<string, unknown>
36
+ }
37
+
38
+ // BatchProgressList types
39
+ export type BatchItemStatus = 'pending' | 'processing' | 'completed' | 'error' | 'skipped'
40
+
41
+ export interface BatchItem {
42
+ id: string
43
+ label: string
44
+ status: BatchItemStatus
45
+ progress?: number
46
+ message?: string
47
+ }
48
+
49
+ export interface BatchSummary {
50
+ total: number
51
+ completed: number
52
+ processing: number
53
+ error: number
54
+ pending: number
55
+ skipped: number
56
+ percent: number
57
+ }
58
+
59
+ // TimePicker types
60
+ export type TimePickerFormat = '12h' | '24h'
61
+
62
+ export interface TimeRange {
63
+ start: string // "HH:mm"
64
+ end: string // "HH:mm"
65
+ }
66
+
67
+ // Schedule types
68
+ export type ScheduleView = 'day' | 'week' | 'month'
69
+ export type ScheduleEventStatus = 'confirmed' | 'pending' | 'cancelled' | 'in-progress'
70
+
71
+ export interface ScheduleEvent {
72
+ id: string
73
+ start: string // ISO 8601 datetime
74
+ end: string // ISO 8601 datetime
75
+ title: string
76
+ color?: string
77
+ status?: ScheduleEventStatus
78
+ draggable?: boolean
79
+ resizable?: boolean
80
+ metadata?: Record<string, unknown>
81
+ }
82
+
83
+ export interface ScheduleBlockedSlot {
84
+ start: string
85
+ end: string
86
+ label?: string
87
+ }
88
+
89
+ export interface ScheduleSlotContext {
90
+ date: Date
91
+ hour: number
92
+ minute: number
93
+ }
94
+
95
+ export interface ScheduleEventCreateContext {
96
+ start: Date
97
+ end: Date
98
+ }
99
+
100
+ export interface ScheduleEventUpdateContext {
101
+ event: ScheduleEvent
102
+ newStart: Date
103
+ newEnd: Date
104
+ }
105
+
106
+ // Summary data types (for ExperimentDataViewer compact mode)
107
+ export interface SummarySectionItem {
108
+ label: string
109
+ metadata?: Record<string, unknown>
110
+ item_count: number
111
+ item_key: string
112
+ columns: string[]
113
+ rows: Record<string, unknown>[]
114
+ }
115
+
116
+ export interface SummarySection {
117
+ key: string
118
+ label: string
119
+ type: 'table' | 'group'
120
+ /** Group sections: list of group items with embedded tables */
121
+ items?: SummarySectionItem[]
122
+ /** Table sections: flat table columns and rows */
123
+ columns?: string[]
124
+ rows?: Record<string, unknown>[]
125
+ row_count?: number
126
+ }
127
+
128
+ export interface SummaryData {
129
+ metadata: Record<string, unknown>
130
+ sections: SummarySection[]
131
+ }
132
+
133
+ // Resource types
134
+ export type ResourceStatus = 'available' | 'in-use' | 'maintenance' | 'offline'
135
+
136
+ export interface ResourceSpec {
137
+ label: string
138
+ value: string
139
+ }
140
+
141
+ // Experiment selector types
142
+ export type ExperimentStatus = 'planned' | 'ongoing' | 'completed' | 'cancelled'
143
+ export type DatePreset = 'last_7_days' | 'last_30_days' | 'last_90_days'
144
+ export type ExperimentSortField = 'created_at' | 'updated_at' | 'name' | 'status'
145
+
146
+ export interface ExperimentTypeOption {
147
+ value: string
148
+ label: string
149
+ color?: string
150
+ }
151
+
152
+ export interface ExperimentSummary {
153
+ id: number
154
+ experiment_code?: string
155
+ name: string
156
+ status: ExperimentStatus
157
+ experiment_type: string
158
+ project?: string
159
+ project_id?: number
160
+ project_name?: string
161
+ notes?: string
162
+ tags?: Record<string, unknown>
163
+ created_at: string
164
+ updated_at: string
165
+ created_by?: number
166
+ created_by_user?: UserSummary
167
+ has_design_data: boolean
168
+ }
169
+
170
+ export interface ExperimentListResponse {
171
+ experiments: ExperimentSummary[]
172
+ total: number
173
+ }
174
+
175
+ export interface ExperimentFilters {
176
+ search?: string
177
+ status?: ExperimentStatus | null
178
+ project?: string | null
179
+ experimentType?: string | null
180
+ datePreset?: DatePreset | null
181
+ }
182
+
183
+ // FitPanel types
184
+ export type FitState = 'idle' | 'running' | 'completed' | 'error'
185
+
186
+ export interface FitResultSummary {
187
+ label: string
188
+ value: string | number
189
+ variant?: 'default' | 'success' | 'warning' | 'error'
190
+ }