@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
@@ -0,0 +1,26 @@
1
+ import { ProtocolStepType } from '../types';
2
+ export interface ParameterDefinition {
3
+ key: string;
4
+ label: string;
5
+ type: 'number' | 'text' | 'select' | 'concentration' | 'temperature' | 'duration' | 'reagent';
6
+ unit?: string;
7
+ options?: Array<{
8
+ value: string;
9
+ label: string;
10
+ }>;
11
+ required?: boolean;
12
+ default?: unknown;
13
+ min?: number;
14
+ max?: number;
15
+ placeholder?: string;
16
+ }
17
+ export interface StepTemplate {
18
+ id: string;
19
+ type: ProtocolStepType;
20
+ name: string;
21
+ description?: string;
22
+ defaultDuration?: number;
23
+ parameters: ParameterDefinition[];
24
+ isBuiltIn?: boolean;
25
+ }
26
+ export declare const BUILT_IN_PROTOCOL_TEMPLATES: StepTemplate[];
@@ -1,40 +1,7 @@
1
- import { InputMode, OutlierAction, OutlierInfo, ColumnInfo, MetadataRow, AutoGroupResult, ParsedCsvData } from '../types/auto-group';
2
- import { SampleGroup } from '../types/components';
3
- export declare const DEFAULT_COLORS: string[];
4
- export declare function analyzeDelimiter(lines: string[]): {
5
- delimiter: string;
6
- dominantFieldCount: number;
7
- minFieldCount: number;
8
- consistency: number;
9
- };
10
- export declare function detectOutliers(lines: string[], delimiter: string, minFieldCount: number): OutlierInfo[];
11
- export declare function classifyOutlierAction(sample: string, delimiter: string): OutlierAction;
12
- export declare function isUsefulField(field: ColumnInfo, rowCount: number): boolean;
13
- export declare function extractColumns(samples: string[], delimiter: string, minFieldCount: number): ColumnInfo[];
14
- export declare function parseCSVLine(line: string, delimiter?: string): string[];
15
- export declare function parseCSV(text: string): ParsedCsvData;
16
- export declare function computeGroups(allSamples: string[], columns: ColumnInfo[], enabledFields: Set<number>, outlierActions: Map<number, OutlierAction>, delimiter: string, minFieldCount: number): {
17
- groups: SampleGroup[];
18
- metadata: MetadataRow[];
19
- excludedSamples: string[];
20
- };
21
- /**
22
- * Extract sample metadata from raw design_data into ParsedCsvData format.
23
- *
24
- * Looks for a `samples` array in the design data. For each sample, merges
25
- * the `conditions` dict (the metadata table) with the `sample_name` to
26
- * produce a flat tabular row. QC and blank samples are filtered out by
27
- * their explicit `sample_type` field.
28
- *
29
- * Returns null if no samples with conditions are found.
30
- */
31
- export declare function extractSamplesFromDesignData(rawData: Record<string, unknown>): ParsedCsvData | null;
32
- export declare function computeGroupsFromCsv(csvData: ParsedCsvData, columns: ColumnInfo[], enabledFields: Set<number>): {
33
- groups: SampleGroup[];
34
- metadata: MetadataRow[];
35
- excludedSamples: string[];
36
- };
37
- /** Parses sample names or CSV data to propose group assignments with outlier detection and preview. */
1
+ import { AutoGroupResult, ClassDisposition, ClassSchema, ColumnInfo, ColumnRole, InputMode, MergeSuggestion, NumericBinning, OutlierAction, OutlierInfo, ParsedCsvData, SampleClass, SchemaFingerprint, ValueOps } from '../types/auto-group';
2
+ import { TemplateOptions } from './autoGroup';
3
+ export { DEFAULT_COLORS } from './autoGroup';
4
+ export { parseCSV } from './autoGroup/csv-shim';
38
5
  export declare function useAutoGroup(): {
39
6
  inputMode: import('vue').Ref<InputMode, InputMode>;
40
7
  rawText: import('vue').Ref<string, string>;
@@ -49,9 +16,42 @@ export declare function useAutoGroup(): {
49
16
  sampleColumn: string;
50
17
  delimiter: string;
51
18
  } | null>;
52
- delimiter: import('vue').Ref<string, string>;
53
- dominantFieldCount: import('vue').Ref<number, number>;
54
- minFieldCount: import('vue').Ref<number, number>;
19
+ sampleTypeHints: import('vue').Ref<(string | undefined)[], (string | undefined)[]>;
20
+ classes: import('vue').Ref<{
21
+ kind: import('../types/auto-group').SampleClassKind;
22
+ label: string;
23
+ subKind?: string | undefined;
24
+ members: number[];
25
+ classTagPositions: number[];
26
+ disposition: ClassDisposition;
27
+ }[], SampleClass[] | {
28
+ kind: import('../types/auto-group').SampleClassKind;
29
+ label: string;
30
+ subKind?: string | undefined;
31
+ members: number[];
32
+ classTagPositions: number[];
33
+ disposition: ClassDisposition;
34
+ }[]>;
35
+ schemas: import('vue').Ref<Record<string, ClassSchema>, Record<string, ClassSchema>>;
36
+ activeClassKey: import('vue').Ref<string, string>;
37
+ delimiter: import('vue').Ref<"-" | "." | "_", "-" | "." | "_">;
38
+ dominantFieldCount: import('vue').ComputedRef<number>;
39
+ minFieldCount: import('vue').ComputedRef<number>;
40
+ samples: import('vue').ComputedRef<string[]>;
41
+ tokenized: import('vue').Ref<string[][], string[][]>;
42
+ activeSchema: import('vue').ComputedRef<ClassSchema | null>;
43
+ suggestions: import('vue').ComputedRef<MergeSuggestion[]>;
44
+ groups: import('vue').ComputedRef<import('..').SampleGroup[]>;
45
+ qcGroups: import('vue').ComputedRef<import('..').SampleGroup[]>;
46
+ metadata: import('vue').ComputedRef<import('..').MetadataRow[]>;
47
+ excludedSamples: import('vue').ComputedRef<string[]>;
48
+ result: import('vue').ComputedRef<AutoGroupResult>;
49
+ fingerprint: import('vue').ComputedRef<SchemaFingerprint>;
50
+ fields: import('vue').ComputedRef<ColumnInfo[]>;
51
+ fieldNames: import('vue').ComputedRef<Record<number, string>>;
52
+ enabledFields: import('vue').ComputedRef<Set<number>>;
53
+ effectiveColumns: import('vue').ComputedRef<ColumnInfo[]>;
54
+ hasOutliers: import('vue').ComputedRef<boolean>;
55
55
  outliers: import('vue').Ref<{
56
56
  sample: string;
57
57
  index: number;
@@ -63,44 +63,31 @@ export declare function useAutoGroup(): {
63
63
  fieldCount: number;
64
64
  action: OutlierAction;
65
65
  }[]>;
66
- fields: import('vue').Ref<{
67
- index: number;
68
- name: string;
69
- uniqueValues: string[];
70
- cardinality: number;
71
- type?: "prefix" | "suffix" | undefined;
72
- originalName?: string | undefined;
73
- }[], ColumnInfo[] | {
74
- index: number;
75
- name: string;
76
- uniqueValues: string[];
77
- cardinality: number;
78
- type?: "prefix" | "suffix" | undefined;
79
- originalName?: string | undefined;
80
- }[]>;
81
- fieldNames: import('vue').Ref<Record<number, string>, Record<number, string>>;
82
- enabledFields: import('vue').Ref<Set<number> & Omit<Set<number>, keyof Set<any>>, Set<number> | (Set<number> & Omit<Set<number>, keyof Set<any>>)>;
83
- samples: import('vue').ComputedRef<string[]>;
84
- hasOutliers: import('vue').ComputedRef<boolean>;
85
66
  conformingSamples: import('vue').ComputedRef<string[]>;
86
- groups: import('vue').ComputedRef<SampleGroup[]>;
87
- metadata: import('vue').ComputedRef<MetadataRow[]>;
88
- excludedSamples: import('vue').ComputedRef<string[]>;
89
67
  allSingletons: import('vue').ComputedRef<boolean>;
90
- result: import('vue').ComputedRef<AutoGroupResult>;
91
- effectiveColumns: import('vue').ComputedRef<{
92
- name: string;
93
- index: number;
94
- uniqueValues: string[];
95
- cardinality: number;
96
- type?: "prefix" | "suffix" | undefined;
97
- originalName?: string | undefined;
98
- }[]>;
68
+ canDownloadTemplate: import('vue').ComputedRef<boolean>;
69
+ setClassDisposition: (key: string, disposition: ClassDisposition) => void;
70
+ setClassDispositions: (predicate: (c: SampleClass) => boolean, disposition: ClassDisposition) => void;
71
+ toggleGroupBy: (key: string, idx: number) => void;
72
+ setRole: (key: string, idx: number, role: ColumnRole) => void;
73
+ setColumnName: (key: string, idx: number, name: string) => void;
74
+ setValueOps: (key: string, idx: number, ops: ValueOps) => void;
75
+ setBinning: (key: string, idx: number, binning: NumericBinning) => void;
76
+ mergeColumns: (key: string, indices: number[]) => void;
77
+ loadFingerprint: (fp: SchemaFingerprint) => void;
99
78
  parseInput: () => void;
79
+ downloadTemplate: (mode?: "blank" | "prefilled", format?: "csv" | "tsv") => void;
80
+ composeTemplateForTest: (opts: Pick<TemplateOptions, "mode" | "format">) => {
81
+ content: string;
82
+ filename: string;
83
+ };
100
84
  loadExperimentData: (rawData: Record<string, unknown>) => boolean;
101
- setOutlierAction: (index: number, action: OutlierAction) => void;
102
- setAllOutlierActions: (action: OutlierAction) => void;
85
+ reset: () => void;
86
+ setOutlierAction: (_: number, __: OutlierAction) => void;
87
+ setAllOutlierActions: (__: OutlierAction) => void;
103
88
  toggleField: (index: number) => void;
104
89
  renameField: (index: number, name: string) => void;
105
- reset: () => void;
106
90
  };
91
+ export declare function extractSamplesFromDesignData(rawData: Record<string, unknown>): (ParsedCsvData & {
92
+ sampleTypeHints: (string | undefined)[];
93
+ }) | null;
@@ -0,0 +1,32 @@
1
+ import { Ref } from 'vue';
2
+ import { useAutoGroup } from './useAutoGroup';
3
+ import { UseApiReturn } from './useApi';
4
+ import { WizardStep } from '../types/components';
5
+ type AutoGroupController = ReturnType<typeof useAutoGroup>;
6
+ type ReadableRef<T> = Readonly<Ref<T>>;
7
+ type AutoGroupApi = Pick<UseApiReturn, 'get'>;
8
+ export interface UseAutoGroupInputSourcesOptions {
9
+ autoGroup: AutoGroupController;
10
+ samples: ReadableRef<readonly string[]>;
11
+ experimentId: ReadableRef<number | undefined>;
12
+ designData: ReadableRef<Record<string, unknown> | undefined>;
13
+ currentStep: Ref<number>;
14
+ dynamicSteps: ReadableRef<readonly WizardStep[]>;
15
+ api?: AutoGroupApi;
16
+ }
17
+ /** Manages AutoGroupModal input sources: pasted samples, CSV/TSV files, and experiment metadata. */
18
+ export declare function useAutoGroupInputSources(options: UseAutoGroupInputSourcesOptions): {
19
+ isDragOver: Ref<boolean, boolean>;
20
+ csvFileName: Ref<string, string>;
21
+ experimentLoading: Ref<boolean, boolean>;
22
+ experimentError: Ref<string | null, string | null>;
23
+ csvError: Ref<string | null, string | null>;
24
+ experimentFieldNames: import('vue').ComputedRef<string[]>;
25
+ initializeInputSources: () => Promise<void>;
26
+ fetchExperimentData: () => Promise<void>;
27
+ handleFileDrop: (event: DragEvent) => void;
28
+ handleFileInput: (event: Event) => void;
29
+ processFile: (file: File) => Promise<void>;
30
+ clearCsvFile: () => void;
31
+ };
32
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { getBioTemplateControlSchema, requireBioTemplateControlSchema, BioTemplateControlSchema, BioTemplateControlTarget } from '../templates/controlSchemas';
2
- import { ControlWorkspaceOptions, UseControlSchemaReturn } from './useControlSchema';
2
+ import { ControlWorkspaceOptions, UseControlSchemaReturn } from './controlSchemaTypes';
3
3
  export { getBioTemplateControlSchema, requireBioTemplateControlSchema, };
4
4
  export type { BioTemplateControlSchema, BioTemplateControlTarget, };
5
5
  /** Build FormBuilder schema, AppSidebar panels, and defaults for a built-in biology template or preset. */
@@ -1,7 +1,7 @@
1
1
  import { ComputedRef, Ref } from 'vue';
2
2
  import { PillNavItem } from '../types';
3
3
  import { BioTemplateControlValues, BioTemplatePresetEntry, TemplateCollectionEnvelope, TemplatePresetId } from '../templates';
4
- import { ControlWorkspaceOptions, ControlWorkspaceFormBinding, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn } from './useControlSchema';
4
+ import { ControlWorkspaceOptions, ControlWorkspaceFormBinding, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn } from './controlSchemaTypes';
5
5
  import { UseTemplateCollectionOptions, UseTemplateCollectionReturn } from './useTemplateCollection';
6
6
  import { BioTemplateRendererBinding, UseBioTemplateWorkspaceReturn } from './useBioTemplateWorkspace';
7
7
  import { BioTemplateComponentBinding, BioTemplateComponentBindingsById, BioTemplateComponentImport, BioTemplateComponentPropsByComponent, BioTemplateComponentPropsBinding, BioTemplateComponentPropsById, BioTemplateComponentSnippet, BioTemplateComponentUsage } from './useBioTemplateComponents';
@@ -1,5 +1,5 @@
1
1
  import { BioTemplateEnvelope, TemplateCollectionEnvelope } from '../templates';
2
- import { ControlWorkspaceFormBinding, ControlWorkspaceOptions, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn, UseControlWorkspaceReturn } from './useControlSchema';
2
+ import { ControlWorkspaceFormBinding, ControlWorkspaceOptions, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn, UseControlWorkspaceReturn } from './controlSchemaTypes';
3
3
  import { BioTemplateControlSchema, BioTemplateControlTarget } from './useBioTemplateControls';
4
4
  import { BioTemplateComponentBinding, BioTemplateComponentBindingsById, BioTemplateComponentImport, BioTemplateComponentPropsByComponent, BioTemplateComponentPropsBinding, BioTemplateComponentPropsById, BioTemplateComponentSnippet, BioTemplateComponentUsage, UseBioTemplateComponentsReturn } from './useBioTemplateComponents';
5
5
  export type BioTemplateWorkspaceTarget = BioTemplateControlTarget;
@@ -1,354 +1,16 @@
1
- import { ComputedRef, Ref } from 'vue';
2
- import { PillNavItem, SidebarToolSection, SelectOption, SettingsModalSchema, TopBarSettingsConfig } from '../types';
3
- import { AccessPolicy, AccessAudienceInput } from '../permissions';
4
- import { FieldCondition, FieldValidation, FormFieldSchema, FormFieldType, FormSchema, FormSectionSchema } from '../types/form-builder';
5
- import { WellConcentration } from './useDoseCalculator';
6
- export type ControlOptionValue = string | number | boolean;
7
- export type ControlOption = ControlOptionValue | SelectOption<unknown>;
8
- export type ControlPrimitive = string | number | boolean;
9
- export type ControlShorthand = ControlPrimitive | readonly ControlOption[];
10
- export type ControlInput = ControlDefinition | ControlShorthand;
11
- export interface ControlSectionConfig {
12
- id?: string;
13
- label?: string;
14
- title?: string;
15
- description?: string;
16
- subtitle?: string;
17
- icon?: string | string[];
18
- iconColor?: string;
19
- iconBg?: string;
20
- columns?: 1 | 2 | 3;
21
- condition?: FieldCondition;
22
- access?: AccessPolicy;
23
- visibleFor?: AccessAudienceInput;
24
- requiresAdmin?: boolean;
25
- permissions?: readonly string[];
26
- anyPermissions?: readonly string[];
27
- defaultOpen?: boolean;
28
- showToggle?: boolean;
29
- }
30
- export interface ControlViewConfig {
31
- label?: string;
32
- icon?: string;
33
- to?: string;
34
- href?: string;
35
- disabled?: boolean;
36
- children?: PillNavItem['children'];
37
- }
38
- export interface ControlSidebarConfig extends Omit<ControlSectionConfig, 'id' | 'title' | 'description' | 'columns'> {
39
- enabled?: boolean;
40
- }
41
- export interface ControlDefinition {
42
- type?: FormFieldType;
43
- label?: string;
44
- default?: unknown;
45
- defaultValue?: unknown;
46
- placeholder?: string;
47
- hint?: string;
48
- size?: 'sm' | 'md' | 'lg';
49
- disabled?: boolean;
50
- readonly?: boolean;
51
- required?: boolean | string;
52
- min?: number | {
53
- value: number;
54
- message: string;
55
- };
56
- max?: number | {
57
- value: number;
58
- message: string;
59
- };
60
- minLength?: number | {
61
- value: number;
62
- message: string;
63
- };
64
- maxLength?: number | {
65
- value: number;
66
- message: string;
67
- };
68
- email?: boolean | string;
69
- pattern?: string | {
70
- value: string;
71
- message: string;
72
- };
73
- validation?: FieldValidation;
74
- condition?: FieldCondition;
75
- access?: AccessPolicy;
76
- visibleFor?: AccessAudienceInput;
77
- requiresAdmin?: boolean;
78
- permissions?: readonly string[];
79
- anyPermissions?: readonly string[];
80
- options?: readonly ControlOption[];
81
- section?: string;
82
- sectionLabel?: string;
83
- sectionDescription?: string;
84
- sectionSubtitle?: string;
85
- view?: string;
86
- order?: number;
87
- colSpan?: number;
88
- props?: Record<string, unknown>;
89
- sidebar?: boolean | ControlSidebarConfig;
90
- }
91
- export type ControlSchema = Record<string, ControlInput>;
92
- export type ControlFormSchema = Extract<FormSchema, {
93
- sections: FormSectionSchema[];
94
- }>;
95
- export interface ControlSchemaOptions {
96
- view?: string;
97
- views?: Record<string, ControlViewConfig>;
98
- section?: string;
99
- sectionLabel?: string;
100
- sections?: Record<string, ControlSectionConfig>;
101
- columns?: 1 | 2 | 3;
102
- submitLabel?: string;
103
- cancelLabel?: string;
104
- showCancel?: boolean;
105
- }
106
- export interface ControlWorkspaceOptions extends ControlSchemaOptions {
107
- initialValues?: Record<string, unknown>;
108
- topBarSettings?: Omit<TopBarSettingsConfig, 'schema' | 'controls' | 'controlOptions' | 'values'>;
109
- }
110
- export interface ControlModelSectionConfig extends ControlSectionConfig {
111
- controls: ControlSchema;
112
- sidebar?: boolean | ControlSidebarConfig;
113
- }
114
- export interface ControlModelViewConfig extends ControlViewConfig {
115
- controls?: ControlSchema;
116
- section?: string;
117
- sectionLabel?: string;
118
- sectionDescription?: string;
119
- sections?: Record<string, ControlModelSectionConfig>;
120
- }
121
- export interface ControlModel extends Omit<ControlWorkspaceOptions, 'sections' | 'views'> {
122
- controls?: ControlSchema;
123
- sections?: Record<string, ControlModelSectionConfig>;
124
- views?: Record<string, ControlModelViewConfig>;
125
- /** Optional SDK component bindings returned with generated component props for custom workspace slots. */
126
- componentBindings?: ControlComponentBindingsConfig;
127
- /** Alias for componentBindings in raw control models. */
128
- components?: ControlComponentBindingsConfig;
129
- /** Optional ControlWorkspaceView componentProps mapping returned with the generated controls/options. */
130
- componentProps?: ControlComponentPropsMap;
131
- /** Optional named componentProps mappings returned for multiple SDK components. */
132
- componentPropsById?: ControlComponentPropsByIdMap;
133
- }
134
- export interface ControlModelBinding {
135
- controls: ControlSchema;
136
- controlOptions: ControlWorkspaceOptions;
137
- componentBindings?: ControlComponentBindingsConfig;
138
- componentProps?: ControlComponentPropsMap;
139
- componentPropsById?: ControlComponentPropsByIdMap;
140
- }
141
- export interface ControlSidebarBinding {
142
- panels: Record<string, SidebarToolSection[]>;
143
- forms: Record<string, ControlFormSchema>;
144
- viewIds: string[];
145
- viewItems: PillNavItem[];
146
- defaultView: string;
147
- }
148
- export interface ControlFormBinding {
149
- schema: ControlFormSchema;
150
- }
151
- export interface ControlSettingsBinding {
152
- schema: SettingsModalSchema;
153
- }
154
- export interface ControlTopBarSettingsBinding {
155
- showSettings: true;
156
- settingsConfig: TopBarSettingsConfig;
157
- }
158
- export interface ControlWorkspaceFormBinding extends ControlFormBinding {
159
- modelValue: Record<string, unknown>;
160
- 'onUpdate:modelValue': (values: Record<string, unknown>) => void;
161
- }
162
- export interface ControlWorkspaceSidebarBinding extends ControlSidebarBinding {
163
- activeView: string;
164
- modelValue: Record<string, unknown>;
165
- 'onUpdate:modelValue': (values: Record<string, unknown>) => void;
166
- values: Record<string, unknown>;
167
- 'onUpdate:values': (values: Record<string, unknown>) => void;
168
- }
169
- export interface ControlWorkspaceTopBarSettingsBinding extends ControlTopBarSettingsBinding {
170
- onSettingsValuesChange: (values: Record<string, unknown>) => void;
171
- }
172
- export interface ControlWorkspacePillNavBinding {
173
- items: PillNavItem[];
174
- currentItemId: string;
175
- onSelect: (item: PillNavItem) => void;
176
- }
177
- export interface ControlWorkspaceTopBarBinding extends ControlWorkspaceTopBarSettingsBinding {
178
- pillNav: PillNavItem[];
179
- currentPillId: string;
180
- onPillSelect: (item: PillNavItem) => void;
181
- }
182
- export type ControlWorkspaceAppTopBarPillBinding = ControlWorkspaceTopBarBinding;
183
- export interface ControlWorkspaceComponentBindings {
184
- form: ControlWorkspaceFormBinding;
185
- sidebar: ControlWorkspaceSidebarBinding;
186
- topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
187
- topBarSettings: ControlWorkspaceTopBarSettingsBinding;
188
- pillNav: ControlWorkspacePillNavBinding;
189
- componentBindings: ComputedRef<ControlComponentBinding[]>;
190
- componentBindingsById: ComputedRef<ControlComponentBindingsById>;
191
- componentProps: ComputedRef<Record<string, unknown>>;
192
- componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
193
- }
194
- export type ControlComponentPropSource<TValues extends Record<string, unknown> = Record<string, unknown>> = (keyof TValues & string) | ((values: TValues) => unknown);
195
- export type ControlComponentPropsMap<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly (keyof TValues & string)[] | Record<string, ControlComponentPropSource<TValues>>;
196
- export type ControlComponentPropsByIdMap<TValues extends Record<string, unknown> = Record<string, unknown>> = Record<string, ControlComponentPropsMap<TValues>>;
197
- export interface ControlComponentBindingConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
198
- id?: string;
199
- component: string;
200
- props?: ControlComponentPropsMap<TValues>;
201
- }
202
- export interface ControlComponentBindingRecordConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
203
- component: string;
204
- props?: ControlComponentPropsMap<TValues>;
205
- }
206
- export type ControlComponentBindingsConfig<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly ControlComponentBindingConfig<TValues>[] | Record<string, ControlComponentBindingRecordConfig<TValues>>;
207
- export interface ControlComponentBinding {
208
- id: string;
209
- component: string;
210
- props: Record<string, unknown>;
211
- }
212
- export type ControlComponentBindingsById = Record<string, ControlComponentBinding>;
213
- export interface WellPlateControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
214
- selectedWells?: ControlComponentPropSource<TValues>;
215
- format?: ControlComponentPropSource<TValues>;
216
- wells?: ControlComponentPropSource<TValues>;
217
- disabled?: ControlComponentPropSource<TValues>;
218
- readonly?: ControlComponentPropSource<TValues>;
219
- showLegend?: ControlComponentPropSource<TValues>;
220
- showSampleTypeIndicator?: ControlComponentPropSource<TValues>;
221
- /** Listener for WellPlate v-model updates. Set false to keep generated props one-way. */
222
- onUpdateModelValue?: ((values: TValues) => (wellIds: string[]) => void) | false;
223
- }
224
- export interface DoseCalculatorControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
225
- mode?: ControlComponentPropSource<TValues>;
226
- targetWells?: ControlComponentPropSource<TValues>;
227
- /** Control value key used by the default apply-to-wells handler. */
228
- wells?: ControlComponentPropSource<TValues>;
229
- disabled?: ControlComponentPropSource<TValues>;
230
- molecularWeight?: ControlComponentPropSource<TValues>;
231
- /** Listener for DoseCalculator apply-to-wells. Set false to keep generated props one-way. */
232
- onApplyToWells?: ((values: TValues) => (results: WellConcentration[]) => void) | false;
233
- }
234
- export interface WellPlateDoseControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
235
- plateId?: string;
236
- doseId?: string;
237
- plate?: WellPlateControlPropsOptions<TValues>;
238
- dose?: DoseCalculatorControlPropsOptions<TValues>;
239
- }
240
- export interface DoseDesignControlModelOptions {
241
- viewId?: string;
242
- viewLabel?: string;
243
- sectionId?: string;
244
- sectionLabel?: string;
245
- sectionDescription?: string;
246
- selectedWells?: readonly string[];
247
- plateFormat?: number;
248
- plateFormats?: readonly number[];
249
- doseMode?: 'serial' | 'dilution' | 'conversion';
250
- doseModes?: readonly ('serial' | 'dilution' | 'conversion')[];
251
- disabled?: boolean;
252
- includeMolecularWeight?: boolean;
253
- molecularWeight?: number;
254
- componentProps?: WellPlateDoseControlPropsOptions;
255
- }
256
- export interface UseControlSchemaReturn<TControls extends ControlSchema> {
257
- controls: TControls;
258
- fields: FormFieldSchema[];
259
- formSchema: ControlFormSchema;
260
- form: ControlFormBinding;
261
- settingsSchema: SettingsModalSchema;
262
- settings: ControlSettingsBinding;
263
- topBarSettingsConfig: TopBarSettingsConfig;
264
- topBarSettings: ControlTopBarSettingsBinding;
265
- sidebarPanels: Record<string, SidebarToolSection[]>;
266
- viewIds: string[];
267
- viewItems: PillNavItem[];
268
- defaultView: string;
269
- sectionSchemas: Record<string, ControlFormSchema>;
270
- sidebar: ControlSidebarBinding;
271
- initialValues: ControlValues<TControls>;
272
- sectionSchema: (sectionId: string) => ControlFormSchema;
273
- }
274
- export interface UseControlWorkspaceReturn<TControls extends ControlSchema> extends Omit<UseControlSchemaReturn<TControls>, 'form' | 'sidebar' | 'topBarSettings'> {
275
- schema: UseControlSchemaReturn<TControls>;
276
- values: ControlValues<TControls> & Record<string, unknown>;
277
- activeView: Ref<string>;
278
- form: ControlWorkspaceFormBinding;
279
- sidebar: ControlWorkspaceSidebarBinding;
280
- topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
281
- pillNav: ControlWorkspacePillNavBinding;
282
- topBarSettings: ControlWorkspaceTopBarSettingsBinding;
283
- bindings: ControlWorkspaceComponentBindings;
284
- componentBindings: ComputedRef<ControlComponentBinding[]>;
285
- componentBindingsById: ComputedRef<ControlComponentBindingsById>;
286
- componentProps: ComputedRef<Record<string, unknown>>;
287
- componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
288
- setActiveView: (viewId: string) => void;
289
- setValues: (values: Record<string, unknown>) => void;
290
- resetValues: (values?: Record<string, unknown>) => void;
291
- getComponentProps: (mapping?: ControlComponentPropsMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, unknown>;
292
- getComponentPropsById: (mappings?: ControlComponentPropsByIdMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, Record<string, unknown>>;
293
- getComponentBindings: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBinding[];
294
- getComponentBindingsById: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBindingsById;
295
- }
296
- export type ControlValues<TControls extends ControlSchema> = {
297
- [K in keyof TControls]: ControlValue<TControls[K]>;
298
- };
299
- type ControlValue<TControl> = TControl extends {
300
- default: infer TDefault;
301
- } ? TDefault : TControl extends {
302
- defaultValue: infer TDefaultValue;
303
- } ? TDefaultValue : TControl extends readonly [infer First, ...unknown[]] ? OptionValue<First> : TControl extends ControlPrimitive ? TControl : unknown;
304
- type OptionValue<TOption> = TOption extends SelectOption<infer TValue> ? TValue : TOption;
1
+ import { ControlComponentBindingsConfig, ControlSchema, ControlSchemaOptions, ControlValues, UseControlSchemaReturn } from './controlSchemaTypes';
2
+ export type * from './controlSchemaTypes';
3
+ export { mergeControlWorkspaceOptions, } from './controlWorkspaceOptions';
4
+ export { useControlWorkspace, } from './useControlWorkspace';
5
+ export { controlValuesToComponentBindings, controlValuesToComponentBindingsById, controlValuesToComponentProps, } from './controlComponentBindings';
6
+ export { controlsToFormSchema, controlsToSectionFormSchema, controlsToSectionFormSchemas, controlsToSettingsSchema, controlsToSidebarPanels, controlsToTopBarSettingsConfig, controlsToViewIds, controlsToViewItems, getDefaultControlView, } from './controlSchemaAdapters';
7
+ export { defineControlModel, isControlModelBinding, resolveControlModel, } from './controlSchemaModel';
8
+ export { defineDoseCalculatorControlProps, defineDoseDesignControlModel, defineWellPlateControlProps, defineWellPlateDoseComponentBindings, defineWellPlateDoseControlProps, } from './controlSchemaDoseDesign';
305
9
  /** Preserve literal control keys while marking an object as a MINT control schema. */
306
10
  export declare function defineControls<TControls extends ControlSchema>(controls: TControls): TControls;
307
11
  /** Preserve literal SDK component binding ids while marking an object as generated workspace component bindings. */
308
12
  export declare function defineControlComponentBindings<TBindings extends ControlComponentBindingsConfig>(bindings: TBindings): TBindings;
309
- /** Create a complete workspace component binding from a simple controls data model for ControlWorkspaceView, generated forms, and sidebars. */
310
- export declare function defineControlModel(model: ControlModel): ControlModelBinding;
311
13
  /** Build default values for a control schema, matching FormBuilder field defaults. */
312
14
  export declare function getControlDefaults<TControls extends ControlSchema>(controls: TControls): ControlValues<TControls>;
313
- /** Map control workspace values into component props for direct `v-bind` usage. */
314
- export declare function controlValuesToComponentProps<TValues extends Record<string, unknown>>(values: TValues, mapping?: ControlComponentPropsMap<TValues>): Record<string, unknown>;
315
- /** Map control workspace values into named SDK component bindings for direct slot rendering. */
316
- export declare function controlValuesToComponentBindings<TValues extends Record<string, unknown>>(values: TValues, bindings?: ControlComponentBindingsConfig<TValues>): ControlComponentBinding[];
317
- /** Map control workspace values into SDK component bindings keyed by binding id. */
318
- export declare function controlValuesToComponentBindingsById<TValues extends Record<string, unknown>>(values: TValues, bindings?: ControlComponentBindingsConfig<TValues>): ControlComponentBindingsById;
319
- /** Return a default WellPlate prop mapping for generated control workspaces. */
320
- export declare function defineWellPlateControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
321
- /** Return a default DoseCalculator prop mapping for generated control workspaces. */
322
- export declare function defineDoseCalculatorControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: DoseCalculatorControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
323
- /** Return named WellPlate + DoseCalculator prop mappings for one dose-design control model. */
324
- export declare function defineWellPlateDoseControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentPropsByIdMap<TValues>;
325
- /** Return named WellPlate + DoseCalculator component bindings for one dose-design control model. */
326
- export declare function defineWellPlateDoseComponentBindings<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentBindingsConfig<TValues>;
327
- /** Return a complete ControlWorkspaceView model for WellPlate + DoseCalculator dose design. */
328
- export declare function defineDoseDesignControlModel(options?: DoseDesignControlModelOptions): ControlModelBinding;
329
- export declare function mergeControlWorkspaceOptions(base?: ControlWorkspaceOptions, override?: ControlWorkspaceOptions): ControlWorkspaceOptions;
330
- /** Convert a compact control schema into a FormBuilder schema. */
331
- export declare function controlsToFormSchema(controls: ControlSchema, options?: ControlSchemaOptions): ControlFormSchema;
332
- /** Convert controls into AppSidebar panels grouped by view and section. */
333
- export declare function controlsToSidebarPanels(controls: ControlSchema, options?: ControlSchemaOptions): Record<string, SidebarToolSection[]>;
334
- /** Convert controls into a SettingsModal schema grouped by the same sections. */
335
- export declare function controlsToSettingsSchema(controls: ControlSchema, options?: ControlSchemaOptions): SettingsModalSchema;
336
- /** Convert controls into an AppTopBar settingsConfig object that passes compact controls through to SettingsModal. */
337
- export declare function controlsToTopBarSettingsConfig(controls: ControlSchema, options?: ControlSchemaOptions, config?: Omit<TopBarSettingsConfig, 'schema' | 'controls' | 'controlOptions'>): TopBarSettingsConfig;
338
- /** Return generated control view IDs that have at least one sidebar panel. */
339
- export declare function controlsToViewIds(controls: ControlSchema, options?: ControlSchemaOptions): string[];
340
- /** Return AppTopBar pillNav-compatible view items for switching generated control sidebars. */
341
- export declare function controlsToViewItems(controls: ControlSchema, options?: ControlSchemaOptions): PillNavItem[];
342
- /** Return the first generated sidebar view ID, or an empty string when controls render no sidebar panels. */
343
- export declare function getDefaultControlView(controls: ControlSchema, options?: ControlSchemaOptions): string;
344
- /** Return a headerless single-section FormBuilder schema for rendering inside an AppSidebar section slot. */
345
- export declare function controlsToSectionFormSchema(controls: ControlSchema, sectionId: string, options?: ControlSchemaOptions): ControlFormSchema;
346
- /** Return headerless FormBuilder schemas keyed by section ID for AppSidebar auto-rendering. */
347
- export declare function controlsToSectionFormSchemas(controls: ControlSchema, options?: ControlSchemaOptions): Record<string, ControlFormSchema>;
348
15
  /** Prepare FormBuilder, SettingsModal, AppTopBar settings, AppSidebar, and initial values from one compact control model. */
349
16
  export declare function useControlSchema<TControls extends ControlSchema>(controls: TControls, options?: ControlSchemaOptions): UseControlSchemaReturn<TControls>;
350
- /** Prepare shared reactive values plus AppTopBar/AppSidebar/FormBuilder bindings from one simple controls data model. */
351
- export declare function useControlWorkspace<TControls extends ControlSchema>(controlsOrModel: TControls | (ControlModelBinding & {
352
- controls: TControls;
353
- }), options?: ControlWorkspaceOptions): UseControlWorkspaceReturn<TControls>;
354
- export {};
@@ -0,0 +1,5 @@
1
+ import { ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from './controlSchemaTypes';
2
+ /** Prepare shared reactive values plus AppTopBar/AppSidebar/FormBuilder bindings from one simple controls data model. */
3
+ export declare function useControlWorkspace<TControls extends ControlSchema>(controlsOrModel: TControls | (ControlModelBinding & {
4
+ controls: TControls;
5
+ }), options?: ControlWorkspaceOptions): UseControlWorkspaceReturn<TControls>;
@@ -1,37 +1,6 @@
1
1
  import { Ref } from 'vue';
2
- /**
3
- * Validation rule function type.
4
- * Returns error message string if invalid, undefined/null if valid.
5
- */
6
- export type ValidationRule<T = unknown> = (value: T, formData: Record<string, unknown>) => string | undefined | null;
7
- /**
8
- * Field validation rules configuration.
9
- */
10
- export interface FieldRules<T = unknown> {
11
- required?: boolean | string;
12
- minLength?: number | {
13
- value: number;
14
- message: string;
15
- };
16
- maxLength?: number | {
17
- value: number;
18
- message: string;
19
- };
20
- min?: number | {
21
- value: number;
22
- message: string;
23
- };
24
- max?: number | {
25
- value: number;
26
- message: string;
27
- };
28
- pattern?: RegExp | {
29
- value: RegExp;
30
- message: string;
31
- };
32
- email?: boolean | string;
33
- custom?: ValidationRule<T> | ValidationRule<T>[];
34
- }
2
+ import { FieldRules } from './useFormValidation';
3
+ export type { FieldRules, ValidationRule } from './useFormValidation';
35
4
  /**
36
5
  * Field validation rules configuration.
37
6
  */