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

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 (399) hide show
  1. package/README.md +218 -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/ConcentrationInput.test.d.ts +1 -0
  19. package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
  20. package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
  21. package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
  22. package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
  23. package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
  24. package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
  25. package/dist/__tests__/components/FormCompatibility.test.d.ts +1 -0
  26. package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
  27. package/dist/__tests__/components/GroupingModal.test.d.ts +1 -0
  28. package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
  29. package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
  30. package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
  31. package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
  32. package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
  33. package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
  34. package/dist/__tests__/components/SettingsButton.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/useBioTemplatePackWorkspace.test.d.ts +1 -0
  40. package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
  41. package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
  42. package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
  43. package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
  44. package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
  45. package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
  46. package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
  47. package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
  48. package/dist/__tests__/composables/useExperimentData.test.d.ts +1 -0
  49. package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
  50. package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
  51. package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
  52. package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
  53. package/dist/__tests__/composables/usePluginConfig.test.d.ts +1 -0
  54. package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
  55. package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
  56. package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
  57. package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
  58. package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
  59. package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
  60. package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
  61. package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
  62. package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
  63. package/dist/__tests__/templates/templates.test.d.ts +1 -0
  64. package/dist/{auth-DsI0rQ7_.js → auth-QQj2kkze.js} +12 -5
  65. package/dist/auth-QQj2kkze.js.map +1 -0
  66. package/dist/components/ActionItem.vue.d.ts +32 -0
  67. package/dist/components/AppAvatarMenu.vue.d.ts +2 -7
  68. package/dist/components/AppPageSelector.vue.d.ts +3 -6
  69. package/dist/components/AppPillNav.vue.d.ts +2 -2
  70. package/dist/components/AppSidebar.vue.d.ts +56 -3
  71. package/dist/components/AppToastContainer.vue.d.ts +2 -0
  72. package/dist/components/AppTopBar.vue.d.ts +41 -10
  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 +117 -0
  83. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +92 -0
  84. package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +82 -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/CalendarGridPanel.vue.d.ts +25 -0
  89. package/dist/components/CollapsibleCard.vue.d.ts +1 -1
  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 +130 -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/DropdownButton.vue.d.ts +3 -3
  97. package/dist/components/EmptyState.vue.d.ts +1 -2
  98. package/dist/components/ExperimentDataViewer.vue.d.ts +1 -1
  99. package/dist/components/ExperimentTimeline.vue.d.ts +2 -2
  100. package/dist/components/FileUploader.vue.d.ts +1 -1
  101. package/dist/components/FitPanel.vue.d.ts +1 -1
  102. package/dist/components/FormActions.vue.d.ts +4 -4
  103. package/dist/components/FormBuilder.vue.d.ts +22 -8
  104. package/dist/components/FormFieldRenderer.vue.d.ts +7 -10
  105. package/dist/components/FormSection.vue.d.ts +11 -24
  106. package/dist/components/FormulaInput.vue.d.ts +2 -2
  107. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  108. package/dist/components/MultiSelect.vue.d.ts +3 -3
  109. package/dist/components/NumberInput.vue.d.ts +1 -1
  110. package/dist/components/ProgressBar.vue.d.ts +1 -1
  111. package/dist/components/ProtocolStepEditor.vue.d.ts +3 -1
  112. package/dist/components/RackEditor.vue.d.ts +2 -2
  113. package/dist/components/SampleLegend.vue.d.ts +2 -2
  114. package/dist/components/ScheduleCalendar.vue.d.ts +2 -2
  115. package/dist/components/SegmentedControl.vue.d.ts +2 -2
  116. package/dist/components/SequenceInput.vue.d.ts +3 -3
  117. package/dist/components/SettingsButton.vue.d.ts +2 -2
  118. package/dist/components/SettingsModal.vue.d.ts +13 -5
  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 +8 -8
  125. package/dist/components/index.d.ts +11 -1
  126. package/dist/components/index.js +3 -3
  127. package/dist/components/internal/FormFieldRendererInternal.vue.d.ts +31 -0
  128. package/dist/components/internal/FormSectionRenderer.vue.d.ts +43 -0
  129. package/dist/{components-_XqPEhP9.js → components-D_Sr0adg.js} +7290 -6518
  130. package/dist/components-D_Sr0adg.js.map +1 -0
  131. package/dist/composables/index.d.ts +21 -2
  132. package/dist/composables/index.js +4 -3
  133. package/dist/composables/platformContextHelpers.d.ts +14 -0
  134. package/dist/composables/useBioTemplateComponents.d.ts +20 -0
  135. package/dist/composables/useBioTemplateControls.d.ts +6 -0
  136. package/dist/composables/useBioTemplatePackWorkspace.d.ts +45 -0
  137. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +74 -0
  138. package/dist/composables/useBioTemplateWorkspace.d.ts +50 -0
  139. package/dist/composables/useCalendarGrid.d.ts +26 -0
  140. package/dist/composables/useControlSchema.d.ts +321 -0
  141. package/dist/composables/useDebouncedWatch.d.ts +20 -0
  142. package/dist/composables/useDropdownState.d.ts +19 -0
  143. package/dist/composables/useEventListener.d.ts +13 -0
  144. package/dist/composables/useExpansionSet.d.ts +21 -0
  145. package/dist/composables/useExperimentData.d.ts +10 -0
  146. package/dist/composables/useExperimentSave.d.ts +31 -2
  147. package/dist/composables/useExperimentSelector.d.ts +20 -0
  148. package/dist/composables/useForm.d.ts +2 -0
  149. package/dist/composables/useGroupAssignment.d.ts +31 -0
  150. package/dist/composables/useListSelection.d.ts +35 -0
  151. package/dist/composables/usePlatformContext.d.ts +21 -3
  152. package/dist/composables/usePluginApi.d.ts +7 -14
  153. package/dist/composables/usePluginClient.d.ts +109 -0
  154. package/dist/composables/usePluginConfig.d.ts +12 -0
  155. package/dist/composables/useRequestSyncState.d.ts +34 -0
  156. package/dist/composables/useSampleGroups.d.ts +32 -0
  157. package/dist/composables/useSelectionLimit.d.ts +17 -0
  158. package/dist/composables/useSortedItems.d.ts +32 -0
  159. package/dist/composables/useTemplateCollection.d.ts +58 -0
  160. package/dist/composables/useTextSearch.d.ts +18 -0
  161. package/dist/composables/useTimeUtils.d.ts +8 -0
  162. package/dist/{composables-tiZqLu1M.js → composables-C3dpXQN5.js} +228 -146
  163. package/dist/composables-C3dpXQN5.js.map +1 -0
  164. package/dist/index.d.ts +12 -3
  165. package/dist/index.js +6 -5
  166. package/dist/install.d.ts +7 -2
  167. package/dist/install.js +2 -2
  168. package/dist/install.js.map +1 -1
  169. package/dist/stores/index.js +1 -1
  170. package/dist/stores/settings.d.ts +4 -1
  171. package/dist/styles.css +5235 -5977
  172. package/dist/templates/adapters.d.ts +43 -0
  173. package/dist/templates/builders.d.ts +63 -0
  174. package/dist/templates/catalog.d.ts +188 -0
  175. package/dist/templates/componentBindings.d.ts +58 -0
  176. package/dist/templates/controlSchemas.d.ts +25 -0
  177. package/dist/templates/index.d.ts +15 -0
  178. package/dist/templates/index.js +2 -0
  179. package/dist/templates/lookup.d.ts +4 -0
  180. package/dist/templates/packs.d.ts +18 -0
  181. package/dist/templates/presets.d.ts +90 -0
  182. package/dist/templates/types.d.ts +531 -0
  183. package/dist/templates-50NPjaxL.js +9333 -0
  184. package/dist/templates-50NPjaxL.js.map +1 -0
  185. package/dist/types/components.d.ts +26 -4
  186. package/dist/types/form-builder.d.ts +6 -8
  187. package/dist/types/index.d.ts +2 -2
  188. package/dist/types/platform.d.ts +7 -1
  189. package/dist/useScheduleDrag-D4oWdh41.js +4371 -0
  190. package/dist/useScheduleDrag-D4oWdh41.js.map +1 -0
  191. package/dist/utils/formModelSync.d.ts +5 -0
  192. package/dist/utils/items.d.ts +8 -0
  193. package/dist/utils/options.d.ts +6 -0
  194. package/dist/utils/pluginIcon.d.ts +9 -0
  195. package/package.json +7 -2
  196. package/src/__tests__/components/ActionItem.test.ts +99 -0
  197. package/src/__tests__/components/AppAvatarMenu.test.ts +27 -0
  198. package/src/__tests__/components/AppPageSelector.test.ts +134 -0
  199. package/src/__tests__/components/AppPillNav.test.ts +78 -0
  200. package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
  201. package/src/__tests__/components/AppSidebar.test.ts +370 -0
  202. package/src/__tests__/components/AppToastContainer.test.ts +48 -0
  203. package/src/__tests__/components/AppTopBar.test.ts +383 -0
  204. package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
  205. package/src/__tests__/components/BaseSelect.test.ts +21 -0
  206. package/src/__tests__/components/BaseTabs.test.ts +25 -0
  207. package/src/__tests__/components/BatchProgressList.test.ts +52 -0
  208. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +153 -0
  209. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +161 -0
  210. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +281 -0
  211. package/src/__tests__/components/BioTemplateRenderer.test.ts +71 -0
  212. package/src/__tests__/components/Breadcrumb.test.ts +23 -0
  213. package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
  214. package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
  215. package/src/__tests__/components/ControlWorkspaceView.test.ts +1031 -0
  216. package/src/__tests__/components/DataFrame.test.ts +11 -0
  217. package/src/__tests__/components/DatePicker.test.ts +45 -0
  218. package/src/__tests__/components/DateTimePicker.test.ts +48 -0
  219. package/src/__tests__/components/DropdownButton.test.ts +23 -0
  220. package/src/__tests__/components/EmptyState.test.ts +23 -0
  221. package/src/__tests__/components/ExperimentPopover.test.ts +56 -0
  222. package/src/__tests__/components/FormBuilder.test.ts +296 -0
  223. package/src/__tests__/components/FormCompatibility.test.ts +94 -0
  224. package/src/__tests__/components/GroupAssigner.test.ts +30 -0
  225. package/src/__tests__/components/GroupingModal.test.ts +73 -0
  226. package/src/__tests__/components/MultiSelect.test.ts +48 -0
  227. package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
  228. package/src/__tests__/components/ReagentList.test.ts +82 -0
  229. package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
  230. package/src/__tests__/components/SampleSelector.test.ts +60 -0
  231. package/src/__tests__/components/SegmentedControl.test.ts +24 -0
  232. package/src/__tests__/components/SettingsButton.test.ts +44 -0
  233. package/src/__tests__/components/SettingsModal.test.ts +296 -0
  234. package/src/__tests__/components/TagsInput.test.ts +75 -0
  235. package/src/__tests__/components/ThemeToggle.test.ts +47 -0
  236. package/src/__tests__/components/TimePicker.test.ts +38 -0
  237. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +122 -0
  238. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
  239. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +99 -0
  240. package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
  241. package/src/__tests__/composables/useControlSchema.test.ts +919 -0
  242. package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
  243. package/src/__tests__/composables/useDropdownState.test.ts +95 -0
  244. package/src/__tests__/composables/useEventListener.test.ts +116 -0
  245. package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
  246. package/src/__tests__/composables/useExperimentData.test.ts +4 -0
  247. package/src/__tests__/composables/useExperimentSave.test.ts +203 -8
  248. package/src/__tests__/composables/useExperimentSelector.test.ts +164 -0
  249. package/src/__tests__/composables/useForm.test.ts +58 -0
  250. package/src/__tests__/composables/useFormBuilder.test.ts +77 -0
  251. package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
  252. package/src/__tests__/composables/useListSelection.test.ts +66 -0
  253. package/src/__tests__/composables/usePluginClient.test.ts +444 -0
  254. package/src/__tests__/composables/usePluginConfig.test.ts +5 -0
  255. package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
  256. package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
  257. package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
  258. package/src/__tests__/composables/useSortedItems.test.ts +87 -0
  259. package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
  260. package/src/__tests__/composables/useTextSearch.test.ts +55 -0
  261. package/src/__tests__/composables/useTheme.test.ts +91 -0
  262. package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
  263. package/src/__tests__/docs/frontendDocsCatalog.test.ts +229 -0
  264. package/src/__tests__/fixtures/templates/dose-response.json +81 -0
  265. package/src/__tests__/fixtures/templates/plate-map.json +54 -0
  266. package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
  267. package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
  268. package/src/__tests__/templates/templates.test.ts +1043 -0
  269. package/src/components/ActionItem.vue +82 -0
  270. package/src/components/AppAvatarMenu.vue +15 -69
  271. package/src/components/AppLayout.story.vue +25 -25
  272. package/src/components/AppPageSelector.vue +63 -94
  273. package/src/components/AppPillNav.vue +44 -39
  274. package/src/components/AppPluginSwitcher.vue +41 -145
  275. package/src/components/AppSidebar.story.vue +94 -0
  276. package/src/components/AppSidebar.vue +187 -12
  277. package/src/components/{ToastNotification.story.vue → AppToastContainer.story.vue} +6 -6
  278. package/src/components/AppToastContainer.vue +62 -0
  279. package/src/components/AppTopBar.story.vue +7 -30
  280. package/src/components/AppTopBar.vue +251 -57
  281. package/src/components/BaseModal.vue +3 -5
  282. package/src/components/BaseRadioGroup.vue +7 -3
  283. package/src/components/BaseSelect.vue +11 -7
  284. package/src/components/BaseTabs.vue +6 -4
  285. package/src/components/BatchProgressList.vue +5 -8
  286. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
  287. package/src/components/BioTemplateExperimentWorkspaceView.vue +337 -0
  288. package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
  289. package/src/components/BioTemplatePackWorkspaceView.vue +176 -0
  290. package/src/components/BioTemplatePresetWorkspaceView.story.vue +151 -0
  291. package/src/components/BioTemplatePresetWorkspaceView.vue +392 -0
  292. package/src/components/BioTemplateRenderer.story.vue +57 -0
  293. package/src/components/BioTemplateRenderer.vue +269 -0
  294. package/src/components/Breadcrumb.vue +14 -8
  295. package/src/components/CalendarGridPanel.vue +120 -0
  296. package/src/components/ConcentrationInput.vue +27 -64
  297. package/src/components/ControlWorkspaceView.story.vue +336 -0
  298. package/src/components/ControlWorkspaceView.vue +347 -0
  299. package/src/components/DataFrame.vue +34 -50
  300. package/src/components/DatePicker.vue +59 -192
  301. package/src/components/DateTimePicker.vue +50 -171
  302. package/src/components/DropdownButton.vue +14 -32
  303. package/src/components/EmptyState.vue +4 -2
  304. package/src/components/ExperimentPopover.vue +5 -22
  305. package/src/components/FormBuilder.vue +124 -27
  306. package/src/components/FormFieldRenderer.vue +15 -38
  307. package/src/components/FormSection.vue +20 -73
  308. package/src/components/GroupAssigner.vue +24 -56
  309. package/src/components/GroupingModal.story.vue +3 -3
  310. package/src/components/GroupingModal.vue +30 -391
  311. package/src/components/MultiSelect.vue +17 -12
  312. package/src/components/PlateMapEditor.vue +3 -8
  313. package/src/components/PluginIcon.vue +2 -22
  314. package/src/components/ProtocolStepEditor.vue +13 -22
  315. package/src/components/ReagentList.vue +25 -33
  316. package/src/components/SampleHierarchyTree.vue +12 -23
  317. package/src/components/SampleSelector.vue +42 -122
  318. package/src/components/SegmentedControl.vue +7 -3
  319. package/src/components/SettingsButton.story.vue +1 -1
  320. package/src/components/SettingsButton.vue +15 -27
  321. package/src/components/SettingsModal.story.vue +1 -1
  322. package/src/components/SettingsModal.vue +120 -29
  323. package/src/components/TagsInput.vue +29 -14
  324. package/src/components/ThemeToggle.vue +9 -7
  325. package/src/components/TimePicker.vue +19 -41
  326. package/src/components/ToastNotification.vue +4 -57
  327. package/src/components/Tooltip.vue +7 -12
  328. package/src/components/WellEditPopup.vue +3 -8
  329. package/src/components/WellPlate.vue +4 -10
  330. package/src/components/index.ts +11 -1
  331. package/src/components/internal/FormFieldRendererInternal.vue +50 -0
  332. package/src/components/internal/FormSectionRenderer.vue +78 -0
  333. package/src/composables/index.ts +212 -0
  334. package/src/composables/platformContextHelpers.ts +74 -0
  335. package/src/composables/useBioTemplateComponents.ts +93 -0
  336. package/src/composables/useBioTemplateControls.ts +41 -0
  337. package/src/composables/useBioTemplatePackWorkspace.ts +181 -0
  338. package/src/composables/useBioTemplatePresetWorkspace.ts +337 -0
  339. package/src/composables/useBioTemplateWorkspace.ts +139 -0
  340. package/src/composables/useCalendarGrid.ts +140 -0
  341. package/src/composables/useControlSchema.ts +1274 -0
  342. package/src/composables/useDebouncedWatch.ts +119 -0
  343. package/src/composables/useDropdownState.ts +83 -0
  344. package/src/composables/useEventListener.ts +111 -0
  345. package/src/composables/useExpansionSet.ts +117 -0
  346. package/src/composables/useExperimentData.ts +20 -11
  347. package/src/composables/useExperimentSave.ts +202 -50
  348. package/src/composables/useExperimentSelector.ts +86 -72
  349. package/src/composables/useForm.ts +49 -4
  350. package/src/composables/useFormBuilder.ts +93 -42
  351. package/src/composables/useGroupAssignment.ts +148 -0
  352. package/src/composables/useListSelection.ts +158 -0
  353. package/src/composables/usePluginApi.ts +7 -14
  354. package/src/composables/usePluginClient.ts +425 -0
  355. package/src/composables/usePluginConfig.ts +34 -13
  356. package/src/composables/useRequestSyncState.ts +126 -0
  357. package/src/composables/useSampleGroups.ts +126 -0
  358. package/src/composables/useSelectionLimit.ts +57 -0
  359. package/src/composables/useSortedItems.ts +118 -0
  360. package/src/composables/useTemplateCollection.ts +229 -0
  361. package/src/composables/useTextSearch.ts +60 -0
  362. package/src/composables/useTheme.ts +2 -28
  363. package/src/composables/useTimeUtils.ts +26 -2
  364. package/src/composables/useWellPlateEditor.ts +13 -9
  365. package/src/index.ts +224 -4
  366. package/src/install.ts +11 -4
  367. package/src/stores/settings.ts +13 -9
  368. package/src/styles/components/app-page-selector.css +23 -0
  369. package/src/styles/components/app-pill-nav.css +7 -0
  370. package/src/styles/components/app-top-bar.css +34 -0
  371. package/src/styles/components/concentration-input.css +3 -142
  372. package/src/styles/components/empty-state.css +0 -16
  373. package/src/styles/components/settings-button.css +3 -66
  374. package/src/styles/components/theme-toggle.css +3 -66
  375. package/src/styles/index.css +0 -1
  376. package/src/templates/adapters.ts +785 -0
  377. package/src/templates/builders.ts +2149 -0
  378. package/src/templates/catalog.ts +245 -0
  379. package/src/templates/componentBindings.ts +615 -0
  380. package/src/templates/controlSchemas.ts +718 -0
  381. package/src/templates/index.ts +314 -0
  382. package/src/templates/lookup.ts +18 -0
  383. package/src/templates/packs.ts +156 -0
  384. package/src/templates/presets.ts +146 -0
  385. package/src/templates/types.ts +668 -0
  386. package/src/types/components.ts +41 -4
  387. package/src/types/form-builder.ts +7 -2
  388. package/src/types/index.ts +14 -0
  389. package/src/types/platform.ts +7 -1
  390. package/src/utils/formModelSync.ts +52 -0
  391. package/src/utils/items.ts +28 -0
  392. package/src/utils/options.ts +23 -0
  393. package/src/utils/pluginIcon.ts +30 -0
  394. package/dist/auth-DsI0rQ7_.js.map +0 -1
  395. package/dist/components-_XqPEhP9.js.map +0 -1
  396. package/dist/composables-tiZqLu1M.js.map +0 -1
  397. package/dist/useScheduleDrag-CA9sGNJG.js +0 -7181
  398. package/dist/useScheduleDrag-CA9sGNJG.js.map +0 -1
  399. package/src/styles/components/grouping-modal.css +0 -323
