@morscherlab/mint-sdk 1.0.0-beta.2 → 1.0.0-beta.4

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 (427) hide show
  1. package/README.md +225 -6
  2. package/dist/__tests__/components/ActionItem.test.d.ts +1 -0
  3. package/dist/__tests__/components/AppAvatarMenu.test.d.ts +1 -0
  4. package/dist/__tests__/components/AppPageSelector.test.d.ts +1 -0
  5. package/dist/__tests__/components/AppPillNav.test.d.ts +1 -0
  6. package/dist/__tests__/components/AppPluginSwitcher.test.d.ts +1 -0
  7. package/dist/__tests__/components/AppToastContainer.test.d.ts +1 -0
  8. package/dist/__tests__/components/BaseRadioGroup.test.d.ts +1 -0
  9. package/dist/__tests__/components/BaseSelect.test.d.ts +1 -0
  10. package/dist/__tests__/components/BaseTabs.test.d.ts +1 -0
  11. package/dist/__tests__/components/BatchProgressList.test.d.ts +1 -0
  12. package/dist/__tests__/components/BioTemplateExperimentWorkspaceView.test.d.ts +1 -0
  13. package/dist/__tests__/components/BioTemplatePackWorkspaceView.test.d.ts +1 -0
  14. package/dist/__tests__/components/BioTemplatePresetWorkspaceView.test.d.ts +1 -0
  15. package/dist/__tests__/components/BioTemplateRenderer.test.d.ts +1 -0
  16. package/dist/__tests__/components/Breadcrumb.test.d.ts +1 -0
  17. package/dist/__tests__/components/CalendarGridPanel.test.d.ts +1 -0
  18. package/dist/__tests__/components/ComponentBindingRenderer.test.d.ts +1 -0
  19. package/dist/__tests__/components/ConcentrationInput.test.d.ts +1 -0
  20. package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
  21. package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
  22. package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
  23. package/dist/__tests__/components/DoseDesignWorkspaceView.test.d.ts +1 -0
  24. package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
  25. package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
  26. package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
  27. package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
  28. package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
  29. package/dist/__tests__/components/PluginWorkspaceView.test.d.ts +1 -0
  30. package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
  31. package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
  32. package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
  33. package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
  34. package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
  35. package/dist/__tests__/components/SettingsModal.test.d.ts +1 -0
  36. package/dist/__tests__/components/TagsInput.test.d.ts +1 -0
  37. package/dist/__tests__/components/ThemeToggle.test.d.ts +1 -0
  38. package/dist/__tests__/components/TimePicker.test.d.ts +1 -0
  39. package/dist/__tests__/composables/experiment-utils.test.d.ts +1 -0
  40. package/dist/__tests__/composables/useApi.test.d.ts +1 -0
  41. package/dist/__tests__/composables/useBioTemplatePackWorkspace.test.d.ts +1 -0
  42. package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
  43. package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
  44. package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
  45. package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
  46. package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
  47. package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
  48. package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
  49. package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
  50. package/dist/__tests__/composables/useExperimentData.test.d.ts +1 -0
  51. package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
  52. package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
  53. package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
  54. package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
  55. package/dist/__tests__/composables/usePluginConfig.test.d.ts +1 -0
  56. package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
  57. package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
  58. package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
  59. package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
  60. package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
  61. package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
  62. package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
  63. package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
  64. package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
  65. package/dist/__tests__/templates/templates.test.d.ts +1 -0
  66. package/dist/{auth-DsI0rQ7_.js → auth-QQj2kkze.js} +12 -5
  67. package/dist/auth-QQj2kkze.js.map +1 -0
  68. package/dist/components/AppAvatarMenu.vue.d.ts +2 -7
  69. package/dist/components/AppContainer.vue.d.ts +1 -1
  70. package/dist/components/AppLayout.vue.d.ts +20 -1
  71. package/dist/components/AppSidebar.vue.d.ts +111 -6
  72. package/dist/components/AppTopBar.vue.d.ts +35 -22
  73. package/dist/components/BaseButton.vue.d.ts +1 -1
  74. package/dist/components/BaseCheckbox.vue.d.ts +1 -1
  75. package/dist/components/BaseInput.vue.d.ts +2 -2
  76. package/dist/components/BasePill.vue.d.ts +2 -2
  77. package/dist/components/BaseRadioGroup.vue.d.ts +3 -3
  78. package/dist/components/BaseSelect.vue.d.ts +3 -3
  79. package/dist/components/BaseTabs.vue.d.ts +2 -2
  80. package/dist/components/BaseTextarea.vue.d.ts +1 -1
  81. package/dist/components/BaseToggle.vue.d.ts +1 -1
  82. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +119 -0
  83. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +93 -0
  84. package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +87 -0
  85. package/dist/components/BioTemplateRenderer.vue.d.ts +29 -0
  86. package/dist/components/Breadcrumb.vue.d.ts +2 -2
  87. package/dist/components/Calendar.vue.d.ts +1 -1
  88. package/dist/components/CollapsibleCard.vue.d.ts +1 -1
  89. package/dist/components/ComponentBindingRenderer.vue.d.ts +44 -0
  90. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  91. package/dist/components/ConfirmDialog.vue.d.ts +2 -2
  92. package/dist/components/ControlWorkspaceView.vue.d.ts +147 -0
  93. package/dist/components/DatePicker.vue.d.ts +1 -1
  94. package/dist/components/DateTimePicker.vue.d.ts +3 -3
  95. package/dist/components/Divider.vue.d.ts +1 -1
  96. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +149 -0
  97. package/dist/components/DropdownButton.vue.d.ts +3 -3
  98. package/dist/components/EmptyState.vue.d.ts +1 -2
  99. package/dist/components/ExperimentDataViewer.vue.d.ts +1 -1
  100. package/dist/components/ExperimentTimeline.vue.d.ts +2 -2
  101. package/dist/components/FileUploader.vue.d.ts +1 -1
  102. package/dist/components/FitPanel.vue.d.ts +1 -1
  103. package/dist/components/FormActions.vue.d.ts +4 -4
  104. package/dist/components/FormBuilder.vue.d.ts +31 -17
  105. package/dist/components/FormulaInput.vue.d.ts +2 -2
  106. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  107. package/dist/components/MultiSelect.vue.d.ts +3 -3
  108. package/dist/components/NumberInput.vue.d.ts +1 -1
  109. package/dist/components/PlateMapEditor.vue.d.ts +1 -1
  110. package/dist/components/PluginWorkspaceView.vue.d.ts +310 -0
  111. package/dist/components/ProgressBar.vue.d.ts +1 -1
  112. package/dist/components/ProtocolStepEditor.vue.d.ts +3 -1
  113. package/dist/components/RackEditor.vue.d.ts +2 -2
  114. package/dist/components/SampleLegend.vue.d.ts +2 -2
  115. package/dist/components/ScheduleCalendar.vue.d.ts +2 -2
  116. package/dist/components/SegmentedControl.vue.d.ts +2 -2
  117. package/dist/components/SequenceInput.vue.d.ts +3 -3
  118. package/dist/components/SettingsModal.vue.d.ts +14 -6
  119. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  120. package/dist/components/TagsInput.vue.d.ts +3 -2
  121. package/dist/components/TimePicker.vue.d.ts +3 -3
  122. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  123. package/dist/components/UnitInput.vue.d.ts +2 -2
  124. package/dist/components/WellPlate.vue.d.ts +6 -6
  125. package/dist/components/index.d.ts +9 -8
  126. package/dist/components/index.js +3 -3
  127. package/dist/components/{SettingsButton.vue.d.ts → internal/ActionItemInternal.vue.d.ts} +11 -9
  128. package/dist/components/{AppPageSelector.vue.d.ts → internal/AppPageSelectorInternal.vue.d.ts} +3 -6
  129. package/dist/components/{AppPillNav.vue.d.ts → internal/AppPillNavInternal.vue.d.ts} +4 -2
  130. package/dist/components/internal/CalendarGridPanelInternal.vue.d.ts +25 -0
  131. package/dist/components/{FormFieldRenderer.vue.d.ts → internal/FormFieldRendererInternal.vue.d.ts} +2 -2
  132. package/dist/components/{FormSection.vue.d.ts → internal/FormSectionRenderer.vue.d.ts} +7 -7
  133. package/dist/components/{WellEditPopup.vue.d.ts → internal/WellEditPopupInternal.vue.d.ts} +1 -1
  134. package/dist/{components-_XqPEhP9.js → components-BkGF4B4y.js} +9760 -8471
  135. package/dist/components-BkGF4B4y.js.map +1 -0
  136. package/dist/composables/experiment-utils.d.ts +8 -0
  137. package/dist/composables/index.d.ts +22 -5
  138. package/dist/composables/index.js +4 -3
  139. package/dist/composables/platformContextHelpers.d.ts +14 -0
  140. package/dist/composables/useAppExperiment.d.ts +31 -2
  141. package/dist/composables/useBioTemplateComponents.d.ts +22 -0
  142. package/dist/composables/useBioTemplateControls.d.ts +6 -0
  143. package/dist/composables/useBioTemplatePackWorkspace.d.ts +46 -0
  144. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +75 -0
  145. package/dist/composables/useBioTemplateWorkspace.d.ts +51 -0
  146. package/dist/composables/useCalendarGrid.d.ts +26 -0
  147. package/dist/composables/useControlSchema.d.ts +343 -0
  148. package/dist/composables/useDebouncedWatch.d.ts +20 -0
  149. package/dist/composables/useDropdownState.d.ts +19 -0
  150. package/dist/composables/useEventListener.d.ts +13 -0
  151. package/dist/composables/useExpansionSet.d.ts +21 -0
  152. package/dist/composables/useExperimentData.d.ts +10 -0
  153. package/dist/composables/useExperimentSave.d.ts +31 -2
  154. package/dist/composables/useExperimentSelector.d.ts +20 -0
  155. package/dist/composables/useForm.d.ts +2 -0
  156. package/dist/composables/useGroupAssignment.d.ts +31 -0
  157. package/dist/composables/useListSelection.d.ts +35 -0
  158. package/dist/composables/usePlatformContext.d.ts +21 -3
  159. package/dist/composables/usePluginClient.d.ts +112 -0
  160. package/dist/composables/usePluginConfig.d.ts +12 -0
  161. package/dist/composables/useRequestSyncState.d.ts +34 -0
  162. package/dist/composables/useSampleGroups.d.ts +32 -0
  163. package/dist/composables/useSelectionLimit.d.ts +17 -0
  164. package/dist/composables/useSortedItems.d.ts +32 -0
  165. package/dist/composables/useTemplateCollection.d.ts +58 -0
  166. package/dist/composables/useTextSearch.d.ts +18 -0
  167. package/dist/composables/useTimeUtils.d.ts +8 -0
  168. package/dist/{composables-tiZqLu1M.js → composables-CHsME9H1.js} +240 -146
  169. package/dist/composables-CHsME9H1.js.map +1 -0
  170. package/dist/index.d.ts +6 -4
  171. package/dist/index.js +6 -5
  172. package/dist/install.d.ts +7 -2
  173. package/dist/install.js +2 -2
  174. package/dist/install.js.map +1 -1
  175. package/dist/stores/index.js +1 -1
  176. package/dist/stores/settings.d.ts +4 -1
  177. package/dist/styles.css +4746 -5514
  178. package/dist/templates/adapters.d.ts +43 -0
  179. package/dist/templates/builders.d.ts +63 -0
  180. package/dist/templates/catalog.d.ts +188 -0
  181. package/dist/templates/componentBindings.d.ts +71 -0
  182. package/dist/templates/controlSchemas.d.ts +25 -0
  183. package/dist/templates/index.d.ts +15 -0
  184. package/dist/templates/index.js +2 -0
  185. package/dist/templates/lookup.d.ts +4 -0
  186. package/dist/templates/packs.d.ts +18 -0
  187. package/dist/templates/presets.d.ts +90 -0
  188. package/dist/templates/types.d.ts +531 -0
  189. package/dist/templates-B5jmTWuk.js +9388 -0
  190. package/dist/templates-B5jmTWuk.js.map +1 -0
  191. package/dist/types/components.d.ts +26 -23
  192. package/dist/types/form-builder.d.ts +6 -8
  193. package/dist/types/index.d.ts +2 -2
  194. package/dist/types/platform.d.ts +7 -1
  195. package/dist/useScheduleDrag-BgzpQT53.js +4414 -0
  196. package/dist/useScheduleDrag-BgzpQT53.js.map +1 -0
  197. package/dist/utils/formModelSync.d.ts +5 -0
  198. package/dist/utils/items.d.ts +8 -0
  199. package/dist/utils/options.d.ts +6 -0
  200. package/dist/utils/pluginIcon.d.ts +9 -0
  201. package/package.json +7 -2
  202. package/src/__tests__/components/ActionItem.test.ts +99 -0
  203. package/src/__tests__/components/AppAvatarMenu.test.ts +27 -0
  204. package/src/__tests__/components/AppLayout.test.ts +44 -0
  205. package/src/__tests__/components/AppPageSelector.test.ts +134 -0
  206. package/src/__tests__/components/AppPillNav.test.ts +125 -0
  207. package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
  208. package/src/__tests__/components/AppSidebar.test.ts +496 -0
  209. package/src/__tests__/components/AppToastContainer.test.ts +37 -0
  210. package/src/__tests__/components/AppTopBar.test.ts +455 -9
  211. package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
  212. package/src/__tests__/components/BaseSelect.test.ts +21 -0
  213. package/src/__tests__/components/BaseTabs.test.ts +25 -0
  214. package/src/__tests__/components/BatchProgressList.test.ts +52 -0
  215. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +159 -0
  216. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +175 -0
  217. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +306 -0
  218. package/src/__tests__/components/BioTemplateRenderer.test.ts +71 -0
  219. package/src/__tests__/components/Breadcrumb.test.ts +23 -0
  220. package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
  221. package/src/__tests__/components/ComponentBindingRenderer.test.ts +161 -0
  222. package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
  223. package/src/__tests__/components/ControlWorkspaceView.test.ts +1102 -0
  224. package/src/__tests__/components/DataFrame.test.ts +11 -0
  225. package/src/__tests__/components/DatePicker.test.ts +45 -0
  226. package/src/__tests__/components/DateTimePicker.test.ts +48 -0
  227. package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +185 -0
  228. package/src/__tests__/components/DropdownButton.test.ts +23 -0
  229. package/src/__tests__/components/EmptyState.test.ts +23 -0
  230. package/src/__tests__/components/ExperimentPopover.test.ts +56 -0
  231. package/src/__tests__/components/FormBuilder.test.ts +296 -0
  232. package/src/__tests__/components/GroupAssigner.test.ts +30 -0
  233. package/src/__tests__/components/MultiSelect.test.ts +48 -0
  234. package/src/__tests__/components/PluginWorkspaceView.test.ts +548 -0
  235. package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
  236. package/src/__tests__/components/ReagentList.test.ts +82 -0
  237. package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
  238. package/src/__tests__/components/SampleSelector.test.ts +60 -0
  239. package/src/__tests__/components/SegmentedControl.test.ts +24 -0
  240. package/src/__tests__/components/SettingsModal.test.ts +296 -0
  241. package/src/__tests__/components/TagsInput.test.ts +75 -0
  242. package/src/__tests__/components/ThemeToggle.test.ts +47 -0
  243. package/src/__tests__/components/TimePicker.test.ts +38 -0
  244. package/src/__tests__/composables/experiment-utils.test.ts +30 -0
  245. package/src/__tests__/composables/useApi.test.ts +30 -0
  246. package/src/__tests__/composables/useAppExperiment.test.ts +100 -1
  247. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +125 -0
  248. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
  249. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +104 -0
  250. package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
  251. package/src/__tests__/composables/useControlSchema.test.ts +1033 -0
  252. package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
  253. package/src/__tests__/composables/useDropdownState.test.ts +95 -0
  254. package/src/__tests__/composables/useEventListener.test.ts +116 -0
  255. package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
  256. package/src/__tests__/composables/useExperimentData.test.ts +4 -0
  257. package/src/__tests__/composables/useExperimentSave.test.ts +203 -8
  258. package/src/__tests__/composables/useExperimentSelector.test.ts +164 -0
  259. package/src/__tests__/composables/useForm.test.ts +58 -0
  260. package/src/__tests__/composables/useFormBuilder.test.ts +77 -0
  261. package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
  262. package/src/__tests__/composables/useListSelection.test.ts +66 -0
  263. package/src/__tests__/composables/usePluginClient.test.ts +541 -0
  264. package/src/__tests__/composables/usePluginConfig.test.ts +5 -0
  265. package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
  266. package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
  267. package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
  268. package/src/__tests__/composables/useSortedItems.test.ts +87 -0
  269. package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
  270. package/src/__tests__/composables/useTextSearch.test.ts +55 -0
  271. package/src/__tests__/composables/useTheme.test.ts +91 -0
  272. package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
  273. package/src/__tests__/docs/frontendDocsCatalog.test.ts +324 -0
  274. package/src/__tests__/fixtures/templates/dose-response.json +81 -0
  275. package/src/__tests__/fixtures/templates/plate-map.json +54 -0
  276. package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
  277. package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
  278. package/src/__tests__/templates/templates.test.ts +1055 -0
  279. package/src/components/AppAvatarMenu.vue +15 -69
  280. package/src/components/AppLayout.story.vue +64 -25
  281. package/src/components/AppLayout.vue +83 -2
  282. package/src/components/AppPluginSwitcher.vue +41 -145
  283. package/src/components/AppSidebar.story.vue +203 -1
  284. package/src/components/AppSidebar.vue +320 -25
  285. package/src/components/{ToastNotification.story.vue → AppToastContainer.story.vue} +6 -6
  286. package/src/components/{ToastNotification.vue → AppToastContainer.vue} +1 -1
  287. package/src/components/AppTopBar.story.vue +7 -33
  288. package/src/components/AppTopBar.vue +104 -300
  289. package/src/components/BaseModal.vue +3 -5
  290. package/src/components/BaseRadioGroup.vue +7 -3
  291. package/src/components/BaseSelect.vue +11 -7
  292. package/src/components/BaseTabs.vue +6 -4
  293. package/src/components/BatchProgressList.vue +5 -8
  294. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
  295. package/src/components/BioTemplateExperimentWorkspaceView.vue +343 -0
  296. package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
  297. package/src/components/BioTemplatePackWorkspaceView.vue +177 -0
  298. package/src/components/BioTemplatePresetWorkspaceView.story.vue +163 -0
  299. package/src/components/BioTemplatePresetWorkspaceView.vue +401 -0
  300. package/src/components/BioTemplateRenderer.story.vue +57 -0
  301. package/src/components/BioTemplateRenderer.vue +57 -0
  302. package/src/components/Breadcrumb.vue +14 -8
  303. package/src/components/ComponentBindingRenderer.story.vue +57 -0
  304. package/src/components/ComponentBindingRenderer.vue +308 -0
  305. package/src/components/ConcentrationInput.vue +27 -64
  306. package/src/components/ControlWorkspaceView.story.vue +347 -0
  307. package/src/components/ControlWorkspaceView.vue +378 -0
  308. package/src/components/DataFrame.vue +34 -50
  309. package/src/components/DatePicker.vue +59 -192
  310. package/src/components/DateTimePicker.vue +50 -171
  311. package/src/components/DoseDesignWorkspaceView.story.vue +77 -0
  312. package/src/components/DoseDesignWorkspaceView.vue +255 -0
  313. package/src/components/DropdownButton.vue +14 -32
  314. package/src/components/EmptyState.vue +4 -2
  315. package/src/components/ExperimentPopover.vue +7 -28
  316. package/src/components/ExperimentSelectorModal.vue +6 -5
  317. package/src/components/FormBuilder.story.vue +190 -0
  318. package/src/components/FormBuilder.vue +124 -27
  319. package/src/components/GroupAssigner.vue +24 -56
  320. package/src/components/MultiSelect.vue +17 -12
  321. package/src/components/PlateMapEditor.vue +3 -8
  322. package/src/components/PluginIcon.vue +2 -22
  323. package/src/components/PluginWorkspaceView.story.vue +334 -0
  324. package/src/components/PluginWorkspaceView.vue +708 -0
  325. package/src/components/ProtocolStepEditor.vue +13 -22
  326. package/src/components/ReagentList.vue +25 -33
  327. package/src/components/SampleHierarchyTree.vue +12 -23
  328. package/src/components/SampleSelector.vue +42 -122
  329. package/src/components/SegmentedControl.vue +7 -3
  330. package/src/components/SettingsModal.story.vue +88 -1
  331. package/src/components/SettingsModal.vue +120 -29
  332. package/src/components/TagsInput.vue +29 -14
  333. package/src/components/ThemeToggle.vue +9 -7
  334. package/src/components/TimePicker.vue +19 -41
  335. package/src/components/Tooltip.vue +7 -12
  336. package/src/components/WellPlate.vue +6 -12
  337. package/src/components/index.ts +9 -8
  338. package/src/components/internal/ActionItemInternal.vue +82 -0
  339. package/src/components/internal/AppPageSelectorInternal.vue +128 -0
  340. package/src/components/internal/AppPillNavInternal.vue +194 -0
  341. package/src/components/internal/CalendarGridPanelInternal.vue +120 -0
  342. package/src/components/{FormFieldRenderer.vue → internal/FormFieldRendererInternal.vue} +4 -12
  343. package/src/components/{FormSection.vue → internal/FormSectionRenderer.vue} +6 -18
  344. package/src/components/{WellEditPopup.vue → internal/WellEditPopupInternal.vue} +5 -10
  345. package/src/composables/experiment-utils.ts +26 -0
  346. package/src/composables/index.ts +229 -3
  347. package/src/composables/platformContextHelpers.ts +74 -0
  348. package/src/composables/useApi.ts +9 -2
  349. package/src/composables/useAppExperiment.ts +85 -13
  350. package/src/composables/useBioTemplateComponents.ts +105 -0
  351. package/src/composables/useBioTemplateControls.ts +41 -0
  352. package/src/composables/useBioTemplatePackWorkspace.ts +185 -0
  353. package/src/composables/useBioTemplatePresetWorkspace.ts +326 -0
  354. package/src/composables/useBioTemplateWorkspace.ts +141 -0
  355. package/src/composables/useCalendarGrid.ts +140 -0
  356. package/src/composables/useControlSchema.ts +1362 -0
  357. package/src/composables/useDebouncedWatch.ts +119 -0
  358. package/src/composables/useDropdownState.ts +83 -0
  359. package/src/composables/useEventListener.ts +111 -0
  360. package/src/composables/useExpansionSet.ts +117 -0
  361. package/src/composables/useExperimentData.ts +20 -11
  362. package/src/composables/useExperimentSave.ts +202 -50
  363. package/src/composables/useExperimentSelector.ts +86 -72
  364. package/src/composables/useForm.ts +49 -4
  365. package/src/composables/useFormBuilder.ts +93 -42
  366. package/src/composables/useGroupAssignment.ts +148 -0
  367. package/src/composables/useListSelection.ts +158 -0
  368. package/src/composables/usePluginClient.ts +466 -0
  369. package/src/composables/usePluginConfig.ts +34 -13
  370. package/src/composables/useRequestSyncState.ts +126 -0
  371. package/src/composables/useSampleGroups.ts +126 -0
  372. package/src/composables/useSelectionLimit.ts +57 -0
  373. package/src/composables/useSortedItems.ts +118 -0
  374. package/src/composables/useTemplateCollection.ts +229 -0
  375. package/src/composables/useTextSearch.ts +60 -0
  376. package/src/composables/useTheme.ts +2 -28
  377. package/src/composables/useTimeUtils.ts +26 -2
  378. package/src/composables/useWellPlateEditor.ts +13 -9
  379. package/src/index.ts +11 -348
  380. package/src/install.ts +11 -4
  381. package/src/stores/settings.ts +13 -9
  382. package/src/styles/components/app-layout.css +82 -0
  383. package/src/styles/components/app-page-selector.css +23 -0
  384. package/src/styles/components/app-pill-nav.css +77 -0
  385. package/src/styles/components/app-sidebar.css +119 -0
  386. package/src/styles/components/app-top-bar.css +0 -201
  387. package/src/styles/components/concentration-input.css +3 -142
  388. package/src/styles/components/empty-state.css +0 -16
  389. package/src/styles/components/theme-toggle.css +3 -66
  390. package/src/styles/index.css +0 -2
  391. package/src/templates/adapters.ts +785 -0
  392. package/src/templates/builders.ts +2149 -0
  393. package/src/templates/catalog.ts +245 -0
  394. package/src/templates/componentBindings.ts +653 -0
  395. package/src/templates/controlSchemas.ts +718 -0
  396. package/src/templates/index.ts +318 -0
  397. package/src/templates/lookup.ts +18 -0
  398. package/src/templates/packs.ts +156 -0
  399. package/src/templates/presets.ts +146 -0
  400. package/src/templates/types.ts +668 -0
  401. package/src/types/components.ts +39 -27
  402. package/src/types/form-builder.ts +7 -2
  403. package/src/types/index.ts +13 -3
  404. package/src/types/platform.ts +7 -1
  405. package/src/utils/formModelSync.ts +52 -0
  406. package/src/utils/items.ts +28 -0
  407. package/src/utils/options.ts +23 -0
  408. package/src/utils/pluginIcon.ts +30 -0
  409. package/dist/__tests__/composables/usePluginApi.test.d.ts +0 -13
  410. package/dist/auth-DsI0rQ7_.js.map +0 -1
  411. package/dist/components/GroupingModal.vue.d.ts +0 -12
  412. package/dist/components-_XqPEhP9.js.map +0 -1
  413. package/dist/composables/usePluginApi.d.ts +0 -29
  414. package/dist/composables-tiZqLu1M.js.map +0 -1
  415. package/dist/useScheduleDrag-CA9sGNJG.js +0 -7181
  416. package/dist/useScheduleDrag-CA9sGNJG.js.map +0 -1
  417. package/src/__tests__/composables/usePluginApi.test.ts +0 -81
  418. package/src/components/AppPageSelector.vue +0 -159
  419. package/src/components/AppPillNav.vue +0 -66
  420. package/src/components/GroupingModal.story.vue +0 -52
  421. package/src/components/GroupingModal.vue +0 -422
  422. package/src/components/SettingsButton.story.vue +0 -58
  423. package/src/components/SettingsButton.vue +0 -76
  424. package/src/composables/usePluginApi.ts +0 -39
  425. package/src/styles/components/grouping-modal.css +0 -323
  426. package/src/styles/components/settings-button.css +0 -94
  427. /package/dist/components/{ToastNotification.vue.d.ts → AppToastContainer.vue.d.ts} +0 -0
