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

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/index.js CHANGED
@@ -2,7 +2,7 @@ import { a as useAuthStore, c as paletteCssVariables, d as useSettingsStore, f a
2
2
  import { a as SORT_OPTIONS, c as formatExperimentDate, d as resolveExperimentCode, f as BaseModal_default, h as BaseButton_default, 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
3
  import { a as BaseSelect_default, i as BasePill_default, n as useRequestSyncState, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "./Skeleton-JaDtC8-9.js";
4
4
  import { $ as resolveJobCapabilities, A as useConcentrationUnits, At as formatTimeSlot, Bt as MultiSelect_default, 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, Gt as BaseToggle_default, Ht as useSelectionLimit, I as useChemicalFormula, It as snapToSlot, J as isActiveJobStatus, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, Lt as toMinutes, M as SequenceInput_default, Mt as generateTimeSlots, N as useSequenceUtils, Nt as isTimeInRange, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, Pt as parseTime, Q as normalizeJobState, R as ArtifactSelectorModal_default, Rt as useTimeUtils, S as controlsToTopBarSettingsConfig, St as TimePicker_default, T as getDefaultControlView, Tt as durationMinutes, Ut as BaseSlider_default, Vt as useListSelection, W as resolveCurrentPluginId, Wt as BaseRadioGroup_default, X as jobStatusLabel, Y as isTerminalJobStatus, Z as normalizeJobPercent, _ as controlsToFormSchema, _t as pluginSecretLabel, a as defineDoseCalculatorControlProps, at as AlertBox_default, b as controlsToSettingsSchema, bt as usesPluginSecretReferences, c as defineWellPlateDoseComponentBindings, ct as SecretInput_default, d as defineControlModel, dt as PLUGIN_SECRET_REF_KEY, ft as clearPluginSecret, gt as pluginSecretId, h as controlValuesToComponentProps, ht as keepPluginSecret, i as useControlSchema, j as MoleculeInput_default, jt as fromMinutes, k as UnitInput_default, kt as formatTime, l as defineWellPlateDoseControlProps, lt as PLUGIN_SECRET_FORMAT_KEY, m as controlValuesToComponentBindingsById, mt as isPluginSecretRef, n as defineControls, o as defineDoseDesignControlModel, ot as FileUploader_default, p as controlValuesToComponentBindings, pt as isPluginSecretLocked, q as usePluginJobs, qt as Tooltip_default, r as getControlDefaults, s as defineWellPlateControlProps, st as NumberInput_default, t as defineControlComponentBindings, tt as DateTimePicker_default, u as useControlWorkspace, ut as PLUGIN_SECRET_FORMAT_REF, v as controlsToSectionFormSchema, vt as pluginSecretState, w as controlsToViewItems, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, yt as setPluginSecret, z as useAnalysisArtifacts, zt as DatePicker_default } from "./useControlSchema-BAzmP1_y.js";
5
- import { $ as AutoGroupModal_default, A as ChemicalFormula_default, At as ActionMenu_default, B as BioTemplateExperimentWorkspaceView_default, Bt as ColorSlider_default, C as SequenceProgressBar_default, Ct as StepWizard_default, D as formatSequenceRemaining, Dt as PluginIcon_default, E as formatSequenceEta, Et as AppAvatarMenu_default, F as SmartGroupModal_default, Ft as LoadingSpinner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as GroupAssigner_default, It as Calendar_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as RackEditor_default, Lt as DropdownButton_default, M as ProtocolStepEditor_default, Mt as RuntimeUpdateNotice_default, N as SampleHierarchyTree_default, Nt as AppToastContainer_default, O as sequenceProgressPercent, Ot as CollapsibleCard_default, P as ReagentEditor_default, Pt as DataFrame_default, Q as SampleSelector_default, R as BioTemplatePresetWorkspaceView_default, Rt as SegmentedControl_default, S as InstrumentAlertLog_default, St as FormActions_default, T as estimateSequenceRemainingSeconds, Tt as AppPluginSwitcher_default, U as Avatar_default, V as BioTemplateRenderer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _ as inferLcmsPlateTypeFromWellIds, _t as PluginWorkspaceView_default, a as FileBrowserModal_default, at as WellPlate_default, b as InstrumentStatusCard_default, bt as AppSidebar_default, c as TimeRangeInput_default, ct as GeneratedPluginView_default, d as AuditTrail_default, dt as GeneratedPlotlyResult_default, et as SmartGroupManual_default, f as LcmsSequenceTable_default, ft as PlotlyChart_default, g as extractLcmsSampleName, gt as normalizeGeneratedJobInput, h as extractLcmsCommonPrefix, ht as generatedJobFormSchema, i as ArtifactSaveDialog_default, it as SampleLegend_default, j as ScientificNumber_default, jt as IconButton_default, k as sequenceSamplesRemaining, kt as ThemeToggle_default, l as ExperimentDataViewer_default, lt as JobsStatusTray_default, m as basenameFromWindowsPath, mt as generatedJobDefaults, n as FilePicker_default, nt as ReagentList_default, o as SectionCard_default, ot as ExperimentTimeline_default, p as DEFAULT_LCMS_SEQUENCE_COLUMNS, pt as ChartContainer_default, q as AppContainer_default, r as FitPanel_default, rt as PlateMapEditor_default, s as ResourceCard_default, st as DoseCalculator_default, tt as SmartGroupFieldRecipe_default, u as BatchProgressList_default, ut as GeneratedResultRenderer_default, v as lcmsWellIdFromPosition, vt as MobileSupportGate_default, w as estimateSequenceFinishDate, wt as AppTopBar_default, x as InstrumentStateBadge_default, xt as FormBuilder_default, y as reconstructLcmsPlateCellsFromSequenceItems, yt as AppLayout_default, z as BioTemplatePackWorkspaceView_default, zt as BaseTabs_default } from "./components-DT6ggNrt.js";
5
+ import { $ as AutoGroupModal_default, A as ChemicalFormula_default, At as ActionMenu_default, B as BioTemplateExperimentWorkspaceView_default, Bt as ColorSlider_default, C as SequenceProgressBar_default, Ct as StepWizard_default, D as formatSequenceRemaining, Dt as PluginIcon_default, E as formatSequenceEta, Et as AppAvatarMenu_default, F as SmartGroupModal_default, Ft as LoadingSpinner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as GroupAssigner_default, It as Calendar_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as RackEditor_default, Lt as DropdownButton_default, M as ProtocolStepEditor_default, Mt as RuntimeUpdateNotice_default, N as SampleHierarchyTree_default, Nt as AppToastContainer_default, O as sequenceProgressPercent, Ot as CollapsibleCard_default, P as ReagentEditor_default, Pt as DataFrame_default, Q as SampleSelector_default, R as BioTemplatePresetWorkspaceView_default, Rt as SegmentedControl_default, S as InstrumentAlertLog_default, St as FormActions_default, T as estimateSequenceRemainingSeconds, Tt as AppPluginSwitcher_default, U as Avatar_default, V as BioTemplateRenderer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _ as inferLcmsPlateTypeFromWellIds, _t as PluginWorkspaceView_default, a as FileBrowserModal_default, at as WellPlate_default, b as InstrumentStatusCard_default, bt as AppSidebar_default, c as TimeRangeInput_default, ct as GeneratedPluginView_default, d as AuditTrail_default, dt as GeneratedPlotlyResult_default, et as SmartGroupManual_default, f as LcmsSequenceTable_default, ft as PlotlyChart_default, g as extractLcmsSampleName, gt as normalizeGeneratedJobInput, h as extractLcmsCommonPrefix, ht as generatedJobFormSchema, i as ArtifactSaveDialog_default, it as SampleLegend_default, j as ScientificNumber_default, jt as IconButton_default, k as sequenceSamplesRemaining, kt as ThemeToggle_default, l as ExperimentDataViewer_default, lt as JobsStatusTray_default, m as basenameFromWindowsPath, mt as generatedJobDefaults, n as FilePicker_default, nt as ReagentList_default, o as SectionCard_default, ot as ExperimentTimeline_default, p as DEFAULT_LCMS_SEQUENCE_COLUMNS, pt as ChartContainer_default, q as AppContainer_default, r as FitPanel_default, rt as PlateMapEditor_default, s as ResourceCard_default, st as DoseCalculator_default, tt as SmartGroupFieldRecipe_default, u as BatchProgressList_default, ut as GeneratedResultRenderer_default, v as lcmsWellIdFromPosition, vt as MobileSupportGate_default, w as estimateSequenceFinishDate, wt as AppTopBar_default, x as InstrumentStateBadge_default, xt as FormBuilder_default, y as reconstructLcmsPlateCellsFromSequenceItems, yt as AppLayout_default, z as BioTemplatePackWorkspaceView_default, zt as BaseTabs_default } from "./components-DT7ywo_B.js";
6
6
  import { s as FormField_default, t as SettingsModal_default } from "./SettingsModal-DQUcpT4T.js";
7
7
  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";
8
8
  import { i as usePlatformContext, n as evaluateCondition, r as useForm, t as useFormBuilder } from "./useFormBuilder-DEHejpiL.js";
package/dist/install.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./useControlSchema-BAzmP1_y.js";
2
- import { t as components_exports } from "./components-DT6ggNrt.js";
2
+ import { t as components_exports } from "./components-DT7ywo_B.js";
3
3
  //#region src/install.ts
4
4
  /**
5
5
  * Vue plugin that registers all MINT SDK components globally.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morscherlab/mint-sdk",
3
- "version": "1.2.0-beta.16",
3
+ "version": "1.2.0-beta.17",
4
4
  "description": "MINT Platform SDK — Vue 3 components, composables, and types for plugin development. MINT = Mass-spec INtegrated Toolkit.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -204,6 +204,20 @@ describe('FilePicker', () => {
204
204
  expect(row(wrapper, other.path).attributes('aria-selected')).toBe('false')
205
205
  })
206
206
 
207
+ it('accumulates plain clicks in multi modes and Shift still extends a range', async () => {
208
+ const wrapper = await setup()
209
+ await expand(wrapper)
210
+ await row(wrapper, one.path).trigger('click')
211
+ await row(wrapper, two.path).trigger('click')
212
+ expect(row(wrapper, one.path).attributes('aria-selected')).toBe('true')
213
+ expect(row(wrapper, two.path).attributes('aria-selected')).toBe('true')
214
+ await row(wrapper, two.path).trigger('click')
215
+ expect(row(wrapper, two.path).attributes('aria-selected')).toBe('false')
216
+ await row(wrapper, folder.path).trigger('click', { shiftKey: true })
217
+ expect(row(wrapper, folder.path).attributes('aria-selected')).toBe('true')
218
+ expect(row(wrapper, two.path).attributes('aria-selected')).toBe('true')
219
+ })
220
+
207
221
  it('toggles a selected folder off with a second plain click', async () => {
208
222
  const wrapper = await setup()
209
223
  await row(wrapper, folder.path).trigger('click')
@@ -74,7 +74,9 @@ export function usePickerSelection(
74
74
  focusPath.value = node.path
75
75
  if (!selectable(node)) return
76
76
  const multi = mode() === 'multi-file' || mode() === 'folder+files'
77
- const additive = multi && (modifiers.metaKey || modifiers.ctrlKey)
77
+ // Multi modes behave like a checklist: a plain click (or Space) adds or
78
+ // removes one row, Shift extends a range, Ctrl/Cmd is accepted for habit.
79
+ const additive = multi && (modifiers.metaKey || modifiers.ctrlKey || modifiers.toggle)
78
80
  if (multi && modifiers.shiftKey && anchor) {
79
81
  const rows = nav.rows.value.map((row) => row.node)
80
82
  const from = rows.findIndex((item) => item.path === anchor)