@morscherlab/mint-sdk 1.2.10 → 1.3.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 +45 -137
- package/dist/ResourcePickerListInternal-CFAw4vTZ.js +605 -0
- package/dist/ResourcePickerListInternal-CFAw4vTZ.js.map +1 -0
- package/dist/__stories__/experiment-helpers.d.ts +12 -1
- package/dist/__tests__/components/ScientificNumber.test.d.ts +1 -0
- package/dist/__tests__/components/SequenceInput.test.d.ts +1 -0
- package/dist/__tests__/components/Skeleton.test.d.ts +1 -0
- package/dist/__tests__/components/SmartGroupFieldRecipe.test.d.ts +1 -0
- package/dist/__tests__/components/SmartGroupModal.test.d.ts +1 -0
- package/dist/__tests__/components/StepWizard.test.d.ts +1 -0
- package/dist/__tests__/components/TimeRangeInput.test.d.ts +1 -0
- package/dist/__tests__/components/UnitInput.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.keyboard.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.sampleTypeIndicator.test.d.ts +1 -0
- package/dist/__tests__/composables/useChemicalFormula.test.d.ts +1 -0
- package/dist/__tests__/composables/useRackEditor.test.d.ts +1 -0
- package/dist/__tests__/composables/useSequenceUtils.test.d.ts +1 -0
- package/dist/__tests__/styles/baseControlsRules.test.d.ts +1 -0
- package/dist/__tests__/styles/controlRefreshRules.test.d.ts +1 -0
- package/dist/__tests__/styles/darkModeRules.test.d.ts +1 -0
- package/dist/__tests__/styles/menusShellRefresh.test.d.ts +1 -0
- package/dist/__tests__/templates/templatesDeprecation.test.d.ts +1 -0
- package/dist/__tests__/utils/plotlyTemplate.test.d.ts +1 -0
- package/dist/__tests__/utils/sampleTypeMarker.test.d.ts +1 -0
- package/dist/{analysisArtifactTypes-DQ0MjwHZ.js → analysisArtifactTypes-Cy3D0Ipg.js} +1 -1
- package/dist/{analysisArtifactTypes-DQ0MjwHZ.js.map → analysisArtifactTypes-Cy3D0Ipg.js.map} +1 -1
- package/dist/components/ActionMenu.vue.d.ts +17 -5
- package/dist/components/AdductText.vue.d.ts +3 -2
- package/dist/components/AlertBox.vue.d.ts +11 -14
- package/dist/components/AppAvatarMenu.vue.d.ts +18 -28
- package/dist/components/AppContainer.vue.d.ts +7 -11
- package/dist/components/AppLayout.vue.d.ts +11 -13
- package/dist/components/AppSidebar.vue.d.ts +30 -28
- package/dist/components/AppToastContainer.vue.d.ts +2 -1
- package/dist/components/AppTopBar.vue.d.ts +45 -44
- package/dist/components/ArtifactSaveDialog.vue.d.ts +3 -2
- package/dist/components/ArtifactSelectorModal.vue.d.ts +5 -6
- package/dist/components/AuditTrail.vue.d.ts +17 -18
- package/dist/components/AutoGroupModal.vue.d.ts +4 -3
- package/dist/components/Avatar.vue.d.ts +2 -1
- package/dist/components/BaseButton.vue.d.ts +11 -13
- package/dist/components/BaseCheckbox.vue.d.ts +7 -1
- package/dist/components/BaseInput.vue.d.ts +15 -2
- package/dist/components/BaseModal.vue.d.ts +20 -23
- package/dist/components/BasePill.vue.d.ts +10 -13
- package/dist/components/BaseRadioGroup.vue.d.ts +2 -1
- package/dist/components/BaseSelect.vue.d.ts +3 -2
- package/dist/components/BaseSlider.vue.d.ts +18 -1
- package/dist/components/BaseTabs.vue.d.ts +2 -1
- package/dist/components/BaseTextarea.vue.d.ts +2 -1
- package/dist/components/BaseToggle.vue.d.ts +2 -1
- package/dist/components/BatchProgressList.vue.d.ts +22 -26
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +7 -14
- package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +6 -13
- package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +7 -14
- package/dist/components/BioTemplateRenderer.vue.d.ts +2 -1
- package/dist/components/Breadcrumb.vue.d.ts +13 -16
- package/dist/components/Calendar.vue.d.ts +21 -23
- package/dist/components/ChartContainer.vue.d.ts +19 -25
- package/dist/components/ChemicalFormula.vue.d.ts +7 -11
- package/dist/components/CollapsibleCard.vue.d.ts +7 -11
- package/dist/components/ComponentBindingRenderer.vue.d.ts +2 -1
- package/dist/components/ConcentrationInput.vue.d.ts +2 -1
- package/dist/components/ConfirmDialog.vue.d.ts +10 -13
- package/dist/components/ControlWorkspaceView.vue.d.ts +9 -18
- package/dist/components/DataFrame.vue.d.ts +27 -24
- package/dist/components/DatePicker.vue.d.ts +3 -6
- package/dist/components/DateTimePicker.vue.d.ts +3 -6
- package/dist/components/Divider.vue.d.ts +3 -2
- package/dist/components/DoseCalculator.vue.d.ts +2 -1
- package/dist/components/DoseCalculatorVolumeField.vue.d.ts +2 -1
- package/dist/components/DoseDesignWorkspaceView.vue.d.ts +9 -18
- package/dist/components/EmptyState.vue.d.ts +9 -12
- package/dist/components/ExperimentCodeBadge.vue.d.ts +2 -1
- package/dist/components/ExperimentDataViewer.vue.d.ts +13 -15
- package/dist/components/ExperimentPopover.vue.d.ts +3 -5
- package/dist/components/ExperimentSelectorModal.vue.d.ts +3 -4
- package/dist/components/ExperimentTimeline.vue.d.ts +13 -15
- package/dist/components/FilePicker.vue.d.ts +10 -5
- package/dist/components/FileUploader.vue.d.ts +8 -16
- package/dist/components/FitPanel.vue.d.ts +26 -16
- package/dist/components/FormActions.vue.d.ts +2 -1
- package/dist/components/FormBuilder.vue.d.ts +54 -250
- package/dist/components/FormField.vue.d.ts +14 -16
- package/dist/components/FormulaInput.vue.d.ts +2 -1
- package/dist/components/GeneratedPathInput.vue.d.ts +6 -5
- package/dist/components/GeneratedPlotlyResult.vue.d.ts +2 -1
- package/dist/components/GeneratedPluginView.vue.d.ts +2 -1
- package/dist/components/GeneratedResultRenderer.vue.d.ts +2 -1
- package/dist/components/GroupAssigner.vue.d.ts +2 -1
- package/dist/components/IconButton.vue.d.ts +7 -11
- package/dist/components/InstrumentStateBadge.vue.d.ts +4 -3
- package/dist/components/JobsStatusTray.vue.d.ts +13 -29
- package/dist/components/LayoutResizeHandle.vue.d.ts +2 -1
- package/dist/components/LoadingSpinner.vue.d.ts +2 -1
- package/dist/components/MobileSupportGate.vue.d.ts +5 -13
- package/dist/components/MoleculeInput.vue.d.ts +3 -4
- package/dist/components/MultiSelect.vue.d.ts +2 -1
- package/dist/components/NumberInput.vue.d.ts +2 -1
- package/dist/components/PlateEditor.vue.d.ts +147 -0
- package/dist/components/PlotlyChart.vue.d.ts +21 -31
- package/dist/components/PluginIcon.vue.d.ts +2 -1
- package/dist/components/PluginWorkspaceView.props.d.ts +2 -6
- package/dist/components/PluginWorkspaceView.vue.d.ts +23 -51
- package/dist/components/ProgressBar.vue.d.ts +4 -9
- package/dist/components/ProtocolStepEditor.vue.d.ts +7 -5
- package/dist/components/ProtocolStepParameterField.vue.d.ts +2 -1
- package/dist/components/ReagentEditor.vue.d.ts +2 -1
- package/dist/components/ReagentList.presentation.d.ts +2 -1
- package/dist/components/ReagentList.vue.d.ts +15 -17
- package/dist/components/ResourceCard.vue.d.ts +18 -17
- package/dist/components/RuntimeUpdateNotice.vue.d.ts +3 -2
- package/dist/components/SampleHierarchyTree.vue.d.ts +21 -15
- package/dist/components/SampleLegend.vue.d.ts +2 -1
- package/dist/components/SampleSelector.vue.d.ts +15 -21
- package/dist/components/SampleSelectorGroupNode.vue.d.ts +2 -1
- package/dist/components/SampleSelectorSampleRow.vue.d.ts +2 -5
- package/dist/components/ScheduleCalendar.vue.d.ts +34 -36
- package/dist/components/ScientificNumber.vue.d.ts +3 -2
- package/dist/components/SearchableSelect.vue.d.ts +14 -32
- package/dist/components/SecretInput.vue.d.ts +2 -1
- package/dist/components/SectionCard.vue.d.ts +13 -14
- package/dist/components/SegmentedControl.vue.d.ts +2 -1
- package/dist/components/SequenceInput.vue.d.ts +10 -21
- package/dist/components/SequenceProgressBar.vue.d.ts +2 -1
- package/dist/components/SettingsModal.schema.d.ts +1 -1
- package/dist/components/SettingsModal.vue.d.ts +28 -25
- package/dist/components/Skeleton.vue.d.ts +2 -1
- package/dist/components/SmartGroup.types.d.ts +2 -2
- package/dist/components/SmartGroupFieldRecipe.groups.d.ts +2 -0
- package/dist/components/SmartGroupFieldRecipe.vue.d.ts +4 -7
- package/dist/components/SmartGroupManual.vue.d.ts +3 -2
- package/dist/components/SmartGroupModal.vue.d.ts +6 -4
- package/dist/components/StatusIndicator.vue.d.ts +2 -1
- package/dist/components/StepWizard.vue.d.ts +26 -27
- package/dist/components/TagsInput.vue.d.ts +3 -5
- package/dist/components/ThemeToggle.vue.d.ts +2 -1
- package/dist/components/TimePicker.vue.d.ts +6 -6
- package/dist/components/TimeRangeInput.vue.d.ts +9 -2
- package/dist/components/Tooltip.vue.d.ts +8 -18
- package/dist/components/UnitInput.vue.d.ts +2 -1
- package/dist/components/WellPlate.colors.d.ts +2 -4
- package/dist/components/WellPlate.rendering.d.ts +7 -1
- package/dist/components/WellPlate.sampleDrop.d.ts +2 -0
- package/dist/components/WellPlate.vue.d.ts +22 -39
- package/dist/components/index.d.ts +34 -31
- package/dist/components/index.js +5 -8
- package/dist/components/internal/ActionItemInternal.vue.d.ts +11 -13
- package/dist/components/internal/AppTopBarPageSelectorInternal.vue.d.ts +14 -23
- package/dist/components/internal/AppTopBarPillNavInternal.vue.d.ts +2 -1
- package/dist/components/internal/CalendarGridPanelInternal.vue.d.ts +2 -1
- package/dist/components/internal/DataStateInternal.vue.d.ts +7 -11
- package/dist/components/internal/{FilePickerTreeInternal.vue.d.ts → FilePickerListInternal.vue.d.ts} +9 -6
- package/dist/components/internal/FilePickerPreviewInternal.vue.d.ts +4 -3
- package/dist/components/internal/FormFieldRendererInternal.vue.d.ts +16 -18
- package/dist/components/internal/FormSectionRenderer.vue.d.ts +36 -32
- package/dist/components/internal/PlateEditorBindingInternal.vue.d.ts +8 -0
- package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +65 -0
- package/dist/components/internal/SettingsPaneHeadInternal.vue.d.ts +15 -0
- package/dist/components/internal/WellEditPopupInternal.vue.d.ts +12 -4
- package/dist/components/internal/WorkspaceControlsInternal.vue.d.ts +6 -13
- package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +19 -42
- package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +9 -19
- package/dist/components/internal/filePickerPresentation.d.ts +8 -0
- package/dist/components/internal/generatedJobsApi.d.ts +9 -0
- package/dist/{components-Bbg_gtzF.js → components-GDDvof8D.js} +7088 -5955
- package/dist/components-GDDvof8D.js.map +1 -0
- package/dist/composables/controlSchemaTypes.d.ts +4 -43
- package/dist/composables/createFilePickerAdapter.d.ts +5 -1
- package/dist/composables/filePicker/usePickerNavigation.d.ts +7 -2
- package/dist/composables/index.d.ts +2 -13
- package/dist/composables/index.js +7 -11
- package/dist/composables/pluginWorkspaceModel.d.ts +1 -3
- package/dist/composables/useAutoGroup.d.ts +10 -0
- package/dist/composables/useBioTemplateComponents.d.ts +15 -3
- package/dist/composables/useBioTemplateControls.d.ts +5 -1
- package/dist/composables/useBioTemplatePackWorkspace.d.ts +2 -0
- package/dist/composables/useBioTemplatePresetWorkspace.d.ts +5 -1
- package/dist/composables/useBioTemplateWorkspace.d.ts +5 -1
- package/dist/composables/useChemicalFormula.d.ts +2 -1
- package/dist/composables/useDropdownState.d.ts +5 -0
- package/dist/composables/useExperimentSave.d.ts +5 -1
- package/dist/composables/useFileBrowser.d.ts +3 -2
- package/dist/composables/useFilePicker.d.ts +25 -13
- package/dist/composables/useFocusTrap.d.ts +2 -1
- package/dist/composables/useGroupAssignment.d.ts +5 -1
- package/dist/composables/useJobsStatusTray.d.ts +5 -5
- package/dist/composables/useMenuKeyboard.d.ts +3 -3
- package/dist/composables/usePlatformContext.d.ts +3 -0
- package/dist/composables/usePluginClient.d.ts +1 -1
- package/dist/composables/useRackEditor.d.ts +36 -1
- package/dist/composables/useSequenceUtils.d.ts +8 -0
- package/dist/composables/useTemplateCollection.d.ts +5 -1
- package/dist/composables/workspaceRecipes.d.ts +1 -0
- package/dist/composables-D6uqp0UF.js +591 -0
- package/dist/composables-D6uqp0UF.js.map +1 -0
- package/dist/{errors-BLuqMee5.js → experiment-DgllIc3I.js} +89 -333
- package/dist/experiment-DgllIc3I.js.map +1 -0
- package/dist/{experiment-utils-CV2Wza3z.js → experiment-utils-DTANyVKV.js} +68 -37
- package/dist/experiment-utils-DTANyVKV.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +122 -17
- package/dist/index.js.map +1 -1
- package/dist/install.js +1 -2
- package/dist/install.js.map +1 -1
- package/dist/instrument.d.ts +6 -0
- package/dist/lcms.d.ts +11 -0
- package/dist/permissions.d.ts +2 -47
- package/dist/permissions.js +2 -26
- package/dist/permissions.js.map +1 -1
- package/dist/settings-BLr8lzw6.js +341 -0
- package/dist/settings-BLr8lzw6.js.map +1 -0
- package/dist/stores/auth.d.ts +2 -150
- package/dist/stores/experiment.d.ts +2 -106
- package/dist/stores/index.js +2 -2
- package/dist/stores/settings.d.ts +2 -44
- package/dist/styles.css +8608 -6950
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/templates/adapters.d.ts +3 -0
- package/dist/templates/assayMatrixAdapters.d.ts +8 -1
- package/dist/templates/assayMatrixBuilder.d.ts +1 -0
- package/dist/templates/builderPresetControls.d.ts +1 -0
- package/dist/templates/calibrationCurveAdapters.d.ts +3 -0
- package/dist/templates/calibrationCurveBuilder.d.ts +1 -0
- package/dist/templates/catalog.d.ts +6 -2
- package/dist/templates/componentBindings.d.ts +31 -5
- package/dist/templates/componentPlateHelpers.d.ts +7 -1
- package/dist/templates/controlSchemas.d.ts +9 -0
- package/dist/templates/defaultBioTemplateBuilder.d.ts +1 -0
- package/dist/templates/doseResponseAdapters.d.ts +2 -0
- package/dist/templates/doseResponseBuilder.d.ts +1 -0
- package/dist/templates/elisaAssayCollectionBuilder.d.ts +1 -0
- package/dist/templates/flowCytometryAssayCollectionBuilder.d.ts +1 -0
- package/dist/templates/flowCytometryPanelBuilder.d.ts +1 -0
- package/dist/templates/flowPanelAdapters.d.ts +3 -0
- package/dist/templates/index.d.ts +1 -1
- package/dist/templates/index.js +2 -3
- package/dist/templates/instrumentRunAdapters.d.ts +13 -2
- package/dist/templates/instrumentRunBuilder.d.ts +1 -0
- package/dist/templates/lcmsBatchCollectionBuilder.d.ts +1 -0
- package/dist/templates/packs.d.ts +4 -0
- package/dist/templates/plateMapAdapters.d.ts +2 -0
- package/dist/templates/plateMapBuilder.d.ts +1 -0
- package/dist/templates/presets.d.ts +6 -2
- package/dist/templates/protocolAdapters.d.ts +4 -0
- package/dist/templates/protocolStepsBuilder.d.ts +1 -0
- package/dist/templates/qpcrAdapters.d.ts +4 -0
- package/dist/templates/qpcrExpressionCollectionBuilder.d.ts +1 -0
- package/dist/templates/qpcrPlateBuilder.d.ts +1 -0
- package/dist/templates/reagentAdapters.d.ts +4 -0
- package/dist/templates/reagentListBuilder.d.ts +1 -0
- package/dist/templates/samplePrepAdapters.d.ts +3 -0
- package/dist/templates/samplePrepBuilder.d.ts +1 -0
- package/dist/templates/sampleSheetAdapters.d.ts +4 -0
- package/dist/templates/sampleSheetBuilder.d.ts +1 -0
- package/dist/templates/targetedMetabolomicsCollectionBuilder.d.ts +1 -0
- package/dist/templates/templateEnvelopes.d.ts +8 -0
- package/dist/templates/templatePackCollectionBuilder.d.ts +1 -0
- package/dist/templates/templatePresetCollectionBuilder.d.ts +2 -0
- package/dist/templates/templateValidators.d.ts +12 -0
- package/dist/templates/timeCourseAdapters.d.ts +4 -0
- package/dist/templates/timeCourseBuilder.d.ts +1 -0
- package/dist/templates/wellPlateScreenCollectionBuilder.d.ts +1 -0
- package/dist/templates/westernBlotAssayCollectionBuilder.d.ts +1 -0
- package/dist/templates-BU1pet28.js +12304 -0
- package/dist/templates-BU1pet28.js.map +1 -0
- package/dist/types/auth.d.ts +0 -27
- package/dist/types/componentLabTypes.d.ts +14 -7
- package/dist/types/componentWorkflowTypes.d.ts +26 -0
- package/dist/types/components.d.ts +40 -17
- package/dist/types/fileBrowserTypes.d.ts +13 -0
- package/dist/types/filePicker.d.ts +19 -1
- package/dist/types/generated-ui.d.ts +13 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.js +1 -1
- package/dist/types/instrument.d.ts +43 -15
- package/dist/types/platform.d.ts +2 -0
- package/dist/utils/color.d.ts +6 -1
- package/dist/utils/formModelSync.d.ts +1 -0
- package/dist/utils/plotlyTemplate.d.ts +3 -0
- package/dist/utils/rack.d.ts +16 -0
- package/dist/utils/sampleTypeMarker.d.ts +23 -0
- package/dist/{validation-ChMyixAf.js → validation-Dmp9Q5W0.js} +3032 -838
- package/dist/validation-Dmp9Q5W0.js.map +1 -0
- package/package.json +17 -23
- package/src/__stories__/experiment-helpers.ts +8 -4
- package/src/__tests__/components/ActionMenu.test.ts +66 -0
- package/src/__tests__/components/AlertBox.test.ts +21 -0
- package/src/__tests__/components/AppAvatarMenu.test.ts +25 -0
- package/src/__tests__/components/AppTopBar.test.ts +79 -0
- package/src/__tests__/components/AppTopBarPageSelector.test.ts +20 -0
- package/src/__tests__/components/AppTopBarPillNav.test.ts +74 -0
- package/src/__tests__/components/ArtifactSelectorModal.test.ts +20 -6
- package/src/__tests__/components/AuditTrail.test.ts +38 -0
- package/src/__tests__/components/BaseCheckbox.test.ts +43 -0
- package/src/__tests__/components/BaseInput.test.ts +43 -0
- package/src/__tests__/components/BaseModal.test.ts +90 -0
- package/src/__tests__/components/BaseRadioGroup.test.ts +8 -0
- package/src/__tests__/components/BaseSlider.test.ts +116 -0
- package/src/__tests__/components/BaseToggle.test.ts +7 -0
- package/src/__tests__/components/BatchProgressList.test.ts +22 -14
- package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +4 -4
- package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +1 -1
- package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +8 -8
- package/src/__tests__/components/BioTemplateRenderer.test.ts +2 -2
- package/src/__tests__/components/Breadcrumb.test.ts +45 -0
- package/src/__tests__/components/CalendarGridPanel.test.ts +14 -0
- package/src/__tests__/components/ChartContainer.test.ts +23 -0
- package/src/__tests__/components/ChemicalFormula.test.ts +15 -0
- package/src/__tests__/components/CollapsibleCard.test.ts +12 -9
- package/src/__tests__/components/ComponentBindingRenderer.test.ts +45 -17
- package/src/__tests__/components/ConcentrationInput.test.ts +17 -2
- package/src/__tests__/components/DataFrame.test.ts +107 -4
- package/src/__tests__/components/DataStates.test.ts +0 -16
- package/src/__tests__/components/DatePicker.test.ts +10 -0
- package/src/__tests__/components/DoseCalculator.test.ts +47 -0
- package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +37 -34
- package/src/__tests__/components/EmptyState.test.ts +16 -1
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +31 -3
- package/src/__tests__/components/ExperimentTimeline.test.ts +45 -0
- package/src/__tests__/components/FilePicker.state.test.ts +2 -2
- package/src/__tests__/components/FilePicker.test.ts +360 -13
- package/src/__tests__/components/FileUploader.test.ts +15 -0
- package/src/__tests__/components/FitPanel.test.ts +96 -0
- package/src/__tests__/components/FormulaInput.test.ts +97 -0
- package/src/__tests__/components/GeneratedPathInput.test.ts +168 -41
- package/src/__tests__/components/GeneratedPlotlyResult.test.ts +1 -1
- package/src/__tests__/components/GeneratedResultRenderer.test.ts +47 -2
- package/src/__tests__/components/InstrumentStateBadge.test.ts +50 -0
- package/src/__tests__/components/JobsStatusTray.test.ts +27 -0
- package/src/__tests__/components/MoleculeInput.test.ts +78 -0
- package/src/__tests__/components/MultiSelect.test.ts +6 -0
- package/src/__tests__/components/PlateEditor.test.ts +1134 -0
- package/src/__tests__/components/PlateEditorBindingInternal.test.ts +64 -0
- package/src/__tests__/components/PlotlyChart.test.ts +147 -1
- package/src/__tests__/components/ProgressBar.test.ts +18 -0
- package/src/__tests__/components/ProtocolStepEditor.test.ts +106 -18
- package/src/__tests__/components/ProtocolStepParameterField.test.ts +74 -29
- package/src/__tests__/components/ReagentList.presentation.test.ts +10 -5
- package/src/__tests__/components/ReagentList.test.ts +23 -0
- package/src/__tests__/components/ResourcePickerListInternal.test.ts +141 -0
- package/src/__tests__/components/RetiredStyles.test.ts +0 -6
- package/src/__tests__/components/SampleHierarchyTree.test.ts +102 -0
- package/src/__tests__/components/SampleLegend.test.ts +18 -0
- package/src/__tests__/components/SampleSelector.test.ts +92 -1
- package/src/__tests__/components/SampleSelectorSampleRow.test.ts +5 -2
- package/src/__tests__/components/ScheduleCalendar.test.ts +32 -0
- package/src/__tests__/components/ScientificNumber.test.ts +113 -0
- package/src/__tests__/components/SearchableSelect.test.ts +21 -0
- package/src/__tests__/components/SecretInput.test.ts +6 -0
- package/src/__tests__/components/SegmentedControl.test.ts +14 -0
- package/src/__tests__/components/SequenceInput.test.ts +81 -0
- package/src/__tests__/components/SettingsModal.schema.test.ts +5 -5
- package/src/__tests__/components/SettingsModal.test.ts +371 -23
- package/src/__tests__/components/Skeleton.test.ts +23 -0
- package/src/__tests__/components/SmartGroupFieldRecipe.test.ts +12 -0
- package/src/__tests__/components/SmartGroupModal.test.ts +69 -0
- package/src/__tests__/components/StepWizard.test.ts +75 -0
- package/src/__tests__/components/TagsInput.test.ts +16 -0
- package/src/__tests__/components/TimePicker.test.ts +66 -0
- package/src/__tests__/components/TimeRangeInput.test.ts +83 -0
- package/src/__tests__/components/UnitInput.test.ts +147 -0
- package/src/__tests__/components/WellEditPopupInternal.test.ts +434 -2
- package/src/__tests__/components/WellPlate.decoration.test.ts +18 -0
- package/src/__tests__/components/WellPlate.geometry.test.ts +13 -0
- package/src/__tests__/components/WellPlate.interaction.test.ts +213 -0
- package/src/__tests__/components/WellPlate.keyboard.test.ts +24 -0
- package/src/__tests__/components/WellPlate.rendering.test.ts +38 -19
- package/src/__tests__/components/WellPlate.sampleDrop.test.ts +19 -0
- package/src/__tests__/components/WellPlate.sampleTypeIndicator.test.ts +58 -0
- package/src/__tests__/composables/createFilePickerAdapter.test.ts +114 -1
- package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +1 -1
- package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +1 -1
- package/src/__tests__/composables/useChemicalFormula.test.ts +60 -0
- package/src/__tests__/composables/useControlSchema.test.ts +15 -5
- package/src/__tests__/composables/useDropdownState.test.ts +20 -1
- package/src/__tests__/composables/useGeneratedAnalysis.test.ts +52 -0
- package/src/__tests__/composables/usePickerNavigation.test.ts +61 -1
- package/src/__tests__/composables/usePlatformFilePickerAdapter.test.ts +18 -6
- package/src/__tests__/composables/useRackEditor.test.ts +270 -0
- package/src/__tests__/composables/useSequenceUtils.test.ts +28 -0
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +44 -9
- package/src/__tests__/styles/baseControlsRules.test.ts +115 -0
- package/src/__tests__/styles/controlRefreshRules.test.ts +218 -0
- package/src/__tests__/styles/cssTokens.test.ts +7 -5
- package/src/__tests__/styles/darkModeRules.test.ts +47 -0
- package/src/__tests__/styles/menusShellRefresh.test.ts +75 -0
- package/src/__tests__/templates/templates.test.ts +65 -15
- package/src/__tests__/templates/templatesDeprecation.test.ts +78 -0
- package/src/__tests__/utils/permissions.test.ts +0 -68
- package/src/__tests__/utils/plotlyTemplate.test.ts +69 -0
- package/src/__tests__/utils/sampleTypeMarker.test.ts +54 -0
- package/src/components/ActionMenu.vue +44 -23
- package/src/components/AdductText.story.vue +18 -0
- package/src/components/AdductText.vue +7 -1
- package/src/components/AlertBox.vue +3 -7
- package/src/components/AppAvatarMenu.vue +12 -10
- package/src/components/AppSidebar.vue +1 -1
- package/src/components/AppTopBar.story.vue +47 -4
- package/src/components/AppTopBar.vue +16 -22
- package/src/components/ArtifactSelectorModal.story.vue +1 -1
- package/src/components/ArtifactSelectorModal.vue +48 -160
- package/src/components/AuditTrail.vue +26 -12
- package/src/components/AutoGroupModal.vue +1 -1
- package/src/components/BaseCheckbox.story.vue +58 -2
- package/src/components/BaseCheckbox.vue +21 -3
- package/src/components/BaseInput.story.vue +51 -0
- package/src/components/BaseInput.vue +62 -1
- package/src/components/BaseModal.story.vue +55 -0
- package/src/components/BaseModal.vue +83 -50
- package/src/components/BaseRadioGroup.vue +1 -1
- package/src/components/BaseSlider.story.vue +36 -0
- package/src/components/BaseSlider.vue +56 -8
- package/src/components/BaseToggle.vue +1 -7
- package/src/components/BatchProgressList.vue +50 -52
- package/src/components/BioTemplatePresetWorkspaceView.vue +1 -1
- package/src/components/Breadcrumb.story.vue +1 -1
- package/src/components/Breadcrumb.vue +50 -15
- package/src/components/ChartContainer.story.vue +42 -0
- package/src/components/ChartContainer.vue +22 -1
- package/src/components/ChemicalFormula.story.vue +11 -11
- package/src/components/ChemicalFormula.vue +1 -0
- package/src/components/CollapsibleCard.vue +12 -32
- package/src/components/ComponentBindingRenderer.vue +6 -8
- package/src/components/ConcentrationInput.story.vue +1 -1
- package/src/components/ConcentrationInput.vue +8 -14
- package/src/components/ControlWorkspaceView.vue +1 -1
- package/src/components/DataFrame.story.vue +45 -2
- package/src/components/DataFrame.vue +28 -13
- package/src/components/DatePicker.story.vue +11 -0
- package/src/components/DatePicker.vue +5 -5
- package/src/components/DateTimePicker.story.vue +1 -1
- package/src/components/DateTimePicker.vue +8 -5
- package/src/components/Divider.story.vue +1 -1
- package/src/components/DoseCalculator.vue +44 -51
- package/src/components/DoseCalculatorVolumeField.vue +22 -35
- package/src/components/DoseDesignWorkspaceView.vue +1 -1
- package/src/components/EmptyState.story.vue +4 -4
- package/src/components/EmptyState.vue +4 -2
- package/src/components/ExperimentPopover.story.vue +2 -2
- package/src/components/ExperimentPopover.vue +6 -4
- package/src/components/ExperimentSelectorModal.story.vue +2 -1
- package/src/components/ExperimentSelectorModal.vue +91 -261
- package/src/components/ExperimentTimeline.story.vue +29 -0
- package/src/components/ExperimentTimeline.vue +20 -0
- package/src/components/FilePicker.story.vue +65 -10
- package/src/components/FilePicker.vue +203 -121
- package/src/components/FitPanel.story.vue +72 -6
- package/src/components/FitPanel.vue +70 -18
- package/src/components/FormField.vue +2 -0
- package/src/components/FormulaInput.story.vue +6 -0
- package/src/components/FormulaInput.vue +49 -70
- package/src/components/GeneratedPathInput.story.vue +121 -8
- package/src/components/GeneratedPathInput.vue +155 -86
- package/src/components/GeneratedPlotlyResult.vue +1 -1
- package/src/components/GeneratedPluginView.vue +4 -4
- package/src/components/GeneratedResultRenderer.vue +19 -0
- package/src/components/InstrumentStateBadge.story.vue +41 -0
- package/src/components/InstrumentStateBadge.vue +24 -14
- package/src/components/JobsStatusTray.vue +30 -8
- package/src/components/MoleculeInput.vue +12 -7
- package/src/components/MultiSelect.vue +3 -3
- package/src/components/PlateEditor.story.vue +333 -0
- package/src/components/PlateEditor.vue +793 -0
- package/src/components/PlotlyChart.story.vue +37 -1
- package/src/components/PlotlyChart.vue +86 -16
- package/src/components/PluginWorkspaceView.props.ts +1 -7
- package/src/components/PluginWorkspaceView.vue +0 -4
- package/src/components/ProgressBar.story.vue +0 -30
- package/src/components/ProgressBar.vue +3 -53
- package/src/components/ProtocolStepEditor.story.vue +8 -0
- package/src/components/ProtocolStepEditor.vue +55 -145
- package/src/components/ProtocolStepParameterField.vue +55 -93
- package/src/components/ReagentList.presentation.ts +7 -6
- package/src/components/ReagentList.vue +18 -17
- package/src/components/SampleHierarchyTree.story.vue +19 -0
- package/src/components/SampleHierarchyTree.vue +47 -14
- package/src/components/SampleLegend.vue +12 -4
- package/src/components/SampleSelector.story.vue +5 -1
- package/src/components/SampleSelector.vue +25 -15
- package/src/components/SampleSelectorGroupNode.vue +10 -20
- package/src/components/SampleSelectorSampleRow.vue +7 -18
- package/src/components/ScheduleCalendar.story.vue +14 -0
- package/src/components/ScheduleCalendar.vue +13 -1
- package/src/components/ScientificNumber.story.vue +15 -2
- package/src/components/ScientificNumber.vue +22 -26
- package/src/components/SearchableSelect.vue +14 -9
- package/src/components/SecretInput.vue +1 -1
- package/src/components/SegmentedControl.story.vue +23 -0
- package/src/components/SegmentedControl.vue +6 -1
- package/src/components/SequenceInput.story.vue +27 -5
- package/src/components/SequenceInput.vue +74 -29
- package/src/components/SequenceProgressBar.vue +0 -1
- package/src/components/SettingsModal.schema.ts +4 -2
- package/src/components/SettingsModal.story.vue +83 -22
- package/src/components/SettingsModal.vue +338 -79
- package/src/components/Skeleton.vue +6 -35
- package/src/components/SmartGroup.types.ts +2 -2
- package/src/components/SmartGroupFieldRecipe.groups.ts +4 -1
- package/src/components/SmartGroupFieldRecipe.vue +14 -8
- package/src/components/SmartGroupManual.vue +14 -11
- package/src/components/StepWizard.vue +16 -19
- package/src/components/TagsInput.story.vue +16 -11
- package/src/components/TagsInput.vue +20 -3
- package/src/components/TimePicker.story.vue +38 -3
- package/src/components/TimePicker.vue +26 -11
- package/src/components/TimeRangeInput.story.vue +50 -1
- package/src/components/TimeRangeInput.vue +36 -17
- package/src/components/UnitInput.story.vue +1 -1
- package/src/components/UnitInput.vue +173 -107
- package/src/components/WellPlate.colors.ts +7 -6
- package/src/components/WellPlate.geometry.ts +3 -0
- package/src/components/WellPlate.interaction.ts +39 -5
- package/src/components/WellPlate.rendering.ts +21 -27
- package/src/components/WellPlate.sampleDrop.ts +20 -12
- package/src/components/WellPlate.story.vue +18 -7
- package/src/components/WellPlate.vue +28 -22
- package/src/components/index.ts +34 -31
- package/src/components/internal/AppTopBarPageSelectorInternal.vue +13 -7
- package/src/components/internal/AppTopBarPillNavInternal.vue +12 -7
- package/src/components/internal/CalendarGridPanelInternal.vue +1 -1
- package/src/components/internal/FilePickerListInternal.vue +318 -0
- package/src/components/internal/FilePickerPreviewInternal.vue +54 -52
- package/src/components/internal/PlateEditorBindingInternal.vue +37 -0
- package/src/components/internal/ResourcePickerListInternal.vue +237 -0
- package/src/components/internal/SettingsPaneHeadInternal.vue +41 -0
- package/src/components/internal/WellEditPopupInternal.vue +219 -146
- package/src/components/internal/WorkspaceShellInternal.vue +0 -6
- package/src/components/internal/filePickerPresentation.ts +30 -0
- package/src/components/internal/generatedJobsApi.ts +12 -0
- package/src/composables/autoGroup/index.ts +3 -0
- package/src/composables/controlSchemaAdapters.ts +0 -4
- package/src/composables/controlSchemaFormFields.ts +0 -4
- package/src/composables/controlSchemaTypes.ts +4 -43
- package/src/composables/createFilePickerAdapter.ts +90 -22
- package/src/composables/filePicker/localFiles.ts +1 -0
- package/src/composables/filePicker/usePickerNavigation.ts +29 -2
- package/src/composables/index.ts +2 -71
- package/src/composables/pluginWorkspaceModel.ts +0 -3
- package/src/composables/useAutoGroup.ts +10 -0
- package/src/composables/useBioTemplateComponents.ts +15 -3
- package/src/composables/useBioTemplateControls.ts +5 -1
- package/src/composables/useBioTemplatePackWorkspace.ts +2 -0
- package/src/composables/useBioTemplatePresetWorkspace.ts +5 -1
- package/src/composables/useBioTemplateWorkspace.ts +5 -1
- package/src/composables/useChemicalFormula.ts +39 -13
- package/src/composables/useDropdownState.ts +6 -1
- package/src/composables/useExperimentSave.ts +5 -1
- package/src/composables/useFileBrowser.ts +3 -2
- package/src/composables/useFilePicker.ts +98 -13
- package/src/composables/useFocusTrap.ts +9 -6
- package/src/composables/useGeneratedAnalysis.ts +38 -0
- package/src/composables/useGroupAssignment.ts +5 -1
- package/src/composables/useJobsStatusTray.ts +5 -5
- package/src/composables/useMenuKeyboard.ts +5 -3
- package/src/composables/usePlatformFilePickerAdapter.ts +26 -4
- package/src/composables/usePluginClient.ts +1 -1
- package/src/composables/usePluginWorkspace.ts +0 -1
- package/src/composables/useRackEditor.ts +202 -12
- package/src/composables/useSequenceUtils.ts +20 -2
- package/src/composables/useTemplateCollection.ts +5 -1
- package/src/composables/workspaceRecipes.ts +1 -0
- package/src/index.ts +9 -3
- package/src/instrument.ts +6 -0
- package/src/lcms.ts +11 -0
- package/src/permissions.ts +2 -59
- package/src/styles/components/action-menu.css +9 -38
- package/src/styles/components/adduct-text.css +15 -3
- package/src/styles/components/alert-box.css +19 -70
- package/src/styles/components/app-avatar-menu.css +22 -57
- package/src/styles/components/app-container.css +4 -4
- package/src/styles/components/app-layout.css +18 -18
- package/src/styles/components/app-page-selector.css +50 -105
- package/src/styles/components/app-pill-nav.css +24 -42
- package/src/styles/components/app-sidebar.css +2 -2
- package/src/styles/components/app-top-bar.css +78 -55
- package/src/styles/components/artifact-selector-modal.css +1 -211
- package/src/styles/components/audit-trail.css +45 -38
- package/src/styles/components/avatar.css +1 -1
- package/src/styles/components/batch-progress-list.css +179 -95
- package/src/styles/components/breadcrumb.css +34 -15
- package/src/styles/components/calendar.css +2 -8
- package/src/styles/components/chart-container.css +81 -38
- package/src/styles/components/checkbox.css +8 -6
- package/src/styles/components/chemical-formula.css +8 -6
- package/src/styles/components/collapsible-card.css +6 -46
- package/src/styles/components/concentration-input.css +1 -10
- package/src/styles/components/dataframe.css +48 -67
- package/src/styles/components/date-picker.css +124 -62
- package/src/styles/components/datetime-picker.css +81 -47
- package/src/styles/components/divider.css +2 -4
- package/src/styles/components/dose-calculator.css +9 -135
- package/src/styles/components/empty-state.css +26 -35
- package/src/styles/components/experiment-code-badge.css +1 -1
- package/src/styles/components/experiment-popover.css +16 -83
- package/src/styles/components/experiment-selector-modal.css +9 -226
- package/src/styles/components/experiment-timeline.css +120 -50
- package/src/styles/components/file-picker.css +323 -299
- package/src/styles/components/file-uploader.css +4 -6
- package/src/styles/components/fit-panel.css +108 -22
- package/src/styles/components/form-field.css +6 -4
- package/src/styles/components/formula-input.css +121 -48
- package/src/styles/components/group-assigner.css +1 -3
- package/src/styles/components/icon-button.css +15 -37
- package/src/styles/components/input.css +91 -2
- package/src/styles/components/instrument-monitor.css +37 -447
- package/src/styles/components/jobs-status-tray.css +82 -61
- package/src/styles/components/loading-spinner.css +18 -0
- package/src/styles/components/mobile-support-gate.css +15 -17
- package/src/styles/components/modal.css +44 -33
- package/src/styles/components/molecule-input.css +31 -16
- package/src/styles/components/multi-select.css +33 -29
- package/src/styles/components/number-input.css +1 -1
- package/src/styles/components/plate-editor.css +497 -0
- package/src/styles/components/popover.css +162 -0
- package/src/styles/components/progress-bar.css +1 -70
- package/src/styles/components/protocol-step-editor.css +21 -333
- package/src/styles/components/radio-group.css +9 -18
- package/src/styles/components/reagent-editor.css +3 -7
- package/src/styles/components/reagent-list.css +63 -69
- package/src/styles/components/resource-card.css +4 -6
- package/src/styles/components/resource-picker-list.css +212 -0
- package/src/styles/components/sample-hierarchy-tree.css +83 -65
- package/src/styles/components/sample-legend.css +18 -7
- package/src/styles/components/sample-selector.css +41 -68
- package/src/styles/components/schedule-calendar.css +59 -54
- package/src/styles/components/scientific-number.css +72 -18
- package/src/styles/components/searchable-select.css +17 -26
- package/src/styles/components/secret-input.css +20 -23
- package/src/styles/components/section-card.css +3 -5
- package/src/styles/components/segmented-control.css +14 -1
- package/src/styles/components/select.css +19 -8
- package/src/styles/components/sequence-input.css +85 -37
- package/src/styles/components/sequence-progress-bar.css +18 -37
- package/src/styles/components/settings-modal.css +683 -34
- package/src/styles/components/skeleton.css +24 -23
- package/src/styles/components/slider.css +74 -8
- package/src/styles/components/smart-group.css +27 -39
- package/src/styles/components/status-indicator.css +1 -1
- package/src/styles/components/step-wizard.css +62 -99
- package/src/styles/components/tabs.css +2 -6
- package/src/styles/components/tags-input.css +64 -54
- package/src/styles/components/textarea.css +2 -2
- package/src/styles/components/time-picker.css +67 -38
- package/src/styles/components/time-range-input.css +16 -18
- package/src/styles/components/toast.css +1 -1
- package/src/styles/components/toggle.css +21 -31
- package/src/styles/components/tooltip.css +13 -15
- package/src/styles/components/unit-input.css +86 -36
- package/src/styles/components/well-edit-popup.css +111 -189
- package/src/styles/components/well-plate.css +7 -7
- package/src/styles/index.css +5 -7
- package/src/styles/variables.css +35 -7
- package/src/templates/adapters.ts +4 -0
- package/src/templates/assayMatrixAdapters.ts +8 -1
- package/src/templates/assayMatrixBuilder.ts +1 -0
- package/src/templates/builderPresetControls.ts +1 -0
- package/src/templates/calibrationCurveAdapters.ts +3 -0
- package/src/templates/calibrationCurveBuilder.ts +1 -0
- package/src/templates/catalog.ts +6 -2
- package/src/templates/componentBindingCatalog.ts +1 -1
- package/src/templates/componentBindings.ts +31 -5
- package/src/templates/componentDoseResponseProps.ts +0 -1
- package/src/templates/componentPlateHelpers.ts +22 -1
- package/src/templates/componentPlateMapProps.ts +7 -5
- package/src/templates/componentQpcrPlateProps.ts +0 -1
- package/src/templates/controlSchemas.ts +9 -0
- package/src/templates/defaultBioTemplateBuilder.ts +1 -0
- package/src/templates/doseResponseAdapters.ts +2 -0
- package/src/templates/doseResponseBuilder.ts +1 -0
- package/src/templates/elisaAssayCollectionBuilder.ts +1 -0
- package/src/templates/flowCytometryAssayCollectionBuilder.ts +1 -0
- package/src/templates/flowCytometryPanelBuilder.ts +1 -0
- package/src/templates/flowPanelAdapters.ts +3 -0
- package/src/templates/index.ts +4 -0
- package/src/templates/instrumentRunAdapters.ts +13 -2
- package/src/templates/instrumentRunBuilder.ts +1 -0
- package/src/templates/lcmsBatchCollectionBuilder.ts +1 -0
- package/src/templates/packs.ts +4 -0
- package/src/templates/plateMapAdapters.ts +2 -0
- package/src/templates/plateMapBuilder.ts +1 -0
- package/src/templates/presets.ts +6 -2
- package/src/templates/protocolAdapters.ts +4 -0
- package/src/templates/protocolStepsBuilder.ts +1 -0
- package/src/templates/qpcrAdapters.ts +4 -0
- package/src/templates/qpcrExpressionCollectionBuilder.ts +1 -0
- package/src/templates/qpcrPlateBuilder.ts +1 -0
- package/src/templates/reagentAdapters.ts +4 -0
- package/src/templates/reagentListBuilder.ts +1 -0
- package/src/templates/samplePrepAdapters.ts +3 -0
- package/src/templates/samplePrepBuilder.ts +1 -0
- package/src/templates/sampleSheetAdapters.ts +4 -0
- package/src/templates/sampleSheetBuilder.ts +1 -0
- package/src/templates/targetedMetabolomicsCollectionBuilder.ts +1 -0
- package/src/templates/templateEnvelopes.ts +8 -0
- package/src/templates/templatePackCollectionBuilder.ts +1 -0
- package/src/templates/templatePresetCollectionBuilder.ts +2 -0
- package/src/templates/templateValidators.ts +12 -0
- package/src/templates/timeCourseAdapters.ts +4 -0
- package/src/templates/timeCourseBuilder.ts +1 -0
- package/src/templates/wellPlateScreenCollectionBuilder.ts +1 -0
- package/src/templates/westernBlotAssayCollectionBuilder.ts +1 -0
- package/src/types/auth.ts +0 -37
- package/src/types/componentLabTypes.ts +16 -13
- package/src/types/componentWorkflowTypes.ts +29 -0
- package/src/types/components.ts +43 -20
- package/src/types/fileBrowserTypes.ts +15 -0
- package/src/types/filePicker.ts +19 -1
- package/src/types/generated-ui.ts +15 -0
- package/src/types/index.ts +12 -11
- package/src/types/instrument.ts +47 -15
- package/src/types/platform.ts +2 -0
- package/src/utils/color.ts +16 -1
- package/src/utils/formModelSync.ts +1 -1
- package/src/utils/plotlyTemplate.ts +39 -0
- package/src/utils/rack.ts +16 -0
- package/src/utils/sampleTypeMarker.ts +44 -0
- package/dist/ExperimentPopover-CJdNlCZb.js +0 -451
- package/dist/ExperimentPopover-CJdNlCZb.js.map +0 -1
- package/dist/ExperimentSelectorModal-DHE9k8TP.js +0 -507
- package/dist/ExperimentSelectorModal-DHE9k8TP.js.map +0 -1
- package/dist/SettingsModal-DELMkUFR.js +0 -492
- package/dist/SettingsModal-DELMkUFR.js.map +0 -1
- package/dist/Skeleton-jhF9wUkU.js +0 -485
- package/dist/Skeleton-jhF9wUkU.js.map +0 -1
- package/dist/__tests__/composables/usePluginConfig.test.d.ts +0 -15
- package/dist/chunk-BoAXSpZd.js +0 -33
- package/dist/components/AppPluginSwitcher.vue.d.ts +0 -40
- package/dist/components/ColorSlider.vue.d.ts +0 -34
- package/dist/components/DropdownButton.vue.d.ts +0 -49
- package/dist/components/FileBrowserModal.vue.d.ts +0 -99
- package/dist/components/InstrumentAlertLog.vue.d.ts +0 -22
- package/dist/components/InstrumentStatusCard.vue.d.ts +0 -13
- package/dist/components/LcmsSequenceTable.vue.d.ts +0 -54
- package/dist/components/PlateMapEditor.vue.d.ts +0 -50
- package/dist/components/RackEditor.vue.d.ts +0 -78
- package/dist/components/fileBrowserPresentation.d.ts +0 -10
- package/dist/components/internal/FileBrowserDialogInternal.vue.d.ts +0 -34
- package/dist/components/internal/FileBrowserListingInternal.vue.d.ts +0 -25
- package/dist/components/internal/FileBrowserToolbarInternal.vue.d.ts +0 -26
- package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +0 -28
- package/dist/components-Bbg_gtzF.js.map +0 -1
- package/dist/composables/useAsync.d.ts +0 -132
- package/dist/composables/useAuth.d.ts +0 -47
- package/dist/composables/useCommandHistory.d.ts +0 -33
- package/dist/composables/useOptimisticMutation.d.ts +0 -32
- package/dist/composables/usePasskey.d.ts +0 -10
- package/dist/composables/usePluginConfig.d.ts +0 -27
- package/dist/composables/useResourceCrud.d.ts +0 -44
- package/dist/composables/useWellPainting.d.ts +0 -39
- package/dist/composables/useWellPlateAdapter.d.ts +0 -40
- package/dist/composables/useWellPlateEditor.d.ts +0 -33
- package/dist/composables/useWellPlateValidation.d.ts +0 -31
- package/dist/composables-BCbYb2lA.js +0 -2356
- package/dist/composables-BCbYb2lA.js.map +0 -1
- package/dist/errors-BLuqMee5.js.map +0 -1
- package/dist/experiment-CVDRAnqp.js +0 -90
- package/dist/experiment-CVDRAnqp.js.map +0 -1
- package/dist/experiment-utils-CV2Wza3z.js.map +0 -1
- package/dist/plotly.min-c2Sez60c.js +0 -180634
- package/dist/plotly.min-c2Sez60c.js.map +0 -1
- package/dist/templates-NuaNHohp.js +0 -5260
- package/dist/templates-NuaNHohp.js.map +0 -1
- package/dist/useControlSchema-vLiRPUmj.js +0 -7301
- package/dist/useControlSchema-vLiRPUmj.js.map +0 -1
- package/dist/useDropdownState-C7hRiVQf.js +0 -63
- package/dist/useDropdownState-C7hRiVQf.js.map +0 -1
- package/dist/useExperimentSelector-G_CAOFTX.js +0 -328
- package/dist/useExperimentSelector-G_CAOFTX.js.map +0 -1
- package/dist/useFormBuilder-D37ajgS8.js +0 -729
- package/dist/useFormBuilder-D37ajgS8.js.map +0 -1
- package/dist/validation-ChMyixAf.js.map +0 -1
- package/src/__tests__/components/AppPluginSwitcher.test.ts +0 -44
- package/src/__tests__/components/DropdownButton.test.ts +0 -628
- package/src/__tests__/components/FileBrowserModal.test.ts +0 -460
- package/src/__tests__/components/InstrumentAlertLog.test.ts +0 -59
- package/src/__tests__/components/LcmsSequenceTable.test.ts +0 -79
- package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +0 -54
- package/src/__tests__/components/RackEditor.test.ts +0 -169
- package/src/__tests__/composables/useAuth.test.ts +0 -233
- package/src/__tests__/composables/useCommandHistory.test.ts +0 -43
- package/src/__tests__/composables/useOptimisticMutation.test.ts +0 -40
- package/src/__tests__/composables/usePluginConfig.test.ts +0 -497
- package/src/__tests__/composables/useResourceCrud.test.ts +0 -56
- package/src/__tests__/composables/useWellPainting.test.ts +0 -52
- package/src/__tests__/composables/useWellPlateAdapter.test.ts +0 -50
- package/src/__tests__/composables/useWellPlateValidation.test.ts +0 -42
- package/src/components/AppPluginSwitcher.story.vue +0 -87
- package/src/components/AppPluginSwitcher.vue +0 -134
- package/src/components/ColorSlider.story.vue +0 -120
- package/src/components/ColorSlider.vue +0 -160
- package/src/components/DropdownButton.story.vue +0 -102
- package/src/components/DropdownButton.vue +0 -181
- package/src/components/FileBrowserModal.story.vue +0 -203
- package/src/components/FileBrowserModal.vue +0 -384
- package/src/components/InstrumentAlertLog.vue +0 -187
- package/src/components/InstrumentStatusCard.vue +0 -184
- package/src/components/LcmsSequenceTable.vue +0 -222
- package/src/components/PlateMapEditor.story.vue +0 -92
- package/src/components/PlateMapEditor.vue +0 -423
- package/src/components/RackEditor.story.vue +0 -100
- package/src/components/RackEditor.vue +0 -429
- package/src/components/fileBrowserPresentation.ts +0 -39
- package/src/components/internal/FileBrowserDialogInternal.vue +0 -75
- package/src/components/internal/FileBrowserListingInternal.vue +0 -197
- package/src/components/internal/FileBrowserToolbarInternal.vue +0 -136
- package/src/components/internal/FilePickerTreeInternal.vue +0 -238
- package/src/components/internal/PlateMapEditorToolbarInternal.vue +0 -128
- package/src/composables/useAsync.ts +0 -327
- package/src/composables/useAuth.ts +0 -458
- package/src/composables/useCommandHistory.ts +0 -117
- package/src/composables/useOptimisticMutation.ts +0 -97
- package/src/composables/usePasskey.ts +0 -216
- package/src/composables/usePluginConfig.ts +0 -252
- package/src/composables/useResourceCrud.ts +0 -235
- package/src/composables/useWellPainting.ts +0 -167
- package/src/composables/useWellPlateAdapter.ts +0 -151
- package/src/composables/useWellPlateEditor.ts +0 -415
- package/src/composables/useWellPlateValidation.ts +0 -89
- package/src/plotly-dist.d.ts +0 -3
- package/src/styles/components/app-plugin-switcher.css +0 -196
- package/src/styles/components/color-slider.css +0 -110
- package/src/styles/components/dropdown-button.css +0 -280
- package/src/styles/components/file-browser-modal.css +0 -489
- package/src/styles/components/lcms-sequence-table.css +0 -204
- package/src/styles/components/plate-map-editor.css +0 -464
- package/src/styles/components/rack-editor.css +0 -287
- /package/dist/__tests__/components/{AppPluginSwitcher.test.d.ts → AlertBox.test.d.ts} +0 -0
- /package/dist/__tests__/components/{DropdownButton.test.d.ts → AuditTrail.test.d.ts} +0 -0
- /package/dist/__tests__/components/{FileBrowserModal.test.d.ts → BaseCheckbox.test.d.ts} +0 -0
- /package/dist/__tests__/components/{InstrumentAlertLog.test.d.ts → BaseSlider.test.d.ts} +0 -0
- /package/dist/__tests__/components/{LcmsSequenceTable.test.d.ts → DoseCalculator.test.d.ts} +0 -0
- /package/dist/__tests__/components/{PlateMapEditorToolbarInternal.test.d.ts → FileUploader.test.d.ts} +0 -0
- /package/dist/__tests__/components/{RackEditor.test.d.ts → FitPanel.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useAuth.test.d.ts → components/FormulaInput.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useCommandHistory.test.d.ts → components/InstrumentStateBadge.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useOptimisticMutation.test.d.ts → components/MoleculeInput.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useResourceCrud.test.d.ts → components/PlateEditor.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useWellPainting.test.d.ts → components/PlateEditorBindingInternal.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useWellPlateAdapter.test.d.ts → components/ResourcePickerListInternal.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useWellPlateValidation.test.d.ts → components/SampleLegend.test.d.ts} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export type WellPlateFormat = 6 | 12 | 24 | 48 | 54 | 96 | 384
|
|
3
3
|
export type WellState = 'empty' | 'filled' | 'selected' | 'disabled'
|
|
4
4
|
export type WellPlateSelectionMode = 'none' | 'single' | 'multiple' | 'rectangle' | 'drag'
|
|
5
|
-
export type WellPlateSize = 'sm' | 'md' | 'lg' | 'xl' | 'fill'
|
|
5
|
+
export type WellPlateSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'fill'
|
|
6
6
|
export type WellShape = 'circle' | 'rounded'
|
|
7
7
|
|
|
8
8
|
export interface Well {
|
|
@@ -11,6 +11,8 @@ export interface Well {
|
|
|
11
11
|
col: number
|
|
12
12
|
state: WellState
|
|
13
13
|
sampleType?: string
|
|
14
|
+
/** Group id (PlateEditor `groups`); colors the well, while `sampleType` sets its marker shape. */
|
|
15
|
+
group?: string
|
|
14
16
|
value?: number
|
|
15
17
|
metadata?: Record<string, unknown>
|
|
16
18
|
}
|
|
@@ -56,7 +58,7 @@ export interface WellEditData {
|
|
|
56
58
|
// Fields shown in the edit popup
|
|
57
59
|
export type WellEditField = 'label' | 'sampleType' | 'injectionVolume' | 'injectionCount' | 'customMethod'
|
|
58
60
|
|
|
59
|
-
// External sample drop payloads for WellPlate /
|
|
61
|
+
// External sample drop payloads for WellPlate / PlateEditor
|
|
60
62
|
export interface WellSampleDropData {
|
|
61
63
|
id?: string
|
|
62
64
|
sampleName?: string
|
|
@@ -102,7 +104,7 @@ export interface RowCondition extends PlateCondition {
|
|
|
102
104
|
rows: string[]
|
|
103
105
|
}
|
|
104
106
|
|
|
105
|
-
// Rack for
|
|
107
|
+
// Rack for PlateEditor
|
|
106
108
|
export interface Rack {
|
|
107
109
|
id: string
|
|
108
110
|
name: string
|
|
@@ -112,18 +114,14 @@ export interface Rack {
|
|
|
112
114
|
wells: Record<string, Partial<Well>>
|
|
113
115
|
}
|
|
114
116
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
/** PlateEditor `clearConfirm`: text and variant of the Clear confirmation; unset fields keep the defaults. */
|
|
118
|
+
export interface PlateEditorClearConfirm {
|
|
119
|
+
title?: string
|
|
120
|
+
message?: string
|
|
121
|
+
confirmLabel?: string
|
|
122
|
+
variant?: 'danger' | 'warning' | 'info'
|
|
120
123
|
}
|
|
121
124
|
|
|
122
|
-
export type RackSampleDropMapper = (
|
|
123
|
-
data: WellSampleDropData,
|
|
124
|
-
context: RackSampleDropContext
|
|
125
|
-
) => WellEditData | null | undefined
|
|
126
|
-
|
|
127
125
|
// Sample Legend types
|
|
128
126
|
export interface SampleType {
|
|
129
127
|
id: string
|
|
@@ -162,6 +160,11 @@ export interface ProtocolStep {
|
|
|
162
160
|
status: ProtocolStepStatus
|
|
163
161
|
parameters?: Record<string, unknown>
|
|
164
162
|
order: number
|
|
163
|
+
/**
|
|
164
|
+
* Percent complete, 0–100. ExperimentTimeline shows it as a 2px bar and a
|
|
165
|
+
* mono percent on the `in_progress` step only; out-of-range values clamp.
|
|
166
|
+
*/
|
|
167
|
+
progress?: number
|
|
165
168
|
}
|
|
166
169
|
|
|
167
170
|
// Sample Selector types
|
|
@@ -59,6 +59,13 @@ export interface BatchSummary {
|
|
|
59
59
|
// TimePicker types
|
|
60
60
|
export type TimePickerFormat = '12h' | '24h'
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Marks a time slot ("HH:mm") unavailable. Return `false`/nothing for an
|
|
64
|
+
* available slot, `true` to disable it, or a string to disable it and show
|
|
65
|
+
* that string inline as the reason (e.g. "Booked · HPLC-02").
|
|
66
|
+
*/
|
|
67
|
+
export type TimeSlotDisabledFn = (time: string) => boolean | string | null | undefined
|
|
68
|
+
|
|
62
69
|
export interface TimeRange {
|
|
63
70
|
start: string // "HH:mm"
|
|
64
71
|
end: string // "HH:mm"
|
|
@@ -186,5 +193,27 @@ export type FitState = 'idle' | 'running' | 'completed' | 'error'
|
|
|
186
193
|
export interface FitResultSummary {
|
|
187
194
|
label: string
|
|
188
195
|
value: string | number
|
|
196
|
+
/** Icon of a verdict row: success = check, warning = triangle, error = filled circle. Values are never colored. */
|
|
189
197
|
variant?: 'default' | 'success' | 'warning' | 'error'
|
|
198
|
+
/** Show the result as a verdict (icon + "label value") below the parameter table instead of as a table row. */
|
|
199
|
+
verdict?: boolean
|
|
200
|
+
/** Unit shown in mono after the parameter name, never transformed (e.g. `'nM'`). */
|
|
201
|
+
unit?: string
|
|
202
|
+
/** Preformatted 95% confidence interval (e.g. `'512 – 778'`). The CI column shows when any row has one. */
|
|
203
|
+
ci?: string
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** One fitted series in a multi-series FitPanel. */
|
|
207
|
+
export interface FitSeries {
|
|
208
|
+
label: string
|
|
209
|
+
/** Group color token, `var(--mint-sample-1)` … `var(--mint-sample-8)`. Defaults to the series' position in that palette. */
|
|
210
|
+
color?: string
|
|
211
|
+
results: FitResultSummary[]
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/** Header labels of the FitPanel parameter table. */
|
|
215
|
+
export interface FitColumnLabels {
|
|
216
|
+
parameter?: string
|
|
217
|
+
value?: string
|
|
218
|
+
ci?: string
|
|
190
219
|
}
|
package/src/types/components.ts
CHANGED
|
@@ -13,6 +13,8 @@ interface ActionMenuItemBase {
|
|
|
13
13
|
label: string
|
|
14
14
|
disabled?: boolean
|
|
15
15
|
danger?: boolean
|
|
16
|
+
/** Set on every item to make the menu a single choice (`menuitemradio`); true marks the current one. */
|
|
17
|
+
checked?: boolean
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export type ActionMenuItem =
|
|
@@ -23,6 +25,8 @@ export type ActionMenuItem =
|
|
|
23
25
|
| (ActionMenuItemBase & {
|
|
24
26
|
href: string
|
|
25
27
|
target?: '_self' | '_blank' | '_parent' | '_top'
|
|
28
|
+
/** Links navigate; only buttons can be single-choice items. */
|
|
29
|
+
checked?: never
|
|
26
30
|
})
|
|
27
31
|
|
|
28
32
|
// Input types
|
|
@@ -47,6 +51,12 @@ export interface ModalTab {
|
|
|
47
51
|
icon?: string | string[]
|
|
48
52
|
/** Rail only — second line under the label; also shown as the pane subtitle. */
|
|
49
53
|
description?: string
|
|
54
|
+
/**
|
|
55
|
+
* Rail only — heading of the section this tab belongs to. A heading (and a
|
|
56
|
+
* divider after the first section) renders wherever the section changes, so
|
|
57
|
+
* keep tabs of one section adjacent.
|
|
58
|
+
*/
|
|
59
|
+
section?: string
|
|
50
60
|
disabled?: boolean
|
|
51
61
|
}
|
|
52
62
|
|
|
@@ -201,6 +211,8 @@ export interface TopBarSettingsConfig {
|
|
|
201
211
|
title?: string
|
|
202
212
|
tabs?: SettingsTabInput[]
|
|
203
213
|
showAppearance?: boolean
|
|
214
|
+
/** List Appearance before the other tabs and open on it. */
|
|
215
|
+
appearanceFirst?: boolean
|
|
204
216
|
size?: 'md' | 'lg' | 'xl'
|
|
205
217
|
layout?: SettingsModalLayout
|
|
206
218
|
/** Schema-driven config — when set, fields auto-render via SDK form components. */
|
|
@@ -229,6 +241,8 @@ export interface PillNavItem {
|
|
|
229
241
|
to?: string
|
|
230
242
|
href?: string
|
|
231
243
|
disabled?: boolean
|
|
244
|
+
/** Shows a small error-colored dot after the label (e.g. an unacknowledged critical alert). */
|
|
245
|
+
dot?: boolean
|
|
232
246
|
children?: PillNavOption[]
|
|
233
247
|
}
|
|
234
248
|
|
|
@@ -249,23 +263,6 @@ export interface PageSelectorItem {
|
|
|
249
263
|
|
|
250
264
|
export type PageSelectorItemInput = PageSelectorItem | string
|
|
251
265
|
|
|
252
|
-
// TopBar plugin switcher info
|
|
253
|
-
export interface PluginSwitcherPlugin {
|
|
254
|
-
id: string
|
|
255
|
-
label: string
|
|
256
|
-
color?: string
|
|
257
|
-
version?: string
|
|
258
|
-
to?: string
|
|
259
|
-
href?: string
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export interface PluginSwitcherInfo {
|
|
263
|
-
current: PluginSwitcherPlugin
|
|
264
|
-
plugins?: PluginSwitcherPlugin[]
|
|
265
|
-
installHref?: string
|
|
266
|
-
installTo?: string
|
|
267
|
-
}
|
|
268
|
-
|
|
269
266
|
// Avatar/account menu items
|
|
270
267
|
export interface AccountMenuItem {
|
|
271
268
|
id: string
|
|
@@ -302,8 +299,7 @@ export type {
|
|
|
302
299
|
ColumnCondition,
|
|
303
300
|
RowCondition,
|
|
304
301
|
Rack,
|
|
305
|
-
|
|
306
|
-
RackSampleDropMapper,
|
|
302
|
+
PlateEditorClearConfirm,
|
|
307
303
|
SampleType,
|
|
308
304
|
PlateMap,
|
|
309
305
|
PlateMapEditorState,
|
|
@@ -328,10 +324,21 @@ export interface SegmentedOption {
|
|
|
328
324
|
label: string
|
|
329
325
|
description?: string
|
|
330
326
|
disabled?: boolean
|
|
327
|
+
/** Color token for a swatch before the label, e.g. a group color `var(--mint-sample-2)`. */
|
|
328
|
+
color?: string
|
|
331
329
|
}
|
|
332
330
|
|
|
333
331
|
export type SegmentedOptionInput = SegmentedOption | OptionPrimitive
|
|
334
332
|
|
|
333
|
+
/** One series in the ChartContainer header legend. */
|
|
334
|
+
export interface ChartLegendItem {
|
|
335
|
+
label: string
|
|
336
|
+
/** Swatch color, e.g. a group token `var(--mint-sample-1)` or a resolved color. */
|
|
337
|
+
color: string
|
|
338
|
+
/** Series is toggled off (rendered dimmed, `aria-pressed="false"`). */
|
|
339
|
+
hidden?: boolean
|
|
340
|
+
}
|
|
341
|
+
|
|
335
342
|
export type SegmentedControlVariant = 'simple' | 'card'
|
|
336
343
|
export type SegmentedControlSize = 'sm' | 'md' | 'lg'
|
|
337
344
|
|
|
@@ -422,6 +429,18 @@ export interface DataFrameColumn<T = Record<string, unknown>> {
|
|
|
422
429
|
ellipsis?: boolean
|
|
423
430
|
/** Custom formatter for cell values */
|
|
424
431
|
formatter?: (value: unknown, row: T, index: number) => string
|
|
432
|
+
/**
|
|
433
|
+
* Unit shown after the header label in its own mono element, never case-transformed
|
|
434
|
+
* (`'µM'`, `'mL'`, `'m/z'`). Keep it out of `label`.
|
|
435
|
+
*/
|
|
436
|
+
unit?: string
|
|
437
|
+
/**
|
|
438
|
+
* `'number'` renders cells right-aligned in mono with tabular figures (an explicit
|
|
439
|
+
* `align` still wins). Default `'text'`.
|
|
440
|
+
*/
|
|
441
|
+
type?: 'text' | 'number'
|
|
442
|
+
/** Decimal places for numeric cell values (`toFixed`). Ignored when `formatter` is set. */
|
|
443
|
+
precision?: number
|
|
425
444
|
}
|
|
426
445
|
|
|
427
446
|
/** Pagination state for table data */
|
|
@@ -445,7 +464,6 @@ export type DividerSpacing = 'sm' | 'md' | 'lg'
|
|
|
445
464
|
export type StatusType = 'success' | 'warning' | 'error' | 'info' | 'muted'
|
|
446
465
|
|
|
447
466
|
// ProgressBar types
|
|
448
|
-
export type ProgressVariant = 'rail' | 'segmented'
|
|
449
467
|
export type ProgressColor = 'primary' | 'success' | 'warning' | 'error' | 'info'
|
|
450
468
|
export type ProgressSize = 'sm' | 'md' | 'lg'
|
|
451
469
|
|
|
@@ -484,6 +502,8 @@ export interface SettingsTab extends AccessControlled {
|
|
|
484
502
|
description?: string
|
|
485
503
|
/** Optional monospace meta shown right of the tab label — a count, "2 unsaved", etc. */
|
|
486
504
|
meta?: string
|
|
505
|
+
/** Rail section heading for this tab when Appearance is shown; defaults to "Plugin". */
|
|
506
|
+
section?: string
|
|
487
507
|
}
|
|
488
508
|
|
|
489
509
|
export type SettingsTabInput = SettingsTab | string
|
|
@@ -532,6 +552,7 @@ export type {
|
|
|
532
552
|
BatchItem,
|
|
533
553
|
BatchSummary,
|
|
534
554
|
TimePickerFormat,
|
|
555
|
+
TimeSlotDisabledFn,
|
|
535
556
|
TimeRange,
|
|
536
557
|
ScheduleView,
|
|
537
558
|
ScheduleEventStatus,
|
|
@@ -554,4 +575,6 @@ export type {
|
|
|
554
575
|
ExperimentFilters,
|
|
555
576
|
FitState,
|
|
556
577
|
FitResultSummary,
|
|
578
|
+
FitSeries,
|
|
579
|
+
FitColumnLabels,
|
|
557
580
|
} from './componentWorkflowTypes'
|
|
@@ -83,3 +83,18 @@ export interface FileBrowserLocation {
|
|
|
83
83
|
mount_id: string
|
|
84
84
|
path: string
|
|
85
85
|
}
|
|
86
|
+
|
|
87
|
+
/** Several directory levels in one response, parents before children. */
|
|
88
|
+
export interface FileDirectoryTree {
|
|
89
|
+
listings?: FileDirectoryListing[]
|
|
90
|
+
/** True when the server's entry budget stopped before the requested depth. */
|
|
91
|
+
truncated?: boolean
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Entries whose name contains a query, below one directory. */
|
|
95
|
+
export interface FileSearchResult {
|
|
96
|
+
entries?: FileEntry[]
|
|
97
|
+
searched_directories?: number
|
|
98
|
+
/** True when a directory, result or time budget ended the search early. */
|
|
99
|
+
truncated?: boolean
|
|
100
|
+
}
|
package/src/types/filePicker.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/** Sources are supplied by the host; the SDK never infers a host filesystem path. */
|
|
2
2
|
export type PickerSource = 'server' | 'localFile'
|
|
3
3
|
export type PickerSelectionMode = 'single-file' | 'multi-file' | 'folder' | 'folder+files'
|
|
4
|
+
/** `list` shows one folder at a time (the default); `tree` adds disclosure triangles. */
|
|
5
|
+
export type PickerView = 'list' | 'tree'
|
|
6
|
+
/** Row order inside each folder; folders always come before files. */
|
|
7
|
+
export type PickerSort = 'newest' | 'oldest' | 'name' | 'name-desc'
|
|
4
8
|
|
|
5
9
|
interface PickerNodeBase {
|
|
6
10
|
path: string
|
|
@@ -8,6 +12,8 @@ interface PickerNodeBase {
|
|
|
8
12
|
parentPath?: string | null
|
|
9
13
|
parentName?: string
|
|
10
14
|
bytes?: number | null
|
|
15
|
+
/** ISO timestamp of the last change, shown in the list and the preview. */
|
|
16
|
+
modifiedAt?: string | null
|
|
11
17
|
/** An explicit adapter failure makes a row inert, including its disclosure. */
|
|
12
18
|
unavailableReason?: string
|
|
13
19
|
}
|
|
@@ -35,7 +41,19 @@ export interface PickerRequest {
|
|
|
35
41
|
*/
|
|
36
42
|
refresh?: true
|
|
37
43
|
}
|
|
44
|
+
/** What a search found before a server or walk limit stopped it. */
|
|
45
|
+
export interface PickerSearchResult {
|
|
46
|
+
nodes: PickerNode[]
|
|
47
|
+
truncated: boolean
|
|
48
|
+
}
|
|
38
49
|
export interface PickerAdapter {
|
|
50
|
+
/**
|
|
51
|
+
* `listRoot()` returns mount points. FilePicker then shows them as header
|
|
52
|
+
* sources and opens the first reachable one instead of listing the root.
|
|
53
|
+
*/
|
|
54
|
+
mounts?: boolean
|
|
55
|
+
/** The path of the mount holding `path`, so an initial folder inside a mount can name it. */
|
|
56
|
+
mountOf?(path: string): string | undefined
|
|
39
57
|
/** Discard cached and pending results on close, source changes, or refresh. */
|
|
40
58
|
invalidate?(): void
|
|
41
59
|
listRoot(request?: PickerRequest): Promise<PickerNode[]>
|
|
@@ -44,7 +62,7 @@ export interface PickerAdapter {
|
|
|
44
62
|
query: string,
|
|
45
63
|
scope: { path: string; recursive: boolean },
|
|
46
64
|
request?: PickerRequest,
|
|
47
|
-
): Promise<PickerNode[]>
|
|
65
|
+
): Promise<PickerNode[] | PickerSearchResult>
|
|
48
66
|
}
|
|
49
67
|
export interface PickerCapability {
|
|
50
68
|
/** Case-insensitive suffixes, including compound extensions such as mzML.gz. */
|
|
@@ -44,6 +44,21 @@ export interface PluginJobPathInput {
|
|
|
44
44
|
signal?: AbortSignal
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* An existing file-backed analysis artifact chosen for a `Path` field. Only
|
|
49
|
+
* the database ids reach the plugin; it resolves, re-authorizes, and copies
|
|
50
|
+
* the file into job staging when the job is submitted.
|
|
51
|
+
*/
|
|
52
|
+
export interface PluginJobArtifactPathInput {
|
|
53
|
+
kind: 'artifact-path'
|
|
54
|
+
experimentId: number
|
|
55
|
+
artifactId: number
|
|
56
|
+
name: string
|
|
57
|
+
signal?: AbortSignal
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type PluginJobPathSelection = PluginJobPathInput | PluginJobArtifactPathInput
|
|
61
|
+
|
|
47
62
|
export interface PluginJobPathUpload {
|
|
48
63
|
token: string
|
|
49
64
|
kind: 'file' | 'directory'
|
package/src/types/index.ts
CHANGED
|
@@ -35,8 +35,6 @@ export type {
|
|
|
35
35
|
PillNavItemInput,
|
|
36
36
|
PageSelectorItem,
|
|
37
37
|
PageSelectorItemInput,
|
|
38
|
-
PluginSwitcherPlugin,
|
|
39
|
-
PluginSwitcherInfo,
|
|
40
38
|
AccountMenuItem,
|
|
41
39
|
// Well Plate types
|
|
42
40
|
WellPlateFormat,
|
|
@@ -63,8 +61,7 @@ export type {
|
|
|
63
61
|
ColumnCondition,
|
|
64
62
|
RowCondition,
|
|
65
63
|
Rack,
|
|
66
|
-
|
|
67
|
-
RackSampleDropMapper,
|
|
64
|
+
PlateEditorClearConfirm,
|
|
68
65
|
// Sample Legend types
|
|
69
66
|
SampleType,
|
|
70
67
|
// Plate Map Editor types
|
|
@@ -81,6 +78,7 @@ export type {
|
|
|
81
78
|
// SegmentedControl types
|
|
82
79
|
SegmentedOption,
|
|
83
80
|
SegmentedOptionInput,
|
|
81
|
+
ChartLegendItem,
|
|
84
82
|
SegmentedControlVariant,
|
|
85
83
|
SegmentedControlSize,
|
|
86
84
|
// MultiSelect types
|
|
@@ -108,7 +106,6 @@ export type {
|
|
|
108
106
|
// StatusIndicator types
|
|
109
107
|
StatusType,
|
|
110
108
|
// ProgressBar types
|
|
111
|
-
ProgressVariant,
|
|
112
109
|
ProgressSize,
|
|
113
110
|
// Avatar types
|
|
114
111
|
AvatarSize,
|
|
@@ -147,6 +144,7 @@ export type {
|
|
|
147
144
|
BatchSummary,
|
|
148
145
|
// TimePicker types
|
|
149
146
|
TimePickerFormat,
|
|
147
|
+
TimeSlotDisabledFn,
|
|
150
148
|
TimeRange,
|
|
151
149
|
// Schedule types
|
|
152
150
|
ScheduleView,
|
|
@@ -176,6 +174,8 @@ export type {
|
|
|
176
174
|
// FitPanel types
|
|
177
175
|
FitState,
|
|
178
176
|
FitResultSummary,
|
|
177
|
+
FitSeries,
|
|
178
|
+
FitColumnLabels,
|
|
179
179
|
// ReagentList types
|
|
180
180
|
StorageCondition,
|
|
181
181
|
ReagentColumn,
|
|
@@ -218,9 +218,11 @@ export type {
|
|
|
218
218
|
FileBrowserLocation,
|
|
219
219
|
FileBrowserSortKey,
|
|
220
220
|
FileDirectoryListing,
|
|
221
|
+
FileDirectoryTree,
|
|
221
222
|
FileEntry,
|
|
222
223
|
FileEntryKind,
|
|
223
224
|
FilePathCrumb,
|
|
225
|
+
FileSearchResult,
|
|
224
226
|
FileSelection,
|
|
225
227
|
ServerMount,
|
|
226
228
|
} from './fileBrowserTypes'
|
|
@@ -237,10 +239,14 @@ export type {
|
|
|
237
239
|
|
|
238
240
|
export type {
|
|
239
241
|
InstrumentAlert,
|
|
240
|
-
InstrumentAlertBody,
|
|
241
242
|
InstrumentAlertLevel,
|
|
243
|
+
InstrumentAlertList,
|
|
244
|
+
InstrumentBadgeState,
|
|
245
|
+
InstrumentLiveProgress,
|
|
246
|
+
InstrumentLiveStatus,
|
|
242
247
|
InstrumentState,
|
|
243
248
|
InstrumentStatus,
|
|
249
|
+
InstrumentStatusReporter,
|
|
244
250
|
SampleInfo,
|
|
245
251
|
SampleInfo as InstrumentSampleInfo,
|
|
246
252
|
SequenceProgress,
|
|
@@ -292,11 +298,6 @@ export type {
|
|
|
292
298
|
export type {
|
|
293
299
|
AuthConfig,
|
|
294
300
|
UserInfo,
|
|
295
|
-
LoginResponse,
|
|
296
|
-
TokenVerifyResponse,
|
|
297
|
-
RegisterRequest,
|
|
298
|
-
UpdateProfileRequest,
|
|
299
|
-
CredentialInfo,
|
|
300
301
|
} from './auth'
|
|
301
302
|
|
|
302
303
|
// Platform types
|
package/src/types/instrument.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface SequenceProgress {
|
|
|
22
22
|
sample_durations?: readonly number[]
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/** @deprecated Scheduled for removal in MINT 1.4; instrument monitor types move to the mld-ms plugins. */
|
|
25
26
|
export interface InstrumentStatus {
|
|
26
27
|
instrument_id: string
|
|
27
28
|
instrument_name?: string | null
|
|
@@ -39,24 +40,55 @@ export interface InstrumentStatus {
|
|
|
39
40
|
method_elapsed_pct?: number | null
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
/** A state the platform derives for an instrument: its reported state, `never` (no report yet) or `inactive`. */
|
|
44
|
+
export type InstrumentBadgeState = InstrumentState | 'never' | 'inactive'
|
|
45
|
+
|
|
46
|
+
/** Sequence progress in a live status report; `sample_durations` covers the current sequence only. */
|
|
47
|
+
export type InstrumentLiveProgress = SequenceProgress & {
|
|
48
|
+
elapsed_seconds: number
|
|
49
|
+
sample_durations: number[]
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** The plugin that reported a live status, resolved from the plugin registry at read time. */
|
|
53
|
+
export interface InstrumentStatusReporter {
|
|
54
|
+
name: string
|
|
55
|
+
display_name: string
|
|
56
|
+
route_prefix: string
|
|
57
|
+
serves_instrument_alerts: boolean
|
|
48
58
|
}
|
|
49
59
|
|
|
60
|
+
/** Latest live snapshot the platform holds for one instrument (`InstrumentRecord.live_status`). */
|
|
61
|
+
export interface InstrumentLiveStatus {
|
|
62
|
+
instrument_id: string
|
|
63
|
+
/** `disconnected` once `last_seen` is older than 60 s. */
|
|
64
|
+
state: InstrumentState
|
|
65
|
+
active_method?: string | null
|
|
66
|
+
current_sample?: SampleInfo | null
|
|
67
|
+
sequence_progress?: InstrumentLiveProgress | null
|
|
68
|
+
has_unacknowledged_alerts: boolean
|
|
69
|
+
has_unacknowledged_critical: boolean
|
|
70
|
+
/** Server receive time of the latest report (ISO 8601). */
|
|
71
|
+
last_seen: string
|
|
72
|
+
/** When the state last changed (ISO 8601). */
|
|
73
|
+
state_since: string
|
|
74
|
+
reported_by: string
|
|
75
|
+
/** Null when the reporting plugin is not loaded. */
|
|
76
|
+
reporter: InstrumentStatusReporter | null
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** An alert served by the reporting plugin at `{route_prefix}/api/instruments/{id}/alerts`. */
|
|
50
80
|
export interface InstrumentAlert {
|
|
51
|
-
id
|
|
52
|
-
event_key: string
|
|
81
|
+
id: string
|
|
53
82
|
instrument_id: string
|
|
54
|
-
instrument_name?: string | null
|
|
55
83
|
level: InstrumentAlertLevel
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
84
|
+
message: string
|
|
85
|
+
timestamp: string
|
|
86
|
+
acknowledged: boolean
|
|
87
|
+
acknowledged_by?: string | null
|
|
88
|
+
acknowledged_at?: string | null
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface InstrumentAlertList {
|
|
92
|
+
alerts: InstrumentAlert[]
|
|
93
|
+
total: number
|
|
62
94
|
}
|
package/src/types/platform.ts
CHANGED
|
@@ -4,6 +4,8 @@ import type { RoleInfo } from '../permissions'
|
|
|
4
4
|
export interface PluginInfo {
|
|
5
5
|
id: string
|
|
6
6
|
name: string
|
|
7
|
+
/** Name to show in the UI; the platform falls back to the plugin ID. Absent before MINT 1.3. */
|
|
8
|
+
display_name?: string
|
|
7
9
|
version: string
|
|
8
10
|
plugin_type?: string
|
|
9
11
|
description?: string
|
package/src/utils/color.ts
CHANGED
|
@@ -36,7 +36,22 @@ export const SAMPLE_COLOR_SCALE: readonly string[] = [
|
|
|
36
36
|
]
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Group palette as CSS tokens (3a): groups always take `--mint-sample-1` …
|
|
40
|
+
* `--mint-sample-8`; the 9th (gray) stays out of the group cycle.
|
|
41
|
+
*/
|
|
42
|
+
export const SAMPLE_GROUP_TOKENS: readonly string[] = [
|
|
43
|
+
'var(--mint-sample-1)',
|
|
44
|
+
'var(--mint-sample-2)',
|
|
45
|
+
'var(--mint-sample-3)',
|
|
46
|
+
'var(--mint-sample-4)',
|
|
47
|
+
'var(--mint-sample-5)',
|
|
48
|
+
'var(--mint-sample-6)',
|
|
49
|
+
'var(--mint-sample-7)',
|
|
50
|
+
'var(--mint-sample-8)',
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Slot-position colors (R/G/B/Y rack positions).
|
|
40
55
|
* Mirrors `--mint-slot-r`, `--mint-slot-g`, `--mint-slot-b`, `--mint-slot-y`.
|
|
41
56
|
*/
|
|
42
57
|
export const SLOT_COLORS: Record<SlotPosition, string> = {
|
|
@@ -37,7 +37,7 @@ export function formSchemaFieldNames(schema: FormSchema): string[] {
|
|
|
37
37
|
return sections.flatMap(section => section.fields.map(field => field.name))
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
function valuesEqual(left: unknown, right: unknown): boolean {
|
|
40
|
+
export function valuesEqual(left: unknown, right: unknown): boolean {
|
|
41
41
|
if (Object.is(left, right)) return true
|
|
42
42
|
if (Array.isArray(left) && Array.isArray(right)) {
|
|
43
43
|
return left.length === right.length && left.every((item, index) => valuesEqual(item, right[index]))
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Plotly look (SDK control refresh 9a), resolved from the MINT tokens.
|
|
3
|
+
*
|
|
4
|
+
* Plotly cannot read `var(--…)`, so the tokens are resolved to computed values
|
|
5
|
+
* at call time; call it again after a theme change. PlotlyChart applies it by
|
|
6
|
+
* default. For a raw Plotly chart use `{ template: mintPlotlyTemplate() }`.
|
|
7
|
+
*/
|
|
8
|
+
import type { LayoutAxis, Template } from 'plotly.js-dist-min'
|
|
9
|
+
|
|
10
|
+
import { SAMPLE_COLOR_SCALE, SAMPLE_GROUP_TOKENS } from './color'
|
|
11
|
+
|
|
12
|
+
/** Resolve tokens from `element` (default: `<html>`), falling back to `<html>` for detached elements. */
|
|
13
|
+
export function mintPlotlyTemplate(element?: Element): Template {
|
|
14
|
+
const root = getComputedStyle(document.documentElement)
|
|
15
|
+
const own = element ? getComputedStyle(element) : root
|
|
16
|
+
const token = (name: string): string | undefined =>
|
|
17
|
+
own.getPropertyValue(name).trim() || root.getPropertyValue(name).trim() || undefined
|
|
18
|
+
|
|
19
|
+
const axis: Partial<LayoutAxis> = {
|
|
20
|
+
gridcolor: token('--border-light'),
|
|
21
|
+
linecolor: token('--border-color'),
|
|
22
|
+
zerolinecolor: token('--border-color'),
|
|
23
|
+
tickfont: { family: token('--font-mono'), size: 11, color: token('--text-secondary') },
|
|
24
|
+
}
|
|
25
|
+
const font = { family: token('--font-sans'), size: 12, color: token('--text-primary') }
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
layout: {
|
|
29
|
+
paper_bgcolor: 'rgba(0,0,0,0)',
|
|
30
|
+
plot_bgcolor: 'rgba(0,0,0,0)',
|
|
31
|
+
// Group tokens (`var(--…)` stripped to the property name); the hex scale covers pages without the SDK CSS.
|
|
32
|
+
colorway: SAMPLE_GROUP_TOKENS.map((ref, index) => token(ref.slice(4, -1)) ?? SAMPLE_COLOR_SCALE[index]),
|
|
33
|
+
font,
|
|
34
|
+
xaxis: { ...axis, showline: true },
|
|
35
|
+
yaxis: axis,
|
|
36
|
+
hoverlabel: { bgcolor: token('--bg-card'), bordercolor: token('--border-color'), font },
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
}
|