@@ -0,0 +1,87 @@
1
+ import { BioTemplateControlValues, TemplatePresetId } from '../templates';
2
+ import { UseBioTemplatePresetWorkspaceOptions, UseBioTemplatePresetWorkspaceReturn } from '../composables/useBioTemplatePresetWorkspace';
3
+ type BioTemplatePresetSidebarVariant = 'default' | 'analysis';
4
+ interface BioTemplatePresetWorkspaceSlotProps {
5
+ workspace: UseBioTemplatePresetWorkspaceReturn;
6
+ bindings: UseBioTemplatePresetWorkspaceReturn['bindings'];
7
+ collection: UseBioTemplatePresetWorkspaceReturn['collection']['value'];
8
+ renderer: UseBioTemplatePresetWorkspaceReturn['renderer']['value'];
9
+ componentBindingsById: UseBioTemplatePresetWorkspaceReturn['componentBindingsById']['value'];
10
+ componentProps: UseBioTemplatePresetWorkspaceReturn['componentProps']['value'];
11
+ componentPropsById: UseBioTemplatePresetWorkspaceReturn['componentPropsById']['value'];
12
+ componentPropsByComponent: UseBioTemplatePresetWorkspaceReturn['componentPropsByComponent']['value'];
13
+ getComponentProps: UseBioTemplatePresetWorkspaceReturn['getComponentProps'];
14
+ }
15
+ interface Props {
16
+ /** Workspace returned by useBioTemplatePresetWorkspace(). Use for full manual control. */
17
+ workspace?: UseBioTemplatePresetWorkspaceReturn;
18
+ /** Built-in preset id used to create the workspace when workspace is not provided. */
19
+ preset?: TemplatePresetId;
20
+ /** Options passed to the internally generated useBioTemplatePresetWorkspace() call. */
21
+ workspaceOptions?: UseBioTemplatePresetWorkspaceOptions;
22
+ /** Initial control values for the internally generated preset workspace. */
23
+ initialValues?: BioTemplateControlValues;
24
+ /** External control values for the internally generated preset workspace. Supports default v-model. */
25
+ modelValue?: BioTemplateControlValues;
26
+ /** External control values for the internally generated preset workspace. Supports v-model:values. */
27
+ values?: BioTemplateControlValues;
28
+ /** Label shown in the status banner. Defaults to the humanized preset id. */
29
+ label?: string;
30
+ /** Sidebar CSS width. */
31
+ sidebarWidth?: string;
32
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
33
+ sidebarVariant?: BioTemplatePresetSidebarVariant;
34
+ /** Compact sidebar and preview layout. */
35
+ dense?: boolean;
36
+ /** Render preview components in read-only mode. */
37
+ readonly?: boolean;
38
+ /** Show save timestamp. */
39
+ showStatus?: boolean;
40
+ /** Show cards for templates included in the preset collection. */
41
+ showTemplateSummary?: boolean;
42
+ /** Show component binding count. */
43
+ showComponentSummary?: boolean;
44
+ saveLabel?: string;
45
+ resetLabel?: string;
46
+ }
47
+ declare function __VLS_template(): {
48
+ attrs: Partial<{}>;
49
+ slots: Readonly<{
50
+ default?: (props: BioTemplatePresetWorkspaceSlotProps) => unknown;
51
+ }> & {
52
+ default?: (props: BioTemplatePresetWorkspaceSlotProps) => unknown;
53
+ };
54
+ refs: {};
55
+ rootEl: HTMLDivElement;
56
+ };
57
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
58
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
59
+ "update:modelValue": (values: BioTemplateControlValues) => any;
60
+ "update:values": (values: BioTemplateControlValues) => any;
61
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
62
+ "onUpdate:modelValue"?: ((values: BioTemplateControlValues) => any) | undefined;
63
+ "onUpdate:values"?: ((values: BioTemplateControlValues) => any) | undefined;
64
+ }>, {
65
+ values: BioTemplateControlValues;
66
+ modelValue: BioTemplateControlValues;
67
+ readonly: boolean;
68
+ initialValues: BioTemplateControlValues;
69
+ dense: boolean;
70
+ sidebarWidth: string;
71
+ sidebarVariant: BioTemplatePresetSidebarVariant;
72
+ workspace: UseBioTemplatePresetWorkspaceReturn;
73
+ preset: TemplatePresetId;
74
+ showStatus: boolean;
75
+ showTemplateSummary: boolean;
76
+ resetLabel: string;
77
+ saveLabel: string;
78
+ workspaceOptions: UseBioTemplatePresetWorkspaceOptions;
79
+ showComponentSummary: boolean;
80
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
81
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
82
+ export default _default;
83
+ type __VLS_WithTemplateSlots<T, S> = T & {
84
+ new (): {
85
+ $slots: S;
86
+ };
87
+ };
@@ -0,0 +1,29 @@
1
+ import { BioTemplateEnvelope, TemplateCollectionEnvelope } from '../templates/types';
2
+ interface Props {
3
+ /** Template envelope or template collection to render. */
4
+ target: BioTemplateEnvelope<unknown> | TemplateCollectionEnvelope;
5
+ /** Optional allow-list of component names, for example ['WellPlate', 'DataFrame']. */
6
+ include?: string[];
7
+ /** Optional deny-list of component names. */
8
+ exclude?: string[];
9
+ /** Compact child component sizing. */
10
+ dense?: boolean;
11
+ /** Prefer preview-safe props for editable components. */
12
+ readonly?: boolean;
13
+ /** Show component/template labels above each rendered component. */
14
+ showHeaders?: boolean;
15
+ /** Show binding descriptions in each header. */
16
+ showDescriptions?: boolean;
17
+ /** Message shown when the target has no renderable bindings. */
18
+ emptyText?: string;
19
+ }
20
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
21
+ readonly: boolean;
22
+ include: string[];
23
+ exclude: string[];
24
+ emptyText: string;
25
+ dense: boolean;
26
+ showHeaders: boolean;
27
+ showDescriptions: boolean;
28
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
29
+ export default _default;
@@ -1,6 +1,6 @@
1
- import { BreadcrumbItem } from '../types';
1
+ import { BreadcrumbItem, BreadcrumbItemInput } from '../types';
2
2
  interface Props {
3
- items: BreadcrumbItem[];
3
+ items: BreadcrumbItemInput[];
4
4
  separator?: string;
5
5
  }
6
6
  declare function __VLS_template(): {
@@ -89,6 +89,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
89
89
  "onDay-click"?: ((context: CalendarDayContext) => any) | undefined;
90
90
  onNavigate?: ((direction: "prev" | "next", month: number, year: number) => any) | undefined;
91
91
  }>, {
92
+ locale: string;
92
93
  selectionMode: CalendarSelectionMode;
93
94
  fixedWeeks: boolean;
94
95
  weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
@@ -96,7 +97,6 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
96
97
  showNavigation: boolean;
97
98
  markers: CalendarMarker[];
98
99
  disabledDates: Array<Date | string>;
99
- locale: string;
100
100
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
101
101
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
102
102
  export default _default;
@@ -27,8 +27,8 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
27
27
  }>, {
28
28
  disabled: boolean;
29
29
  defaultOpen: boolean;
30
- dense: boolean;
31
30
  showToggle: boolean;
31
+ dense: boolean;
32
32
  toggleValue: boolean;
33
33
  toggleColor: string;
34
34
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -0,0 +1,44 @@
1
+ export interface ComponentBindingRendererBinding {
2
+ id?: string;
3
+ component: string;
4
+ props?: Record<string, unknown> | readonly string[];
5
+ propsObject?: Record<string, unknown>;
6
+ description?: string;
7
+ template_id?: string;
8
+ }
9
+ type ComponentBindingRendererLayout = 'grid' | 'stack';
10
+ interface Props {
11
+ /** Single generated SDK component binding to render. */
12
+ binding?: ComponentBindingRendererBinding;
13
+ /** Generated SDK component bindings to render. */
14
+ bindings?: ComponentBindingRendererBinding[];
15
+ /** Optional allow-list of component names, for example ['WellPlate', 'DataFrame']. */
16
+ include?: string[];
17
+ /** Optional deny-list of component names. */
18
+ exclude?: string[];
19
+ /** Compact child component sizing. */
20
+ dense?: boolean;
21
+ /** Prefer preview-safe props for editable components. */
22
+ readonly?: boolean;
23
+ /** Show component/template labels above each rendered component. */
24
+ showHeaders?: boolean;
25
+ /** Show binding descriptions in each header. */
26
+ showDescriptions?: boolean;
27
+ /** Grid or vertical stack layout. */
28
+ layout?: ComponentBindingRendererLayout;
29
+ /** Message shown when no binding can be rendered. */
30
+ emptyText?: string;
31
+ }
32
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
33
+ readonly: boolean;
34
+ layout: ComponentBindingRendererLayout;
35
+ binding: ComponentBindingRendererBinding;
36
+ include: string[];
37
+ exclude: string[];
38
+ emptyText: string;
39
+ dense: boolean;
40
+ bindings: ComponentBindingRendererBinding[];
41
+ showHeaders: boolean;
42
+ showDescriptions: boolean;
43
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
44
+ export default _default;
@@ -17,9 +17,9 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
17
17
  "onUpdate:modelValue"?: ((value: ConcentrationValue | undefined) => any) | undefined;
18
18
  }>, {
19
19
  size: "sm" | "md" | "lg";
20
- error: boolean;
21
- disabled: boolean;
22
20
  placeholder: string;
21
+ disabled: boolean;
22
+ error: boolean;
23
23
  showConversion: boolean;
24
24
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
25
25
  export default _default;
@@ -27,11 +27,11 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
27
27
  onCancel?: (() => any) | undefined;
28
28
  onConfirm?: (() => any) | undefined;
29
29
  }>, {
30
+ title: string;
30
31
  variant: "danger" | "warning" | "info";
32
+ cancelLabel: string;
31
33
  loading: boolean;
32
- title: string;
33
34
  confirmLabel: string;
34
- cancelLabel: string;
35
35
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
36
36
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
37
  export default _default;
@@ -0,0 +1,147 @@
1
+ import { TopBarVariant } from '../types';
2
+ import { FormEnhancements } from '../types/form-builder';
3
+ import { ControlComponentBindingsConfig, ControlComponentPropsByIdMap, ControlComponentPropsMap, ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from '../composables/useControlSchema';
4
+ type ControlWorkspaceSidebarVariant = 'default' | 'analysis';
5
+ type ResolvedControlWorkspace = UseControlWorkspaceReturn<ControlSchema>;
6
+ interface ControlWorkspaceDefaultSlotProps {
7
+ workspace: ResolvedControlWorkspace;
8
+ bindings: ResolvedControlWorkspace['bindings'];
9
+ values: ResolvedControlWorkspace['values'];
10
+ componentBindings: ReturnType<ResolvedControlWorkspace['getComponentBindings']>;
11
+ componentBindingsById: ReturnType<ResolvedControlWorkspace['getComponentBindingsById']>;
12
+ componentProps: ReturnType<ResolvedControlWorkspace['getComponentProps']>;
13
+ componentPropsById: ReturnType<ResolvedControlWorkspace['getComponentPropsById']>;
14
+ }
15
+ interface ControlWorkspaceTopbarSlotProps {
16
+ workspace: ResolvedControlWorkspace;
17
+ bindings: ResolvedControlWorkspace['bindings'];
18
+ topBar: ResolvedControlWorkspace['bindings']['topBar']['value'];
19
+ }
20
+ interface ControlWorkspaceSidebarSlotProps {
21
+ workspace: ResolvedControlWorkspace;
22
+ bindings: ResolvedControlWorkspace['bindings'];
23
+ sidebar: ResolvedControlWorkspace['sidebar'];
24
+ }
25
+ interface Props {
26
+ /** Model returned by defineControlModel()/defineDoseDesignControlModel(), or a raw nested ControlModel. */
27
+ model?: ControlModel | ControlModelBinding;
28
+ /** Workspace returned by useControlWorkspace(). Use for full manual control. */
29
+ workspace?: UseControlWorkspaceReturn<ControlSchema>;
30
+ /** Compact controls schema. When provided without workspace, the view creates the workspace internally. */
31
+ controls?: ControlSchema;
32
+ /** Options passed to the internally generated useControlWorkspace() call. */
33
+ controlOptions?: ControlWorkspaceOptions;
34
+ /** Initial values for the internally generated workspace. Merged over controlOptions.initialValues. */
35
+ initialValues?: Record<string, unknown>;
36
+ /** External values for the internally generated workspace. Supports default v-model. */
37
+ modelValue?: Record<string, unknown>;
38
+ /** External values for the internally generated workspace. Supports v-model:values. */
39
+ values?: Record<string, unknown>;
40
+ /** AppTopBar title. */
41
+ title?: string;
42
+ /** AppTopBar subtitle. */
43
+ subtitle?: string;
44
+ /** AppTopBar visual variant. */
45
+ topBarVariant?: TopBarVariant;
46
+ /** AppSidebar/AppLayout sidebar width. */
47
+ sidebarWidth?: string;
48
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
49
+ sidebarVariant?: ControlWorkspaceSidebarVariant;
50
+ /** Convert the sidebar into an SDK-owned mobile overlay below the AppLayout breakpoint. */
51
+ responsiveSidebar?: boolean;
52
+ /** Sidebar position in AppLayout. */
53
+ sidebarPosition?: 'left' | 'right';
54
+ /** Optional AppSidebar chrome title for LEAF-style plugin workbenches. */
55
+ sidebarTitle?: string;
56
+ /** Optional AppSidebar chrome subtitle for active experiment/run context. */
57
+ sidebarSubtitle?: string;
58
+ /** Optional compact badge/count rendered in the AppSidebar chrome header. */
59
+ sidebarBadge?: string | number;
60
+ /** Floating AppLayout style. */
61
+ floating?: boolean;
62
+ /** Compact AppSidebar density. */
63
+ dense?: boolean;
64
+ /** Whether AppTopBar should show generated settings. */
65
+ showSettings?: boolean;
66
+ /** Render FormBuilder actions in the default content. */
67
+ showFormActions?: boolean;
68
+ /** Runtime FormBuilder enhancements passed to generated forms. */
69
+ formEnhancements?: FormEnhancements<Record<string, unknown>>;
70
+ /** Optional SDK component bindings exposed to the default slot with resolved props. */
71
+ componentBindings?: ControlComponentBindingsConfig;
72
+ /** Optional mapping from workspace values to component props exposed to the default slot. */
73
+ componentProps?: ControlComponentPropsMap;
74
+ /** Optional named mappings from workspace values to component props exposed to the default slot. */
75
+ componentPropsById?: ControlComponentPropsByIdMap;
76
+ /** Loading/saving state passed to generated forms. */
77
+ formLoading?: boolean;
78
+ /** Disabled state passed to generated forms. */
79
+ formDisabled?: boolean;
80
+ /** Readonly state passed to generated forms. */
81
+ formReadonly?: boolean;
82
+ /** FormBuilder size in the default content. */
83
+ formSize?: 'sm' | 'md' | 'lg';
84
+ }
85
+ declare function __VLS_template(): {
86
+ attrs: Partial<{}>;
87
+ slots: Readonly<{
88
+ default?: (props: ControlWorkspaceDefaultSlotProps) => unknown;
89
+ topbar?: (props: ControlWorkspaceTopbarSlotProps) => unknown;
90
+ sidebar?: (props: ControlWorkspaceSidebarSlotProps) => unknown;
91
+ }> & {
92
+ default?: (props: ControlWorkspaceDefaultSlotProps) => unknown;
93
+ topbar?: (props: ControlWorkspaceTopbarSlotProps) => unknown;
94
+ sidebar?: (props: ControlWorkspaceSidebarSlotProps) => unknown;
95
+ };
96
+ refs: {};
97
+ rootEl: HTMLDivElement;
98
+ };
99
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
100
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
101
+ "update:modelValue": (values: Record<string, unknown>) => any;
102
+ submit: (values: Record<string, unknown>) => any;
103
+ cancel: () => any;
104
+ "update:values": (values: Record<string, unknown>) => any;
105
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
106
+ "onUpdate:modelValue"?: ((values: Record<string, unknown>) => any) | undefined;
107
+ onSubmit?: ((values: Record<string, unknown>) => any) | undefined;
108
+ onCancel?: (() => any) | undefined;
109
+ "onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
110
+ }>, {
111
+ values: Record<string, unknown>;
112
+ modelValue: Record<string, unknown>;
113
+ title: string;
114
+ subtitle: string;
115
+ initialValues: Record<string, unknown>;
116
+ controls: ControlSchema;
117
+ controlOptions: ControlWorkspaceOptions;
118
+ model: ControlModel | ControlModelBinding;
119
+ componentBindings: ControlComponentBindingsConfig;
120
+ componentProps: ControlComponentPropsMap;
121
+ componentPropsById: ControlComponentPropsByIdMap;
122
+ dense: boolean;
123
+ showSettings: boolean;
124
+ floating: boolean;
125
+ formEnhancements: FormEnhancements<Record<string, unknown>>;
126
+ showFormActions: boolean;
127
+ formLoading: boolean;
128
+ formDisabled: boolean;
129
+ formReadonly: boolean;
130
+ formSize: "sm" | "md" | "lg";
131
+ sidebarPosition: "left" | "right";
132
+ sidebarWidth: string;
133
+ responsiveSidebar: boolean;
134
+ topBarVariant: TopBarVariant;
135
+ sidebarTitle: string;
136
+ sidebarSubtitle: string;
137
+ sidebarBadge: string | number;
138
+ sidebarVariant: ControlWorkspaceSidebarVariant;
139
+ workspace: UseControlWorkspaceReturn<ControlSchema>;
140
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
141
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
142
+ export default _default;
143
+ type __VLS_WithTemplateSlots<T, S> = T & {
144
+ new (): {
145
+ $slots: S;
146
+ };
147
+ };
@@ -14,8 +14,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
14
14
  "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
15
15
  }>, {
16
16
  size: "sm" | "md" | "lg";
17
- error: boolean;
18
17
  disabled: boolean;
18
+ error: boolean;
19
19
  clearable: boolean;
20
20
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
21
21
  containerRef: HTMLDivElement;
@@ -17,14 +17,14 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
17
17
  "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
18
18
  }>, {
19
19
  size: "sm" | "md" | "lg";
20
- error: boolean;
21
- disabled: boolean;
22
20
  placeholder: string;
21
+ disabled: boolean;
22
+ error: boolean;
23
23
  locale: string;
24
24
  clearable: boolean;
25
25
  timeStep: number;
26
26
  timeFormat: "12h" | "24h";
27
27
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
28
- containerRef: HTMLDivElement;
28
+ rootRef: HTMLDivElement;
29
29
  }, HTMLDivElement>;
30
30
  export default _default;
@@ -6,8 +6,8 @@ interface Props {
6
6
  spacing?: 'sm' | 'md' | 'lg';
7
7
  }
8
8
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
9
- vertical: boolean;
10
9
  label: string;
10
+ vertical: boolean;
11
11
  align: "center" | "left";
12
12
  spacing: "sm" | "md" | "lg";
13
13
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,149 @@
1
+ import { TopBarVariant } from '../types';
2
+ import { FormEnhancements } from '../types/form-builder';
3
+ import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, DoseDesignControlModelOptions, UseControlWorkspaceReturn } from '../composables/useControlSchema';
4
+ type DoseDesignSidebarVariant = 'default' | 'analysis';
5
+ type ComponentProps = Record<string, unknown>;
6
+ type ComponentPropsById = Record<string, ComponentProps>;
7
+ type ComponentBinding = {
8
+ id: string;
9
+ component: string;
10
+ props: ComponentProps;
11
+ };
12
+ type ComponentBindingsById = Record<string, ComponentBinding>;
13
+ type ResolvedControlWorkspace = UseControlWorkspaceReturn<ControlSchema>;
14
+ interface DoseDesignWorkspaceSlotProps {
15
+ workspace: ResolvedControlWorkspace;
16
+ bindings: ResolvedControlWorkspace['bindings'];
17
+ values: ResolvedControlWorkspace['values'];
18
+ componentBindings: ComponentBinding[];
19
+ componentBindingsById: ComponentBindingsById;
20
+ componentPropsById: ComponentPropsById;
21
+ wellPlateProps: ComponentProps;
22
+ doseCalculatorProps: ComponentProps;
23
+ }
24
+ interface Props {
25
+ /** Model returned by defineDoseDesignControlModel(), or a custom compatible ControlWorkspace model. */
26
+ model?: ControlModel | ControlModelBinding;
27
+ /** Workspace returned by useControlWorkspace(). Use for full manual control. */
28
+ workspace?: UseControlWorkspaceReturn<ControlSchema>;
29
+ /** Options used when this view creates the default dose-design model internally. */
30
+ doseDesignOptions?: DoseDesignControlModelOptions;
31
+ /** Options passed to the internally generated ControlWorkspaceView workspace. */
32
+ controlOptions?: ControlWorkspaceOptions;
33
+ /** Initial values for the internally generated workspace. */
34
+ initialValues?: Record<string, unknown>;
35
+ /** External values for the internally generated workspace. Supports default v-model. */
36
+ modelValue?: Record<string, unknown>;
37
+ /** External values for the internally generated workspace. Supports v-model:values. */
38
+ values?: Record<string, unknown>;
39
+ /** Named component props id for the generated WellPlate binding. */
40
+ plateId?: string;
41
+ /** Named component props id for the generated DoseCalculator binding. */
42
+ doseId?: string;
43
+ /** Extra props merged into the generated WellPlate binding. */
44
+ wellPlateProps?: ComponentProps;
45
+ /** Extra props merged into the generated DoseCalculator binding. */
46
+ doseCalculatorProps?: ComponentProps;
47
+ /** AppTopBar title. */
48
+ title?: string;
49
+ /** AppTopBar subtitle. */
50
+ subtitle?: string;
51
+ /** AppTopBar visual variant. */
52
+ topBarVariant?: TopBarVariant;
53
+ /** AppSidebar/AppLayout sidebar width. */
54
+ sidebarWidth?: string;
55
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
56
+ sidebarVariant?: DoseDesignSidebarVariant;
57
+ /** Convert the sidebar into an SDK-owned mobile overlay below the AppLayout breakpoint. */
58
+ responsiveSidebar?: boolean;
59
+ /** Sidebar position in AppLayout. */
60
+ sidebarPosition?: 'left' | 'right';
61
+ /** Optional AppSidebar chrome title for LEAF-style plugin workbenches. */
62
+ sidebarTitle?: string;
63
+ /** Optional AppSidebar chrome subtitle for active experiment/run context. */
64
+ sidebarSubtitle?: string;
65
+ /** Optional compact badge/count rendered in the AppSidebar chrome header. */
66
+ sidebarBadge?: string | number;
67
+ /** Floating AppLayout style. */
68
+ floating?: boolean;
69
+ /** Compact AppSidebar density. */
70
+ dense?: boolean;
71
+ /** Whether AppTopBar should show generated settings. */
72
+ showSettings?: boolean;
73
+ /** Render FormBuilder actions in the default generated forms. */
74
+ showFormActions?: boolean;
75
+ /** Runtime FormBuilder enhancements passed to generated forms. */
76
+ formEnhancements?: FormEnhancements<Record<string, unknown>>;
77
+ /** Loading/saving state passed to generated forms. */
78
+ formLoading?: boolean;
79
+ /** Disabled state passed to generated forms. */
80
+ formDisabled?: boolean;
81
+ /** Readonly state passed to generated forms. */
82
+ formReadonly?: boolean;
83
+ /** FormBuilder size in generated forms. */
84
+ formSize?: 'sm' | 'md' | 'lg';
85
+ }
86
+ declare function __VLS_template(): {
87
+ attrs: Partial<{}>;
88
+ slots: Readonly<{
89
+ default?: (props: DoseDesignWorkspaceSlotProps) => unknown;
90
+ plate?: (props: DoseDesignWorkspaceSlotProps) => unknown;
91
+ dose?: (props: DoseDesignWorkspaceSlotProps) => unknown;
92
+ }> & {
93
+ default?: (props: DoseDesignWorkspaceSlotProps) => unknown;
94
+ plate?: (props: DoseDesignWorkspaceSlotProps) => unknown;
95
+ dose?: (props: DoseDesignWorkspaceSlotProps) => unknown;
96
+ };
97
+ refs: {};
98
+ rootEl: HTMLDivElement;
99
+ };
100
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
101
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
102
+ "update:modelValue": (values: Record<string, unknown>) => any;
103
+ submit: (values: Record<string, unknown>) => any;
104
+ cancel: () => any;
105
+ "update:values": (values: Record<string, unknown>) => any;
106
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
107
+ "onUpdate:modelValue"?: ((values: Record<string, unknown>) => any) | undefined;
108
+ onSubmit?: ((values: Record<string, unknown>) => any) | undefined;
109
+ onCancel?: (() => any) | undefined;
110
+ "onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
111
+ }>, {
112
+ values: Record<string, unknown>;
113
+ modelValue: Record<string, unknown>;
114
+ title: string;
115
+ subtitle: string;
116
+ initialValues: Record<string, unknown>;
117
+ controlOptions: ControlWorkspaceOptions;
118
+ model: ControlModel | ControlModelBinding;
119
+ dense: boolean;
120
+ showSettings: boolean;
121
+ floating: boolean;
122
+ formEnhancements: FormEnhancements<Record<string, unknown>>;
123
+ showFormActions: boolean;
124
+ formLoading: boolean;
125
+ formDisabled: boolean;
126
+ formReadonly: boolean;
127
+ formSize: "sm" | "md" | "lg";
128
+ sidebarPosition: "left" | "right";
129
+ sidebarWidth: string;
130
+ responsiveSidebar: boolean;
131
+ topBarVariant: TopBarVariant;
132
+ sidebarTitle: string;
133
+ sidebarSubtitle: string;
134
+ sidebarBadge: string | number;
135
+ sidebarVariant: DoseDesignSidebarVariant;
136
+ workspace: UseControlWorkspaceReturn<ControlSchema>;
137
+ doseDesignOptions: DoseDesignControlModelOptions;
138
+ plateId: string;
139
+ doseId: string;
140
+ wellPlateProps: ComponentProps;
141
+ doseCalculatorProps: ComponentProps;
142
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
143
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
144
+ export default _default;
145
+ type __VLS_WithTemplateSlots<T, S> = T & {
146
+ new (): {
147
+ $slots: S;
148
+ };
149
+ };
@@ -1,4 +1,4 @@
1
- import { SelectOption, ButtonVariant, ButtonSize } from '../types';
1
+ import { SelectOption, SelectOptionInput, ButtonVariant, ButtonSize } from '../types';
2
2
  /**
3
3
  * DropdownButton - Button-style select with dropdown menu for option selection.
4
4
  *
@@ -18,7 +18,7 @@ interface Props {
18
18
  /** Selected option value */
19
19
  modelValue?: string | number;
20
20
  /** Available options */
21
- options: SelectOption<string | number>[];
21
+ options: SelectOptionInput<string | number>[];
22
22
  /** Placeholder text when no option is selected */
23
23
  placeholder?: string;
24
24
  /** Button style variant */
@@ -42,6 +42,6 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
42
42
  variant: ButtonVariant;
43
43
  loading: boolean;
44
44
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
45
- containerRef: HTMLDivElement;
45
+ rootRef: HTMLDivElement;
46
46
  }, HTMLDivElement>;