@@ -1,6 +1,6 @@
1
- import { PageSelectorItem } from '../types/components';
1
+ import { PageSelectorItem, PageSelectorItemInput } from '../types/components';
2
2
  interface Props {
3
- pages: PageSelectorItem[];
3
+ pages: PageSelectorItemInput[];
4
4
  currentPageId?: string;
5
5
  placeholder?: string;
6
6
  minWidth?: string;
@@ -8,10 +8,7 @@ interface Props {
8
8
  declare function __VLS_template(): {
9
9
  attrs: Partial<{}>;
10
10
  slots: {
11
- 'item-icon'?(_: {
12
- page: PageSelectorItem;
13
- }): any;
14
- 'item-icon'?(_: {
11
+ icon?(_: {
15
12
  page: PageSelectorItem;
16
13
  }): any;
17
14
  'item-icon'?(_: {
@@ -1,6 +1,6 @@
1
- import { PillNavItem } from '../types/components';
1
+ import { PillNavItem, PillNavItemInput } from '../types/components';
2
2
  interface Props {
3
- items: PillNavItem[];
3
+ items: PillNavItemInput[];
4
4
  currentItemId?: string;
5
5
  }
6
6
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -1,4 +1,6 @@
1
- import { SidebarToolSection } from '../types';
1
+ import { PillNavItem, SidebarToolSection } from '../types';
2
+ import { FormEnhancements, FormSchema } from '../types/form-builder';
3
+ import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions } from '../composables/useControlSchema';
2
4
  interface Props {
3
5
  /** Map of view IDs to their tool sections */
4
6
  panels?: Record<string, SidebarToolSection[]>;
@@ -14,6 +16,36 @@ interface Props {
14
16
  side?: 'left' | 'right';
15
17
  /** Toggle state map: sectionId → boolean */
16
18
  toggleState?: Record<string, boolean>;
19
+ /** Optional FormBuilder schemas keyed by section ID. Used when no section slot is provided. */
20
+ forms?: Record<string, FormSchema>;
21
+ /** Generated view IDs from useControlSchema(). Consumed for clean v-bind ergonomics. */
22
+ viewIds?: string[];
23
+ /** Generated AppPillNav-compatible view items from useControlSchema(). Consumed for clean v-bind ergonomics. */
24
+ viewItems?: PillNavItem[];
25
+ /** Default view ID used when activeView is omitted. */
26
+ defaultView?: string;
27
+ /** Model returned by defineControlModel(), or a raw nested ControlModel for one-step sidebar/form generation. */
28
+ model?: ControlModel | ControlModelBinding;
29
+ /** Compact control schema. When provided, AppSidebar generates panels, section forms, and default values. */
30
+ controls?: ControlSchema;
31
+ /** Options passed to compact control schema generation, including shared initialValues. */
32
+ controlOptions?: ControlWorkspaceOptions;
33
+ /** Shared values for auto-rendered section forms. Supports default v-model. */
34
+ modelValue?: Record<string, unknown>;
35
+ /** Shared values for auto-rendered section forms */
36
+ values?: Record<string, unknown>;
37
+ /** Runtime FormBuilder enhancements for auto-rendered section forms */
38
+ formEnhancements?: FormEnhancements<Record<string, unknown>>;
39
+ /** Show submit/cancel actions inside auto-rendered section forms */
40
+ showFormActions?: boolean;
41
+ /** Loading/saving state for auto-rendered section forms */
42
+ formLoading?: boolean;
43
+ /** Disabled state for auto-rendered section forms */
44
+ formDisabled?: boolean;
45
+ /** Readonly state for auto-rendered section forms */
46
+ formReadonly?: boolean;
47
+ /** Size passed to auto-rendered section forms */
48
+ formSize?: 'sm' | 'md' | 'lg';
17
49
  }
18
50
  declare function __VLS_template(): {
19
51
  attrs: Partial<{}>;
@@ -26,17 +58,38 @@ declare function __VLS_template(): {
26
58
  };
27
59
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
28
60
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
61
+ "update:modelValue": (values: Record<string, unknown>) => any;
62
+ "update:values": (values: Record<string, unknown>) => any;
29
63
  "update:toggle": (sectionId: string, value: boolean) => any;
64
+ "form-submit": (sectionId: string, values: Record<string, unknown>) => any;
65
+ "form-cancel": (sectionId: string) => any;
30
66
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
67
+ "onUpdate:modelValue"?: ((values: Record<string, unknown>) => any) | undefined;
68
+ "onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
31
69
  "onUpdate:toggle"?: ((sectionId: string, value: boolean) => any) | undefined;
70
+ "onForm-submit"?: ((sectionId: string, values: Record<string, unknown>) => any) | undefined;
71
+ "onForm-cancel"?: ((sectionId: string) => any) | undefined;
32
72
  }>, {
73
+ values: Record<string, unknown>;
74
+ modelValue: Record<string, unknown>;
33
75
  width: string;
34
- dense: boolean;
35
- panels: Record<string, SidebarToolSection[]>;
76
+ controlOptions: ControlWorkspaceOptions;
77
+ model: ControlModel | ControlModelBinding;
78
+ viewIds: string[];
79
+ viewItems: PillNavItem[];
80
+ defaultView: string;
36
81
  activeView: string;
82
+ panels: Record<string, SidebarToolSection[]>;
83
+ forms: Record<string, FormSchema>;
84
+ dense: boolean;
37
85
  floating: boolean;
38
86
  side: "left" | "right";
39
87
  toggleState: Record<string, boolean>;
88
+ showFormActions: boolean;
89
+ formLoading: boolean;
90
+ formDisabled: boolean;
91
+ formReadonly: boolean;
92
+ formSize: "sm" | "md" | "lg";
40
93
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
41
94
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
42
95
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -1,33 +1,62 @@
1
- import { TopBarPage, TopBarTab, TopBarTabOption, TopBarSettingsConfig, TopBarVariant, PillNavItem, PageSelectorItem, PluginSwitcherInfo, PluginSwitcherPlugin, AccountMenuItem } from '../types/components';
1
+ import { TopBarPage, TopBarPageInput, TopBarTab, TopBarTabInput, TopBarTabOption, TopBarSettingsConfig, TopBarVariant, PillNavItem, PillNavItemInput, PageSelectorItem, PageSelectorItemInput, PluginSwitcherInfo, PluginSwitcherPlugin, AccountMenuItem } from '../types/components';
2
2
  interface Props {
3
+ /** App or plugin title shown in the left title group when no page selector is present. */
3
4
  title?: string;
5
+ /** Secondary title copy shown under the title in title-group layouts. */
4
6
  subtitle?: string;
7
+ /** Show the default MINT logo when the icon/logo slot is not provided. */
5
8
  showLogo?: boolean;
9
+ /** Top bar visual treatment. */
6
10
  variant?: TopBarVariant;
7
- pluginName?: string;
8
- pages?: TopBarPage[];
9
- currentPageId?: string;
10
- tabs?: TopBarTab[];
11
- currentTabId?: string;
11
+ /** Home link used by classic breadcrumb layouts. */
12
12
  homePath?: string;
13
- pageSelector?: PageSelectorItem[];
13
+ /** Preferred route-level page switch entries for plugin and platform pages. */
14
+ pageSelector?: PageSelectorItemInput[];
15
+ /** Active id for the preferred page selector. */
14
16
  currentPageSelectorId?: string;
17
+ /** Optional plugin switcher shown in the left navigation position instead of pageSelector. */
15
18
  pluginSwitcher?: PluginSwitcherInfo;
16
- pillNav?: PillNavItem[];
19
+ /** Preferred centered navigation for local modes inside the current route. */
20
+ pillNav?: PillNavItemInput[];
21
+ /** Active id for the preferred centered pill navigation. */
17
22
  currentPillId?: string;
23
+ /** Account dropdown entries. Takes precedence over the classic profile button. */
18
24
  accountMenu?: AccountMenuItem[];
25
+ /** Show the notifications icon button. */
19
26
  showNotifications?: boolean;
27
+ /** Draw a notification dot on the notifications icon. */
20
28
  hasNotificationDot?: boolean;
29
+ /** Compatibility breadcrumb plugin name. Prefer pageSelector for route-level pages. */
30
+ pluginName?: string;
31
+ /** Compatibility page dropdown items. Prefer pageSelector for new route-level navigation. */
32
+ pages?: TopBarPageInput[];
33
+ /** Active id for the compatibility page dropdown. */
34
+ currentPageId?: string;
35
+ /** Compatibility center tabs. Prefer pillNav for new in-page modes. */
36
+ tabs?: TopBarTabInput[];
37
+ /** Active id for compatibility center tabs. */
38
+ currentTabId?: string;
39
+ /** Show the theme toggle button. */
21
40
  showThemeToggle?: boolean;
41
+ /** Show the settings button and modal. */
22
42
  showSettings?: boolean;
43
+ /** Built-in SettingsModal configuration. */
23
44
  settingsConfig?: TopBarSettingsConfig;
45
+ /** Show the standalone badge when the plugin is not integrated into the platform. */
24
46
  showStandaloneLabel?: boolean;
47
+ /** Custom standalone badge label. */
25
48
  standaloneLabel?: string;
49
+ /** Show the classic admin shortcut. */
26
50
  showAdmin?: boolean;
51
+ /** Route used by the classic admin shortcut. */
27
52
  adminPath?: string;
53
+ /** Show the classic profile button when accountMenu is not provided. */
28
54
  showProfile?: boolean;
55
+ /** Classic profile display name. */
29
56
  userName?: string;
57
+ /** Explicit classic profile initial. */
30
58
  userInitial?: string;
59
+ /** Classic profile email, used by avatar/account layouts. */
31
60
  userEmail?: string;
32
61
  }
33
62
  declare function __VLS_template(): {
@@ -39,7 +68,9 @@ declare function __VLS_template(): {
39
68
  logo?(_: {}): any;
40
69
  logo?(_: {}): any;
41
70
  logo?(_: {}): any;
42
- 'page-selector-icon'?(_: any): any;
71
+ 'page-selector-icon'?(_: {
72
+ page: PageSelectorItem;
73
+ }): any;
43
74
  'page-selector-item-icon'?(_: {
44
75
  page: PageSelectorItem;
45
76
  }): any;
@@ -47,7 +78,7 @@ declare function __VLS_template(): {
47
78
  center?(_: {}): any;
48
79
  actions?(_: {}): any;
49
80
  'account-menu-items'?(_: {
50
- close: () => boolean;
81
+ close: () => void;
51
82
  }): any;
52
83
  'account-menu-item-icon'?(_: {
53
84
  item: AccountMenuItem;
@@ -22,10 +22,10 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
22
22
  onClick?: ((event: MouseEvent) => any) | undefined;
23
23
  }>, {
24
24
  size: ButtonSize;
25
+ type: "button" | "submit" | "reset";
25
26
  disabled: boolean;
26
27
  variant: ButtonVariant;
27
28
  loading: boolean;
28
- type: "button" | "submit" | "reset";
29
29
  fullWidth: boolean;
30
30
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
31
31
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -11,7 +11,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
11
11
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
12
12
  }>, {
13
13
  size: "sm" | "md" | "lg";
14
- disabled: boolean;
15
14
  modelValue: boolean;
15
+ disabled: boolean;
16
16
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLLabelElement>;
17
17
  export default _default;
@@ -26,9 +26,9 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
26
26
  onKeydown?: ((event: KeyboardEvent) => any) | undefined;
27
27
  }>, {
28
28
  size: "sm" | "md" | "lg";
29
- error: boolean;
30
- disabled: boolean;
31
29
  type: InputType;
30
+ disabled: boolean;
32
31
  readonly: boolean;
32
+ error: boolean;
33
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLInputElement>;
34
34
  export default _default;
@@ -43,10 +43,10 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
43
43
  }>, {
44
44
  size: PillSize;
45
45
  disabled: boolean;
46
- variant: PillVariant;
47
46
  color: PillColor;
48
- removable: boolean;
47
+ variant: PillVariant;
49
48
  icon: boolean;
49
+ removable: boolean;
50
50
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
51
51
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
52
52
  export default _default;
@@ -1,7 +1,7 @@
1
- import { RadioOption } from '../types';
1
+ import { RadioOptionInput } from '../types';
2
2
  interface Props {
3
3
  modelValue?: string | number;
4
- options: RadioOption[];
4
+ options: RadioOptionInput[];
5
5
  name: string;
6
6
  disabled?: boolean;
7
7
  direction?: 'horizontal' | 'vertical';
@@ -15,7 +15,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
15
15
  }>, {
16
16
  size: "sm" | "md" | "lg";
17
17
  disabled: boolean;
18
- variant: "list" | "tile";
19
18
  direction: "horizontal" | "vertical";
19
+ variant: "list" | "tile";
20
20
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
21
21
  export default _default;
@@ -1,7 +1,7 @@
1
- import { SelectOption } from '../types';
1
+ import { SelectOptionInput } from '../types';
2
2
  interface Props {
3
3
  modelValue?: string | number;
4
- options: SelectOption<string | number>[];
4
+ options: SelectOptionInput<string | number>[];
5
5
  placeholder?: string;
6
6
  disabled?: boolean;
7
7
  error?: boolean;
@@ -14,7 +14,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
14
14
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
15
15
  }>, {
16
16
  size: "sm" | "md" | "lg";
17
- error: boolean;
18
17
  disabled: boolean;
18
+ error: boolean;
19
19
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
20
20
  export default _default;
@@ -1,7 +1,7 @@
1
- import { TabItem } from '../types';
1
+ import { TabItemInput } from '../types';
2
2
  interface Props {
3
3
  modelValue: string;
4
- tabs: TabItem[];
4
+ tabs: TabItemInput[];
5
5
  variant?: 'underline' | 'pills';
6
6
  }
7
7
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -21,9 +21,9 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
21
21
  onBlur?: ((event: FocusEvent) => any) | undefined;
22
22
  }>, {
23
23
  size: "sm" | "md" | "lg";
24
- error: boolean;
25
24
  disabled: boolean;
26
25
  readonly: boolean;
26
+ error: boolean;
27
27
  rows: number;
28
28
  resize: "none" | "vertical" | "horizontal" | "both";
29
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLTextAreaElement>;
@@ -13,7 +13,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
13
13
  }>, {
14
14
  size: "sm" | "md" | "lg";
15
15
  reverse: boolean;
16
- disabled: boolean;
17
16
  modelValue: boolean;
17
+ disabled: boolean;
18
18
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
19
19
  export default _default;
@@ -0,0 +1,117 @@
1
+ import { toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, BioTemplateEnvelope, BioTemplateComponentPropsLookupOptions, TemplateCollectionEnvelope } from '../templates';
2
+ type BioTemplateWorkspaceTarget = BioTemplateEnvelope<unknown> | TemplateCollectionEnvelope;
3
+ type WorkspaceKind = 'template' | 'collection';
4
+ interface TemplateWorkspaceStatus {
5
+ loading?: boolean;
6
+ saving?: boolean;
7
+ error?: string | null;
8
+ hasExperiment?: boolean;
9
+ currentExperimentId?: number;
10
+ lastLoadedAt?: Date | null;
11
+ lastSavedAt?: Date | null;
12
+ }
13
+ interface TemplateWorkspaceActions {
14
+ load?: () => unknown;
15
+ reset?: () => unknown;
16
+ save?: () => unknown;
17
+ }
18
+ interface Props {
19
+ /** Template envelope or template collection shown in BioTemplateRenderer. */
20
+ target: BioTemplateWorkspaceTarget;
21
+ /** Human-readable workspace label. */
22
+ label: string;
23
+ /** Grouped request and current-experiment state for generated plugin pages. */
24
+ status?: TemplateWorkspaceStatus;
25
+ /** Grouped load/reset/save handlers for generated plugin pages. */
26
+ actions?: TemplateWorkspaceActions;
27
+ /** Copy shown in the status banner. */
28
+ message?: string;
29
+ /** Whether the load/save request is active. */
30
+ loading?: boolean;
31
+ /** Current request error. */
32
+ error?: string | null;
33
+ /** Whether a current experiment id is available. */
34
+ hasExperiment?: boolean;
35
+ /** Current experiment id displayed in the footer. */
36
+ currentExperimentId?: number;
37
+ /** Last successful load timestamp. */
38
+ lastLoadedAt?: Date | null;
39
+ /** Last successful save timestamp. */
40
+ lastSavedAt?: Date | null;
41
+ /** Template vs collection copy defaults. */
42
+ kind?: WorkspaceKind;
43
+ /** Compact preview layout. */
44
+ dense?: boolean;
45
+ /** Render preview components in read-only mode. */
46
+ readonly?: boolean;
47
+ /** Show load/save timestamps. */
48
+ showStatus?: boolean;
49
+ /** Show template id/version cards for collection targets. */
50
+ showTemplateSummary?: boolean;
51
+ loadLabel?: string;
52
+ resetLabel?: string;
53
+ saveLabel?: string;
54
+ }
55
+ declare function getComponentProps(component: string, options?: BioTemplateComponentPropsLookupOptions): Record<string, unknown> | undefined;
56
+ interface BioTemplateExperimentWorkspaceBindings {
57
+ renderer: {
58
+ target: BioTemplateWorkspaceTarget;
59
+ };
60
+ componentProps: ReturnType<typeof toBioTemplateComponentProps>;
61
+ componentPropsById: ReturnType<typeof toBioTemplateComponentPropsById>;
62
+ componentPropsByComponent: ReturnType<typeof toBioTemplateComponentPropsByComponent>;
63
+ getComponentProps: typeof getComponentProps;
64
+ }
65
+ interface BioTemplateExperimentWorkspaceSlotProps {
66
+ target: BioTemplateWorkspaceTarget;
67
+ bindings: BioTemplateExperimentWorkspaceBindings;
68
+ componentProps: ReturnType<typeof toBioTemplateComponentProps>;
69
+ componentPropsById: ReturnType<typeof toBioTemplateComponentPropsById>;
70
+ componentPropsByComponent: ReturnType<typeof toBioTemplateComponentPropsByComponent>;
71
+ getComponentProps: typeof getComponentProps;
72
+ }
73
+ declare function __VLS_template(): {
74
+ attrs: Partial<{}>;
75
+ slots: Readonly<{
76
+ default?: (props: BioTemplateExperimentWorkspaceSlotProps) => unknown;
77
+ }> & {
78
+ default?: (props: BioTemplateExperimentWorkspaceSlotProps) => unknown;
79
+ };
80
+ refs: {};
81
+ rootEl: HTMLDivElement;
82
+ };
83
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
84
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
85
+ reset: () => any;
86
+ load: () => any;
87
+ save: () => any;
88
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
89
+ onReset?: (() => any) | undefined;
90
+ onLoad?: (() => any) | undefined;
91
+ onSave?: (() => any) | undefined;
92
+ }>, {
93
+ readonly: boolean;
94
+ error: string | null;
95
+ message: string;
96
+ status: TemplateWorkspaceStatus;
97
+ loading: boolean;
98
+ actions: TemplateWorkspaceActions;
99
+ dense: boolean;
100
+ currentExperimentId: number;
101
+ kind: WorkspaceKind;
102
+ hasExperiment: boolean;
103
+ lastLoadedAt: Date | null;
104
+ lastSavedAt: Date | null;
105
+ showStatus: boolean;
106
+ showTemplateSummary: boolean;
107
+ loadLabel: string;
108
+ resetLabel: string;
109
+ saveLabel: string;
110
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
111
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
112
+ export default _default;
113
+ type __VLS_WithTemplateSlots<T, S> = T & {
114
+ new (): {
115
+ $slots: S;
116
+ };
117
+ };
@@ -0,0 +1,92 @@
1
+ import { BioTemplateEnvelope, TemplateCollectionEnvelope, TemplatePackId } from '../templates';
2
+ import { UseBioTemplatePackWorkspaceOptions, UseBioTemplatePackWorkspaceReturn } from '../composables/useBioTemplatePackWorkspace';
3
+ interface BioTemplatePackWorkspaceSlotProps {
4
+ workspace: UseBioTemplatePackWorkspaceReturn;
5
+ bindings: UseBioTemplatePackWorkspaceReturn['bindings']['value'];
6
+ pack: UseBioTemplatePackWorkspaceReturn['pack'];
7
+ target: BioTemplateEnvelope<unknown> | TemplateCollectionEnvelope;
8
+ componentProps: UseBioTemplatePackWorkspaceReturn['componentProps']['value'];
9
+ componentPropsById: UseBioTemplatePackWorkspaceReturn['componentPropsById']['value'];
10
+ componentPropsByComponent: UseBioTemplatePackWorkspaceReturn['componentPropsByComponent']['value'];
11
+ getComponentProps: UseBioTemplatePackWorkspaceReturn['getComponentProps'];
12
+ form: UseBioTemplatePackWorkspaceReturn['form']['value'];
13
+ sidebar: UseBioTemplatePackWorkspaceReturn['sidebar']['value'];
14
+ topBar: UseBioTemplatePackWorkspaceReturn['topBar']['value'];
15
+ pillNav: UseBioTemplatePackWorkspaceReturn['pillNav']['value'];
16
+ topBarSettings: UseBioTemplatePackWorkspaceReturn['topBarSettings']['value'];
17
+ }
18
+ interface PackWorkspaceStatus {
19
+ loading?: boolean;
20
+ saving?: boolean;
21
+ error?: string | null;
22
+ hasExperiment?: boolean;
23
+ currentExperimentId?: number;
24
+ lastLoadedAt?: Date | null;
25
+ lastSavedAt?: Date | null;
26
+ }
27
+ interface PackWorkspaceActions {
28
+ load?: () => unknown;
29
+ reset?: () => unknown;
30
+ save?: () => unknown;
31
+ }
32
+ interface Props {
33
+ /** Workspace returned by useBioTemplatePackWorkspace(). Use for full manual control. */
34
+ workspace?: UseBioTemplatePackWorkspaceReturn;
35
+ /** Built-in template pack id or alias used when workspace is not provided. */
36
+ pack?: TemplatePackId | string;
37
+ /** Options passed to the internally generated useBioTemplatePackWorkspace() call. */
38
+ workspaceOptions?: UseBioTemplatePackWorkspaceOptions;
39
+ /** External request state when plugin endpoints handle pack persistence. */
40
+ status?: PackWorkspaceStatus;
41
+ /** External load/reset/save handlers when plugin endpoints handle pack persistence. */
42
+ actions?: PackWorkspaceActions;
43
+ /** Human-readable workspace label. Defaults to the pack catalog label. */
44
+ label?: string;
45
+ /** Copy shown in the status banner. */
46
+ message?: string;
47
+ /** Compact preview layout. */
48
+ dense?: boolean;
49
+ /** Render preview components in read-only mode. */
50
+ readonly?: boolean;
51
+ /** Show load/save timestamps. */
52
+ showStatus?: boolean;
53
+ /** Show template id/version cards for the generated collection. */
54
+ showTemplateSummary?: boolean;
55
+ loadLabel?: string;
56
+ resetLabel?: string;
57
+ saveLabel?: string;
58
+ }
59
+ declare function __VLS_template(): {
60
+ attrs: Partial<{}>;
61
+ slots: Readonly<{
62
+ default?: (props: BioTemplatePackWorkspaceSlotProps) => unknown;
63
+ }> & {
64
+ default?: (props: BioTemplatePackWorkspaceSlotProps) => unknown;
65
+ };
66
+ refs: {};
67
+ rootEl: HTMLDivElement;
68
+ };
69
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
70
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
71
+ readonly: boolean;
72
+ label: string;
73
+ message: string;
74
+ status: PackWorkspaceStatus;
75
+ actions: PackWorkspaceActions;
76
+ dense: boolean;
77
+ workspace: UseBioTemplatePackWorkspaceReturn;
78
+ pack: TemplatePackId | string;
79
+ showStatus: boolean;
80
+ showTemplateSummary: boolean;
81
+ loadLabel: string;
82
+ resetLabel: string;
83
+ saveLabel: string;
84
+ workspaceOptions: UseBioTemplatePackWorkspaceOptions;
85
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
86
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
87
+ export default _default;
88
+ type __VLS_WithTemplateSlots<T, S> = T & {
89
+ new (): {
90
+ $slots: S;
91
+ };
92
+ };
@@ -0,0 +1,82 @@
1
+ import { BioTemplateControlValues, TemplatePresetId } from '../templates';
2
+ import { UseBioTemplatePresetWorkspaceOptions, UseBioTemplatePresetWorkspaceReturn } from '../composables/useBioTemplatePresetWorkspace';
3
+ interface BioTemplatePresetWorkspaceSlotProps {
4
+ workspace: UseBioTemplatePresetWorkspaceReturn;
5
+ bindings: UseBioTemplatePresetWorkspaceReturn['bindings'];
6
+ collection: UseBioTemplatePresetWorkspaceReturn['collection']['value'];
7
+ renderer: UseBioTemplatePresetWorkspaceReturn['renderer']['value'];
8
+ componentProps: UseBioTemplatePresetWorkspaceReturn['componentProps']['value'];
9
+ componentPropsById: UseBioTemplatePresetWorkspaceReturn['componentPropsById']['value'];
10
+ componentPropsByComponent: UseBioTemplatePresetWorkspaceReturn['componentPropsByComponent']['value'];
11
+ getComponentProps: UseBioTemplatePresetWorkspaceReturn['getComponentProps'];
12
+ }
13
+ interface Props {
14
+ /** Workspace returned by useBioTemplatePresetWorkspace(). Use for full manual control. */
15
+ workspace?: UseBioTemplatePresetWorkspaceReturn;
16
+ /** Built-in preset id used to create the workspace when workspace is not provided. */
17
+ preset?: TemplatePresetId;
18
+ /** Options passed to the internally generated useBioTemplatePresetWorkspace() call. */
19
+ workspaceOptions?: UseBioTemplatePresetWorkspaceOptions;
20
+ /** Initial control values for the internally generated preset workspace. */
21
+ initialValues?: BioTemplateControlValues;
22
+ /** External control values for the internally generated preset workspace. Supports default v-model. */
23
+ modelValue?: BioTemplateControlValues;
24
+ /** External control values for the internally generated preset workspace. Supports v-model:values. */
25
+ values?: BioTemplateControlValues;
26
+ /** Label shown in the status banner. Defaults to the humanized preset id. */
27
+ label?: string;
28
+ /** Sidebar CSS width. */
29
+ sidebarWidth?: string;
30
+ /** Compact sidebar and preview layout. */
31
+ dense?: boolean;
32
+ /** Render preview components in read-only mode. */
33
+ readonly?: boolean;
34
+ /** Show save timestamp. */
35
+ showStatus?: boolean;
36
+ /** Show cards for templates included in the preset collection. */
37
+ showTemplateSummary?: boolean;
38
+ /** Show component binding count. */
39
+ showComponentSummary?: boolean;
40
+ saveLabel?: string;
41
+ resetLabel?: string;
42
+ }
43
+ declare function __VLS_template(): {
44
+ attrs: Partial<{}>;
45
+ slots: Readonly<{
46
+ default?: (props: BioTemplatePresetWorkspaceSlotProps) => unknown;
47
+ }> & {
48
+ default?: (props: BioTemplatePresetWorkspaceSlotProps) => unknown;
49
+ };
50
+ refs: {};
51
+ rootEl: HTMLDivElement;
52
+ };
53
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
54
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
55
+ "update:modelValue": (values: BioTemplateControlValues) => any;
56
+ "update:values": (values: BioTemplateControlValues) => any;
57
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
58
+ "onUpdate:modelValue"?: ((values: BioTemplateControlValues) => any) | undefined;
59
+ "onUpdate:values"?: ((values: BioTemplateControlValues) => any) | undefined;
60
+ }>, {
61
+ values: BioTemplateControlValues;
62
+ modelValue: BioTemplateControlValues;
63
+ readonly: boolean;
64
+ initialValues: BioTemplateControlValues;
65
+ dense: boolean;
66
+ sidebarWidth: string;
67
+ workspace: UseBioTemplatePresetWorkspaceReturn;
68
+ preset: TemplatePresetId;
69
+ showStatus: boolean;
70
+ showTemplateSummary: boolean;
71
+ resetLabel: string;
72
+ saveLabel: string;
73
+ workspaceOptions: UseBioTemplatePresetWorkspaceOptions;
74
+ showComponentSummary: boolean;
75
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
76
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
77
+ export default _default;
78
+ type __VLS_WithTemplateSlots<T, S> = T & {
79
+ new (): {
80
+ $slots: S;
81
+ };
82
+ };
@@ -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;