@morscherlab/mint-sdk 1.2.0-beta.15 → 1.2.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +30 -0
  2. package/dist/{ExperimentPopover-BIZKoRTT.js → ExperimentPopover-CJdNlCZb.js} +3 -3
  3. package/dist/{ExperimentPopover-BIZKoRTT.js.map → ExperimentPopover-CJdNlCZb.js.map} +1 -1
  4. package/dist/{ExperimentSelectorModal-BeEOomw_.js → ExperimentSelectorModal-CZ1f_K9I.js} +5 -5
  5. package/dist/{ExperimentSelectorModal-BeEOomw_.js.map → ExperimentSelectorModal-CZ1f_K9I.js.map} +1 -1
  6. package/dist/{SettingsModal-Dphh3RrI.js → SettingsModal-DQUcpT4T.js} +5 -5
  7. package/dist/{SettingsModal-Dphh3RrI.js.map → SettingsModal-DQUcpT4T.js.map} +1 -1
  8. package/dist/{Skeleton-DxtwJ5gt.js → Skeleton-JaDtC8-9.js} +3 -3
  9. package/dist/{Skeleton-DxtwJ5gt.js.map → Skeleton-JaDtC8-9.js.map} +1 -1
  10. package/dist/__tests__/apiErrors.test.d.ts +1 -0
  11. package/dist/__tests__/components/PlotlyChart.test.d.ts +1 -0
  12. package/dist/apiErrors.d.ts +26 -0
  13. package/dist/components/BaseInput.vue.d.ts +1 -1
  14. package/dist/components/BaseSelect.vue.d.ts +1 -1
  15. package/dist/components/BaseTextarea.vue.d.ts +1 -1
  16. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  17. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +2 -2
  18. package/dist/components/ConcentrationInput.vue.d.ts +1 -1
  19. package/dist/components/DatePicker.vue.d.ts +1 -1
  20. package/dist/components/DateTimePicker.vue.d.ts +1 -1
  21. package/dist/components/FileBrowserModal.vue.d.ts +1 -1
  22. package/dist/components/FilePicker.vue.d.ts +3 -3
  23. package/dist/components/FileUploader.vue.d.ts +5 -2
  24. package/dist/components/FormulaInput.vue.d.ts +1 -1
  25. package/dist/components/GeneratedPlotlyResult.vue.d.ts +1 -3
  26. package/dist/components/MobileSupportGate.vue.d.ts +1 -1
  27. package/dist/components/MoleculeInput.vue.d.ts +1 -1
  28. package/dist/components/NumberInput.vue.d.ts +1 -1
  29. package/dist/components/PlotlyChart.vue.d.ts +59 -0
  30. package/dist/components/ResourceCard.vue.d.ts +1 -1
  31. package/dist/components/SecretInput.vue.d.ts +1 -1
  32. package/dist/components/SequenceInput.vue.d.ts +1 -1
  33. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  34. package/dist/components/TagsInput.vue.d.ts +1 -1
  35. package/dist/components/TimePicker.vue.d.ts +1 -1
  36. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  37. package/dist/components/UnitInput.vue.d.ts +1 -1
  38. package/dist/components/WellPlate.vue.d.ts +1 -1
  39. package/dist/components/index.d.ts +1 -0
  40. package/dist/components/index.js +8 -8
  41. package/dist/{components-6IIxCSI8.js → components-DT6ggNrt.js} +580 -366
  42. package/dist/components-DT6ggNrt.js.map +1 -0
  43. package/dist/composables/filePicker/localFiles.d.ts +1 -1
  44. package/dist/composables/filePicker/usePickerNavigation.d.ts +4 -3
  45. package/dist/composables/index.js +9 -9
  46. package/dist/composables/useApi.d.ts +2 -0
  47. package/dist/composables/useFilePicker.d.ts +5 -6
  48. package/dist/{composables-hY2Q2xPI.js → composables-DmF_8iyX.js} +13 -10
  49. package/dist/{composables-hY2Q2xPI.js.map → composables-DmF_8iyX.js.map} +1 -1
  50. package/dist/{errors-_W0-LbA6.js → errors-DZDb1cIb.js} +66 -5
  51. package/dist/errors-DZDb1cIb.js.map +1 -0
  52. package/dist/{experiment-Cwl9AYxw.js → experiment-CHm_TwJy.js} +2 -2
  53. package/dist/{experiment-Cwl9AYxw.js.map → experiment-CHm_TwJy.js.map} +1 -1
  54. package/dist/{experiment-utils-DV3DrvE_.js → experiment-utils-CV2Wza3z.js} +1 -1
  55. package/dist/{experiment-utils-DV3DrvE_.js.map → experiment-utils-CV2Wza3z.js.map} +1 -1
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.js +15 -15
  58. package/dist/install.js +2 -2
  59. package/dist/stores/index.js +2 -2
  60. package/dist/styles.css +29 -18
  61. package/dist/templates/index.js +2 -2
  62. package/dist/{templates-Qq113pyZ.js → templates-CXARYr6_.js} +2 -2
  63. package/dist/{templates-Qq113pyZ.js.map → templates-CXARYr6_.js.map} +1 -1
  64. package/dist/types/filePicker.d.ts +9 -1
  65. package/dist/{useControlSchema-aMZlb4Sc.js → useControlSchema-BAzmP1_y.js} +42 -37
  66. package/dist/useControlSchema-BAzmP1_y.js.map +1 -0
  67. package/dist/{useDropdownState-DitCtrTT.js → useDropdownState-C7hRiVQf.js} +2 -2
  68. package/dist/{useDropdownState-DitCtrTT.js.map → useDropdownState-C7hRiVQf.js.map} +1 -1
  69. package/dist/{useExperimentSelector-I8HC8hUu.js → useExperimentSelector-D_vobhnW.js} +4 -4
  70. package/dist/{useExperimentSelector-I8HC8hUu.js.map → useExperimentSelector-D_vobhnW.js.map} +1 -1
  71. package/dist/{useFormBuilder-TCxNnqeb.js → useFormBuilder-DEHejpiL.js} +2 -2
  72. package/dist/{useFormBuilder-TCxNnqeb.js.map → useFormBuilder-DEHejpiL.js.map} +1 -1
  73. package/dist/{validation-nBbSn1TI.js → validation-OuEr0iAS.js} +9 -8
  74. package/dist/{validation-nBbSn1TI.js.map → validation-OuEr0iAS.js.map} +1 -1
  75. package/package.json +1 -1
  76. package/src/__tests__/apiErrors.test.ts +81 -0
  77. package/src/__tests__/components/FilePicker.state.test.ts +128 -1
  78. package/src/__tests__/components/FilePicker.test.ts +146 -1
  79. package/src/__tests__/components/GeneratedPlotlyResult.test.ts +52 -5
  80. package/src/__tests__/components/PlotlyChart.test.ts +305 -0
  81. package/src/__tests__/components/SegmentedControl.test.ts +19 -0
  82. package/src/__tests__/composables/useApi.test.ts +82 -9
  83. package/src/__tests__/composables/useGeneratedAnalysis.test.ts +7 -2
  84. package/src/__tests__/composables/usePluginClient.test.ts +3 -0
  85. package/src/apiErrors.ts +85 -0
  86. package/src/components/FilePicker.story.vue +44 -0
  87. package/src/components/FilePicker.vue +23 -40
  88. package/src/components/FileUploader.vue +32 -14
  89. package/src/components/GeneratedPlotlyResult.vue +34 -69
  90. package/src/components/GeneratedResultRenderer.vue +0 -5
  91. package/src/components/PlotlyChart.story.vue +61 -0
  92. package/src/components/PlotlyChart.vue +233 -0
  93. package/src/components/SegmentedControl.vue +2 -2
  94. package/src/components/index.ts +1 -0
  95. package/src/composables/filePicker/localFiles.ts +6 -3
  96. package/src/composables/filePicker/usePickerNavigation.ts +29 -8
  97. package/src/composables/filePicker/usePickerSelection.ts +17 -4
  98. package/src/composables/filePicker/validation.ts +1 -0
  99. package/src/composables/useApi.ts +33 -4
  100. package/src/composables/useFilePicker.ts +41 -22
  101. package/src/composables/useGeneratedAnalysis.ts +10 -17
  102. package/src/composables/usePluginClient.ts +3 -0
  103. package/src/index.ts +3 -0
  104. package/src/styles/components/file-picker.css +6 -5
  105. package/src/types/filePicker.ts +9 -2
  106. package/dist/components-6IIxCSI8.js.map +0 -1
  107. package/dist/errors-_W0-LbA6.js.map +0 -1
  108. package/dist/useControlSchema-aMZlb4Sc.js.map +0 -1