47
47
  export default _default;
@@ -1,4 +1,3 @@
1
- /** Empty-state placeholder with icon badge, headline, description, default slot, and optional CTA button. */
2
1
  interface Props {
3
2
  title?: string;
4
3
  description?: string;
@@ -24,8 +23,8 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
24
23
  onAction?: (() => any) | undefined;
25
24
  }>, {
26
25
  size: "sm" | "md" | "lg";
27
- variant: "illustrated" | "inline";
28
26
  color: "primary" | "cta" | "success" | "warning" | "error" | "muted";
27
+ variant: "illustrated" | "inline";
29
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
29
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
30
  export default _default;
@@ -22,8 +22,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
22
22
  "onDownload-json"?: (() => any) | undefined;
23
23
  "onDownload-csv"?: (() => any) | undefined;
24
24
  }>, {
25
- loading: boolean;
26
25
  title: string;
27
26
  defaultView: "summary" | "tree" | "table";
27
+ loading: boolean;
28
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
29
29
  export default _default;
@@ -32,11 +32,11 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
32
32
  }>, {
33
33
  size: "sm" | "md" | "lg";
34
34
  modelValue: ProtocolStep[];
35
- editable: boolean;
35
+ collapsible: boolean;
36
36
  orientation: "horizontal" | "vertical";
37
37
  showDuration: boolean;
38
38
  showTime: boolean;
39
- collapsible: boolean;
39
+ editable: boolean;
40
40
  expandedStepId: string;
41
41
  colorByStatus: boolean;
42
42
  colorByType: boolean;
@@ -26,8 +26,8 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
26
26
  }>, {
27
27
  size: "sm" | "md" | "lg";
28
28
  disabled: boolean;
29
- multiple: boolean;
30
29
  mode: "file" | "folder";
30
+ multiple: boolean;
31
31
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
32
32
  inputRef: HTMLInputElement;
33
33
  }, HTMLDivElement>;
@@ -31,8 +31,8 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
31
31
  disabled: boolean;
32
32
  progress: number;
33
33
  indeterminate: boolean;
34
- state: FitState;
35
34
  cancelLabel: string;
35
+ state: FitState;
36
36
  results: FitResultSummary[];
37
37
  progressLabel: string;
38
38
  runLabel: string;