@morscherlab/mint-sdk 1.4.0-beta.1 → 1.4.0-beta.11
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/dist/{ActionMenu-CScINahU.js → AlertBox-B2Bgr3ei.js} +40 -209
- package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
- package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-mvm--GxN.js} +161 -110
- package/dist/AppSidebar-mvm--GxN.js.map +1 -0
- package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-nbJj51is.js} +2 -2
- package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-nbJj51is.js.map} +1 -1
- package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
- package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
- package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-65peG4Up.js} +198 -181
- package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
- package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-BtnnjWzs.js} +2 -2
- package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-BtnnjWzs.js.map} +1 -1
- package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-DO3IZ7qz.js} +9 -9
- package/dist/SettingsModal-DO3IZ7qz.js.map +1 -0
- package/dist/__tests__/styles/v2AuditRules.test.d.ts +1 -0
- package/dist/components/AppSidebar.vue.d.ts +1 -1
- package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
- package/dist/components/AuditTrail.vue.d.ts +1 -1
- package/dist/components/BaseSelect.vue.d.ts +2 -2
- package/dist/components/ChartContainer.vue.d.ts +2 -0
- package/dist/components/DatePicker.vue.d.ts +1 -1
- package/dist/components/ExperimentPopover.vue.d.ts +18 -0
- package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
- package/dist/components/FilePicker.vue.d.ts +1 -1
- package/dist/components/FileUploader.vue.d.ts +2 -2
- package/dist/components/PluginIcon.vue.d.ts +2 -2
- package/dist/components/SampleSelector.vue.d.ts +6 -6
- package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
- package/dist/components/StepWizard.vue.d.ts +3 -0
- package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
- package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
- package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
- package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
- package/dist/composables/createClient.d.ts +2 -0
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/pluginIdentity.d.ts +24 -0
- package/dist/composables/pluginWorkspaceModel.d.ts +2 -2
- package/dist/composables/useAppExperiment.d.ts +8 -0
- package/dist/composables/useCalendarGrid.d.ts +1 -1
- package/dist/composables/useExperimentSelector.d.ts +6 -2
- package/dist/composables/usePlatform.d.ts +1 -0
- package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
- package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
- package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
- package/dist/data-CgILxDLW.js.map +1 -0
- package/dist/data.js +8 -8
- package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
- package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
- package/dist/index.js +19 -19
- package/dist/{install-DAID6c2-.js → install-mB8-IyvO.js} +15 -14
- package/dist/{install-DAID6c2-.js.map → install-mB8-IyvO.js.map} +1 -1
- package/dist/install.js +1 -1
- package/dist/{lab-DLwRl_Ql.js → lab-D5bIX426.js} +128 -147
- package/dist/lab-D5bIX426.js.map +1 -0
- package/dist/lab.js +4 -3
- package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
- package/dist/records-B6gpM_3e.js.map +1 -0
- package/dist/{runtime-D6gVat6r.js → runtime-D7vKpfbF.js} +27 -31
- package/dist/runtime-D7vKpfbF.js.map +1 -0
- package/dist/runtime.js +6 -6
- package/dist/{shell-5ju97nOS.js → shell-CywENwBT.js} +5 -5
- package/dist/{shell-5ju97nOS.js.map → shell-CywENwBT.js.map} +1 -1
- package/dist/shell.js +5 -5
- package/dist/styles.css +1644 -1688
- package/dist/types/componentWorkflowTypes.d.ts +2 -0
- package/dist/types/generated/platformContext.d.ts +1 -0
- package/dist/types/generated-ui.d.ts +4 -0
- package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
- package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
- package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
- package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
- package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
- package/dist/useListReorder-BitdUhxn.js.map +1 -0
- package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-Q8xO-cCy.js} +72 -58
- package/dist/useRackEditor-Q8xO-cCy.js.map +1 -0
- package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
- package/dist/useRealtime-C3iy9QkU.js.map +1 -0
- package/dist/useRequest-D506eHi8.js +244 -0
- package/dist/useRequest-D506eHi8.js.map +1 -0
- package/dist/utils/time.d.ts +7 -0
- package/package.json +1 -1
- package/src/__tests__/components/AppTopBar.test.ts +51 -2
- package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
- package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
- package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
- package/src/__tests__/components/BaseSelect.test.ts +2 -1
- package/src/__tests__/components/BatchProgressList.test.ts +16 -0
- package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
- package/src/__tests__/components/ChartContainer.test.ts +11 -0
- package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
- package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
- package/src/__tests__/components/DatePicker.test.ts +21 -0
- package/src/__tests__/components/DatePicker.time.test.ts +2 -2
- package/src/__tests__/components/EmptyState.test.ts +1 -1
- package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
- package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
- package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
- package/src/__tests__/components/PluginWorkspaceView.test.ts +7 -0
- package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
- package/src/__tests__/components/SampleSelector.test.ts +13 -8
- package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
- package/src/__tests__/components/StepWizard.test.ts +11 -0
- package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
- package/src/__tests__/components/deprecationTags.test.ts +1 -1
- package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
- package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
- package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
- package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
- package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
- package/src/__tests__/styles/cssTokens.test.ts +2 -2
- package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
- package/src/__tests__/styles/v2AuditRules.test.ts +96 -0
- package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
- package/src/__tests__/utils/time.test.ts +18 -1
- package/src/components/AdductText.story.vue +7 -0
- package/src/components/AdductText.vue +1 -1
- package/src/components/AlertBox.story.vue +2 -2
- package/src/components/AlertBox.vue +18 -16
- package/src/components/AppSidebar.story.vue +0 -28
- package/src/components/AppTopBar.story.vue +47 -12
- package/src/components/AppTopBar.vue +118 -114
- package/src/components/ArtifactSaveDialog.story.vue +23 -0
- package/src/components/ArtifactSaveDialog.vue +102 -12
- package/src/components/AuditTrail.story.vue +2 -1
- package/src/components/AuditTrail.vue +2 -21
- package/src/components/Avatar.vue +10 -14
- package/src/components/BaseSelect.multiple.story.vue +13 -2
- package/src/components/BaseSelect.vue +4 -3
- package/src/components/BatchProgressList.vue +35 -25
- package/src/components/ChartContainer.story.vue +2 -1
- package/src/components/ChartContainer.vue +8 -6
- package/src/components/ConfirmDialog.story.vue +1 -1
- package/src/components/EmptyState.vue +1 -1
- package/src/components/ExperimentPopover.story.vue +165 -53
- package/src/components/ExperimentPopover.vue +169 -187
- package/src/components/ExperimentSelectorModal.story.vue +40 -36
- package/src/components/ExperimentSelectorModal.vue +124 -110
- package/src/components/FormField.story.vue +8 -48
- package/src/components/GeneratedPluginView.vue +7 -1
- package/src/components/GeneratedResultRenderer.vue +3 -4
- package/src/components/InstrumentStateBadge.vue +1 -1
- package/src/components/JobsStatusTray.vue +1 -1
- package/src/components/LoadingSpinner.vue +1 -1
- package/src/components/NumberInput.vue +3 -6
- package/src/components/PluginIcon.story.vue +2 -10
- package/src/components/PluginIcon.vue +2 -2
- package/src/components/PluginWorkspaceView.story.vue +1 -1
- package/src/components/RuntimeUpdateNotice.vue +1 -1
- package/src/components/SampleSelector.story.vue +1 -1
- package/src/components/SampleSelector.vue +27 -37
- package/src/components/SampleSelectorGroupNode.vue +1 -1
- package/src/components/SectionCard.story.vue +2 -2
- package/src/components/SequenceProgressBar.story.vue +9 -0
- package/src/components/SequenceProgressBar.vue +6 -1
- package/src/components/SettingsModal.schema.ts +1 -1
- package/src/components/SettingsModal.vue +2 -2
- package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
- package/src/components/SmartGroupManual.story.vue +1 -1
- package/src/components/StepWizard.story.vue +33 -0
- package/src/components/StepWizard.vue +8 -1
- package/src/components/WellPlate.story.vue +3 -1
- package/src/components/WellPlate.vue +7 -0
- package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
- package/src/components/internal/DatePickerDateInternal.vue +16 -40
- package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
- package/src/components/internal/DatePickerTimeInternal.vue +5 -8
- package/src/components/internal/ResourcePickerListInternal.vue +45 -85
- package/src/components/internal/SelectMultipleInternal.vue +182 -65
- package/src/components/internal/SelectSearchableInternal.vue +2 -3
- package/src/composables/createClient.ts +2 -0
- package/src/composables/index.ts +1 -0
- package/src/composables/pluginIdentity.ts +31 -0
- package/src/composables/pluginWorkspaceModel.ts +2 -2
- package/src/composables/useAppExperiment.ts +20 -0
- package/src/composables/useCalendarGrid.ts +4 -3
- package/src/composables/useExperimentSelector.ts +77 -31
- package/src/composables/usePluginWorkspace.ts +1 -1
- package/src/styles/components/adduct-text.css +13 -5
- package/src/styles/components/alert-box.css +39 -58
- package/src/styles/components/app-layout.css +7 -5
- package/src/styles/components/app-page-selector.css +3 -1
- package/src/styles/components/app-pill-nav.css +11 -12
- package/src/styles/components/app-sidebar.css +9 -18
- package/src/styles/components/app-top-bar.css +57 -55
- package/src/styles/components/artifact-save-dialog.css +153 -2
- package/src/styles/components/audit-trail.css +16 -19
- package/src/styles/components/avatar.css +6 -4
- package/src/styles/components/batch-progress-list.css +38 -36
- package/src/styles/components/button.css +28 -59
- package/src/styles/components/calendar.css +12 -12
- package/src/styles/components/chart-container.css +34 -23
- package/src/styles/components/checkbox.css +2 -12
- package/src/styles/components/collapsible-card.css +27 -29
- package/src/styles/components/confirm-dialog.css +13 -14
- package/src/styles/components/dataframe.css +13 -5
- package/src/styles/components/date-picker.css +80 -92
- package/src/styles/components/datetime-picker.css +31 -43
- package/src/styles/components/divider.css +20 -20
- package/src/styles/components/dose-calculator.css +3 -3
- package/src/styles/components/empty-state.css +20 -17
- package/src/styles/components/experiment-code-badge.css +2 -0
- package/src/styles/components/experiment-popover.css +174 -329
- package/src/styles/components/experiment-selector-modal.css +75 -56
- package/src/styles/components/file-picker.css +3 -3
- package/src/styles/components/file-uploader.css +38 -49
- package/src/styles/components/form-builder.css +3 -3
- package/src/styles/components/formula-input.css +1 -1
- package/src/styles/components/icon-button.css +18 -24
- package/src/styles/components/input.css +5 -4
- package/src/styles/components/instrument-monitor.css +13 -15
- package/src/styles/components/jobs-status-tray.css +31 -25
- package/src/styles/components/modal.css +4 -6
- package/src/styles/components/molecule-input.css +2 -2
- package/src/styles/components/multi-select.css +65 -117
- package/src/styles/components/number-input.css +26 -19
- package/src/styles/components/pill.css +3 -2
- package/src/styles/components/plate-editor.css +0 -1
- package/src/styles/components/plugin-icon.css +26 -23
- package/src/styles/components/popover.css +2 -2
- package/src/styles/components/presence-avatars.css +1 -1
- package/src/styles/components/progress-bar.css +3 -3
- package/src/styles/components/protocol-step-editor.css +1 -3
- package/src/styles/components/resource-card.css +2 -2
- package/src/styles/components/resource-picker-list.css +6 -57
- package/src/styles/components/sample-hierarchy-tree.css +4 -4
- package/src/styles/components/sample-selector.css +95 -79
- package/src/styles/components/schedule-calendar.css +8 -8
- package/src/styles/components/searchable-select.css +12 -12
- package/src/styles/components/section-card.css +30 -47
- package/src/styles/components/segmented-control.css +18 -15
- package/src/styles/components/select.css +3 -3
- package/src/styles/components/sequence-input.css +2 -2
- package/src/styles/components/sequence-progress-bar.css +17 -8
- package/src/styles/components/settings-modal.css +7 -2
- package/src/styles/components/smart-group.css +18 -18
- package/src/styles/components/step-wizard.css +52 -16
- package/src/styles/components/tabs.css +2 -2
- package/src/styles/components/textarea.css +3 -3
- package/src/styles/components/time-picker.css +36 -21
- package/src/styles/components/toast.css +12 -10
- package/src/styles/components/toggle.css +1 -11
- package/src/styles/components/tooltip.css +10 -9
- package/src/styles/components/unit-input.css +8 -7
- package/src/styles/components/well-plate.css +9 -2
- package/src/styles/variables.css +118 -77
- package/src/types/componentWorkflowTypes.ts +2 -0
- package/src/types/generated/platformContext.ts +1 -0
- package/src/types/generated-ui.ts +4 -0
- package/src/utils/time.ts +21 -0
- package/dist/ActionMenu-CScINahU.js.map +0 -1
- package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
- package/dist/BaseModal-DfRIuVoj.js.map +0 -1
- package/dist/ExperimentPopover-C4sGw-is.js +0 -359
- package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
- package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
- package/dist/SettingsModal-CSLE31yg.js.map +0 -1
- package/dist/data-C2PwI_dn.js.map +0 -1
- package/dist/lab-DLwRl_Ql.js.map +0 -1
- package/dist/records-BzTcxekG.js.map +0 -1
- package/dist/runtime-D6gVat6r.js.map +0 -1
- package/dist/useListReorder-CcbEYxX-.js.map +0 -1
- package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
- package/dist/useRealtime-PalKue84.js.map +0 -1
- package/dist/useRequest-D5JDfsgZ.js +0 -76
- package/dist/useRequest-D5JDfsgZ.js.map +0 -1
|
@@ -27,8 +27,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
|
|
|
27
27
|
title: string;
|
|
28
28
|
view: PickerView;
|
|
29
29
|
selectionMode: PickerSelectionMode;
|
|
30
|
-
sources: PickerSource[];
|
|
31
30
|
capabilities: PickerCapabilities;
|
|
31
|
+
sources: PickerSource[];
|
|
32
32
|
initialPath: string;
|
|
33
33
|
initialSelection: PickerSelection | null;
|
|
34
34
|
defaultSort: PickerSort;
|
|
@@ -17,12 +17,12 @@ type __VLS_Slots = {} & {
|
|
|
17
17
|
};
|
|
18
18
|
declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
19
19
|
error: (message: string) => any;
|
|
20
|
-
upload: (files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any;
|
|
21
20
|
remove: (files: File[]) => any;
|
|
21
|
+
upload: (files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any;
|
|
22
22
|
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
23
23
|
onError?: ((message: string) => any) | undefined;
|
|
24
|
-
onUpload?: ((files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any) | undefined;
|
|
25
24
|
onRemove?: ((files: File[]) => any) | undefined;
|
|
25
|
+
onUpload?: ((files: File[], rootName?: string | undefined, relativePaths?: string[] | undefined) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
27
|
disabled: boolean;
|
|
28
28
|
multiple: boolean;
|
|
@@ -3,9 +3,9 @@ interface Props {
|
|
|
3
3
|
icon?: string;
|
|
4
4
|
size?: 'sm' | 'md' | 'topbar' | 'lg';
|
|
5
5
|
variant?: 'solid' | 'tinted';
|
|
6
|
-
/**
|
|
6
|
+
/** @deprecated v2 design: the tile is always the neutral accent-soft tile, so the tone has no visible effect. Removed in 1.5. */
|
|
7
7
|
tone?: Tone;
|
|
8
|
-
/**
|
|
8
|
+
/** @deprecated v2 design: the tile is always the neutral accent-soft tile, so the color has no visible effect. Removed in 1.5. */
|
|
9
9
|
color?: string;
|
|
10
10
|
}
|
|
11
11
|
declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
@@ -20,15 +20,15 @@ interface Props {
|
|
|
20
20
|
emptyText?: string;
|
|
21
21
|
}
|
|
22
22
|
declare function handleSmartGroupApply(result: AutoGroupResult): void;
|
|
23
|
-
declare var
|
|
23
|
+
declare var __VLS_16: {
|
|
24
24
|
error: string;
|
|
25
|
-
},
|
|
25
|
+
}, __VLS_23: {}, __VLS_30: {};
|
|
26
26
|
type __VLS_Slots = {} & {
|
|
27
|
-
error?: (props: typeof
|
|
27
|
+
error?: (props: typeof __VLS_16) => any;
|
|
28
28
|
} & {
|
|
29
|
-
loading?: (props: typeof
|
|
29
|
+
loading?: (props: typeof __VLS_23) => any;
|
|
30
30
|
} & {
|
|
31
|
-
empty?: (props: typeof
|
|
31
|
+
empty?: (props: typeof __VLS_30) => any;
|
|
32
32
|
};
|
|
33
33
|
declare const __VLS_base: import('vue').DefineComponent<Props, {
|
|
34
34
|
handleSmartGroupApply: typeof handleSmartGroupApply;
|
|
@@ -44,10 +44,10 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {
|
|
|
44
44
|
error: string | null;
|
|
45
45
|
loading: boolean;
|
|
46
46
|
experimentId: number;
|
|
47
|
-
groups: SampleGroup[];
|
|
48
47
|
emptyText: string;
|
|
49
48
|
designData: Record<string, unknown>;
|
|
50
49
|
samples: string[];
|
|
50
|
+
groups: SampleGroup[];
|
|
51
51
|
enableGrouping: boolean;
|
|
52
52
|
enableSmartGroup: boolean;
|
|
53
53
|
autoloadExperimentData: boolean;
|
|
@@ -5,9 +5,12 @@ interface Props {
|
|
|
5
5
|
label?: string;
|
|
6
6
|
showEta?: boolean;
|
|
7
7
|
showRemaining?: boolean;
|
|
8
|
+
/** Failed injections so far; shown as "N failed" in the head when above 0. */
|
|
9
|
+
failed?: number;
|
|
8
10
|
}
|
|
9
11
|
declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
10
12
|
label: string;
|
|
13
|
+
failed: number;
|
|
11
14
|
compact: boolean;
|
|
12
15
|
showEta: boolean;
|
|
13
16
|
showRemaining: boolean;
|
|
@@ -6,6 +6,8 @@ export interface Props {
|
|
|
6
6
|
showProgress?: boolean;
|
|
7
7
|
showStepNumbers?: boolean;
|
|
8
8
|
size?: 'sm' | 'md' | 'lg';
|
|
9
|
+
/** `vertical` stacks the steps in a rail beside the step content. */
|
|
10
|
+
orientation?: 'horizontal' | 'vertical';
|
|
9
11
|
}
|
|
10
12
|
declare function setStepValid(index: number, valid: boolean): void;
|
|
11
13
|
declare function goNext(): void;
|
|
@@ -50,6 +52,7 @@ declare const __VLS_base: import('vue').DefineComponent<Props, {
|
|
|
50
52
|
}>, {
|
|
51
53
|
size: "sm" | "md" | "lg";
|
|
52
54
|
modelValue: number;
|
|
55
|
+
orientation: "horizontal" | "vertical";
|
|
53
56
|
linear: boolean;
|
|
54
57
|
showProgress: boolean;
|
|
55
58
|
showStepNumbers: boolean;
|
|
@@ -18,9 +18,9 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
|
|
|
18
18
|
onApply?: ((result: AutoGroupResult) => any) | undefined;
|
|
19
19
|
}>, {
|
|
20
20
|
experimentId: number;
|
|
21
|
-
groups: SampleGroup[];
|
|
22
21
|
designData: Record<string, unknown>;
|
|
23
22
|
samples: string[];
|
|
23
|
+
groups: SampleGroup[];
|
|
24
24
|
initialMode: GroupingWorkflow;
|
|
25
25
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
26
26
|
declare const _default: typeof __VLS_export;
|
|
@@ -23,8 +23,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
|
|
|
23
23
|
placeholder: string;
|
|
24
24
|
invalid: boolean;
|
|
25
25
|
step: number;
|
|
26
|
-
clearable: boolean;
|
|
27
26
|
format: "12h" | "24h";
|
|
27
|
+
clearable: boolean;
|
|
28
28
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
29
29
|
declare const _default: typeof __VLS_export;
|
|
30
30
|
export default _default;
|
|
@@ -16,11 +16,6 @@ export interface ResourcePickerRow {
|
|
|
16
16
|
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
17
17
|
props: import('vue').PublicProps & __VLS_PrettifyLocal<{
|
|
18
18
|
items: T[];
|
|
19
|
-
/** When set, rows render under collapsible group headers in this order. */
|
|
20
|
-
groups?: {
|
|
21
|
-
label: string;
|
|
22
|
-
items: T[];
|
|
23
|
-
}[] | null;
|
|
24
19
|
itemKey: (item: T) => string | number;
|
|
25
20
|
describe: (item: T) => ResourcePickerRow;
|
|
26
21
|
selectedKey?: string | number | null;
|
|
@@ -32,6 +27,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
|
|
|
32
27
|
error?: string | null;
|
|
33
28
|
emptyTitle?: string;
|
|
34
29
|
emptyDescription?: string;
|
|
30
|
+
/** Focus the search field when the list mounts (the modal's focus trap honours `autofocus`). */
|
|
31
|
+
autofocusSearch?: boolean;
|
|
35
32
|
} & {
|
|
36
33
|
onSelect?: ((item: T) => any) | undefined;
|
|
37
34
|
"onUpdate:search"?: ((value: string) => any) | undefined;
|
|
@@ -45,8 +42,6 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
|
|
|
45
42
|
slots: {
|
|
46
43
|
/** Extra filters on the search row. */
|
|
47
44
|
filters?: () => unknown;
|
|
48
|
-
/** A second filter row under the search. */
|
|
49
|
-
advanced?: () => unknown;
|
|
50
45
|
/** Row controls before the check; keys pressed inside them never select the row. */
|
|
51
46
|
actions?: (props: {
|
|
52
47
|
item: T;
|
|
@@ -7,6 +7,8 @@ interface Props {
|
|
|
7
7
|
invalid?: boolean;
|
|
8
8
|
max?: number;
|
|
9
9
|
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
ariaLabelledby?: string;
|
|
11
|
+
ariaDescribedby?: string;
|
|
10
12
|
}
|
|
11
13
|
declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
12
14
|
"update:modelValue": (value: OptionPrimitive[]) => any;
|
|
@@ -18,6 +20,8 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
|
|
|
18
20
|
size: "sm" | "md" | "lg";
|
|
19
21
|
placeholder: string;
|
|
20
22
|
invalid: boolean;
|
|
23
|
+
ariaDescribedby: string;
|
|
24
|
+
ariaLabelledby: string;
|
|
21
25
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
22
26
|
declare const _default: typeof __VLS_export;
|
|
23
27
|
export default _default;
|
|
@@ -3,6 +3,7 @@ export { useToast } from './useToast';
|
|
|
3
3
|
export { usePlatform } from './usePlatform';
|
|
4
4
|
export { useExperiment, type ExperimentLoadStatus, type UseExperimentReturn } from './useExperiment';
|
|
5
5
|
export { resolvePluginFrontendBase } from './pluginFrontendBase';
|
|
6
|
+
export { providePluginIdentity, type PluginIdentityContract } from './pluginIdentity';
|
|
6
7
|
export { useRequest, type RequestKind, type RequestOperation, type RequestRunOptions, type UseRequestReturn, } from './useRequest';
|
|
7
8
|
export { downloadBlob, type DownloadBlobOptions } from './createClient';
|
|
8
9
|
export { defineControlModel, type ControlDefinition, type ControlComponentBinding, type ControlComponentBindingConfig, type ControlComponentBindingRecordConfig, type ControlComponentBindingsById, type ControlComponentBindingsConfig, type ControlComponentPropSource, type ControlComponentPropsByIdMap, type ControlComponentPropsMap, type ControlInput, type ControlModel, type ControlModelBinding, type ControlModelSectionConfig, type ControlModelViewConfig, type ControlOption, type ControlOptionValue, type ControlPrimitive, type ControlSchema, type ControlSchemaOptions, type ControlShorthand, type ControlWorkspaceOptions, type ControlFormActions, type ControlSectionConfig, type ControlSidebarConfig, type ControlViewConfig, } from './useControlSchema';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PluginContract } from './createClient';
|
|
2
|
+
/** The `plugin` block of the generated contract (`./generated/mint-plugin`) that `providePluginIdentity` reads. */
|
|
3
|
+
export interface PluginIdentityContract {
|
|
4
|
+
plugin: Pick<PluginContract['plugin'], 'name' | 'displayName' | 'subtitle' | 'description' | 'icon'>;
|
|
5
|
+
}
|
|
6
|
+
/** The seeded identity AppTopBar shows in standalone mode. Internal: not exported from the package. */
|
|
7
|
+
export declare const pluginIdentity: {
|
|
8
|
+
readonly name?: string | undefined;
|
|
9
|
+
readonly subtitle?: string | undefined;
|
|
10
|
+
readonly icon?: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Seed the standalone AppTopBar with the plugin name, subtitle and icon. In integrated
|
|
14
|
+
* mode the platform supplies them. Explicit `title`/`subtitle` props and the `#icon` slot still win.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { providePluginIdentity } from '@morscherlab/mint-sdk'
|
|
19
|
+
* import { contract } from './generated/mint-plugin'
|
|
20
|
+
*
|
|
21
|
+
* providePluginIdentity(contract)
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function providePluginIdentity(contract: PluginIdentityContract): void;
|
|
@@ -42,8 +42,8 @@ export interface PluginWorkspaceShellModel {
|
|
|
42
42
|
sidebarCloseLabel: string;
|
|
43
43
|
/** Whether AppLayout should render a `#sidebar` template at all. */
|
|
44
44
|
hasSidebarSurface: boolean;
|
|
45
|
-
/**
|
|
46
|
-
title
|
|
45
|
+
/** Top bar title. Unset, the top bar shows the plugin identity (`providePluginIdentity` or the platform). */
|
|
46
|
+
title?: string;
|
|
47
47
|
/** Secondary copy shown under the title. */
|
|
48
48
|
subtitle?: string;
|
|
49
49
|
/** AppTopBar spec with the workspace defaults applied and the generated pills filled in; `false` removes the top bar. */
|
|
@@ -10,11 +10,18 @@ export interface UseAppExperimentOptions {
|
|
|
10
10
|
onDetach?: () => void;
|
|
11
11
|
saveDisabled?: Ref<boolean> | ComputedRef<boolean>;
|
|
12
12
|
saveDisabledMessage?: string | Ref<string | undefined> | ComputedRef<string | undefined>;
|
|
13
|
+
/** Unsaved changes; marks the Save button with a dot. */
|
|
14
|
+
dirty?: Ref<boolean> | ComputedRef<boolean>;
|
|
13
15
|
}
|
|
14
16
|
export interface AppExperimentPopoverBinding {
|
|
15
17
|
experimentName?: string;
|
|
16
18
|
experimentCode?: string;
|
|
17
19
|
experimentStatus?: ExperimentStatus;
|
|
20
|
+
experimentId?: number | null;
|
|
21
|
+
experimentProject?: string;
|
|
22
|
+
experimentOwner?: string;
|
|
23
|
+
/** ISO timestamp of the experiment's last update. */
|
|
24
|
+
experimentUpdatedAt?: string;
|
|
18
25
|
/** An experiment is bound but its record has not arrived yet. */
|
|
19
26
|
isResolving: boolean;
|
|
20
27
|
/** Resolution failed; the binding is kept so the user can retry or detach. */
|
|
@@ -25,6 +32,7 @@ export interface AppExperimentPopoverBinding {
|
|
|
25
32
|
saveDisabledMessage?: string;
|
|
26
33
|
saveLoading: boolean;
|
|
27
34
|
saveSuccessMessage?: string;
|
|
35
|
+
dirty?: boolean;
|
|
28
36
|
}
|
|
29
37
|
export interface AppExperimentSelectorModalBinding {
|
|
30
38
|
open: boolean;
|
|
@@ -22,5 +22,5 @@ export interface UseCalendarGridReturn {
|
|
|
22
22
|
prevMonth: () => void;
|
|
23
23
|
nextMonth: () => void;
|
|
24
24
|
}
|
|
25
|
-
/** Shared calendar grid state for date and datetime pickers. */
|
|
25
|
+
/** Shared Monday-first calendar grid state for date and datetime pickers. */
|
|
26
26
|
export declare function useCalendarGrid(options?: UseCalendarGridOptions): UseCalendarGridReturn;
|
|
@@ -6,6 +6,8 @@ export interface UseExperimentSelectorOptions {
|
|
|
6
6
|
apiBaseUrl?: string;
|
|
7
7
|
limit?: number;
|
|
8
8
|
immediate?: boolean;
|
|
9
|
+
/** Keep `statusCounts` in step with the non-status filters (one stats request per change). */
|
|
10
|
+
withStatusCounts?: boolean;
|
|
9
11
|
}
|
|
10
12
|
export interface UseExperimentSelectorReturn {
|
|
11
13
|
/** Current page of fetched experiment rows. */
|
|
@@ -32,8 +34,8 @@ export interface UseExperimentSelectorReturn {
|
|
|
32
34
|
experimentTypes: Ref<ExperimentTypeOption[]>;
|
|
33
35
|
/** Available project options for filter UI. */
|
|
34
36
|
projects: Ref<SelectOption<string>[]>;
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
+
/** Experiment count per status under every filter except status itself. */
|
|
38
|
+
statusCounts: Ref<Record<string, number>>;
|
|
37
39
|
/** Fetch the current page with the current filters. */
|
|
38
40
|
fetch: () => Promise<void>;
|
|
39
41
|
/** Fetch and append the next page when available. */
|
|
@@ -46,6 +48,8 @@ export interface UseExperimentSelectorReturn {
|
|
|
46
48
|
clear: () => void;
|
|
47
49
|
/** Fetch experiment type and project filter options. */
|
|
48
50
|
fetchFilterOptions: () => Promise<void>;
|
|
51
|
+
/** Fetch `statusCounts` from `GET /experiments/stats`. */
|
|
52
|
+
fetchStatusCounts: () => Promise<void>;
|
|
49
53
|
}
|
|
50
54
|
/** Fetches a paginated, filtered experiment list from the platform API for picker and selector UIs. */
|
|
51
55
|
export declare function useExperimentSelector(options?: UseExperimentSelectorOptions): UseExperimentSelectorReturn;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as normalizeControlDefinition, p as omitUndefined } from "./useListReorder-
|
|
1
|
+
import { c as normalizeControlDefinition, p as omitUndefined } from "./useListReorder-BitdUhxn.js";
|
|
2
2
|
//#region src/composables/controlSchemaModel.ts
|
|
3
3
|
function isControlModelBinding(model) {
|
|
4
4
|
return typeof model === "object" && model !== null && "controls" in model && "controlOptions" in model;
|
|
@@ -92,4 +92,4 @@ function registerSectionOptions(target, sectionId, options) {
|
|
|
92
92
|
//#endregion
|
|
93
93
|
export { isControlModelBinding as n, defineControlModel as t };
|
|
94
94
|
|
|
95
|
-
//# sourceMappingURL=controlSchemaModel-
|
|
95
|
+
//# sourceMappingURL=controlSchemaModel-B8CTXagP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlSchemaModel-
|
|
1
|
+
{"version":3,"file":"controlSchemaModel-B8CTXagP.js","names":[],"sources":["../src/composables/controlSchemaModel.ts"],"sourcesContent":["import type {\n ControlModel,\n ControlModelBinding,\n ControlModelSectionConfig,\n ControlSchema,\n ControlSectionConfig,\n ControlSidebarConfig,\n ControlViewConfig,\n ControlWorkspaceOptions,\n} from './controlSchemaTypes'\nimport {\n normalizeControlDefinition,\n} from './controlSchemaNormalize'\nimport {\n omitUndefined,\n} from './controlSchemaUtils'\n\nexport function isControlModelBinding<TBinding extends ControlModelBinding = ControlModelBinding>(\n model: unknown,\n): model is TBinding {\n return (\n typeof model === 'object'\n && model !== null\n && 'controls' in model\n && 'controlOptions' in model\n )\n}\n\nexport function resolveControlModel(\n model: ControlModel | ControlModelBinding | undefined,\n): ControlModelBinding | undefined {\n if (model === undefined) return undefined\n return isControlModelBinding(model) ? model : defineControlModel(model)\n}\n\n/**\n * Create a complete control model binding for FormBuilder, SettingsModal and the PluginWorkspaceView sidebar from a simple controls data model.\n *\n * @example Recommended\n * ```ts\n * const workspaceModel = defineControlModel({\n * controls: { threshold: { type: 'number', default: 0.05 } },\n * })\n * ```\n */\nexport function defineControlModel(model: ControlModel): ControlModelBinding {\n const {\n controls: rootControls,\n sections: rootSections,\n views: modelViews,\n components,\n componentBindings,\n componentProps,\n componentPropsById,\n ...baseOptions\n } = model\n const resolvedComponentBindings = componentBindings ?? components\n const controls: ControlSchema = {}\n const views: Record<string, ControlViewConfig> = {}\n const sections: Record<string, ControlSectionConfig> = {}\n\n const defaultViewId = model.view ?? 'default'\n const defaultSectionId = model.section ?? 'controls'\n\n if (rootControls) {\n registerSectionOptions(sections, defaultSectionId, {\n id: defaultSectionId,\n label: model.sectionLabel,\n title: model.sectionLabel,\n columns: model.columns,\n })\n appendModelControls(controls, rootControls, defaultViewId, defaultSectionId)\n }\n\n for (const [sectionId, section] of Object.entries(rootSections ?? {})) {\n registerSectionOptions(sections, sectionId, controlModelSectionOptions(section))\n appendModelControls(controls, section.controls, defaultViewId, sectionId, section.sidebar)\n }\n\n for (const [viewId, view] of Object.entries(modelViews ?? {})) {\n const {\n controls: viewControls,\n sections: viewSections,\n section,\n sectionLabel,\n sectionDescription,\n ...viewConfig\n } = view\n\n views[viewId] = omitUndefined(viewConfig)\n\n if (viewControls) {\n const sectionId = section ?? `${viewId}-controls`\n const label = sectionLabel ?? view.label\n registerSectionOptions(sections, sectionId, {\n id: sectionId,\n label,\n title: label,\n description: sectionDescription,\n columns: model.columns,\n })\n appendModelControls(controls, viewControls, viewId, sectionId)\n }\n\n for (const [sectionKey, sectionConfig] of Object.entries(viewSections ?? {})) {\n const sectionId = sectionConfig.id ?? `${viewId}-${sectionKey}`\n registerSectionOptions(sections, sectionId, controlModelSectionOptions(sectionConfig))\n appendModelControls(controls, sectionConfig.controls, viewId, sectionId, sectionConfig.sidebar)\n }\n }\n\n const controlOptions: ControlWorkspaceOptions = {\n ...baseOptions,\n }\n\n if (Object.keys(views).length > 0) {\n controlOptions.views = views\n }\n\n if (Object.keys(sections).length > 0) {\n controlOptions.sections = sections\n }\n\n return {\n controls,\n controlOptions,\n ...(resolvedComponentBindings === undefined ? {} : { componentBindings: resolvedComponentBindings }),\n ...(componentProps === undefined ? {} : { componentProps }),\n ...(componentPropsById === undefined ? {} : { componentPropsById }),\n }\n}\n\nfunction appendModelControls(\n target: ControlSchema,\n source: ControlSchema,\n viewId: string,\n sectionId: string,\n sidebar?: boolean | ControlSidebarConfig,\n): void {\n for (const [name, input] of Object.entries(source)) {\n if (Object.prototype.hasOwnProperty.call(target, name)) {\n throw new Error(\n `Duplicate control \"${name}\" in defineControlModel(). Control names must be unique across views and sections.`,\n )\n }\n\n const definition = normalizeControlDefinition(input)\n target[name] = omitUndefined({\n ...definition,\n view: definition.view ?? viewId,\n section: definition.section ?? sectionId,\n sidebar: definition.sidebar ?? sidebar,\n })\n }\n}\n\nfunction controlModelSectionOptions(section: ControlModelSectionConfig): ControlSectionConfig {\n const { controls: _controls, sidebar: _sidebar, ...options } = section\n return omitUndefined(options)\n}\n\nfunction registerSectionOptions(\n target: Record<string, ControlSectionConfig>,\n sectionId: string,\n options: ControlSectionConfig,\n): void {\n target[sectionId] = omitUndefined({\n ...(target[sectionId] ?? {}),\n ...options,\n id: sectionId,\n })\n}\n"],"mappings":"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"}
|