@@ -1,3 +1,3 @@
1
1
  import { PickerAdapter } from '../../types/filePicker';
2
2
  /** Construct metadata only: no FileReader, arrayBuffer or upload. */
3
- export declare function localFilesAdapter(files: File[]): PickerAdapter;
3
+ export declare function localFilesAdapter(files: File[], relativePaths?: (string | undefined)[]): PickerAdapter;
@@ -1,5 +1,5 @@
1
1
  import { PickerAdapter, PickerNode, PickerRequest, PickerTreeRow } from '../../types/filePicker';
2
- export declare function usePickerNavigation(adapter: () => PickerAdapter, request: () => PickerRequest): {
2
+ export declare function usePickerNavigation(adapter: () => PickerAdapter, request: () => PickerRequest, systemFilter?: (node: PickerNode) => boolean): {
3
3
  path: import('vue').ShallowRef<string, string>;
4
4
  trail: import('vue').Ref<{
5
5
  path: string;
@@ -84,11 +84,12 @@ export declare function usePickerNavigation(adapter: () => PickerAdapter, reques
84
84
  loading: import('vue').ShallowRef<boolean, boolean>;
85
85
  error: import('vue').ShallowRef<string, string>;
86
86
  rows: import('vue').ComputedRef<PickerTreeRow[]>;
87
+ isAllowed: (node: PickerNode) => boolean;
87
88
  clear: () => void;
88
89
  invalidate: () => void;
89
90
  register: (items: PickerNode[], parent?: string) => void;
90
- loadChildren: (folder: string, ancestors?: string[]) => Promise<PickerNode[]>;
91
- load: (query?: string, recursive?: boolean) => Promise<void>;
91
+ loadChildren: (folder: string, ancestors?: string[], refresh?: boolean) => Promise<PickerNode[]>;
92
+ load: (query?: string, recursive?: boolean, refresh?: boolean) => Promise<void>;
92
93
  expand: (node: PickerNode) => Promise<void>;
93
94
  enter: (node: PickerNode) => void;
94
95
  up: (target?: string) => void;
@@ -1,11 +1,11 @@
1
- import { a as SORT_OPTIONS, c as formatExperimentDate, d as resolveExperimentCode, i as EXPERIMENT_STATUS_VARIANT_MAP, l as formatExperimentStatus, m as useEventListener, n as EXPERIMENT_STATUS_LABELS, o as datePresetToISO, p as useFocusTrap, r as EXPERIMENT_STATUS_OPTIONS, s as experimentIdFromRoute, t as DATE_PRESET_OPTIONS, u as getExperimentStatusVariant } from "../experiment-utils-DV3DrvE_.js";
2
- import { n as useRequestSyncState } from "../Skeleton-DxtwJ5gt.js";
3
- import { A as useConcentrationUnits, At as formatTimeSlot, C as controlsToViewIds, Ct as addMinutes, D as getTypeDefault, Dt as findNearestTimeSlotIndex, E as getFieldRegistryEntry, Et as findAvailableSlots, F as ATOMIC_WEIGHTS, Ft as rangesOverlap, G as createGeneratedAnalysisTransport, Ht as useSelectionLimit, I as useChemicalFormula, It as snapToSlot, K as useGeneratedAnalysis, Lt as toMinutes, Mt as generateTimeSlots, N as useSequenceUtils, Nt as isTimeInRange, Ot as formatDuration, Pt as parseTime, Rt as useTimeUtils, S as controlsToTopBarSettingsConfig, T as getDefaultControlView, Tt as durationMinutes, Vt as useListSelection, W as resolveCurrentPluginId, _ as controlsToFormSchema, a as defineDoseCalculatorControlProps, b as controlsToSettingsSchema, c as defineWellPlateDoseComponentBindings, d as defineControlModel, h as controlValuesToComponentProps, i as useControlSchema, jt as fromMinutes, kt as formatTime, l as defineWellPlateDoseControlProps, m as controlValuesToComponentBindingsById, n as defineControls, o as defineDoseDesignControlModel, p as controlValuesToComponentBindings, q as usePluginJobs, r as getControlDefaults, s as defineWellPlateControlProps, t as defineControlComponentBindings, u as useControlWorkspace, v as controlsToSectionFormSchema, w as controlsToViewItems, wt as compareTime, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas, z as useAnalysisArtifacts } from "../useControlSchema-aMZlb4Sc.js";
4
- import { $ as getInjectedFrontendRevision, A as useFileImport, B as REORDER_ANNOUNCER_STYLE, C as useExpansionSet, D as detectDelimiter, F as extractSampleNamesFromDesignData, G as combinePluginJobSources, H as useListReorder, I as extractSampleOptionsFromDesignData, J as usePluginWorkspace, K as useJobsStatusTray, L as unwrapExperimentDesignData, M as extractSamplesFromDesignData, N as useAutoGroup, O as parseDelimitedText, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, U as useReorderAnnouncer, V as reorderList, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, _ as useBioTemplateControls, a as DEFAULT_PRESETS, at as candidateMatchesSearch, b as useScheduleDrag, c as useReagentSeries, ct as compareSortValues, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, g as useBioTemplateComponents, h as toBioTemplateComponentPropsByComponent, i as useProtocolTemplates, it as useToast, j as validateImportFile, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, m as getBioTemplateComponentProps, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, ot as normalizeSearchQuery, p as useBioTemplateWorkspace, q as usePluginJobCenter, rt as useTheme, s as generateDilutionSeries, st as useTextSearch, tt as getPresenceClientId, u as useRackEditor, ut as useMenuKeyboard, v as useTemplateCollection, w as useSampleGroups, x as useExperimentSamples, y as useExperimentSave, z as useWellPlateEditor } from "../validation-nBbSn1TI.js";
5
- import { i as useApi, n as AuthenticationRequiredError } from "../errors-_W0-LbA6.js";
6
- import { i as usePlatformContext, n as evaluateCondition, r as useForm, t as useFormBuilder } from "../useFormBuilder-TCxNnqeb.js";
1
+ import { i as useApi, n as AuthenticationRequiredError } from "../errors-DZDb1cIb.js";
2
+ import { a as SORT_OPTIONS, c as formatExperimentDate, d as resolveExperimentCode, i as EXPERIMENT_STATUS_VARIANT_MAP, l as formatExperimentStatus, m as useEventListener, n as EXPERIMENT_STATUS_LABELS, o as datePresetToISO, p as useFocusTrap, r as EXPERIMENT_STATUS_OPTIONS, s as experimentIdFromRoute, t as DATE_PRESET_OPTIONS, u as getExperimentStatusVariant } from "../experiment-utils-CV2Wza3z.js";
3
+ import { n as useRequestSyncState } from "../Skeleton-JaDtC8-9.js";
4
+ import { A as useConcentrationUnits, At as formatTimeSlot, C as controlsToViewIds, Ct as addMinutes, D as getTypeDefault, Dt as findNearestTimeSlotIndex, E as getFieldRegistryEntry, Et as findAvailableSlots, F as ATOMIC_WEIGHTS, Ft as rangesOverlap, G as createGeneratedAnalysisTransport, Ht as useSelectionLimit, I as useChemicalFormula, It as snapToSlot, K as useGeneratedAnalysis, Lt as toMinutes, Mt as generateTimeSlots, N as useSequenceUtils, Nt as isTimeInRange, Ot as formatDuration, Pt as parseTime, Rt as useTimeUtils, S as controlsToTopBarSettingsConfig, T as getDefaultControlView, Tt as durationMinutes, Vt as useListSelection, W as resolveCurrentPluginId, _ as controlsToFormSchema, a as defineDoseCalculatorControlProps, b as controlsToSettingsSchema, c as defineWellPlateDoseComponentBindings, d as defineControlModel, h as controlValuesToComponentProps, i as useControlSchema, jt as fromMinutes, kt as formatTime, l as defineWellPlateDoseControlProps, m as controlValuesToComponentBindingsById, n as defineControls, o as defineDoseDesignControlModel, p as controlValuesToComponentBindings, q as usePluginJobs, r as getControlDefaults, s as defineWellPlateControlProps, t as defineControlComponentBindings, u as useControlWorkspace, v as controlsToSectionFormSchema, w as controlsToViewItems, wt as compareTime, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas, z as useAnalysisArtifacts } from "../useControlSchema-BAzmP1_y.js";
5
+ import { $ as getInjectedFrontendRevision, A as useFileImport, B as REORDER_ANNOUNCER_STYLE, C as useExpansionSet, D as detectDelimiter, F as extractSampleNamesFromDesignData, G as combinePluginJobSources, H as useListReorder, I as extractSampleOptionsFromDesignData, J as usePluginWorkspace, K as useJobsStatusTray, L as unwrapExperimentDesignData, M as extractSamplesFromDesignData, N as useAutoGroup, O as parseDelimitedText, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, U as useReorderAnnouncer, V as reorderList, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, _ as useBioTemplateControls, a as DEFAULT_PRESETS, at as candidateMatchesSearch, b as useScheduleDrag, c as useReagentSeries, ct as compareSortValues, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, g as useBioTemplateComponents, h as toBioTemplateComponentPropsByComponent, i as useProtocolTemplates, it as useToast, j as validateImportFile, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, m as getBioTemplateComponentProps, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, ot as normalizeSearchQuery, p as useBioTemplateWorkspace, q as usePluginJobCenter, rt as useTheme, s as generateDilutionSeries, st as useTextSearch, tt as getPresenceClientId, u as useRackEditor, ut as useMenuKeyboard, v as useTemplateCollection, w as useSampleGroups, x as useExperimentSamples, y as useExperimentSave, z as useWellPlateEditor } from "../validation-OuEr0iAS.js";
6
+ import { i as usePlatformContext, n as evaluateCondition, r as useForm, t as useFormBuilder } from "../useFormBuilder-DEHejpiL.js";
7
7
  import { t as ANALYSIS_FILE_ARTIFACT_SCHEMA } from "../analysisArtifactTypes-DQ0MjwHZ.js";
8
- import { B as toBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, P as getBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, l as requireBioTemplateControlSchema, o as getBioTemplateControlSchema } from "../templates-Qq113pyZ.js";
9
- import { n as useDebouncedWatch, t as useExperimentSelector } from "../useExperimentSelector-I8HC8hUu.js";
10
- import { A as buildAnalysisArtifactTargetQuery, C as useWellPainting, D as useResourceCrud, E as createPluginResourceClient, F as useAsyncBatch, I as resolvePluginFrontendBase, L as usePasskey, M as useFileBrowser, N as usePluginConfig, O as useOptimisticMutation, P as useAsync, R as useAuth, S as coordinateToWellId, T as wellIdsInRectangle, _ as useWellPlateValidation, a as downloadBlob, b as createWellPlateWells, c as pluginFormDataFromPayload, d as usePluginClient, f as usePluginEventStream, g as runWellPlateValidation, h as resolvePluginBaseUrl, i as createPluginClient, j as parseAnalysisArtifactTarget, k as useCommandHistory, l as uploadPluginEndpoint, m as buildPluginEndpointUrl, n as encodePlatformPickerPath, o as downloadPluginEndpoint, p as usePluginSettings, r as usePlatformFilePickerAdapter, s as getPluginPageSelectorItems, t as decodePlatformPickerPath, u as useCurrentExperiment, v as createColumnConditions, w as wellIdToCoordinate, x as useWellPlateAdapter, y as createRowConditions } from "../composables-hY2Q2xPI.js";
8
+ import { B as toBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, P as getBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, l as requireBioTemplateControlSchema, o as getBioTemplateControlSchema } from "../templates-CXARYr6_.js";
9
+ import { n as useDebouncedWatch, t as useExperimentSelector } from "../useExperimentSelector-D_vobhnW.js";
10
+ import { A as buildAnalysisArtifactTargetQuery, C as useWellPainting, D as useResourceCrud, E as createPluginResourceClient, F as useAsyncBatch, I as resolvePluginFrontendBase, L as usePasskey, M as useFileBrowser, N as usePluginConfig, O as useOptimisticMutation, P as useAsync, R as useAuth, S as coordinateToWellId, T as wellIdsInRectangle, _ as useWellPlateValidation, a as downloadBlob, b as createWellPlateWells, c as pluginFormDataFromPayload, d as usePluginClient, f as usePluginEventStream, g as runWellPlateValidation, h as resolvePluginBaseUrl, i as createPluginClient, j as parseAnalysisArtifactTarget, k as useCommandHistory, l as uploadPluginEndpoint, m as buildPluginEndpointUrl, n as encodePlatformPickerPath, o as downloadPluginEndpoint, p as usePluginSettings, r as usePlatformFilePickerAdapter, s as getPluginPageSelectorItems, t as decodePlatformPickerPath, u as useCurrentExperiment, v as createColumnConditions, w as wellIdToCoordinate, x as useWellPlateAdapter, y as createRowConditions } from "../composables-DmF_8iyX.js";
11
11
  export { ANALYSIS_FILE_ARTIFACT_SCHEMA, APP_EXPERIMENT_KEY, ATOMIC_WEIGHTS, AuthenticationRequiredError, DATE_PRESET_OPTIONS, DEFAULT_COLORS, DEFAULT_MOBILE_VIEWPORT_QUERY, DEFAULT_PRESETS, DEFAULT_UNITS, EXPERIMENT_STATUS_LABELS, EXPERIMENT_STATUS_OPTIONS, EXPERIMENT_STATUS_VARIANT_MAP, REORDER_ANNOUNCER_STYLE, SORT_OPTIONS, addMinutes, buildAnalysisArtifactTargetQuery, buildPluginEndpointUrl, candidateMatchesSearch, combinePluginJobSources, compareSortValues, compareTime, controlValuesToComponentBindings, controlValuesToComponentBindingsById, controlValuesToComponentProps, controlsToFormSchema, controlsToSectionFormSchema, controlsToSectionFormSchemas, controlsToSettingsSchema, controlsToSidebarPanels, controlsToTopBarSettingsConfig, controlsToViewIds, controlsToViewItems, coordinateToWellId, createColumnConditions, createGeneratedAnalysisTransport, createPluginClient, createPluginResourceClient, createRowConditions, createWellPlateWells, datePresetToISO, decodePlatformPickerPath, defineControlComponentBindings, defineControlModel, defineControls, defineDoseCalculatorControlProps, defineDoseDesignControlModel, defineWellPlateControlProps, defineWellPlateDoseComponentBindings, defineWellPlateDoseControlProps, detectDelimiter, downloadBlob, downloadPluginEndpoint, durationMinutes, encodePlatformPickerPath, evaluateCondition, experimentIdFromRoute, extractSampleNamesFromDesignData, extractSampleOptionsFromDesignData, extractSamplesFromDesignData, findAvailableSlots, findNearestTimeSlotIndex, formatDuration, formatExperimentDate, formatExperimentStatus, formatTime, formatTimeSlot, fromMinutes, generateDilutionSeries, generateTimeSlots, getBioTemplateComponentBindings, getBioTemplateComponentProps, getBioTemplateControlSchema, getControlDefaults, getDefaultControlView, getExperimentStatusVariant, getFieldRegistryEntry, getInjectedFrontendRevision, getPluginPageSelectorItems, getPresenceClientId, getTypeDefault, isTimeInRange, normalizeSearchQuery, parseAnalysisArtifactTarget, parseDelimitedText, parseTime, pluginFormDataFromPayload, rangesOverlap, readFileAsText, reorderList, requireBioTemplateControlSchema, resolveCurrentPluginId, resolveExperimentCode, resolvePluginBaseUrl, resolvePluginFrontendBase, runWellPlateValidation, snapToSlot, toBioTemplateComponentBindings, toBioTemplateComponentBindingsById, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, toMinutes, unwrapExperimentDesignData, uploadPluginEndpoint, useAnalysisArtifacts, useApi, useAppExperiment, useAsync, useAsyncBatch, useAuth, useAutoGroup, useBioTemplateComponents, useBioTemplateControls, useBioTemplatePackWorkspace, useBioTemplatePresetWorkspace, useBioTemplateWorkspace, useChemicalFormula, useCommandHistory, useConcentrationUnits, useControlSchema, useControlWorkspace, useCurrentExperiment, useDebouncedWatch, useDoseCalculator, useEventListener, useExpansionSet, useExperimentData, useExperimentSamples, useExperimentSave, useExperimentSelector, useFileBrowser, useFileImport, useFocusTrap, useForm, useFormBuilder, useGeneratedAnalysis, useGroupAssignment, useJobsStatusTray, useListReorder, useListSelection, useMenuKeyboard, useMobileSupportGate, useOptimisticMutation, usePasskey, usePlatformContext, usePlatformFilePickerAdapter, usePluginClient, usePluginConfig, usePluginEventStream, usePluginJobCenter, usePluginJobs, usePluginSettings, usePluginWorkspace, usePresenceHeartbeat, useProtocolTemplates, useRackEditor, useReagentSeries, useReorderAnnouncer, useRequestSyncState, useResourceCrud, useRovingFocus, useRuntimeAlignment, useSampleGroups, useScheduleDrag, useSelectionLimit, useSequenceUtils, useSortedItems, useTemplateCollection, useTextSearch, useTheme, useTimeUtils, useToast, useWellPainting, useWellPlateAdapter, useWellPlateEditor, useWellPlateValidation, validateImportFile, wellIdToCoordinate, wellIdsInRectangle };
@@ -12,6 +12,8 @@ export interface ApiClientOptions {
12
12
  baseUrl?: string;
13
13
  timeout?: number;
14
14
  withAuth?: boolean;
15
+ /** Normalize failed responses into MintApiError. Generated clients enable this by default. */
16
+ typedErrors?: boolean;
15
17
  }
16
18
  export interface UseApiReturn {
17
19
  client: AxiosInstance;
@@ -7,6 +7,7 @@ interface PickerStateProps {
7
7
  capabilities: PickerCapabilities;
8
8
  initialPath: string;
9
9
  initialSelection: PickerSelection | null;
10
+ systemFilter?: (node: PickerNode, source: PickerSource) => boolean;
10
11
  }
11
12
  type PickerEmit = {
12
13
  (event: 'update:open', value: boolean): void;
@@ -109,11 +110,12 @@ export declare function useFilePicker(props: PickerStateProps, emit: PickerEmit)
109
110
  loading: import('vue').ShallowRef<boolean, boolean>;
110
111
  error: import('vue').ShallowRef<string, string>;
111
112
  rows: import('vue').ComputedRef<import('..').PickerTreeRow[]>;
113
+ isAllowed: (node: PickerNode) => boolean;
112
114
  clear: () => void;
113
115
  invalidate: () => void;
114
116
  register: (items: PickerNode[], parent?: string) => void;
115
- loadChildren: (folder: string, ancestors?: string[]) => Promise<PickerNode[]>;
116
- load: (query?: string, recursive?: boolean) => Promise<void>;
117
+ loadChildren: (folder: string, ancestors?: string[], refresh?: boolean) => Promise<PickerNode[]>;
118
+ load: (query?: string, recursive?: boolean, refresh?: boolean) => Promise<void>;
117
119
  expand: (node: PickerNode) => Promise<void>;
118
120
  enter: (node: PickerNode) => void;
119
121
  up: (target?: string) => void;
@@ -169,10 +171,7 @@ export declare function useFilePicker(props: PickerStateProps, emit: PickerEmit)
169
171
  focused: import('vue').ComputedRef<PickerNode>;
170
172
  resolving: import('vue').ShallowRef<boolean, boolean>;
171
173
  resolutionError: import('vue').ShallowRef<string, string>;
172
- filesInput: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
173
- folderInput: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
174
174
  searchArea: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
175
- accept: import('vue').ComputedRef<string | undefined>;
176
175
  confirmLabel: import('vue').ComputedRef<string>;
177
176
  folderCount: import('vue').ComputedRef<number>;
178
177
  canConfirm: import('vue').ComputedRef<boolean>;
@@ -182,7 +181,7 @@ export declare function useFilePicker(props: PickerStateProps, emit: PickerEmit)
182
181
  up: (target?: string) => Promise<void>;
183
182
  refresh: () => Promise<void>;
184
183
  selectParent: (node: PickerNode) => void;
185
- chooseLocal: (event: Event) => Promise<void>;
184
+ chooseLocal: (files: File[], _rootName?: string, relativePaths?: string[]) => Promise<void>;
186
185
  cancel: () => void;
187
186
  confirm: () => void;
188
187
  keyboard: (event: KeyboardEvent) => void;
@@ -1,9 +1,9 @@
1
- import { n as useRequestSyncState } from "./Skeleton-DxtwJ5gt.js";
2
- import { B as currentExperimentFromContext, U as resolveCurrentExperimentId, V as getInjectedPlatformContext, et as useEventStream, lt as PLUGIN_SECRET_FORMAT_KEY } from "./useControlSchema-aMZlb4Sc.js";
3
- import { n as pickerFormat } from "./validation-nBbSn1TI.js";
4
- import { a as useAuthStore, d as useSettingsStore, i as useApi, n as AuthenticationRequiredError, r as authenticationRequiredError, t as readErrorMessage } from "./errors-_W0-LbA6.js";
5
- import { i as usePlatformContext } from "./useFormBuilder-TCxNnqeb.js";
6
- import { bn as rowLabel, pn as PLATE_CONFIGS, yn as rowIndex } from "./templates-Qq113pyZ.js";
1
+ import { a as useAuthStore, d as useSettingsStore, i as useApi, n as AuthenticationRequiredError, r as authenticationRequiredError, t as readErrorMessage } from "./errors-DZDb1cIb.js";
2
+ import { n as useRequestSyncState } from "./Skeleton-JaDtC8-9.js";
3
+ import { B as currentExperimentFromContext, U as resolveCurrentExperimentId, V as getInjectedPlatformContext, et as useEventStream, lt as PLUGIN_SECRET_FORMAT_KEY } from "./useControlSchema-BAzmP1_y.js";
4
+ import { n as pickerFormat } from "./validation-OuEr0iAS.js";
5
+ import { i as usePlatformContext } from "./useFormBuilder-DEHejpiL.js";
6
+ import { bn as rowLabel, pn as PLATE_CONFIGS, yn as rowIndex } from "./templates-CXARYr6_.js";
7
7
  import { computed, getCurrentInstance, getCurrentScope, onMounted, onScopeDispose, onUnmounted, ref, shallowRef, toValue, watch } from "vue";
8
8
  import axios from "axios";
9
9
  //#region src/composables/useAuth.ts
@@ -1729,7 +1729,8 @@ function createPluginClient(contract, options) {
1729
1729
  const parts = pluginEndpointRequestParts(contract, endpoint, payload, options.baseUrl);
1730
1730
  const api = useApi({
1731
1731
  baseUrl: parts.baseUrl,
1732
- withAuth: endpoint.requiresAuth !== false
1732
+ withAuth: endpoint.requiresAuth !== false,
1733
+ typedErrors: true
1733
1734
  });
1734
1735
  const config = endpointRequestConfig(endpoint, parts.query, callOptions);
1735
1736
  if (endpoint.method === "get") return api.get(parts.path, config);
@@ -1760,7 +1761,8 @@ async function uploadPluginEndpoint(contract, endpoint, payload, options = {}) {
1760
1761
  const parts = pluginEndpointRequestParts(contract, endpoint, payload, options.baseUrl);
1761
1762
  const api = useApi({
1762
1763
  baseUrl: parts.baseUrl,
1763
- withAuth: endpoint.requiresAuth !== false
1764
+ withAuth: endpoint.requiresAuth !== false,
1765
+ typedErrors: true
1764
1766
  });
1765
1767
  const body = endpoint.hasBody ? requestBodyFromPayload(payload, parts.requestPayload, endpoint) : payload;
1766
1768
  if (endpoint.requestContentType === OCTET_STREAM) {
@@ -1785,7 +1787,8 @@ async function downloadPluginEndpoint(contract, endpoint, payload, options = {})
1785
1787
  const parts = pluginEndpointRequestParts(contract, endpoint, payload, options.baseUrl);
1786
1788
  const api = useApi({
1787
1789
  baseUrl: parts.baseUrl,
1788
- withAuth: endpoint.requiresAuth !== false
1790
+ withAuth: endpoint.requiresAuth !== false,
1791
+ typedErrors: true
1789
1792
  });
1790
1793
  const config = {
1791
1794
  ...endpointRequestConfig(endpoint, parts.query, { signal: options.signal }) ?? {},
@@ -2178,4 +2181,4 @@ function usePlatformFilePickerAdapter(options = {}) {
2178
2181
  //#endregion
2179
2182
  export { buildAnalysisArtifactTargetQuery as A, useWellPainting as C, useResourceCrud as D, createPluginResourceClient as E, useAsyncBatch as F, resolvePluginFrontendBase as I, usePasskey as L, useFileBrowser as M, usePluginConfig as N, useOptimisticMutation as O, useAsync as P, useAuth as R, coordinateToWellId as S, wellIdsInRectangle as T, useWellPlateValidation as _, downloadBlob as a, createWellPlateWells as b, pluginFormDataFromPayload as c, usePluginClient as d, usePluginEventStream as f, runWellPlateValidation as g, resolvePluginBaseUrl as h, createPluginClient as i, parseAnalysisArtifactTarget as j, useCommandHistory as k, uploadPluginEndpoint as l, buildPluginEndpointUrl as m, encodePlatformPickerPath as n, downloadPluginEndpoint as o, usePluginSettings as p, usePlatformFilePickerAdapter as r, getPluginPageSelectorItems as s, decodePlatformPickerPath as t, useCurrentExperiment as u, createColumnConditions as v, wellIdToCoordinate as w, useWellPlateAdapter as x, createRowConditions as y };
2180
2183
 
2181
- //# sourceMappingURL=composables-hY2Q2xPI.js.map
2184
+ //# sourceMappingURL=composables-DmF_8iyX.js.map