@morscherlab/mint-sdk 1.0.57 → 1.0.58

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.
@@ -1 +1 @@
1
- {"version":3,"file":"analysisArtifactTypes-Cu40dzSG.js","names":[],"sources":["../src/types/analysisArtifactTypes.ts"],"sourcesContent":["import type { TreeNode } from './componentLabTypes'\nimport type { SummaryData } from './componentWorkflowTypes'\n\n/** Result schema identifier for file-backed analysis artifacts. */\nexport const ANALYSIS_FILE_ARTIFACT_SCHEMA = 'mint.analysis_file.v1'\n\n/** Known artifact lifecycle states; kept open for forward compatibility. */\nexport type AnalysisArtifactStatus = 'active' | 'archived' | (string & {})\n\n/** Status filter vocabulary for artifact lists. */\nexport type AnalysisArtifactStatusFilter = 'active' | 'archived' | 'all'\n\n/** Summary row returned by GET /experiments/{id}/analysis-artifacts. */\nexport interface AnalysisArtifactSummary {\n id: number\n experiment_id: number\n plugin_id: string\n artifact_key: string\n display_name: string\n note?: string | null\n status: AnalysisArtifactStatus\n result_keys: string[]\n created_at?: string | null\n updated_at?: string | null\n archived_at?: string | null\n archived_by?: number | null\n}\n\n/** Full artifact returned by GET /experiments/{id}/analysis-artifacts/{artifactId}. */\nexport interface AnalysisArtifactDetail extends AnalysisArtifactSummary {\n result: Record<string, unknown>\n tree: TreeNode[]\n summary: SummaryData | null\n}\n\n/** Response of GET /experiments/{id}/analysis-artifacts. */\nexport interface AnalysisArtifactListResponse {\n artifacts: AnalysisArtifactSummary[]\n}\n\n/** Body of PATCH /experiments/{id}/analysis-artifacts/{artifactId}. */\nexport interface AnalysisArtifactMetadataUpdate {\n display_name?: string\n /** undefined = keep, string = set, null = clear. */\n note?: string | null\n}\n\n/** How a save payload should be applied by the plugin backend. */\nexport type ArtifactSaveMode = 'create' | 'upsert' | 'update'\n\ninterface ArtifactSavePayloadBase {\n experimentId: number\n artifactKey: string\n}\n\n/**\n * JSON artifact save — handler maps to save_analysis_artifact, which upserts by key.\n * That call only assigns display_name/note when they are provided, and cannot clear\n * either; use the metadata PATCH (useAnalysisArtifacts.updateMetadata) for that.\n */\nexport interface JsonArtifactSavePayload extends ArtifactSavePayloadBase {\n kind: 'json'\n mode: 'create' | 'upsert'\n result: Record<string, unknown>\n displayName?: string\n note?: string\n}\n\n/** File artifact create — handler maps to save_analysis_file_artifact (create-only: a reused key conflicts). */\nexport interface FileArtifactCreatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'create'\n file: File\n /** Maps to the Python `kind=` argument (defaults to \"file\" backend-side). */\n fileKind: string\n filename?: string\n displayName?: string\n note?: string\n contentType?: string\n metadata?: Record<string, unknown>\n}\n\n/**\n * File artifact replacement — handler maps to update_analysis_file_artifact\n * (transactional CAS replace). `kind` and `filename` are immutable backend-side, so\n * `fileKind` echoes the artifact's existing kind and no filename is carried. `note`\n * is three-state: omitted preserves, null clears, a string sets. `metadata` REPLACES\n * the previous result metadata rather than merging, so it always carries the full\n * intended map — omitting it clears whatever was there.\n */\nexport interface FileArtifactUpdatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'update'\n file: File\n fileKind: string\n note?: string | null\n contentType?: string\n metadata?: Record<string, unknown>\n}\n\nexport type ArtifactSavePayload =\n | JsonArtifactSavePayload\n | FileArtifactCreatePayload\n | FileArtifactUpdatePayload\n\n/** Optional handler result; cleanupPending surfaces AnalysisFileArtifactUpdate.cleanup_pending. */\nexport interface ArtifactSaveResult {\n artifact?: AnalysisArtifactSummary\n cleanupPending?: boolean\n}\n\n/**\n * Plugin-supplied save handler. The dialog never writes to the platform;\n * the handler forwards the payload to the plugin backend, which calls\n * save_analysis_artifact / save_analysis_file_artifact / update_analysis_file_artifact.\n */\nexport type ArtifactSaveHandler = (\n payload: ArtifactSavePayload,\n) => Promise<ArtifactSaveResult | void>\n"],"mappings":";;AAIA,IAAa,gCAAgC"}
1
+ {"version":3,"file":"analysisArtifactTypes-Cu40dzSG.js","names":[],"sources":["../src/types/analysisArtifactTypes.ts"],"sourcesContent":["import type { TreeNode } from './componentLabTypes'\nimport type { SummaryData } from './componentWorkflowTypes'\n\n/** Result schema identifier for file-backed analysis artifacts. */\nexport const ANALYSIS_FILE_ARTIFACT_SCHEMA = 'mint.analysis_file.v1'\n\n/** Known artifact lifecycle states; kept open for forward compatibility. */\nexport type AnalysisArtifactStatus = 'active' | 'archived' | (string & {})\n\n/** Status filter vocabulary for artifact lists. */\nexport type AnalysisArtifactStatusFilter = 'active' | 'archived' | 'all'\n\n/** Summary row returned by GET /experiments/{id}/analysis-artifacts. */\nexport interface AnalysisArtifactSummary {\n id: number\n experiment_id: number\n plugin_id: string\n artifact_key: string\n display_name: string\n note?: string | null\n status: AnalysisArtifactStatus\n result_keys: string[]\n created_at?: string | null\n updated_at?: string | null\n archived_at?: string | null\n archived_by?: number | null\n}\n\n/** Full artifact returned by GET /experiments/{id}/analysis-artifacts/{artifactId}. */\nexport interface AnalysisArtifactDetail extends AnalysisArtifactSummary {\n result: Record<string, unknown>\n tree: TreeNode[]\n summary: SummaryData | null\n}\n\n/** Response of GET /experiments/{id}/analysis-artifacts. */\nexport interface AnalysisArtifactListResponse {\n artifacts: AnalysisArtifactSummary[]\n}\n\n/** Body of PATCH /experiments/{id}/analysis-artifacts/{artifactId}. */\nexport interface AnalysisArtifactMetadataUpdate {\n display_name?: string\n /** undefined = keep, string = set, null = clear. */\n note?: string | null\n}\n\n/** How a save payload should be applied by the plugin backend. */\nexport type ArtifactSaveMode = 'create' | 'upsert' | 'update'\n\n/** Where file content comes from when a plugin uses ArtifactSaveDialog. */\nexport type ArtifactFileSource = 'upload' | 'handler'\n\ninterface ArtifactSavePayloadBase {\n experimentId: number\n artifactKey: string\n}\n\n/**\n * JSON artifact save — handler maps to save_analysis_artifact, which upserts by key.\n * That call only assigns display_name/note when they are provided, and cannot clear\n * either; use the metadata PATCH (useAnalysisArtifacts.updateMetadata) for that.\n */\nexport interface JsonArtifactSavePayload extends ArtifactSavePayloadBase {\n kind: 'json'\n mode: 'create' | 'upsert'\n result: Record<string, unknown>\n displayName?: string\n note?: string\n}\n\n/** File artifact create — handler maps to save_analysis_file_artifact (create-only: a reused key conflicts). */\nexport interface FileArtifactCreatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'create'\n file: File\n /** Maps to the Python `kind=` argument (defaults to \"file\" backend-side). */\n fileKind: string\n filename?: string\n displayName?: string\n note?: string\n contentType?: string\n metadata?: Record<string, unknown>\n}\n\n/**\n * File artifact replacement — handler maps to update_analysis_file_artifact\n * (transactional CAS replace). `kind` and `filename` are immutable backend-side, so\n * `fileKind` echoes the artifact's existing kind and no filename is carried. `note`\n * is three-state: omitted preserves, null clears, a string sets. `metadata` REPLACES\n * the previous result metadata rather than merging, so it always carries the full\n * intended map — omitting it clears whatever was there.\n */\nexport interface FileArtifactUpdatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'update'\n file: File\n fileKind: string\n note?: string | null\n contentType?: string\n metadata?: Record<string, unknown>\n}\n\n/**\n * File artifact create where the plugin handler produces the bytes itself.\n * This is intended for server-side serialization of in-memory analysis state;\n * the browser neither fabricates nor uploads a placeholder File.\n */\nexport interface HandlerFileArtifactCreatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'create'\n source: 'handler'\n fileKind: string\n displayName?: string\n note?: string\n metadata?: Record<string, unknown>\n}\n\n/** File artifact replacement where the plugin handler produces the bytes itself. */\nexport interface HandlerFileArtifactUpdatePayload extends ArtifactSavePayloadBase {\n kind: 'file'\n mode: 'update'\n source: 'handler'\n fileKind: string\n note?: string | null\n metadata?: Record<string, unknown>\n}\n\nexport type ArtifactSavePayload =\n | JsonArtifactSavePayload\n | FileArtifactCreatePayload\n | FileArtifactUpdatePayload\n\n/** Payloads accepted when `ArtifactSaveDialog.fileSource` is `handler`. */\nexport type HandlerArtifactSavePayload =\n | JsonArtifactSavePayload\n | HandlerFileArtifactCreatePayload\n | HandlerFileArtifactUpdatePayload\n\n/** Every payload variant the dialog can emit across both file sources. */\nexport type ArtifactSaveDialogPayload =\n | ArtifactSavePayload\n | HandlerFileArtifactCreatePayload\n | HandlerFileArtifactUpdatePayload\n\n/** Optional handler result; cleanupPending surfaces AnalysisFileArtifactUpdate.cleanup_pending. */\nexport interface ArtifactSaveResult {\n artifact?: AnalysisArtifactSummary\n cleanupPending?: boolean\n}\n\n/**\n * Plugin-supplied save handler. The dialog never writes to the platform;\n * the handler forwards the payload to the plugin backend, which calls\n * save_analysis_artifact / save_analysis_file_artifact / update_analysis_file_artifact.\n */\nexport type ArtifactSaveHandler = (\n payload: ArtifactSavePayload,\n) => Promise<ArtifactSaveResult | void>\n\n/** Save handler paired with `ArtifactSaveDialog.fileSource=\"handler\"`. */\nexport type HandlerArtifactSaveHandler = (\n payload: HandlerArtifactSavePayload,\n) => Promise<ArtifactSaveResult | void>\n\n/** Handler accepted by ArtifactSaveDialog; `fileSource` selects the payload family. */\nexport type ArtifactSaveDialogHandler = ArtifactSaveHandler | HandlerArtifactSaveHandler\n"],"mappings":";;AAIA,IAAa,gCAAgC"}
@@ -1,11 +1,13 @@
1
- import { AnalysisArtifactDetail, ArtifactSaveHandler, ArtifactSavePayload, ArtifactSaveResult } from '../types/analysisArtifactTypes';
1
+ import { AnalysisArtifactDetail, ArtifactFileSource, ArtifactSaveDialogHandler, ArtifactSaveDialogPayload, ArtifactSaveResult } from '../types/analysisArtifactTypes';
2
2
  import { ModalSize } from '../types';
