@morscherlab/mint-sdk 1.2.0-beta.1 → 1.2.0-beta.10
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.
- package/README.md +35 -5
- package/dist/{ExperimentPopover-tLwJ7XF4.js → ExperimentPopover-oL0fg_A0.js} +6 -4
- package/dist/ExperimentPopover-oL0fg_A0.js.map +1 -0
- package/dist/{ExperimentSelectorModal-DyPAUCLw.js → ExperimentSelectorModal-BeEOomw_.js} +5 -5
- package/dist/ExperimentSelectorModal-BeEOomw_.js.map +1 -0
- package/dist/{SettingsModal-BgKY93zh.js → SettingsModal-Dphh3RrI.js} +5 -8
- package/dist/SettingsModal-Dphh3RrI.js.map +1 -0
- package/dist/{EmptyState-p90quq8Z.js → Skeleton-DxtwJ5gt.js} +111 -93
- package/dist/Skeleton-DxtwJ5gt.js.map +1 -0
- package/dist/__tests__/components/ExperimentTimeline.test.d.ts +1 -0
- package/dist/__tests__/components/PluginWorkspaceView.internal.test.d.ts +1 -0
- package/dist/__tests__/components/SecretInput.test.d.ts +1 -0
- package/dist/__tests__/components/WellEditPopupInternal.test.d.ts +1 -0
- package/dist/__tests__/composables/useListReorder.test.d.ts +1 -0
- package/dist/__tests__/composables/usePluginConfig.test.d.ts +15 -0
- package/dist/__tests__/styles/cssTokens.test.d.ts +1 -0
- package/dist/components/ActionMenu.vue.d.ts +1 -1
- package/dist/components/AppAvatarMenu.vue.d.ts +4 -0
- package/dist/components/AppPluginSwitcher.vue.d.ts +2 -0
- package/dist/components/AppSidebar.vue.d.ts +1 -1
- package/dist/components/AuditTrail.vue.d.ts +13 -0
- package/dist/components/AutoGroupModal.vue.d.ts +1 -1
- package/dist/components/BatchProgressList.vue.d.ts +17 -0
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
- package/dist/components/DataFrame.vue.d.ts +14 -2
- package/dist/components/DatePicker.vue.d.ts +1 -1
- package/dist/components/DateTimePicker.vue.d.ts +2 -0
- package/dist/components/DropdownButton.vue.d.ts +2 -0
- package/dist/components/ExperimentDataViewer.vue.d.ts +26 -1
- package/dist/components/ExperimentPopover.vue.d.ts +1 -0
- package/dist/components/ExperimentTimeline.vue.d.ts +29 -1
- package/dist/components/FitPanel.vue.d.ts +1 -1
- package/dist/components/JobsStatusTray.vue.d.ts +9 -2
- package/dist/components/LcmsSequenceTable.vue.d.ts +29 -1
- package/dist/components/PluginWorkspaceView.props.d.ts +29 -1
- package/dist/components/PluginWorkspaceView.vue.d.ts +5 -5
- package/dist/components/ProgressBar.vue.d.ts +1 -1
- package/dist/components/ProtocolStepEditor.vue.d.ts +1 -0
- package/dist/components/ReagentList.vue.d.ts +29 -1
- package/dist/components/SampleHierarchyTree.vue.d.ts +29 -1
- package/dist/components/SampleLegend.vue.d.ts +1 -1
- package/dist/components/SampleSelector.drag.d.ts +13 -0
- package/dist/components/SampleSelector.tree.d.ts +2 -0
- package/dist/components/SampleSelector.vue.d.ts +35 -2
- package/dist/components/ScheduleCalendar.vue.d.ts +20 -0
- package/dist/components/SecretInput.vue.d.ts +28 -0
- package/dist/components/SettingsModal.vue.d.ts +1 -1
- package/dist/components/SmartGroupFieldRecipe.vue.d.ts +2 -1
- package/dist/components/TimePicker.vue.d.ts +1 -0
- package/dist/components/WellPlate.geometry.d.ts +15 -0
- package/dist/components/WellPlate.interaction.d.ts +13 -0
- package/dist/components/WellPlate.vue.d.ts +29 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.js +8 -8
- package/dist/components/internal/AppTopBarPageSelectorInternal.vue.d.ts +2 -0
- package/dist/components/internal/DataStateInternal.vue.d.ts +43 -0
- package/dist/components/internal/WellEditPopupInternal.vue.d.ts +3 -1
- package/dist/components/internal/WorkspaceControlsInternal.vue.d.ts +23 -0
- package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +70 -0
- package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +43 -0
- package/dist/{components-DkHddRMl.js → components-CgAUzF8F.js} +2497 -2235
- package/dist/components-CgAUzF8F.js.map +1 -0
- package/dist/composables/controlSchemaTypes.d.ts +34 -0
- package/dist/composables/flattenWorkspaceBindings.d.ts +61 -0
- package/dist/composables/index.d.ts +9 -2
- package/dist/composables/index.js +10 -10
- package/dist/composables/pluginWorkspaceModel.d.ts +164 -0
- package/dist/composables/useAsync.d.ts +5 -1
- package/dist/composables/useBioTemplateWorkspace.d.ts +4 -20
- package/dist/composables/useCommandHistory.d.ts +5 -1
- package/dist/composables/useDropdownState.d.ts +18 -2
- package/dist/composables/useEventStream.d.ts +9 -0
- package/dist/composables/useFocusTrap.d.ts +21 -0
- package/dist/composables/useGeneratedAnalysis.d.ts +3 -1
- package/dist/composables/useJobsStatusTray.d.ts +25 -1
- package/dist/composables/useListReorder.d.ts +90 -0
- package/dist/composables/useMenuKeyboard.d.ts +29 -0
- package/dist/composables/useOptimisticMutation.d.ts +5 -1
- package/dist/composables/usePluginClient.d.ts +2 -0
- package/dist/composables/usePluginConfig.d.ts +27 -0
- package/dist/composables/usePluginWorkspace.d.ts +51 -0
- package/dist/composables/useRequestSyncState.d.ts +42 -2
- package/dist/composables/useResourceCrud.d.ts +5 -1
- package/dist/composables/useRovingFocus.d.ts +24 -0
- package/dist/composables/useScheduleDrag.d.ts +1 -0
- package/dist/composables/useWellPainting.d.ts +5 -1
- package/dist/composables/useWellPlateAdapter.d.ts +5 -1
- package/dist/composables/useWellPlateValidation.d.ts +5 -1
- package/dist/composables/workspaceRecipes.d.ts +188 -0
- package/dist/{composables-C_i90sGS.js → composables-B_pia3hO.js} +209 -82
- package/dist/composables-B_pia3hO.js.map +1 -0
- package/dist/{useApi-J6zFkHmn.js → errors-_W0-LbA6.js} +103 -3
- package/dist/errors-_W0-LbA6.js.map +1 -0
- package/dist/{experiment-Cq145oEW.js → experiment-Cwl9AYxw.js} +3 -8
- package/dist/experiment-Cwl9AYxw.js.map +1 -0
- package/dist/{experiment-utils-CLnzPPq5.js → experiment-utils-DV3DrvE_.js} +70 -51
- package/dist/experiment-utils-DV3DrvE_.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -15
- package/dist/install.js +2 -7
- package/dist/install.js.map +1 -1
- package/dist/permissions.d.ts +42 -1
- package/dist/permissions.js +20 -10
- package/dist/permissions.js.map +1 -1
- package/dist/stores/auth.d.ts +6 -0
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/index.js +3 -3
- package/dist/stores/settings.d.ts +31 -1
- package/dist/styles.css +11247 -29501
- package/dist/templates/builderReadUtils.d.ts +1 -1
- package/dist/templates/index.js +2 -4
- package/dist/{templates-DsP51i-S.js → templates-Qq113pyZ.js} +303 -106
- package/dist/templates-Qq113pyZ.js.map +1 -0
- package/dist/types/auth.d.ts +1 -0
- package/dist/types/form-builder.d.ts +1 -1
- package/dist/{useControlSchema-BDx2Olha.js → useControlSchema-aMZlb4Sc.js} +462 -1130
- package/dist/useControlSchema-aMZlb4Sc.js.map +1 -0
- package/dist/{useDropdownState-DSb3BC3N.js → useDropdownState-DitCtrTT.js} +22 -6
- package/dist/useDropdownState-DitCtrTT.js.map +1 -0
- package/dist/{useExperimentSelector-CV4iNfMS.js → useExperimentSelector-I8HC8hUu.js} +4 -4
- package/dist/{useExperimentSelector-CV4iNfMS.js.map → useExperimentSelector-I8HC8hUu.js.map} +1 -1
- package/dist/{useFormBuilder-BLxG3BOX.js → useFormBuilder-TCxNnqeb.js} +2 -2
- package/dist/{useFormBuilder-BLxG3BOX.js.map → useFormBuilder-TCxNnqeb.js.map} +1 -1
- package/dist/{useProtocolTemplates-CS_SQl6U.js → useProtocolTemplates-BmX_iVBR.js} +766 -212
- package/dist/useProtocolTemplates-BmX_iVBR.js.map +1 -0
- package/dist/utils/color.d.ts +13 -0
- package/dist/utils/errors.d.ts +9 -0
- package/dist/utils/pluginSecrets.d.ts +53 -0
- package/dist/utils/records.d.ts +4 -0
- package/package.json +1 -1
- package/src/__tests__/components/ActionMenu.test.ts +94 -0
- package/src/__tests__/components/AppAvatarMenu.test.ts +123 -0
- package/src/__tests__/components/BaseTabs.test.ts +67 -0
- package/src/__tests__/components/DataFrame.test.ts +183 -11
- package/src/__tests__/components/DataStates.test.ts +176 -0
- package/src/__tests__/components/DatePicker.test.ts +76 -0
- package/src/__tests__/components/DateTimePicker.test.ts +36 -0
- package/src/__tests__/components/DropdownButton.test.ts +134 -0
- package/src/__tests__/components/ExperimentTimeline.test.ts +63 -0
- package/src/__tests__/components/GroupAssigner.test.ts +53 -0
- package/src/__tests__/components/LcmsSequenceTable.test.ts +22 -0
- package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +230 -0
- package/src/__tests__/components/RackEditor.test.ts +35 -0
- package/src/__tests__/components/ReagentList.test.ts +64 -2
- package/src/__tests__/components/RetiredStyles.test.ts +31 -0
- package/src/__tests__/components/SampleSelector.drag.test.ts +51 -1
- package/src/__tests__/components/ScheduleCalendar.test.ts +63 -0
- package/src/__tests__/components/SecretInput.test.ts +87 -0
- package/src/__tests__/components/SegmentedControl.test.ts +88 -0
- package/src/__tests__/components/TimePicker.test.ts +61 -0
- package/src/__tests__/components/WellEditPopupInternal.test.ts +108 -0
- package/src/__tests__/components/WellPlate.interaction.test.ts +59 -0
- package/src/__tests__/composables/useAuth.test.ts +2 -0
- package/src/__tests__/composables/useDropdownState.test.ts +58 -1
- package/src/__tests__/composables/useListReorder.test.ts +145 -0
- package/src/__tests__/composables/usePluginClient.test.ts +140 -0
- package/src/__tests__/composables/usePluginConfig.test.ts +497 -0
- package/src/__tests__/composables/useRequestSyncState.test.ts +140 -0
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +39 -7
- package/src/__tests__/stores/settings.test.ts +71 -1
- package/src/__tests__/styles/cssTokens.test.ts +131 -0
- package/src/__tests__/utils/permissions.test.ts +68 -0
- package/src/components/ActionMenu.vue +45 -88
- package/src/components/AlertBox.vue +0 -4
- package/src/components/AppAvatarMenu.vue +26 -7
- package/src/components/AppLayout.vue +0 -4
- package/src/components/AppPluginSwitcher.story.vue +87 -0
- package/src/components/AppPluginSwitcher.vue +2 -5
- package/src/components/AppSidebar.vue +0 -4
- package/src/components/AppToastContainer.vue +6 -8
- package/src/components/AppTopBar.vue +0 -4
- package/src/components/ArtifactSaveDialog.vue +0 -4
- package/src/components/ArtifactSelectorModal.vue +0 -4
- package/src/components/AuditTrail.story.vue +18 -0
- package/src/components/AuditTrail.vue +27 -7
- package/src/components/AutoGroupModal.vue +0 -4
- package/src/components/Avatar.vue +0 -4
- package/src/components/BaseButton.vue +0 -4
- package/src/components/BaseCheckbox.vue +0 -4
- package/src/components/BaseInput.vue +0 -4
- package/src/components/BaseModal.vue +8 -60
- package/src/components/BasePill.vue +0 -4
- package/src/components/BaseRadioGroup.vue +0 -4
- package/src/components/BaseSelect.vue +0 -4
- package/src/components/BaseSlider.vue +0 -4
- package/src/components/BaseTabs.vue +26 -5
- package/src/components/BaseTextarea.vue +0 -4
- package/src/components/BaseToggle.vue +0 -4
- package/src/components/BatchProgressList.story.vue +18 -0
- package/src/components/BatchProgressList.vue +32 -4
- package/src/components/BioTemplateExperimentWorkspaceView.vue +10 -21
- package/src/components/BioTemplatePackWorkspaceView.vue +11 -15
- package/src/components/BioTemplatePresetWorkspaceView.vue +8 -13
- package/src/components/Breadcrumb.vue +0 -4
- package/src/components/Calendar.vue +0 -4
- package/src/components/ChartContainer.story.vue +1 -1
- package/src/components/ChartContainer.vue +0 -4
- package/src/components/ChemicalFormula.vue +0 -4
- package/src/components/CollapsibleCard.vue +0 -4
- package/src/components/ColorSlider.vue +0 -4
- package/src/components/ComponentBindingRenderer.vue +1 -3
- package/src/components/ConcentrationInput.vue +0 -4
- package/src/components/ConfirmDialog.vue +0 -4
- package/src/components/ControlWorkspaceView.vue +11 -22
- package/src/components/DataFrame.story.vue +14 -0
- package/src/components/DataFrame.vue +97 -23
- package/src/components/DatePicker.vue +73 -27
- package/src/components/DateTimePicker.vue +45 -17
- package/src/components/Divider.vue +0 -4
- package/src/components/DoseCalculator.vue +0 -4
- package/src/components/DoseDesignWorkspaceView.vue +6 -25
- package/src/components/DropdownButton.vue +24 -6
- package/src/components/EmptyState.vue +0 -4
- package/src/components/ExperimentCodeBadge.vue +0 -4
- package/src/components/ExperimentDataViewer.story.vue +3 -0
- package/src/components/ExperimentDataViewer.vue +33 -13
- package/src/components/ExperimentPopover.vue +2 -5
- package/src/components/ExperimentSelectorModal.vue +0 -4
- package/src/components/ExperimentTimeline.story.vue +18 -0
- package/src/components/ExperimentTimeline.vue +81 -75
- package/src/components/FileUploader.vue +0 -4
- package/src/components/FitPanel.vue +0 -4
- package/src/components/FormActions.story.vue +96 -0
- package/src/components/FormActions.vue +0 -4
- package/src/components/FormBuilder.vue +0 -4
- package/src/components/FormField.vue +0 -4
- package/src/components/FormulaInput.vue +0 -4
- package/src/components/GeneratedPathInput.story.vue +68 -0
- package/src/components/GeneratedPlotlyResult.story.vue +96 -0
- package/src/components/GeneratedPlotlyResult.vue +3 -3
- package/src/components/GeneratedPluginView.story.vue +145 -0
- package/src/components/GeneratedPluginView.vue +10 -10
- package/src/components/GeneratedResultRenderer.story.vue +117 -0
- package/src/components/GeneratedResultRenderer.vue +4 -4
- package/src/components/GroupAssigner.vue +67 -5
- package/src/components/IconButton.vue +0 -4
- package/src/components/InstrumentAlertLog.vue +0 -4
- package/src/components/InstrumentStateBadge.vue +0 -4
- package/src/components/InstrumentStatusCard.vue +0 -4
- package/src/components/JobsStatusTray.vue +16 -5
- package/src/components/LcmsSequenceTable.vue +81 -50
- package/src/components/LoadingSpinner.vue +0 -4
- package/src/components/MobileSupportGate.vue +0 -4
- package/src/components/MoleculeInput.vue +0 -4
- package/src/components/MultiSelect.vue +0 -4
- package/src/components/NumberInput.vue +0 -4
- package/src/components/PlateMapEditor.vue +3 -14
- package/src/components/PluginIcon.vue +0 -4
- package/src/components/PluginWorkspaceView.props.ts +38 -0
- package/src/components/PluginWorkspaceView.vue +53 -224
- package/src/components/ProgressBar.vue +0 -4
- package/src/components/ProtocolStepEditor.vue +2 -4
- package/src/components/RackEditor.vue +51 -70
- package/src/components/ReagentEditor.vue +0 -4
- package/src/components/ReagentList.story.vue +18 -0
- package/src/components/ReagentList.vue +127 -82
- package/src/components/ResourceCard.vue +0 -4
- package/src/components/RuntimeUpdateNotice.story.vue +49 -0
- package/src/components/RuntimeUpdateNotice.vue +4 -4
- package/src/components/SampleHierarchyTree.story.vue +18 -0
- package/src/components/SampleHierarchyTree.vue +32 -9
- package/src/components/SampleLegend.vue +2 -8
- package/src/components/SampleSelector.drag.ts +51 -0
- package/src/components/SampleSelector.story.vue +6 -0
- package/src/components/SampleSelector.tree.ts +2 -0
- package/src/components/SampleSelector.vue +49 -10
- package/src/components/SampleSelectorGroupNode.vue +19 -0
- package/src/components/ScheduleCalendar.story.vue +6 -0
- package/src/components/ScheduleCalendar.vue +82 -7
- package/src/components/ScientificNumber.vue +0 -4
- package/src/components/SecretInput.story.vue +79 -0
- package/src/components/SecretInput.vue +150 -0
- package/src/components/SectionCard.vue +0 -4
- package/src/components/SegmentedControl.vue +48 -5
- package/src/components/SequenceInput.vue +0 -4
- package/src/components/SequenceProgressBar.story.vue +110 -0
- package/src/components/SequenceProgressBar.vue +0 -4
- package/src/components/SettingsModal.vue +0 -4
- package/src/components/Skeleton.vue +0 -4
- package/src/components/SmartGroupFieldRecipe.vue +8 -6
- package/src/components/SmartGroupManual.vue +0 -4
- package/src/components/StatusIndicator.vue +0 -4
- package/src/components/StepWizard.vue +0 -4
- package/src/components/TagsInput.vue +4 -6
- package/src/components/ThemeToggle.vue +0 -4
- package/src/components/TimePicker.vue +36 -7
- package/src/components/TimeRangeInput.vue +0 -4
- package/src/components/Tooltip.story.vue +3 -3
- package/src/components/Tooltip.vue +0 -4
- package/src/components/UnitInput.vue +0 -4
- package/src/components/WellPlate.geometry.ts +60 -1
- package/src/components/WellPlate.interaction.ts +44 -0
- package/src/components/WellPlate.story.vue +8 -0
- package/src/components/WellPlate.vue +53 -7
- package/src/components/index.ts +9 -0
- package/src/components/internal/AppTopBarPageSelectorInternal.vue +2 -5
- package/src/components/internal/AppTopBarPillNavInternal.vue +0 -4
- package/src/components/internal/DataStateInternal.vue +74 -0
- package/src/components/internal/FormSectionRenderer.vue +0 -4
- package/src/components/internal/WellEditPopupInternal.vue +20 -5
- package/src/components/internal/WorkspaceControlsInternal.vue +20 -0
- package/src/components/internal/WorkspaceShellInternal.vue +125 -0
- package/src/components/internal/WorkspaceSidebarInternal.vue +82 -0
- package/src/composables/controlSchemaTypes.ts +34 -0
- package/src/composables/experimentDesignData.ts +1 -3
- package/src/composables/flattenWorkspaceBindings.ts +104 -0
- package/src/composables/formBuilderRegistry.ts +5 -0
- package/src/composables/index.ts +43 -0
- package/src/composables/pluginWorkspaceModel.ts +182 -0
- package/src/composables/useAsync.ts +5 -1
- package/src/composables/useAuth.ts +3 -0
- package/src/composables/useBioTemplatePackWorkspace.ts +15 -9
- package/src/composables/useBioTemplatePresetWorkspace.ts +14 -15
- package/src/composables/useBioTemplateWorkspace.ts +18 -43
- package/src/composables/useCommandHistory.ts +5 -1
- package/src/composables/useDropdownState.ts +35 -5
- package/src/composables/useEventStream.ts +14 -2
- package/src/composables/useFileImport.ts +2 -7
- package/src/composables/useFocusTrap.ts +91 -0
- package/src/composables/useGeneratedAnalysis.ts +22 -10
- package/src/composables/useJobsStatusTray.ts +184 -17
- package/src/composables/useListReorder.story.vue +143 -0
- package/src/composables/useListReorder.ts +242 -0
- package/src/composables/useMenuKeyboard.ts +90 -0
- package/src/composables/useOptimisticMutation.ts +6 -16
- package/src/composables/usePluginClient.ts +47 -4
- package/src/composables/usePluginConfig.ts +252 -0
- package/src/composables/usePluginWorkspace.ts +208 -0
- package/src/composables/useRackEditor.ts +2 -11
- package/src/composables/useRequestSyncState.ts +98 -28
- package/src/composables/useResourceCrud.ts +6 -16
- package/src/composables/useRovingFocus.ts +66 -0
- package/src/composables/useScheduleDrag.ts +37 -0
- package/src/composables/useWellPainting.ts +10 -30
- package/src/composables/useWellPlateAdapter.ts +5 -1
- package/src/composables/useWellPlateEditor.ts +1 -11
- package/src/composables/useWellPlateValidation.ts +5 -1
- package/src/composables/workspaceRecipes.ts +267 -0
- package/src/index.ts +16 -0
- package/src/permissions.ts +48 -9
- package/src/stores/auth.ts +1 -0
- package/src/stores/experiment.ts +2 -7
- package/src/stores/index.ts +9 -1
- package/src/stores/settings.ts +93 -1
- package/src/styles/components/audit-trail.css +5 -5
- package/src/styles/components/batch-progress-list.css +7 -0
- package/src/styles/components/color-slider.css +2 -2
- package/src/styles/components/data-state.css +30 -0
- package/src/styles/components/dataframe.css +29 -35
- package/src/styles/components/experiment-data-viewer.css +4 -4
- package/src/styles/components/experiment-timeline.css +3 -30
- package/src/styles/components/form-builder.css +5 -5
- package/src/styles/components/lcms-sequence-table.css +16 -1
- package/src/styles/components/multi-select.css +1 -1
- package/src/styles/components/reagent-list.css +38 -31
- package/src/styles/components/sample-hierarchy-tree.css +5 -19
- package/src/styles/components/sample-selector.css +9 -2
- package/src/styles/components/schedule-calendar.css +8 -0
- package/src/styles/components/scientific-number.css +1 -1
- package/src/styles/components/secret-input.css +60 -0
- package/src/styles/components/well-plate.css +8 -0
- package/src/styles/index.css +9 -0
- package/src/styles/variables.css +29 -0
- package/src/templates/builderPresetControls.ts +1 -1
- package/src/templates/builderReadUtils.ts +1 -3
- package/src/templates/componentPlateHelpers.ts +3 -1
- package/src/templates/componentTargetResolvers.ts +1 -3
- package/src/templates/controlSchemaTargets.ts +1 -3
- package/src/templates/doseResponseAdapters.ts +2 -13
- package/src/templates/elisaAssayCollectionBuilder.ts +2 -2
- package/src/templates/plateMapBuilder.ts +2 -2
- package/src/templates/qpcrPlateBuilder.ts +1 -1
- package/src/templates/templateValidators.ts +1 -1
- package/src/templates/timeCourseBuilder.ts +2 -2
- package/src/templates/wellPlateScreenCollectionBuilder.ts +2 -2
- package/src/types/auth.ts +1 -0
- package/src/types/form-builder.ts +1 -0
- package/src/utils/color.ts +51 -0
- package/src/utils/errors.ts +29 -0
- package/src/utils/formModelSync.ts +1 -3
- package/src/utils/pluginIcon.ts +1 -3
- package/src/utils/pluginSecrets.ts +102 -0
- package/src/utils/records.ts +9 -0
- package/dist/EmptyState-p90quq8Z.js.map +0 -1
- package/dist/ExperimentPopover-tLwJ7XF4.js.map +0 -1
- package/dist/ExperimentSelectorModal-DyPAUCLw.js.map +0 -1
- package/dist/SettingsModal-BgKY93zh.js.map +0 -1
- package/dist/components-DkHddRMl.js.map +0 -1
- package/dist/composables/autoGroupConstants.d.ts +0 -1
- package/dist/composables/autoGroupGrouping.d.ts +0 -3
- package/dist/composables/useAutoGroupInputSources.d.ts +0 -32
- package/dist/composables-C_i90sGS.js.map +0 -1
- package/dist/experiment-Cq145oEW.js.map +0 -1
- package/dist/experiment-utils-CLnzPPq5.js.map +0 -1
- package/dist/templates/builderDefaults.d.ts +0 -1
- package/dist/templates/plateGeometry.d.ts +0 -4
- package/dist/templates-DsP51i-S.js.map +0 -1
- package/dist/useApi-J6zFkHmn.js.map +0 -1
- package/dist/useControlSchema-BDx2Olha.js.map +0 -1
- package/dist/useDropdownState-DSb3BC3N.js.map +0 -1
- package/dist/useProtocolTemplates-CS_SQl6U.js.map +0 -1
- package/src/__tests__/composables/useAutoGroupInputSources.test.ts +0 -127
- package/src/composables/autoGroupConstants.ts +0 -4
- package/src/composables/autoGroupGrouping.ts +0 -148
- package/src/composables/useAutoGroupInputSources.ts +0 -147
- package/src/templates/builderDefaults.ts +0 -11
- package/src/templates/plateGeometry.ts +0 -62
- /package/dist/__tests__/{composables/useAutoGroupInputSources.test.d.ts → components/DataStates.test.d.ts} +0 -0
|
@@ -10,11 +10,29 @@ interface Props {
|
|
|
10
10
|
pluginRoutePrefix?: string;
|
|
11
11
|
experimentId?: number;
|
|
12
12
|
loading?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Error message. When set (or when the auto-fetch fails), the content area
|
|
15
|
+
* renders an error state instead of the data views.
|
|
16
|
+
*/
|
|
17
|
+
error?: string | null;
|
|
13
18
|
downloadJsonUrl?: string;
|
|
14
19
|
downloadCsvUrl?: string;
|
|
15
20
|
autoFetch?: boolean;
|
|
16
21
|
}
|
|
17
|
-
declare
|
|
22
|
+
declare function __VLS_template(): {
|
|
23
|
+
attrs: Partial<{}>;
|
|
24
|
+
slots: {
|
|
25
|
+
error?(_: {
|
|
26
|
+
error: string;
|
|
27
|
+
}): any;
|
|
28
|
+
loading?(_: {}): any;
|
|
29
|
+
empty?(_: {}): any;
|
|
30
|
+
};
|
|
31
|
+
refs: {};
|
|
32
|
+
rootEl: HTMLDivElement;
|
|
33
|
+
};
|
|
34
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
35
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
18
36
|
"open-plugin": () => any;
|
|
19
37
|
"download-json": () => any;
|
|
20
38
|
"download-csv": () => any;
|
|
@@ -23,9 +41,16 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
23
41
|
"onDownload-json"?: (() => any) | undefined;
|
|
24
42
|
"onDownload-csv"?: (() => any) | undefined;
|
|
25
43
|
}>, {
|
|
44
|
+
error: string | null;
|
|
26
45
|
title: string;
|
|
27
46
|
loading: boolean;
|
|
28
47
|
defaultView: "summary" | "tree" | "table";
|
|
29
48
|
autoFetch: boolean;
|
|
30
49
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
50
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
31
51
|
export default _default;
|
|
52
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
53
|
+
new (): {
|
|
54
|
+
$slots: S;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -33,5 +33,6 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
33
33
|
confirmSave: boolean;
|
|
34
34
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
35
35
|
popoverRef: HTMLDivElement;
|
|
36
|
+
triggerRef: HTMLButtonElement;
|
|
36
37
|
}, HTMLDivElement>;
|
|
37
38
|
export default _default;
|
|
@@ -10,8 +10,28 @@ interface Props {
|
|
|
10
10
|
size?: 'sm' | 'md' | 'lg';
|
|
11
11
|
colorByStatus?: boolean;
|
|
12
12
|
colorByType?: boolean;
|
|
13
|
+
/** Replace the timeline with a loading placeholder. */
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Error message. When set, the timeline is replaced by an error state.
|
|
17
|
+
* `null`/`undefined` renders normally.
|
|
18
|
+
*/
|
|
19
|
+
error?: string | null;
|
|
13
20
|
}
|
|
14
|
-
declare
|
|
21
|
+
declare function __VLS_template(): {
|
|
22
|
+
attrs: Partial<{}>;
|
|
23
|
+
slots: {
|
|
24
|
+
error?(_: {
|
|
25
|
+
error: string;
|
|
26
|
+
}): any;
|
|
27
|
+
loading?(_: {}): any;
|
|
28
|
+
empty?(_: {}): any;
|
|
29
|
+
};
|
|
30
|
+
refs: {};
|
|
31
|
+
rootEl: HTMLDivElement;
|
|
32
|
+
};
|
|
33
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
34
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
15
35
|
"update:modelValue": (steps: ProtocolStep[]) => any;
|
|
16
36
|
"step-click": (step: ProtocolStep) => any;
|
|
17
37
|
"step-expand": (stepId: string | undefined) => any;
|
|
@@ -30,8 +50,10 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
30
50
|
"onStep-reorder"?: ((stepId: string, newOrder: number) => any) | undefined;
|
|
31
51
|
"onStep-status-change"?: ((stepId: string, status: ProtocolStepStatus) => any) | undefined;
|
|
32
52
|
}>, {
|
|
53
|
+
error: string | null;
|
|
33
54
|
size: "sm" | "md" | "lg";
|
|
34
55
|
modelValue: ProtocolStep[];
|
|
56
|
+
loading: boolean;
|
|
35
57
|
orientation: "horizontal" | "vertical";
|
|
36
58
|
collapsible: boolean;
|
|
37
59
|
editable: boolean;
|
|
@@ -41,4 +63,10 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
41
63
|
colorByStatus: boolean;
|
|
42
64
|
colorByType: boolean;
|
|
43
65
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
66
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
44
67
|
export default _default;
|
|
68
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
69
|
+
new (): {
|
|
70
|
+
$slots: S;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
@@ -30,9 +30,9 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
|
|
|
30
30
|
}>, {
|
|
31
31
|
disabled: boolean;
|
|
32
32
|
progress: number;
|
|
33
|
+
state: FitState;
|
|
33
34
|
results: FitResultSummary[];
|
|
34
35
|
indeterminate: boolean;
|
|
35
|
-
state: FitState;
|
|
36
36
|
cancelLabel: string;
|
|
37
37
|
progressLabel: string;
|
|
38
38
|
runLabel: string;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import { PluginJobCenterSource } from '../composables/useJobsStatusTray';
|
|
2
|
-
import {
|
|
1
|
+
import { JobsStatusTrayAdapter, PluginJobCenterSource } from '../composables/useJobsStatusTray';
|
|
2
|
+
import { UsePluginEventStreamReturn } from '../composables/usePluginClient';
|
|
3
|
+
import { JobState, JobStateInput, JobStreamData } from '../types/jobs';
|
|
3
4
|
interface Props {
|
|
4
5
|
source?: PluginJobCenterSource;
|
|
6
|
+
/** @deprecated Pass a source instead. */
|
|
7
|
+
jobs?: readonly JobStateInput[];
|
|
8
|
+
/** @deprecated Pass source actions instead. */
|
|
9
|
+
adapter?: JobsStatusTrayAdapter;
|
|
10
|
+
/** @deprecated Event streams belong to the source runtime. */
|
|
11
|
+
eventStream?: UsePluginEventStreamReturn<JobStreamData>;
|
|
5
12
|
loadOnMount?: boolean;
|
|
6
13
|
title?: string;
|
|
7
14
|
teleportTo?: string | HTMLElement | false;
|
|
@@ -6,8 +6,28 @@ interface Props {
|
|
|
6
6
|
maxRows?: number;
|
|
7
7
|
showMoreLabel?: boolean;
|
|
8
8
|
emptyMessage?: string;
|
|
9
|
+
/** Replace the table with a loading placeholder. */
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Error message. When set, the table is replaced by an error state.
|
|
13
|
+
* `null`/`undefined` renders normally.
|
|
14
|
+
*/
|
|
15
|
+
error?: string | null;
|
|
9
16
|
}
|
|
10
|
-
declare
|
|
17
|
+
declare function __VLS_template(): {
|
|
18
|
+
attrs: Partial<{}>;
|
|
19
|
+
slots: {
|
|
20
|
+
error?(_: {
|
|
21
|
+
error: string;
|
|
22
|
+
}): any;
|
|
23
|
+
loading?(_: {}): any;
|
|
24
|
+
empty?(_: {}): any;
|
|
25
|
+
};
|
|
26
|
+
refs: {};
|
|
27
|
+
rootEl: HTMLDivElement;
|
|
28
|
+
};
|
|
29
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
30
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
31
|
remove: (index: number) => any;
|
|
12
32
|
reorder: (fromIndex: number, toIndex: number) => any;
|
|
13
33
|
duplicate: (index: number) => any;
|
|
@@ -16,6 +36,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
16
36
|
onReorder?: ((fromIndex: number, toIndex: number) => any) | undefined;
|
|
17
37
|
onDuplicate?: ((index: number) => any) | undefined;
|
|
18
38
|
}>, {
|
|
39
|
+
error: string | null;
|
|
40
|
+
loading: boolean;
|
|
19
41
|
items: LcmsSequenceItem[];
|
|
20
42
|
columns: LcmsSequenceTableColumn[];
|
|
21
43
|
emptyMessage: string;
|
|
@@ -23,4 +45,10 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
23
45
|
maxRows: number;
|
|
24
46
|
showMoreLabel: boolean;
|
|
25
47
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
48
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
26
49
|
export default _default;
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountMenuItem, PageSelectorItemInput, PillNavItemInput, PluginSwitcherInfo, SidebarToolSection, TopBarSettingsConfig, TopBarVariant } from '../types';
|
|
1
|
+
import { AccountMenuItem, ExperimentSummary, PageSelectorItem, PageSelectorItemInput, PillNavItem, PillNavItemInput, PillNavOption, PluginSwitcherInfo, PluginSwitcherPlugin, SidebarToolSection, TopBarSettingsConfig, TopBarVariant } from '../types';
|
|
2
2
|
import { FormEnhancements, FormSchema } from '../types/form-builder';
|
|
3
3
|
import { ControlComponentBinding, ControlComponentBindingsById, ControlComponentBindingsConfig, ControlComponentPropsByIdMap, ControlComponentPropsMap, ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions } from '../composables/useControlSchema';
|
|
4
4
|
export type PluginWorkspaceSidebarVariant = 'default' | 'analysis';
|
|
@@ -134,6 +134,34 @@ export interface PluginWorkspaceViewProps {
|
|
|
134
134
|
/** Accessible label used when the mobile sidebar is open. */
|
|
135
135
|
sidebarCloseLabel?: string;
|
|
136
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Event map for PluginWorkspaceView, shared with the {@link usePluginWorkspace} composable
|
|
139
|
+
* so its internal pieces can emit through the exact same typed contract as the public component.
|
|
140
|
+
*/
|
|
141
|
+
export interface PluginWorkspaceViewEmits {
|
|
142
|
+
'update:activeView': [value: string];
|
|
143
|
+
'page-selector-select': [page: PageSelectorItem];
|
|
144
|
+
'pill-select': [item: PillNavItem];
|
|
145
|
+
'pill-option-select': [option: PillNavOption, item: PillNavItem];
|
|
146
|
+
'plugin-switcher-select': [plugin: PluginSwitcherPlugin];
|
|
147
|
+
'plugin-switcher-install': [];
|
|
148
|
+
'account-menu-select': [item: AccountMenuItem];
|
|
149
|
+
'sign-out': [];
|
|
150
|
+
'notifications-click': [];
|
|
151
|
+
'settings-values-change': [data: Record<string, unknown>];
|
|
152
|
+
'admin-click': [];
|
|
153
|
+
'experiment-select': [experiment: ExperimentSummary];
|
|
154
|
+
'experiment-detach': [];
|
|
155
|
+
'update:modelValue': [values: Record<string, unknown>];
|
|
156
|
+
'update:values': [values: Record<string, unknown>];
|
|
157
|
+
'update:sidebarCollapsed': [value: boolean];
|
|
158
|
+
'update:toggle': [sectionId: string, value: boolean];
|
|
159
|
+
'section-action': [sectionId: string, actionId: string];
|
|
160
|
+
'form-submit': [sectionId: string, values: Record<string, unknown>];
|
|
161
|
+
'form-cancel': [sectionId: string];
|
|
162
|
+
}
|
|
163
|
+
/** Typed `emit` function shape produced by `defineEmits<PluginWorkspaceViewEmits>()`. */
|
|
164
|
+
export type PluginWorkspaceViewEmit = <K extends keyof PluginWorkspaceViewEmits>(event: K, ...args: PluginWorkspaceViewEmits[K]) => void;
|
|
137
165
|
export interface PluginWorkspaceSlotProps {
|
|
138
166
|
activeView: string;
|
|
139
167
|
setActiveView: (viewId: string) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountMenuItem,
|
|
1
|
+
import { AccountMenuItem, PillNavItem, PluginSwitcherPlugin, PillNavOption } from '../types';
|
|
2
2
|
import { PluginWorkspaceForwardedSlotProps, PluginWorkspaceSlotProps, PluginWorkspaceViewProps } from './PluginWorkspaceView.props';
|
|
3
3
|
declare function __VLS_template(): {
|
|
4
4
|
attrs: Partial<{}>;
|
|
@@ -48,7 +48,7 @@ declare const __VLS_component: import('vue').DefineComponent<PluginWorkspaceView
|
|
|
48
48
|
"sign-out": () => any;
|
|
49
49
|
"update:values": (values: Record<string, unknown>) => any;
|
|
50
50
|
"admin-click": () => any;
|
|
51
|
-
"page-selector-select": (page: PageSelectorItem) => any;
|
|
51
|
+
"page-selector-select": (page: import('..').PageSelectorItem) => any;
|
|
52
52
|
"pill-select": (item: PillNavItem) => any;
|
|
53
53
|
"pill-option-select": (option: PillNavOption, item: PillNavItem) => any;
|
|
54
54
|
"plugin-switcher-select": (plugin: PluginSwitcherPlugin) => any;
|
|
@@ -61,7 +61,7 @@ declare const __VLS_component: import('vue').DefineComponent<PluginWorkspaceView
|
|
|
61
61
|
"form-submit": (sectionId: string, values: Record<string, unknown>) => any;
|
|
62
62
|
"form-cancel": (sectionId: string) => any;
|
|
63
63
|
"update:activeView": (value: string) => any;
|
|
64
|
-
"experiment-select": (experiment: ExperimentSummary) => any;
|
|
64
|
+
"experiment-select": (experiment: import('..').ExperimentSummary) => any;
|
|
65
65
|
"experiment-detach": () => any;
|
|
66
66
|
"update:sidebarCollapsed": (value: boolean) => any;
|
|
67
67
|
}, string, import('vue').PublicProps, Readonly<PluginWorkspaceViewProps> & Readonly<{
|
|
@@ -69,7 +69,7 @@ declare const __VLS_component: import('vue').DefineComponent<PluginWorkspaceView
|
|
|
69
69
|
"onSign-out"?: (() => any) | undefined;
|
|
70
70
|
"onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
|
|
71
71
|
"onAdmin-click"?: (() => any) | undefined;
|
|
72
|
-
"onPage-selector-select"?: ((page: PageSelectorItem) => any) | undefined;
|
|
72
|
+
"onPage-selector-select"?: ((page: import('..').PageSelectorItem) => any) | undefined;
|
|
73
73
|
"onPill-select"?: ((item: PillNavItem) => any) | undefined;
|
|
74
74
|
"onPill-option-select"?: ((option: PillNavOption, item: PillNavItem) => any) | undefined;
|
|
75
75
|
"onPlugin-switcher-select"?: ((plugin: PluginSwitcherPlugin) => any) | undefined;
|
|
@@ -82,7 +82,7 @@ declare const __VLS_component: import('vue').DefineComponent<PluginWorkspaceView
|
|
|
82
82
|
"onForm-submit"?: ((sectionId: string, values: Record<string, unknown>) => any) | undefined;
|
|
83
83
|
"onForm-cancel"?: ((sectionId: string) => any) | undefined;
|
|
84
84
|
"onUpdate:activeView"?: ((value: string) => any) | undefined;
|
|
85
|
-
"onExperiment-select"?: ((experiment: ExperimentSummary) => any) | undefined;
|
|
85
|
+
"onExperiment-select"?: ((experiment: import('..').ExperimentSummary) => any) | undefined;
|
|
86
86
|
"onExperiment-detach"?: (() => any) | undefined;
|
|
87
87
|
"onUpdate:sidebarCollapsed"?: ((value: boolean) => any) | undefined;
|
|
88
88
|
}>, {
|
|
@@ -11,10 +11,10 @@ interface Props {
|
|
|
11
11
|
ariaLabel?: string;
|
|
12
12
|
}
|
|
13
13
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
14
|
+
value: number;
|
|
14
15
|
label: string;
|
|
15
16
|
size: "sm" | "md" | "lg";
|
|
16
17
|
color: "primary" | "success" | "warning" | "error" | "info";
|
|
17
|
-
value: number;
|
|
18
18
|
variant: "rail" | "segmented";
|
|
19
19
|
showValue: boolean;
|
|
20
20
|
indeterminate: boolean;
|
|
@@ -22,5 +22,6 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
22
22
|
showPreview: boolean;
|
|
23
23
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
24
24
|
templateDropdownRef: HTMLDivElement;
|
|
25
|
+
templateTriggerRef: HTMLButtonElement;
|
|
25
26
|
}, HTMLDivElement>;
|
|
26
27
|
export default _default;
|
|
@@ -7,8 +7,28 @@ interface Props {
|
|
|
7
7
|
columns?: ReagentColumn[];
|
|
8
8
|
sortable?: boolean;
|
|
9
9
|
searchable?: boolean;
|
|
10
|
+
/** Replace the table with a loading placeholder. */
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Error message. When set, the table is replaced by an error state.
|
|
14
|
+
* `null`/`undefined` renders normally.
|
|
15
|
+
*/
|
|
16
|
+
error?: string | null;
|
|
10
17
|
}
|
|
11
|
-
declare
|
|
18
|
+
declare function __VLS_template(): {
|
|
19
|
+
attrs: Partial<{}>;
|
|
20
|
+
slots: {
|
|
21
|
+
error?(_: {
|
|
22
|
+
error: string;
|
|
23
|
+
}): any;
|
|
24
|
+
loading?(_: {}): any;
|
|
25
|
+
empty?(_: {}): any;
|
|
26
|
+
};
|
|
27
|
+
refs: {};
|
|
28
|
+
rootEl: HTMLDivElement;
|
|
29
|
+
};
|
|
30
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
31
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
12
32
|
add: () => any;
|
|
13
33
|
"update:modelValue": (reagents: Reagent[]) => any;
|
|
14
34
|
remove: (reagentId: string) => any;
|
|
@@ -21,12 +41,20 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
21
41
|
onEdit?: ((reagent: Reagent) => any) | undefined;
|
|
22
42
|
onReorder?: ((reagentId: string, fromIndex: number, toIndex: number) => any) | undefined;
|
|
23
43
|
}>, {
|
|
44
|
+
error: string | null;
|
|
24
45
|
readonly: boolean;
|
|
25
46
|
modelValue: Reagent[];
|
|
47
|
+
loading: boolean;
|
|
26
48
|
columns: ReagentColumn[];
|
|
27
49
|
sortable: boolean;
|
|
28
50
|
searchable: boolean;
|
|
29
51
|
showStockLevel: boolean;
|
|
30
52
|
lowStockThreshold: number;
|
|
31
53
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
54
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
32
55
|
export default _default;
|
|
56
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
57
|
+
new (): {
|
|
58
|
+
$slots: S;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
@@ -7,8 +7,28 @@ interface Props {
|
|
|
7
7
|
showCounts?: boolean;
|
|
8
8
|
maxDepth?: number;
|
|
9
9
|
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
/** Replace the tree with a loading placeholder. */
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Error message. When set, the tree is replaced by an error state.
|
|
14
|
+
* `null`/`undefined` renders normally.
|
|
15
|
+
*/
|
|
16
|
+
error?: string | null;
|
|
10
17
|
}
|
|
11
|
-
declare
|
|
18
|
+
declare function __VLS_template(): {
|
|
19
|
+
attrs: Partial<{}>;
|
|
20
|
+
slots: {
|
|
21
|
+
error?(_: {
|
|
22
|
+
error: string;
|
|
23
|
+
}): any;
|
|
24
|
+
loading?(_: {}): any;
|
|
25
|
+
empty?(_: {}): any;
|
|
26
|
+
};
|
|
27
|
+
refs: {};
|
|
28
|
+
rootEl: HTMLDivElement;
|
|
29
|
+
};
|
|
30
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
31
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
12
32
|
collapse: (nodeId: string) => any;
|
|
13
33
|
"node-click": (node: TreeNode) => any;
|
|
14
34
|
expand: (nodeId: string) => any;
|
|
@@ -17,10 +37,18 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
17
37
|
"onNode-click"?: ((node: TreeNode) => any) | undefined;
|
|
18
38
|
onExpand?: ((nodeId: string) => any) | undefined;
|
|
19
39
|
}>, {
|
|
40
|
+
error: string | null;
|
|
20
41
|
size: "sm" | "md" | "lg";
|
|
42
|
+
loading: boolean;
|
|
21
43
|
showCounts: boolean;
|
|
22
44
|
defaultExpandedIds: string[];
|
|
23
45
|
expandAll: boolean;
|
|
24
46
|
showIcons: boolean;
|
|
25
47
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
48
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
26
49
|
export default _default;
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -24,8 +24,8 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
24
24
|
size: "sm" | "md" | "lg";
|
|
25
25
|
modelValue: string;
|
|
26
26
|
colorPalette: string[];
|
|
27
|
-
orientation: "vertical" | "horizontal";
|
|
28
27
|
samples: SampleType[];
|
|
28
|
+
orientation: "vertical" | "horizontal";
|
|
29
29
|
editable: boolean;
|
|
30
30
|
showCounts: boolean;
|
|
31
31
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
@@ -4,6 +4,19 @@ interface MutableSampleGroups {
|
|
|
4
4
|
value: SampleGroup[];
|
|
5
5
|
}
|
|
6
6
|
export declare function useSampleSelectorDrag(groups: MutableSampleGroups): {
|
|
7
|
+
announcement: import('vue').Ref<string, string>;
|
|
8
|
+
announcerStyle: Readonly<{
|
|
9
|
+
position: "absolute";
|
|
10
|
+
width: "1px";
|
|
11
|
+
height: "1px";
|
|
12
|
+
padding: "0";
|
|
13
|
+
margin: "-1px";
|
|
14
|
+
overflow: "hidden";
|
|
15
|
+
clip: "rect(0, 0, 0, 0)";
|
|
16
|
+
whiteSpace: "nowrap";
|
|
17
|
+
border: "0";
|
|
18
|
+
}>;
|
|
19
|
+
handleGroupReorderKeydown: (name: string, kind: GroupDragKind, event: KeyboardEvent) => void;
|
|
7
20
|
draggingSample: import('vue').Ref<string | null, string | null>;
|
|
8
21
|
dragOverGroup: import('vue').Ref<string | null, string | null>;
|
|
9
22
|
draggingGroup: import('vue').Ref<string | null, string | null>;
|
|
@@ -32,6 +32,8 @@ export interface SampleGroupTreeContext {
|
|
|
32
32
|
onGroupDragOver: (name: string, kind: GroupDragKind, event: DragEvent) => void;
|
|
33
33
|
onGroupDragLeave: (event: DragEvent) => void;
|
|
34
34
|
onGroupDrop: (name: string, kind: GroupDragKind, event: DragEvent) => void;
|
|
35
|
+
/** Alt+ArrowUp / Alt+ArrowDown reorder a group among its siblings. */
|
|
36
|
+
onGroupReorderKeydown: (name: string, kind: GroupDragKind, event: KeyboardEvent) => void;
|
|
35
37
|
}
|
|
36
38
|
/** Every concrete group name beneath a node, in tree order. */
|
|
37
39
|
export declare function collectLeafGroupNames(node: SampleGroupNode): string[];
|
|
@@ -9,9 +9,33 @@ interface Props {
|
|
|
9
9
|
experimentId?: number;
|
|
10
10
|
designData?: Record<string, unknown>;
|
|
11
11
|
autoloadExperimentData?: boolean;
|
|
12
|
+
/** Replace the selector body with a loading placeholder. */
|
|
13
|
+
loading?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Error message. When set, the selector body is replaced by an error state.
|
|
16
|
+
* `null`/`undefined` renders normally.
|
|
17
|
+
*/
|
|
18
|
+
error?: string | null;
|
|
19
|
+
/** Empty-state headline shown when there are no samples to select from. */
|
|
20
|
+
emptyMessage?: string;
|
|
12
21
|
}
|
|
13
22
|
declare function handleSmartGroupApply(result: AutoGroupResult): void;
|
|
14
|
-
declare
|
|
23
|
+
declare function __VLS_template(): {
|
|
24
|
+
attrs: Partial<{}>;
|
|
25
|
+
slots: {
|
|
26
|
+
error?(_: {
|
|
27
|
+
error: string;
|
|
28
|
+
}): any;
|
|
29
|
+
loading?(_: {}): any;
|
|
30
|
+
empty?(_: {}): any;
|
|
31
|
+
};
|
|
32
|
+
refs: {
|
|
33
|
+
colorPickerInput: HTMLInputElement;
|
|
34
|
+
};
|
|
35
|
+
rootEl: HTMLDivElement;
|
|
36
|
+
};
|
|
37
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
38
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {
|
|
15
39
|
handleSmartGroupApply: typeof handleSmartGroupApply;
|
|
16
40
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
17
41
|
"update:modelValue": (samples: string[]) => any;
|
|
@@ -22,9 +46,12 @@ declare const _default: import('vue').DefineComponent<Props, {
|
|
|
22
46
|
"onUpdate:groups"?: ((groups: SampleGroup[]) => any) | undefined;
|
|
23
47
|
onSmartGroup?: ((result: AutoGroupResult) => any) | undefined;
|
|
24
48
|
}>, {
|
|
49
|
+
error: string | null;
|
|
50
|
+
loading: boolean;
|
|
51
|
+
samples: string[];
|
|
25
52
|
experimentId: number;
|
|
26
53
|
groups: SampleGroup[];
|
|
27
|
-
|
|
54
|
+
emptyMessage: string;
|
|
28
55
|
designData: Record<string, unknown>;
|
|
29
56
|
enableGrouping: boolean;
|
|
30
57
|
enableSmartGroup: boolean;
|
|
@@ -32,4 +59,10 @@ declare const _default: import('vue').DefineComponent<Props, {
|
|
|
32
59
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
33
60
|
colorPickerInput: HTMLInputElement;
|
|
34
61
|
}, HTMLDivElement>;
|
|
62
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
35
63
|
export default _default;
|
|
64
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
65
|
+
new (): {
|
|
66
|
+
$slots: S;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
@@ -14,10 +14,28 @@ interface Props {
|
|
|
14
14
|
showNavigation?: boolean;
|
|
15
15
|
statusColors?: Record<string, string>;
|
|
16
16
|
locale?: string;
|
|
17
|
+
/** Replace the calendar grid with a loading placeholder. */
|
|
18
|
+
loading?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Error message. When set, the calendar grid is replaced by an error state.
|
|
21
|
+
* `null`/`undefined` renders normally.
|
|
22
|
+
*/
|
|
23
|
+
error?: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Opt-in empty-state headline. An empty grid is meaningful on a calendar, so
|
|
26
|
+
* the empty state only replaces it when this message is supplied and there
|
|
27
|
+
* are no events.
|
|
28
|
+
*/
|
|
29
|
+
emptyMessage?: string;
|
|
17
30
|
}
|
|
18
31
|
declare function __VLS_template(): {
|
|
19
32
|
attrs: Partial<{}>;
|
|
20
33
|
slots: {
|
|
34
|
+
error?(_: {
|
|
35
|
+
error: string;
|
|
36
|
+
}): any;
|
|
37
|
+
loading?(_: {}): any;
|
|
38
|
+
empty?(_: {}): any;
|
|
21
39
|
'day-header'?(_: {
|
|
22
40
|
date: Date;
|
|
23
41
|
isToday: boolean;
|
|
@@ -86,8 +104,10 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
|
|
|
86
104
|
minute: number;
|
|
87
105
|
}) => any) | undefined;
|
|
88
106
|
}>, {
|
|
107
|
+
error: string | null;
|
|
89
108
|
readonly: boolean;
|
|
90
109
|
view: ScheduleView;
|
|
110
|
+
loading: boolean;
|
|
91
111
|
locale: string;
|
|
92
112
|
weekStartsOn: 0 | 1;
|
|
93
113
|
showNavigation: boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PluginSecretRef } from '../utils/pluginSecrets';
|
|
2
|
+
type SecretValue = PluginSecretRef | string | null;
|
|
3
|
+
interface Props {
|
|
4
|
+
/** The `$secret` marker from the settings response, a typed string, or `null`. */
|
|
5
|
+
modelValue?: SecretValue;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
error?: boolean;
|
|
9
|
+
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
/** Label on the control that starts entering a replacement value. */
|
|
11
|
+
changeLabel?: string;
|
|
12
|
+
/** Label on the control that clears a stored secret. */
|
|
13
|
+
clearLabel?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
16
|
+
"update:modelValue": (value: SecretValue) => any;
|
|
17
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
18
|
+
"onUpdate:modelValue"?: ((value: SecretValue) => any) | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
error: boolean;
|
|
22
|
+
size: "sm" | "md" | "lg";
|
|
23
|
+
placeholder: string;
|
|
24
|
+
modelValue: SecretValue;
|
|
25
|
+
changeLabel: string;
|
|
26
|
+
clearLabel: string;
|
|
27
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
28
|
+
export default _default;
|
|
@@ -57,9 +57,9 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
|
|
|
57
57
|
}>, {
|
|
58
58
|
size: "md" | "lg" | "xl";
|
|
59
59
|
title: string;
|
|
60
|
+
showAppearance: boolean;
|
|
60
61
|
tabs: SettingsTabInput[];
|
|
61
62
|
layout: SettingsModalLayout;
|
|
62
|
-
showAppearance: boolean;
|
|
63
63
|
model: ControlModel | ControlModelBinding;
|
|
64
64
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
65
65
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
@@ -24,8 +24,8 @@ declare const _default: import('vue').DefineComponent<SmartGroupFieldRecipeProps
|
|
|
24
24
|
"onDownload-prefilled"?: (() => any) | undefined;
|
|
25
25
|
}>, {
|
|
26
26
|
loading: boolean;
|
|
27
|
-
fields: SmartGroupField[];
|
|
28
27
|
samples: SmartGroupSampleRecord[];
|
|
28
|
+
fields: SmartGroupField[];
|
|
29
29
|
palette: string[];
|
|
30
30
|
experimentLabel: string;
|
|
31
31
|
headerCount: number;
|
|
@@ -34,6 +34,7 @@ declare const _default: import('vue').DefineComponent<SmartGroupFieldRecipeProps
|
|
|
34
34
|
canDownloadTemplate: boolean;
|
|
35
35
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
36
36
|
csvMenuRoot: HTMLDivElement;
|
|
37
|
+
csvMenuTrigger: HTMLButtonElement;
|
|
37
38
|
fileInput: HTMLInputElement;
|
|
38
39
|
}, HTMLDivElement>;
|
|
39
40
|
export default _default;
|
|
@@ -24,6 +24,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
24
24
|
format: "12h" | "24h";
|
|
25
25
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
26
26
|
rootRef: HTMLDivElement;
|
|
27
|
+
triggerRef: HTMLInputElement;
|
|
27
28
|
listRef: HTMLUListElement;
|
|
28
29
|
}, HTMLDivElement>;
|
|
29
30
|
export default _default;
|
|
@@ -17,7 +17,22 @@ export interface WellPlateSizeConfig {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const PLATE_CONFIGS: Record<WellPlateFormat, WellPlateConfig>;
|
|
19
19
|
export declare const WELL_PLATE_SIZE_CONFIGS: Record<WellPlateSize, WellPlateSizeConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Spreadsheet-style row label for a zero-based row index: A…Z, then AA, AB, …
|
|
22
|
+
*
|
|
23
|
+
* This is the single row-label generator for the SDK — plate grids, rack
|
|
24
|
+
* grids, well-id parsing and the template builders all go through it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function rowLabel(index: number): string;
|
|
27
|
+
/** Inverse of {@link rowLabel}: 'A' → 0, 'Z' → 25, 'AA' → 26. */
|
|
28
|
+
export declare function rowIndex(label: string): number;
|
|
20
29
|
export declare function createPlateRowLabels(config: WellPlateConfig): string[];
|
|
30
|
+
/** Every well id of a plate, row-major (A1, A2, … B1, …). */
|
|
31
|
+
export declare function wellIdsForFormat(format: number): string[];
|
|
32
|
+
/** Throw unless `wellId` names a well that exists on a `format`-well plate. */
|
|
33
|
+
export declare function assertWellInFormat(wellId: string, format: number): void;
|
|
34
|
+
/** Coerce an unknown value to a supported plate format, else `fallback`. */
|
|
35
|
+
export declare function readPlateFormat(value: unknown, fallback: WellPlateFormat): WellPlateFormat;
|
|
21
36
|
export declare function createPlateColumnLabels(config: WellPlateConfig): number[];
|
|
22
37
|
export declare function createWellGrid(config: WellPlateConfig, rowLabels: string[], wells: Record<string, Partial<Well>>): Well[][];
|
|
23
38
|
export declare function getRectangleWellIds(start: WellPlateCoordinate, end: WellPlateCoordinate, rowLabels: string[]): Set<string>;
|
|
@@ -67,5 +67,18 @@ export declare function useWellPlateInteraction(options: WellPlateInteractionOpt
|
|
|
67
67
|
handleDragLeave: () => void;
|
|
68
68
|
handleDrop: (well: Well, event: DragEvent) => void;
|
|
69
69
|
handleDragEnd: () => void;
|
|
70
|
+
handleWellMoveKeydown: (well: Well, event: KeyboardEvent) => void;
|
|
70
71
|
handleKeyDown: (event: KeyboardEvent) => void;
|
|
72
|
+
moveAnnouncement: import('vue').Ref<string, string>;
|
|
73
|
+
moveAnnouncerStyle: Readonly<{
|
|
74
|
+
position: "absolute";
|
|
75
|
+
width: "1px";
|
|
76
|
+
height: "1px";
|
|
77
|
+
padding: "0";
|
|
78
|
+
margin: "-1px";
|
|
79
|
+
overflow: "hidden";
|
|
80
|
+
clip: "rect(0, 0, 0, 0)";
|
|
81
|
+
whiteSpace: "nowrap";
|
|
82
|
+
border: "0";
|
|
83
|
+
}>;
|
|
71
84
|
};
|