3
3
  interface Props {
4
4
  modelValue: boolean;
5
5
  /** Performs the backend write; the dialog never calls the platform itself. */
6
- saveHandler: ArtifactSaveHandler;
6
+ saveHandler: ArtifactSaveDialogHandler;
7
7
  /** Which artifact kinds the form offers. */
8
8
  mode?: 'json' | 'file' | 'both';
9
+ /** Use `handler` when the plugin backend serializes the file content itself. */
10
+ fileSource?: ArtifactFileSource;
9
11
  /** JSON result payload supplied programmatically by the host. */
10
12
  result?: Record<string, unknown>;
11
13
  /** Experiment id override; defaults to platform injection or URL. */
@@ -36,19 +38,20 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
36
38
  "update:modelValue": (value: boolean) => any;
37
39
  cancel: () => any;
38
40
  saved: (result: ArtifactSaveResult & {
39
- payload: ArtifactSavePayload;
41
+ payload: ArtifactSaveDialogPayload;
40
42
  }) => any;
41
43
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
42
44
  onError?: ((message: string) => any) | undefined;
43
45
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
44
46
  onCancel?: (() => any) | undefined;
45
47
  onSaved?: ((result: ArtifactSaveResult & {
46
- payload: ArtifactSavePayload;
48
+ payload: ArtifactSaveDialogPayload;
47
49
  }) => any) | undefined;
48
50
  }>, {
49
51
  size: ModalSize;
50
52
  mode: "json" | "file" | "both";
51
53
  experimentId: number | null;
54
+ fileSource: ArtifactFileSource;
52
55
  existingArtifact: AnalysisArtifactDetail | null;
53
56
  defaultArtifactKey: string;
54
57
  defaultFileKind: string;
@@ -1,4 +1,4 @@
1
- import { $ as AutoGroupModal_default, A as ScientificNumber_default, At as ColorSlider_default, B as BioTemplateRenderer_default, Ct as AppToastContainer_default, Dt as DropdownButton_default, Et as Calendar_default, F as GroupAssigner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as RackEditor_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as BioTemplatePresetWorkspaceView_default, M as SampleHierarchyTree_default, N as ReagentEditor_default, Ot as SegmentedControl_default, P as SmartGroupModal_default, Q as SampleSelector_default, R as BioTemplatePackWorkspaceView_default, S as SequenceProgressBar_default, St as IconButton_default, Tt as DataFrame_default, U as Avatar_default, V as ChartContainer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _t as AppPluginSwitcher_default, a as ResourceCard_default, at as SampleLegend_default, b as InstrumentStateBadge_default, bt as CollapsibleCard_default, c as JobsStatusTray_default, ct as DoseCalculator_default, d as LcmsSequenceTable_default, dt as AppLayout_default, et as SmartGroupManual_default, ft as AppSidebar_default, gt as AppTopBar_default, ht as StepWizard_default, i as ArtifactSelectorModal_default, it as PlateMapEditor_default, j as ProtocolStepEditor_default, k as ChemicalFormula_default, kt as BaseTabs_default, l as BatchProgressList_default, lt as PluginWorkspaceView_default, mt as FormActions_default, n as FitPanel_default, nt as LoadingSpinner_default, o as TimeRangeInput_default, ot as WellPlate_default, pt as FormBuilder_default, q as AppContainer_default, r as ArtifactSaveDialog_default, rt as ReagentList_default, s as ExperimentDataViewer_default, st as ExperimentTimeline_default, tt as SmartGroupFieldRecipe_default, u as AuditTrail_default, ut as MobileSupportGate_default, vt as AppAvatarMenu_default, wt as AlertBox_default, x as InstrumentAlertLog_default, xt as ThemeToggle_default, y as InstrumentStatusCard_default, yt as PluginIcon_default, z as BioTemplateExperimentWorkspaceView_default } from "../components-PC3SVsaa.js";
1
+ import { $ as AutoGroupModal_default, A as ScientificNumber_default, At as ColorSlider_default, B as BioTemplateRenderer_default, Ct as AppToastContainer_default, Dt as DropdownButton_default, Et as Calendar_default, F as GroupAssigner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as RackEditor_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as BioTemplatePresetWorkspaceView_default, M as SampleHierarchyTree_default, N as ReagentEditor_default, Ot as SegmentedControl_default, P as SmartGroupModal_default, Q as SampleSelector_default, R as BioTemplatePackWorkspaceView_default, S as SequenceProgressBar_default, St as IconButton_default, Tt as DataFrame_default, U as Avatar_default, V as ChartContainer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _t as AppPluginSwitcher_default, a as ResourceCard_default, at as SampleLegend_default, b as InstrumentStateBadge_default, bt as CollapsibleCard_default, c as JobsStatusTray_default, ct as DoseCalculator_default, d as LcmsSequenceTable_default, dt as AppLayout_default, et as SmartGroupManual_default, ft as AppSidebar_default, gt as AppTopBar_default, ht as StepWizard_default, i as ArtifactSelectorModal_default, it as PlateMapEditor_default, j as ProtocolStepEditor_default, k as ChemicalFormula_default, kt as BaseTabs_default, l as BatchProgressList_default, lt as PluginWorkspaceView_default, mt as FormActions_default, n as FitPanel_default, nt as LoadingSpinner_default, o as TimeRangeInput_default, ot as WellPlate_default, pt as FormBuilder_default, q as AppContainer_default, r as ArtifactSaveDialog_default, rt as ReagentList_default, s as ExperimentDataViewer_default, st as ExperimentTimeline_default, tt as SmartGroupFieldRecipe_default, u as AuditTrail_default, ut as MobileSupportGate_default, vt as AppAvatarMenu_default, wt as AlertBox_default, x as InstrumentAlertLog_default, xt as ThemeToggle_default, y as InstrumentStatusCard_default, yt as PluginIcon_default, z as BioTemplateExperimentWorkspaceView_default } from "../components-CpnOaPbP.js";
2
2
  import { t as BaseButton_default } from "../BaseButton-Dgqrze41.js";
3
3
  import { r as BaseInput_default, t as BaseSelect_default } from "../BaseSelect-ekgr9fDo.js";
4
4
  import { B as TagsInput_default, L as DateTimePicker_default, M as SequenceInput_default, O as ConcentrationInput_default, P as FormulaInput_default, R as FileUploader_default, V as TimePicker_default, at as MultiSelect_default, ct as BaseSlider_default, dt as BaseCheckbox_default, ft as Tooltip_default, it as DatePicker_default, j as MoleculeInput_default, k as UnitInput_default, lt as BaseRadioGroup_default, pt as BaseTextarea_default, ut as BaseToggle_default, z as NumberInput_default } from "../useControlSchema-BZNdalmL.js";
@@ -17298,7 +17298,7 @@ var ArtifactSelectorModal_default = /* @__PURE__ */ defineComponent({
17298
17298
  //#region src/components/ArtifactSaveDialog.vue?vue&type=script&setup=true&lang.ts
17299
17299
  var _hoisted_1$1 = { class: "mint-artifact-save-dialog" };
17300
17300
  var _hoisted_2$1 = {
17301
- key: 0,
17301
+ key: 1,
17302
17302
  class: "mint-artifact-save-dialog__immutable"
17303
17303
  };
17304
17304
  //#endregion
@@ -17309,6 +17309,7 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17309
17309
  modelValue: { type: Boolean },
17310
17310
  saveHandler: {},
17311
17311
  mode: { default: "file" },
17312
+ fileSource: { default: "upload" },
17312
17313
  result: {},
17313
17314
  experimentId: { default: null },
17314
17315
  existingArtifact: { default: null },
@@ -17367,7 +17368,7 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17367
17368
  watch(() => props.existingArtifact ? `${props.existingArtifact.id}:${props.existingArtifact.artifact_key}` : null, resetForm);
17368
17369
  const resolvedTitle = computed(() => props.title ?? (isUpdate.value ? "Update Analysis Artifact" : "Save Analysis Artifact"));
17369
17370
  const showKindToggle = computed(() => !isUpdate.value && props.mode === "both");
17370
- const showFileInput = computed(() => activeKind.value === "file");
17371
+ const showFileUploader = computed(() => activeKind.value === "file" && props.fileSource === "upload");
17371
17372
  const showNoteField = computed(() => !isUpdate.value || existingIsFile.value);
17372
17373
  const effectiveKey = computed(() => {
17373
17374
  if (isUpdate.value) return props.existingArtifact?.artifact_key ?? "";
@@ -17382,7 +17383,7 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17382
17383
  });
17383
17384
  const canSubmit = computed(() => {
17384
17385
  if (request.loading.value || !keyValid.value || keyBlocked.value) return false;
17385
- if (activeKind.value === "file") return selectedFile.value !== null;
17386
+ if (activeKind.value === "file") return props.fileSource === "handler" || selectedFile.value !== null;
17386
17387
  return props.result !== void 0;
17387
17388
  });
17388
17389
  function resolveExperimentId() {
@@ -17419,10 +17420,19 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17419
17420
  result: props.result
17420
17421
  };
17421
17422
  }
17422
- const file = selectedFile.value;
17423
- if (!file) return null;
17424
17423
  if (isUpdate.value) {
17425
17424
  const metadata = props.metadata ?? existingMetadata.value;
17425
+ if (props.fileSource === "handler") return {
17426
+ kind: "file",
17427
+ source: "handler",
17428
+ mode: "update",
17429
+ ...base,
17430
+ ...updateNotePayload(),
17431
+ fileKind: existingFileKind.value ?? props.defaultFileKind,
17432
+ ...metadata ? { metadata } : {}
17433
+ };
17434
+ const file = selectedFile.value;
17435
+ if (!file) return null;
17426
17436
  return {
17427
17437
  kind: "file",
17428
17438
  mode: "update",
@@ -17435,6 +17445,18 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17435
17445
  };
17436
17446
  }
17437
17447
  const displayName = displayNameInput.value.trim();
17448
+ if (props.fileSource === "handler") return {
17449
+ kind: "file",
17450
+ source: "handler",
17451
+ mode: "create",
17452
+ ...base,
17453
+ ...createNotePayload(),
17454
+ fileKind: props.defaultFileKind,
17455
+ ...displayName ? { displayName } : {},
17456
+ ...props.metadata ? { metadata: props.metadata } : {}
17457
+ };
17458
+ const file = selectedFile.value;
17459
+ if (!file) return null;
17438
17460
  return {
17439
17461
  kind: "file",
17440
17462
  mode: "create",
@@ -17448,6 +17470,14 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17448
17470
  ...file.type ? { contentType: file.type } : {}
17449
17471
  };
17450
17472
  }
17473
+ function runSaveHandler(payload) {
17474
+ if (props.fileSource === "handler") {
17475
+ if (payload.kind === "file" && !("source" in payload)) throw new Error("ArtifactSaveDialog built an upload payload for a handler-owned file.");
17476
+ return props.saveHandler(payload);
17477
+ }
17478
+ if (payload.kind === "file" && "source" in payload) throw new Error("ArtifactSaveDialog built a handler-owned payload for an uploaded file.");
17479
+ return props.saveHandler(payload);
17480
+ }
17451
17481
  function handleFileUpload(files) {
17452
17482
  selectedFile.value = files[0] ?? null;
17453
17483
  }
@@ -17465,7 +17495,7 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17465
17495
  if (!payload) return;
17466
17496
  try {
17467
17497
  emit("saved", {
17468
- ...await request.run(() => props.saveHandler(payload), {
17498
+ ...await request.run(() => runSaveHandler(payload), {
17469
17499
  success: "save",
17470
17500
  errorMessage: "Failed to save analysis artifact."
17471
17501
  }) ?? {},
@@ -17573,14 +17603,15 @@ var ArtifactSaveDialog_default = /* @__PURE__ */ defineComponent({
17573
17603
  }, null, 8, ["modelValue"])]),
17574
17604
  _: 1
17575
17605
  })) : createCommentVNode("", true),
17576
- showFileInput.value ? (openBlock(), createElementBlock(Fragment, { key: 4 }, [createVNode(FileUploader_default, {
17606
+ activeKind.value === "file" ? (openBlock(), createElementBlock(Fragment, { key: 4 }, [showFileUploader.value ? (openBlock(), createBlock(FileUploader_default, {
17607
+ key: 0,
17577
17608
  class: "mint-artifact-save-dialog__file",
17578
17609
  accept: __props.accept,
17579
17610
  "max-size": __props.maxFileSize,
17580
17611
  multiple: false,
17581
17612
  onUpload: handleFileUpload,
17582
17613
  onError: handleFileError
17583
- }, null, 8, ["accept", "max-size"]), isUpdate.value && existingFilename.value ? (openBlock(), createElementBlock("p", _hoisted_2$1, [
17614
+ }, null, 8, ["accept", "max-size"])) : createCommentVNode("", true), isUpdate.value && existingFilename.value ? (openBlock(), createElementBlock("p", _hoisted_2$1, [
17584
17615
  _cache[6] || (_cache[6] = createTextVNode(" Replaces the content of ", -1)),
17585
17616
  createElementVNode("code", null, toDisplayString(existingFilename.value), 1),
17586
17617
  _cache[7] || (_cache[7] = createTextVNode(" (kind ", -1)),
@@ -17816,4 +17847,4 @@ var components_exports = /* @__PURE__ */ __exportAll({
17816
17847
  //#endregion
17817
17848
  export { AutoGroupModal_default as $, ScientificNumber_default as A, ColorSlider_default as At, BioTemplateRenderer_default as B, estimateSequenceFinishDate as C, AppToastContainer_default as Ct, sequenceProgressPercent as D, DropdownButton_default as Dt, formatSequenceRemaining as E, Calendar_default as Et, GroupAssigner_default as F, StatusIndicator_default as G, Breadcrumb_default as H, RackEditor_default as I, DoseDesignWorkspaceView_default as J, Divider_default as K, BioTemplatePresetWorkspaceView_default as L, SampleHierarchyTree_default as M, ReagentEditor_default as N, sequenceSamplesRemaining as O, SegmentedControl_default as Ot, SmartGroupModal_default as P, SampleSelector_default as Q, BioTemplatePackWorkspaceView_default as R, SequenceProgressBar_default as S, IconButton_default as St, formatSequenceEta as T, DataFrame_default as Tt, Avatar_default as U, ChartContainer_default as V, ProgressBar_default as W, ComponentBindingRenderer_default as X, ControlWorkspaceView_default as Y, ScheduleCalendar_default as Z, lcmsWellIdFromPosition as _, AppPluginSwitcher_default as _t, ResourceCard_default as a, SampleLegend_default as at, InstrumentStateBadge_default as b, CollapsibleCard_default as bt, JobsStatusTray_default as c, DoseCalculator_default as ct, LcmsSequenceTable_default as d, AppLayout_default as dt, SmartGroupManual_default as et, DEFAULT_LCMS_SEQUENCE_COLUMNS as f, AppSidebar_default as ft, inferLcmsPlateTypeFromWellIds as g, AppTopBar_default as gt, extractLcmsSampleName as h, StepWizard_default as ht, ArtifactSelectorModal_default as i, PlateMapEditor_default as it, ProtocolStepEditor_default as j, ChemicalFormula_default as k, BaseTabs_default as kt, BatchProgressList_default as l, PluginWorkspaceView_default as lt, extractLcmsCommonPrefix as m, FormActions_default as mt, FitPanel_default as n, LoadingSpinner_default as nt, TimeRangeInput_default as o, WellPlate_default as ot, basenameFromWindowsPath as p, FormBuilder_default as pt, AppContainer_default as q, ArtifactSaveDialog_default as r, ReagentList_default as rt, ExperimentDataViewer_default as s, ExperimentTimeline_default as st, components_exports as t, SmartGroupFieldRecipe_default as tt, AuditTrail_default as u, MobileSupportGate_default as ut, reconstructLcmsPlateCellsFromSequenceItems as v, AppAvatarMenu_default as vt, estimateSequenceRemainingSeconds as w, AlertBox_default as wt, InstrumentAlertLog_default as x, ThemeToggle_default as xt, InstrumentStatusCard_default as y, PluginIcon_default as yt, BioTemplateExperimentWorkspaceView_default as z };
17818
17849
 
17819
- //# sourceMappingURL=components-PC3SVsaa.js.map
17850
+ //# sourceMappingURL=components-CpnOaPbP.js.map