@morscherlab/mint-sdk 1.2.1 → 1.2.2

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 (84) hide show
  1. package/dist/{SettingsModal-DOcCf0Vo.js → SettingsModal-DELMkUFR.js} +3 -3
  2. package/dist/{SettingsModal-DOcCf0Vo.js.map → SettingsModal-DELMkUFR.js.map} +1 -1
  3. package/dist/__tests__/components/ChartContainer.test.d.ts +1 -0
  4. package/dist/__tests__/components/ChemicalFormula.test.d.ts +1 -0
  5. package/dist/__tests__/components/LayoutResizeHandle.test.d.ts +1 -0
  6. package/dist/__tests__/components/SearchableSelect.test.d.ts +1 -0
  7. package/dist/__tests__/components/WellPlate.decoration.test.d.ts +1 -0
  8. package/dist/__tests__/composables/useManualLayoutResize.test.d.ts +1 -0
  9. package/dist/components/AdductText.vue.d.ts +17 -0
  10. package/dist/components/ChartContainer.vue.d.ts +19 -5
  11. package/dist/components/ChemicalFormula.vue.d.ts +28 -2
  12. package/dist/components/DataFrame.vue.d.ts +1 -1
  13. package/dist/components/LayoutResizeHandle.vue.d.ts +23 -0
  14. package/dist/components/PlotlyChart.vue.d.ts +34 -6
  15. package/dist/components/SearchableSelect.vue.d.ts +57 -0
  16. package/dist/components/WellPlate.vue.d.ts +5 -1
  17. package/dist/components/index.d.ts +3 -1
  18. package/dist/components/index.js +4 -4
  19. package/dist/{components-Cp8DcNrU.js → components-CxQVQCpP.js} +773 -317
  20. package/dist/components-CxQVQCpP.js.map +1 -0
  21. package/dist/composables/index.d.ts +1 -0
  22. package/dist/composables/index.js +6 -6
  23. package/dist/composables/useManualLayoutResize.d.ts +56 -0
  24. package/dist/{composables-D_4qqOlp.js → composables-DAqOU8Aq.js} +96 -7
  25. package/dist/composables-DAqOU8Aq.js.map +1 -0
  26. package/dist/index.js +8 -8
  27. package/dist/install.js +2 -2
  28. package/dist/styles.css +294 -16
  29. package/dist/templates/index.js +2 -2
  30. package/dist/{templates-Dd9bBSs6.js → templates-NuaNHohp.js} +2 -2
  31. package/dist/{templates-Dd9bBSs6.js.map → templates-NuaNHohp.js.map} +1 -1
  32. package/dist/types/componentLabTypes.d.ts +3 -0
  33. package/dist/types/components.d.ts +5 -1
  34. package/dist/types/index.d.ts +1 -1
  35. package/dist/{useControlSchema-BB2GRPhW.js → useControlSchema-vLiRPUmj.js} +37 -7
  36. package/dist/useControlSchema-vLiRPUmj.js.map +1 -0
  37. package/dist/{useFormBuilder-BnGSdSRG.js → useFormBuilder-D37ajgS8.js} +2 -2
  38. package/dist/{useFormBuilder-BnGSdSRG.js.map → useFormBuilder-D37ajgS8.js.map} +1 -1
  39. package/dist/{validation-CTxuzLIX.js → validation-ChMyixAf.js} +3 -3
  40. package/dist/{validation-CTxuzLIX.js.map → validation-ChMyixAf.js.map} +1 -1
  41. package/package.json +1 -1
  42. package/src/__tests__/components/ChartContainer.test.ts +24 -0
  43. package/src/__tests__/components/ChemicalFormula.test.ts +27 -0
  44. package/src/__tests__/components/LayoutResizeHandle.test.ts +19 -0
  45. package/src/__tests__/components/NumberInput.test.ts +45 -1
  46. package/src/__tests__/components/PlotlyChart.test.ts +48 -0
  47. package/src/__tests__/components/RackEditor.test.ts +9 -0
  48. package/src/__tests__/components/SearchableSelect.test.ts +61 -0
  49. package/src/__tests__/components/WellPlate.decoration.test.ts +28 -0
  50. package/src/__tests__/composables/useManualLayoutResize.test.ts +21 -0
  51. package/src/components/AdductText.story.vue +15 -0
  52. package/src/components/AdductText.vue +40 -0
  53. package/src/components/ChartContainer.story.vue +21 -0
  54. package/src/components/ChartContainer.vue +27 -6
  55. package/src/components/ChemicalFormula.story.vue +7 -0
  56. package/src/components/ChemicalFormula.vue +40 -11
  57. package/src/components/LayoutResizeHandle.story.vue +26 -0
  58. package/src/components/LayoutResizeHandle.vue +62 -0
  59. package/src/components/NumberInput.story.vue +1 -1
  60. package/src/components/NumberInput.vue +37 -9
  61. package/src/components/PlotlyChart.vue +77 -11
  62. package/src/components/RackEditor.vue +38 -32
  63. package/src/components/SearchableSelect.story.vue +24 -0
  64. package/src/components/SearchableSelect.vue +223 -0
  65. package/src/components/WellPlate.story.vue +16 -0
  66. package/src/components/WellPlate.vue +17 -8
  67. package/src/components/index.ts +3 -1
  68. package/src/composables/index.ts +10 -0
  69. package/src/composables/useManualLayoutResize.ts +165 -0
  70. package/src/styles/components/adduct-text.css +45 -0
  71. package/src/styles/components/chart-container.css +92 -0
  72. package/src/styles/components/chemical-formula.css +34 -4
  73. package/src/styles/components/layout-resize-handle.css +60 -0
  74. package/src/styles/components/number-input.css +2 -0
  75. package/src/styles/components/rack-editor.css +31 -9
  76. package/src/styles/components/searchable-select.css +63 -0
  77. package/src/styles/components/well-plate.css +9 -0
  78. package/src/styles/index.css +3 -0
  79. package/src/types/componentLabTypes.ts +6 -0
  80. package/src/types/components.ts +7 -0
  81. package/src/types/index.ts +3 -0
  82. package/dist/components-Cp8DcNrU.js.map +0 -1
  83. package/dist/composables-D_4qqOlp.js.map +0 -1
  84. package/dist/useControlSchema-BB2GRPhW.js.map +0 -1
@@ -2,20 +2,266 @@ import { n as __exportAll, r as __toESM } from "./chunk-BoAXSpZd.js";
2
2
  import { i as useApi, l as tableDensityToSize, u as tryUseSettingsStore } from "./errors-BLuqMee5.js";
3
3
  import { f as BaseModal_default, h as BaseButton_default, m as useEventListener, p as useFocusTrap } from "./experiment-utils-CV2Wza3z.js";
4
4
  import { a as BaseSelect_default, i as BasePill_default, n as useRequestSyncState, o as normalizeOptionInput, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "./Skeleton-jhF9wUkU.js";
5
- import { A as useConcentrationUnits, Bt as MultiSelect_default, Gt as BaseToggle_default, I as useChemicalFormula, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, M as SequenceInput_default, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, R as ArtifactSelectorModal_default, St as TimePicker_default, Tt as durationMinutes, U as resolveCurrentExperimentId, Ut as BaseSlider_default, V as getInjectedPlatformContext, Vt as useListSelection, Wt as BaseRadioGroup_default, X as jobStatusLabel, Z as normalizeJobPercent, _ as controlsToFormSchema, at as AlertBox_default, ct as SecretInput_default, f as resolveControlModel, g as mergeControlWorkspaceOptions, it as _plugin_vue_export_helper_default, j as MoleculeInput_default, k as UnitInput_default, kt as formatTime, o as defineDoseDesignControlModel, ot as FileUploader_default, qt as Tooltip_default, r as getControlDefaults, rt as isRecord, st as NumberInput_default, tt as DateTimePicker_default, u as useControlWorkspace, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, zt as DatePicker_default } from "./useControlSchema-BB2GRPhW.js";
6
- import { a as pickExistingRecordKeys, c as normalizeItemInput, i as formSchemaFieldNames, l as normalizeLabelItemInput, o as recordValuesEqualForKeys, r as FormFieldRendererInternal_default, s as FormField_default, t as SettingsModal_default } from "./SettingsModal-DOcCf0Vo.js";
7
- import { $ as getInjectedFrontendRevision, C as useExpansionSet, E as getSampleGroupParentPath, H as useListReorder, J as usePluginWorkspace, N as useAutoGroup, P as parseCSV, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, T as getSampleGroupMajorPrefix, U as useReorderAnnouncer, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, a as DEFAULT_PRESETS, b as useScheduleDrag, c as useReagentSeries, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, i as useProtocolTemplates, it as useToast, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, n as pickerFormat, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, q as usePluginJobCenter, r as pickerReason, rt as useTheme, st as useTextSearch, t as pickerExclusion, u as useRackEditor, ut as useMenuKeyboard, w as useSampleGroups, x as useExperimentSamples, z as useWellPlateEditor } from "./validation-CTxuzLIX.js";
5
+ import { A as useConcentrationUnits, Bt as MultiSelect_default, Gt as BaseToggle_default, I as useChemicalFormula, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, M as SequenceInput_default, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, R as ArtifactSelectorModal_default, St as TimePicker_default, Tt as durationMinutes, U as resolveCurrentExperimentId, Ut as BaseSlider_default, V as getInjectedPlatformContext, Vt as useListSelection, Wt as BaseRadioGroup_default, X as jobStatusLabel, Z as normalizeJobPercent, _ as controlsToFormSchema, at as AlertBox_default, ct as SecretInput_default, f as resolveControlModel, g as mergeControlWorkspaceOptions, it as _plugin_vue_export_helper_default, j as MoleculeInput_default, k as UnitInput_default, kt as formatTime, o as defineDoseDesignControlModel, ot as FileUploader_default, qt as Tooltip_default, r as getControlDefaults, rt as isRecord, st as NumberInput_default, tt as DateTimePicker_default, u as useControlWorkspace, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, zt as DatePicker_default } from "./useControlSchema-vLiRPUmj.js";
6
+ import { a as pickExistingRecordKeys, c as normalizeItemInput, i as formSchemaFieldNames, l as normalizeLabelItemInput, o as recordValuesEqualForKeys, r as FormFieldRendererInternal_default, s as FormField_default, t as SettingsModal_default } from "./SettingsModal-DELMkUFR.js";
7
+ import { $ as getInjectedFrontendRevision, C as useExpansionSet, E as getSampleGroupParentPath, H as useListReorder, J as usePluginWorkspace, N as useAutoGroup, P as parseCSV, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, T as getSampleGroupMajorPrefix, U as useReorderAnnouncer, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, a as DEFAULT_PRESETS, b as useScheduleDrag, c as useReagentSeries, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, i as useProtocolTemplates, it as useToast, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, n as pickerFormat, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, q as usePluginJobCenter, r as pickerReason, rt as useTheme, st as useTextSearch, t as pickerExclusion, u as useRackEditor, ut as useMenuKeyboard, w as useSampleGroups, x as useExperimentSamples, z as useWellPlateEditor } from "./validation-ChMyixAf.js";
8
8
  import { t as useDropdownState } from "./useDropdownState-C7hRiVQf.js";
9
- import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-BnGSdSRG.js";
9
+ import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-D37ajgS8.js";
10
10
  import { t as ANALYSIS_FILE_ARTIFACT_SCHEMA } from "./analysisArtifactTypes-DQ0MjwHZ.js";
11
- import { B as toBioTemplateComponentProps, Cn as SLOT_ORDER, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, Sn as SLOT_COLORS, V as toBioTemplateComponentPropsByComponent, _n as createWellGrid, dn as extractTemplateCollection, gn as createPlateRowLabels, hn as createPlateColumnLabels, mn as WELL_PLATE_SIZE_CONFIGS, pn as PLATE_CONFIGS, vn as getRectangleWellIds, xn as SAMPLE_COLOR_SCALE } from "./templates-Dd9bBSs6.js";
11
+ import { B as toBioTemplateComponentProps, Cn as SLOT_ORDER, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, Sn as SLOT_COLORS, V as toBioTemplateComponentPropsByComponent, _n as createWellGrid, dn as extractTemplateCollection, gn as createPlateRowLabels, hn as createPlateColumnLabels, mn as WELL_PLATE_SIZE_CONFIGS, pn as PLATE_CONFIGS, vn as getRectangleWellIds, xn as SAMPLE_COLOR_SCALE } from "./templates-NuaNHohp.js";
12
12
  import { r as ConfirmDialog_default, t as ExperimentPopover_default } from "./ExperimentPopover-CJdNlCZb.js";
13
13
  import { r as ExperimentCodeBadge_default, t as ExperimentSelectorModal_default } from "./ExperimentSelectorModal-DHE9k8TP.js";
14
14
  import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, effectScope, guardReactiveProps, h, inject, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, unref, useId, useModel, useSlots, vModelCheckbox, vModelSelect, vModelText, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
15
15
  import { computePosition, flip, offset, shift } from "@floating-ui/dom";
16
16
  import { Ellipsis, RefreshCw } from "lucide-vue-next";
17
+ //#region src/components/SearchableSelect.vue?vue&type=script&setup=true&lang.ts
18
+ var _hoisted_1$89 = ["disabled", "aria-expanded"];
19
+ var _hoisted_2$77 = {
20
+ key: 0,
21
+ class: "mint-searchable-select__panel"
22
+ };
23
+ var _hoisted_3$70 = { class: "mint-searchable-select__search-wrap" };
24
+ var _hoisted_4$65 = [
25
+ "placeholder",
26
+ "aria-label",
27
+ "aria-expanded",
28
+ "aria-activedescendant"
29
+ ];
30
+ var _hoisted_5$62 = [
31
+ "id",
32
+ "aria-selected",
33
+ "aria-disabled",
34
+ "onMouseenter",
35
+ "onClick"
36
+ ];
37
+ var _hoisted_6$58 = { class: "mint-searchable-select__option-text" };
38
+ var _hoisted_7$53 = { class: "mint-searchable-select__option-label" };
39
+ var _hoisted_8$48 = {
40
+ key: 0,
41
+ class: "mint-searchable-select__option-description"
42
+ };
43
+ var _hoisted_9$43 = {
44
+ key: 0,
45
+ class: "mint-searchable-select__option-meta"
46
+ };
47
+ var _hoisted_10$38 = {
48
+ key: 1,
49
+ class: "mint-searchable-select__check",
50
+ viewBox: "0 0 20 20",
51
+ fill: "none",
52
+ stroke: "currentColor",
53
+ "aria-hidden": "true"
54
+ };
55
+ var _hoisted_11$36 = {
56
+ key: 0,
57
+ class: "mint-searchable-select__empty"
58
+ };
59
+ var _hoisted_12$32 = {
60
+ key: 0,
61
+ class: "mint-searchable-select__footer"
62
+ };
63
+ //#endregion
64
+ //#region src/components/SearchableSelect.vue
65
+ var SearchableSelect_default = /* @__PURE__ */ defineComponent({
66
+ __name: "SearchableSelect",
67
+ props: {
68
+ modelValue: {},
69
+ options: {},
70
+ placeholder: { default: "Select an option" },
71
+ searchPlaceholder: { default: "Search options…" },
72
+ noResultsText: { default: "No matching options" },
73
+ size: { default: "md" },
74
+ disabled: {
75
+ type: Boolean,
76
+ default: false
77
+ }
78
+ },
79
+ emits: ["update:modelValue"],
80
+ setup(__props, { emit: __emit }) {
81
+ /** Searchable single-select listbox with descriptions, disabled reasons, and custom slots. */
82
+ const props = __props;
83
+ const emit = __emit;
84
+ const listboxId = `mint-searchable-select-${useId().replace(/:/g, "")}`;
85
+ const root = ref(null);
86
+ const trigger = ref(null);
87
+ const search = ref(null);
88
+ const open = ref(false);
89
+ const query = ref("");
90
+ const activeIndex = ref(-1);
91
+ const normalizedOptions = computed(() => props.options.map(normalizeOptionInput));
92
+ const selectedOption = computed(() => normalizedOptions.value.find((option) => option.value === props.modelValue));
93
+ const visibleOptions = computed(() => {
94
+ const needle = query.value.trim().toLocaleLowerCase();
95
+ if (!needle) return normalizedOptions.value;
96
+ return normalizedOptions.value.filter((option) => [
97
+ option.label,
98
+ option.description,
99
+ option.meta,
100
+ option.disabledReason
101
+ ].some((value) => value?.toLocaleLowerCase().includes(needle)));
102
+ });
103
+ const activeDescendant = computed(() => activeIndex.value >= 0 ? `${listboxId}-option-${activeIndex.value}` : void 0);
104
+ function firstEnabledIndex(options = visibleOptions.value) {
105
+ return options.findIndex((option) => !option.disabled);
106
+ }
107
+ async function openPanel() {
108
+ if (props.disabled) return;
109
+ query.value = "";
110
+ open.value = true;
111
+ activeIndex.value = firstEnabledIndex(normalizedOptions.value);
112
+ await nextTick();
113
+ search.value?.focus();
114
+ }
115
+ async function closePanel(restoreFocus = false) {
116
+ open.value = false;
117
+ query.value = "";
118
+ activeIndex.value = -1;
119
+ if (restoreFocus) {
120
+ await nextTick();
121
+ trigger.value?.focus();
122
+ }
123
+ }
124
+ function moveActive(direction) {
125
+ const enabled = visibleOptions.value.map((option, index) => ({
126
+ option,
127
+ index
128
+ })).filter(({ option }) => !option.disabled);
129
+ if (enabled.length === 0) return;
130
+ const current = enabled.findIndex(({ index }) => index === activeIndex.value);
131
+ activeIndex.value = enabled[current < 0 ? direction === 1 ? 0 : enabled.length - 1 : (current + direction + enabled.length) % enabled.length].index;
132
+ nextTick(() => document.getElementById(activeDescendant.value ?? "")?.scrollIntoView({ block: "nearest" }));
133
+ }
134
+ function select(option) {
135
+ if (option.disabled) return;
136
+ emit("update:modelValue", option.value);
137
+ closePanel(true);
138
+ }
139
+ function handleSearchKeydown(event) {
140
+ if (event.key === "ArrowDown") moveActive(1);
141
+ else if (event.key === "ArrowUp") moveActive(-1);
142
+ else if (event.key === "Home") activeIndex.value = firstEnabledIndex();
143
+ else if (event.key === "End") {
144
+ for (let index = visibleOptions.value.length - 1; index >= 0; index--) if (!visibleOptions.value[index]?.disabled) {
145
+ activeIndex.value = index;
146
+ break;
147
+ }
148
+ } else if (event.key === "Enter") {
149
+ const option = visibleOptions.value[activeIndex.value];
150
+ if (option) select(option);
151
+ } else if (event.key === "Escape") closePanel(true);
152
+ else return;
153
+ event.preventDefault();
154
+ }
155
+ function handleTriggerKeydown(event) {
156
+ if (event.key !== "ArrowDown" && event.key !== "ArrowUp") return;
157
+ event.preventDefault();
158
+ openPanel().then(() => {
159
+ if (event.key === "ArrowUp") moveActive(-1);
160
+ });
161
+ }
162
+ watch(visibleOptions, (options) => {
163
+ activeIndex.value = firstEnabledIndex(options);
164
+ });
165
+ watch(() => props.disabled, (disabled) => {
166
+ if (disabled) closePanel();
167
+ });
168
+ useEventListener(() => document, "pointerdown", (event) => {
169
+ if (open.value && !root.value?.contains(event.target)) closePanel();
170
+ });
171
+ return (_ctx, _cache) => {
172
+ return openBlock(), createElementBlock("div", {
173
+ ref_key: "root",
174
+ ref: root,
175
+ class: normalizeClass(["mint-searchable-select", `mint-searchable-select--${__props.size}`]),
176
+ onFocusout: _cache[3] || (_cache[3] = ($event) => !root.value?.contains($event.relatedTarget) && closePanel())
177
+ }, [createElementVNode("button", {
178
+ ref_key: "trigger",
179
+ ref: trigger,
180
+ type: "button",
181
+ class: "mint-searchable-select__trigger",
182
+ disabled: __props.disabled,
183
+ "aria-expanded": open.value,
184
+ "aria-controls": listboxId,
185
+ "aria-haspopup": "listbox",
186
+ onClick: _cache[0] || (_cache[0] = ($event) => open.value ? closePanel() : openPanel()),
187
+ onKeydown: handleTriggerKeydown
188
+ }, [createElementVNode("span", { class: normalizeClass(["mint-searchable-select__value", { "mint-searchable-select__value--placeholder": !selectedOption.value }]) }, toDisplayString(selectedOption.value?.label ?? __props.placeholder), 3), _cache[4] || (_cache[4] = createElementVNode("svg", {
189
+ viewBox: "0 0 20 20",
190
+ fill: "none",
191
+ stroke: "currentColor",
192
+ "aria-hidden": "true"
193
+ }, [createElementVNode("path", {
194
+ "stroke-linecap": "round",
195
+ "stroke-linejoin": "round",
196
+ "stroke-width": "1.75",
197
+ d: "m6 8 4 4 4-4"
198
+ })], -1))], 40, _hoisted_1$89), open.value ? (openBlock(), createElementBlock("div", _hoisted_2$77, [
199
+ createElementVNode("div", _hoisted_3$70, [_cache[5] || (_cache[5] = createElementVNode("svg", {
200
+ viewBox: "0 0 20 20",
201
+ fill: "none",
202
+ stroke: "currentColor",
203
+ "aria-hidden": "true"
204
+ }, [createElementVNode("circle", {
205
+ cx: "8.5",
206
+ cy: "8.5",
207
+ r: "5.5"
208
+ }), createElementVNode("path", { d: "m13 13 4 4" })], -1)), withDirectives(createElementVNode("input", {
209
+ ref_key: "search",
210
+ ref: search,
211
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => query.value = $event),
212
+ role: "combobox",
213
+ type: "search",
214
+ class: "mint-searchable-select__search",
215
+ placeholder: __props.searchPlaceholder,
216
+ "aria-label": __props.searchPlaceholder,
217
+ "aria-expanded": open.value,
218
+ "aria-controls": listboxId,
219
+ "aria-activedescendant": activeDescendant.value,
220
+ "aria-autocomplete": "list",
221
+ onKeydown: handleSearchKeydown
222
+ }, null, 40, _hoisted_4$65), [[vModelText, query.value]])]),
223
+ createElementVNode("ul", {
224
+ id: listboxId,
225
+ class: "mint-searchable-select__list",
226
+ role: "listbox"
227
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleOptions.value, (option, index) => {
228
+ return openBlock(), createElementBlock("li", {
229
+ id: `${listboxId}-option-${index}`,
230
+ key: String(option.value),
231
+ role: "option",
232
+ class: normalizeClass(["mint-searchable-select__option", {
233
+ "mint-searchable-select__option--active": activeIndex.value === index,
234
+ "mint-searchable-select__option--selected": __props.modelValue === option.value,
235
+ "mint-searchable-select__option--disabled": option.disabled
236
+ }]),
237
+ "aria-selected": __props.modelValue === option.value,
238
+ "aria-disabled": option.disabled || void 0,
239
+ onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
240
+ onMouseenter: ($event) => !option.disabled && (activeIndex.value = index),
241
+ onClick: ($event) => select(option)
242
+ }, [renderSlot(_ctx.$slots, "option", {
243
+ option,
244
+ selected: __props.modelValue === option.value,
245
+ active: activeIndex.value === index
246
+ }, () => [
247
+ createElementVNode("span", _hoisted_6$58, [createElementVNode("span", _hoisted_7$53, toDisplayString(option.label), 1), (option.disabled ? option.disabledReason || option.description : option.description) ? (openBlock(), createElementBlock("span", _hoisted_8$48, toDisplayString(option.disabled ? option.disabledReason || option.description : option.description), 1)) : createCommentVNode("", true)]),
248
+ option.meta ? (openBlock(), createElementBlock("span", _hoisted_9$43, toDisplayString(option.meta), 1)) : createCommentVNode("", true),
249
+ __props.modelValue === option.value ? (openBlock(), createElementBlock("svg", _hoisted_10$38, [..._cache[6] || (_cache[6] = [createElementVNode("path", {
250
+ "stroke-linecap": "round",
251
+ "stroke-linejoin": "round",
252
+ "stroke-width": "2",
253
+ d: "m5 10 3 3 7-7"
254
+ }, null, -1)])])) : createCommentVNode("", true)
255
+ ])], 42, _hoisted_5$62);
256
+ }), 128)), visibleOptions.value.length === 0 ? (openBlock(), createElementBlock("li", _hoisted_11$36, toDisplayString(__props.noResultsText), 1)) : createCommentVNode("", true)]),
257
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_12$32, [renderSlot(_ctx.$slots, "footer")])) : createCommentVNode("", true)
258
+ ])) : createCommentVNode("", true)], 34);
259
+ };
260
+ }
261
+ });
262
+ //#endregion
17
263
  //#region src/components/ColorSlider.vue?vue&type=script&setup=true&lang.ts
18
- var _hoisted_1$86 = { class: "mint-color-slider__row" };
264
+ var _hoisted_1$88 = { class: "mint-color-slider__row" };
19
265
  var _hoisted_2$76 = { class: "mint-color-slider__track" };
20
266
  var _hoisted_3$69 = [
21
267
  "value",
@@ -132,7 +378,7 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
132
378
  emit("update:modelValue", Number(target.value));
133
379
  }
134
380
  return (_ctx, _cache) => {
135
- return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-color-slider", { "mint-color-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$86, [createElementVNode("div", _hoisted_2$76, [createElementVNode("input", {
381
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-color-slider", { "mint-color-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$88, [createElementVNode("div", _hoisted_2$76, [createElementVNode("input", {
136
382
  type: "range",
137
383
  value: currentValue.value,
138
384
  min: __props.min,
@@ -168,7 +414,7 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
168
414
  });
169
415
  //#endregion
170
416
  //#region src/components/BaseTabs.vue?vue&type=script&setup=true&lang.ts
171
- var _hoisted_1$85 = {
417
+ var _hoisted_1$87 = {
172
418
  class: "mint-tabs mint-tabs--underline",
173
419
  role: "tablist"
174
420
  };
@@ -194,11 +440,11 @@ var _hoisted_4$64 = {
194
440
  };
195
441
  var _hoisted_5$61 = ["d"];
196
442
  var _hoisted_6$57 = ["d"];
197
- var _hoisted_7$51 = {
443
+ var _hoisted_7$52 = {
198
444
  key: 1,
199
445
  class: "mint-tab__icon"
200
446
  };
201
- var _hoisted_8$46 = {
447
+ var _hoisted_8$47 = {
202
448
  key: 2,
203
449
  class: "mint-tab__badge"
204
450
  };
@@ -237,7 +483,7 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
237
483
  getElement: (id) => tabButtonRefs.get(id)
238
484
  });
239
485
  return (_ctx, _cache) => {
240
- return openBlock(), createElementBlock("div", _hoisted_1$85, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedTabs.value, (tab) => {
486
+ return openBlock(), createElementBlock("div", _hoisted_1$87, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedTabs.value, (tab) => {
241
487
  return openBlock(), createElementBlock("button", {
242
488
  id: `mint-tab-${tab.id}`,
243
489
  key: tab.id,
@@ -265,9 +511,9 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
265
511
  }), 128)) : (openBlock(), createElementBlock("path", {
266
512
  key: 1,
267
513
  d: tab.icon
268
- }, null, 8, _hoisted_6$57))])) : tab.icon ? (openBlock(), createElementBlock("span", _hoisted_7$51, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
514
+ }, null, 8, _hoisted_6$57))])) : tab.icon ? (openBlock(), createElementBlock("span", _hoisted_7$52, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
269
515
  createTextVNode(" " + toDisplayString(tab.label) + " ", 1),
270
- tab.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_8$46, toDisplayString(tab.badge), 1)) : createCommentVNode("", true)
516
+ tab.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_8$47, toDisplayString(tab.badge), 1)) : createCommentVNode("", true)
271
517
  ])], 42, _hoisted_2$75);
272
518
  }), 128))]);
273
519
  };
@@ -275,7 +521,7 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
275
521
  });
276
522
  //#endregion
277
523
  //#region src/components/SegmentedControl.vue?vue&type=script&setup=true&lang.ts
278
- var _hoisted_1$84 = [
524
+ var _hoisted_1$86 = [
279
525
  "aria-checked",
280
526
  "tabindex",
281
527
  "disabled",
@@ -387,14 +633,14 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
387
633
  ]),
388
634
  onClick: ($event) => handleSelect(option),
389
635
  onKeydown: ($event) => handleKeydown($event, option)
390
- }, [createElementVNode("span", _hoisted_2$74, toDisplayString(option.label), 1), option.description && __props.variant === "card" ? (openBlock(), createElementBlock("span", _hoisted_3$67, toDisplayString(option.description), 1)) : createCommentVNode("", true)], 42, _hoisted_1$84);
636
+ }, [createElementVNode("span", _hoisted_2$74, toDisplayString(option.label), 1), option.description && __props.variant === "card" ? (openBlock(), createElementBlock("span", _hoisted_3$67, toDisplayString(option.description), 1)) : createCommentVNode("", true)], 42, _hoisted_1$86);
391
637
  }), 128))], 2);
392
638
  };
393
639
  }
394
640
  });
395
641
  //#endregion
396
642
  //#region src/components/DropdownButton.vue?vue&type=script&setup=true&lang.ts
397
- var _hoisted_1$83 = ["disabled", "aria-expanded"];
643
+ var _hoisted_1$85 = ["disabled", "aria-expanded"];
398
644
  var _hoisted_2$73 = {
399
645
  key: 0,
400
646
  class: "mint-dropdown-button__spinner",
@@ -412,11 +658,11 @@ var _hoisted_5$60 = [
412
658
  "onKeydown"
413
659
  ];
414
660
  var _hoisted_6$56 = { class: "mint-dropdown-button__option-label" };
415
- var _hoisted_7$50 = {
661
+ var _hoisted_7$51 = {
416
662
  key: 0,
417
663
  class: "mint-dropdown-button__option-description"
418
664
  };
419
- var _hoisted_8$45 = {
665
+ var _hoisted_8$46 = {
420
666
  key: 1,
421
667
  class: "mint-dropdown-button__option-check",
422
668
  viewBox: "0 0 24 24",
@@ -528,7 +774,7 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
528
774
  "stroke-linecap": "round",
529
775
  "stroke-linejoin": "round"
530
776
  }, [..._cache[3] || (_cache[3] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))
531
- ], 42, _hoisted_1$83), createVNode(Transition, { name: "mint-dropdown-button-menu" }, {
777
+ ], 42, _hoisted_1$85), createVNode(Transition, { name: "mint-dropdown-button-menu" }, {
532
778
  default: withCtx(() => [unref(isOpen) ? (openBlock(), createElementBlock("ul", {
533
779
  key: 0,
534
780
  ref_key: "panelRef",
@@ -553,8 +799,8 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
553
799
  onKeydown: [withKeys(withModifiers(($event) => selectOption(option), ["prevent"]), ["enter"]), withKeys(withModifiers(($event) => selectOption(option), ["prevent"]), ["space"])]
554
800
  }, [
555
801
  createElementVNode("span", _hoisted_6$56, toDisplayString(option.label), 1),
556
- option.description ? (openBlock(), createElementBlock("span", _hoisted_7$50, toDisplayString(option.description), 1)) : createCommentVNode("", true),
557
- option.value === __props.modelValue ? (openBlock(), createElementBlock("svg", _hoisted_8$45, [..._cache[4] || (_cache[4] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)
802
+ option.description ? (openBlock(), createElementBlock("span", _hoisted_7$51, toDisplayString(option.description), 1)) : createCommentVNode("", true),
803
+ option.value === __props.modelValue ? (openBlock(), createElementBlock("svg", _hoisted_8$46, [..._cache[4] || (_cache[4] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)
558
804
  ], 42, _hoisted_5$60);
559
805
  }), 128))], 40, _hoisted_4$63)) : createCommentVNode("", true)]),
560
806
  _: 1
@@ -564,7 +810,7 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
564
810
  });
565
811
  //#endregion
566
812
  //#region src/components/Calendar.vue?vue&type=script&setup=true&lang.ts
567
- var _hoisted_1$82 = { class: "mint-calendar" };
813
+ var _hoisted_1$84 = { class: "mint-calendar" };
568
814
  var _hoisted_2$72 = {
569
815
  key: 0,
570
816
  class: "mint-calendar__header"
@@ -577,8 +823,8 @@ var _hoisted_6$55 = [
577
823
  "onClick",
578
824
  "onMouseenter"
579
825
  ];
580
- var _hoisted_7$49 = { class: "mint-calendar__day-number" };
581
- var _hoisted_8$44 = {
826
+ var _hoisted_7$50 = { class: "mint-calendar__day-number" };
827
+ var _hoisted_8$45 = {
582
828
  key: 0,
583
829
  class: "mint-calendar__markers"
584
830
  };
@@ -798,7 +1044,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
798
1044
  emit("navigate", "next", currentMonth.value, currentYear.value);
799
1045
  }
800
1046
  return (_ctx, _cache) => {
801
- return openBlock(), createElementBlock("div", _hoisted_1$82, [
1047
+ return openBlock(), createElementBlock("div", _hoisted_1$84, [
802
1048
  __props.showNavigation ? (openBlock(), createElementBlock("div", _hoisted_2$72, [
803
1049
  createElementVNode("button", {
804
1050
  type: "button",
@@ -857,7 +1103,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
857
1103
  }]),
858
1104
  onClick: ($event) => handleDayClick(day),
859
1105
  onMouseenter: ($event) => handleDayHover(day)
860
- }, [renderSlot(_ctx.$slots, "day-content", { day }, () => [createElementVNode("span", _hoisted_7$49, toDisplayString(day.dayOfMonth), 1), day.markers.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_8$44, [(openBlock(true), createElementBlock(Fragment, null, renderList(day.markers.slice(0, 3), (marker, mi) => {
1106
+ }, [renderSlot(_ctx.$slots, "day-content", { day }, () => [createElementVNode("span", _hoisted_7$50, toDisplayString(day.dayOfMonth), 1), day.markers.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_8$45, [(openBlock(true), createElementBlock(Fragment, null, renderList(day.markers.slice(0, 3), (marker, mi) => {
861
1107
  return openBlock(), createElementBlock("span", {
862
1108
  key: mi,
863
1109
  class: normalizeClass(["mint-calendar__marker", `mint-calendar__marker--${marker.type ?? "dot"}`]),
@@ -872,7 +1118,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
872
1118
  });
873
1119
  //#endregion
874
1120
  //#region src/components/LoadingSpinner.vue?vue&type=script&setup=true&lang.ts
875
- var _hoisted_1$81 = { class: "mint-spinner__label" };
1121
+ var _hoisted_1$83 = { class: "mint-spinner__label" };
876
1122
  //#endregion
877
1123
  //#region src/components/LoadingSpinner.vue
878
1124
  var LoadingSpinner_default = /* @__PURE__ */ defineComponent({
@@ -907,13 +1153,13 @@ var LoadingSpinner_default = /* @__PURE__ */ defineComponent({
907
1153
  style: { "opacity": "0.75" },
908
1154
  fill: "currentColor",
909
1155
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
910
- })], -1)), createElementVNode("span", _hoisted_1$81, toDisplayString(__props.label), 1)], 2);
1156
+ })], -1)), createElementVNode("span", _hoisted_1$83, toDisplayString(__props.label), 1)], 2);
911
1157
  };
912
1158
  }
913
1159
  });
914
1160
  //#endregion
915
1161
  //#region src/components/internal/DataStateInternal.vue?vue&type=script&setup=true&lang.ts
916
- var _hoisted_1$80 = ["data-state"];
1162
+ var _hoisted_1$82 = ["data-state"];
917
1163
  var _hoisted_2$71 = {
918
1164
  class: "mint-data-state__loading-text",
919
1165
  "aria-hidden": "true"
@@ -978,13 +1224,13 @@ var DataStateInternal_default = /* @__PURE__ */ defineComponent({
978
1224
  "size",
979
1225
  "variant",
980
1226
  "action-label"
981
- ]))], 10, _hoisted_1$80);
1227
+ ]))], 10, _hoisted_1$82);
982
1228
  };
983
1229
  }
984
1230
  });
985
1231
  //#endregion
986
1232
  //#region src/components/DataFrame.vue?vue&type=script&setup=true&lang.ts
987
- var _hoisted_1$79 = {
1233
+ var _hoisted_1$81 = {
988
1234
  key: 0,
989
1235
  class: "mint-dataframe__header"
990
1236
  };
@@ -996,8 +1242,8 @@ var _hoisted_5$58 = {
996
1242
  class: "mint-dataframe__th mint-dataframe__th--checkbox"
997
1243
  };
998
1244
  var _hoisted_6$54 = ["checked", "indeterminate"];
999
- var _hoisted_7$48 = ["aria-sort"];
1000
- var _hoisted_8$43 = { class: "mint-dataframe__th-content" };
1245
+ var _hoisted_7$49 = ["aria-sort"];
1246
+ var _hoisted_8$44 = { class: "mint-dataframe__th-content" };
1001
1247
  var _hoisted_9$41 = [
1002
1248
  "aria-label",
1003
1249
  "aria-valuemin",
@@ -1325,7 +1571,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1325
1571
  });
1326
1572
  return (_ctx, _cache) => {
1327
1573
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-dataframe", { "mint-dataframe--bordered": __props.bordered }]) }, [
1328
- __props.searchable ? (openBlock(), createElementBlock("div", _hoisted_1$79, [createElementVNode("div", _hoisted_2$70, [_cache[5] || (_cache[5] = createElementVNode("svg", {
1574
+ __props.searchable ? (openBlock(), createElementBlock("div", _hoisted_1$81, [createElementVNode("div", _hoisted_2$70, [_cache[5] || (_cache[5] = createElementVNode("svg", {
1329
1575
  class: "mint-dataframe__search-icon",
1330
1576
  viewBox: "0 0 24 24",
1331
1577
  fill: "none",
@@ -1376,7 +1622,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1376
1622
  onClick: ($event) => isColumnSortable(col) ? handleSort(col) : void 0,
1377
1623
  onKeydown: ($event) => isColumnSortable(col) ? handleSortKeydown($event, col) : void 0
1378
1624
  }, {
1379
- default: withCtx(() => [renderSlot(_ctx.$slots, `header-${col.key}`, { column: col }, () => [createElementVNode("div", _hoisted_8$43, [createElementVNode("span", null, toDisplayString(col.label), 1), isColumnSortable(col) ? (openBlock(), createElementBlock("svg", {
1625
+ default: withCtx(() => [renderSlot(_ctx.$slots, `header-${col.key}`, { column: col }, () => [createElementVNode("div", _hoisted_8$44, [createElementVNode("span", null, toDisplayString(col.label), 1), isColumnSortable(col) ? (openBlock(), createElementBlock("svg", {
1380
1626
  key: 0,
1381
1627
  class: normalizeClass(["mint-dataframe__sort-icon", {
1382
1628
  "mint-dataframe__sort-icon--asc": activeSort.value?.key === col.key && activeSort.value?.direction === "asc",
@@ -1411,7 +1657,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1411
1657
  onMousedown: ($event) => startResize(col, $event),
1412
1658
  onKeydown: ($event) => handleResizeKeydown($event, col),
1413
1659
  onClick: _cache[1] || (_cache[1] = withModifiers(() => {}, ["stop"]))
1414
- }, null, 40, _hoisted_9$41)) : createCommentVNode("", true)], 14, _hoisted_7$48);
1660
+ }, null, 40, _hoisted_9$41)) : createCommentVNode("", true)], 14, _hoisted_7$49);
1415
1661
  }), 128)),
1416
1662
  __props.deletable ? (openBlock(), createElementBlock("th", {
1417
1663
  key: 1,
@@ -1520,7 +1766,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1520
1766
  });
1521
1767
  //#endregion
1522
1768
  //#region src/components/AppToastContainer.vue?vue&type=script&setup=true&lang.ts
1523
- var _hoisted_1$78 = { class: "mint-toast__container" };
1769
+ var _hoisted_1$80 = { class: "mint-toast__container" };
1524
1770
  var _hoisted_2$69 = ["role", "onClick"];
1525
1771
  var _hoisted_3$63 = {
1526
1772
  key: 0,
@@ -1566,8 +1812,8 @@ var _hoisted_6$53 = {
1566
1812
  "stroke-linejoin": "round",
1567
1813
  "aria-hidden": "true"
1568
1814
  };
1569
- var _hoisted_7$47 = { class: "mint-toast__body" };
1570
- var _hoisted_8$42 = { class: "mint-toast__title" };
1815
+ var _hoisted_7$48 = { class: "mint-toast__body" };
1816
+ var _hoisted_8$43 = { class: "mint-toast__title" };
1571
1817
  var _hoisted_9$40 = { class: "mint-toast__message" };
1572
1818
  var _hoisted_10$36 = {
1573
1819
  key: 0,
@@ -1608,7 +1854,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1608
1854
  dismiss(toast.id);
1609
1855
  }
1610
1856
  return (_ctx, _cache) => {
1611
- return openBlock(), createBlock(Teleport, { to: "body" }, [createElementVNode("div", _hoisted_1$78, [createVNode(TransitionGroup, { name: "toast" }, {
1857
+ return openBlock(), createBlock(Teleport, { to: "body" }, [createElementVNode("div", _hoisted_1$80, [createVNode(TransitionGroup, { name: "toast" }, {
1612
1858
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(toasts), (toast) => {
1613
1859
  return openBlock(), createElementBlock("div", {
1614
1860
  key: toast.id,
@@ -1645,8 +1891,8 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1645
1891
  createElementVNode("path", { d: "M12 16v-4" }, null, -1),
1646
1892
  createElementVNode("path", { d: "M12 8h.01" }, null, -1)
1647
1893
  ])])),
1648
- createElementVNode("div", _hoisted_7$47, [
1649
- createElementVNode("div", _hoisted_8$42, [createElementVNode("span", _hoisted_9$40, toDisplayString(title(toast)), 1), (toast.count ?? 1) > 1 ? (openBlock(), createElementBlock("span", _hoisted_10$36, "×" + toDisplayString(toast.count), 1)) : createCommentVNode("", true)]),
1894
+ createElementVNode("div", _hoisted_7$48, [
1895
+ createElementVNode("div", _hoisted_8$43, [createElementVNode("span", _hoisted_9$40, toDisplayString(title(toast)), 1), (toast.count ?? 1) > 1 ? (openBlock(), createElementBlock("span", _hoisted_10$36, "×" + toDisplayString(toast.count), 1)) : createCommentVNode("", true)]),
1650
1896
  toast.detail ? (openBlock(), createElementBlock("div", _hoisted_11$34, toDisplayString(toast.detail), 1)) : createCommentVNode("", true),
1651
1897
  actions(toast).length ? (openBlock(), createElementBlock("div", _hoisted_12$30, [(openBlock(true), createElementBlock(Fragment, null, renderList(actions(toast), (action) => {
1652
1898
  return openBlock(), createElementBlock("button", {
@@ -1685,7 +1931,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1685
1931
  });
1686
1932
  //#endregion
1687
1933
  //#region src/components/RuntimeUpdateNotice.vue?vue&type=script&setup=true&lang.ts
1688
- var _hoisted_1$77 = {
1934
+ var _hoisted_1$79 = {
1689
1935
  key: 0,
1690
1936
  class: "mint-runtime-update",
1691
1937
  role: "status"
@@ -1699,7 +1945,7 @@ var RuntimeUpdateNotice_default = /* @__PURE__ */ _plugin_vue_export_helper_defa
1699
1945
  setup(__props, { emit: __emit }) {
1700
1946
  const emit = __emit;
1701
1947
  return (_ctx, _cache) => {
1702
- return __props.visible ? (openBlock(), createElementBlock("div", _hoisted_1$77, [
1948
+ return __props.visible ? (openBlock(), createElementBlock("div", _hoisted_1$79, [
1703
1949
  createVNode(unref(RefreshCw), {
1704
1950
  size: 16,
1705
1951
  "aria-hidden": "true"
@@ -1715,7 +1961,7 @@ var RuntimeUpdateNotice_default = /* @__PURE__ */ _plugin_vue_export_helper_defa
1715
1961
  }), [["__scopeId", "data-v-9ca77e18"]]);
1716
1962
  //#endregion
1717
1963
  //#region src/components/IconButton.vue?vue&type=script&setup=true&lang.ts
1718
- var _hoisted_1$76 = [
1964
+ var _hoisted_1$78 = [
1719
1965
  "disabled",
1720
1966
  "aria-label",
1721
1967
  "title"
@@ -1777,13 +2023,13 @@ var IconButton_default = /* @__PURE__ */ defineComponent({
1777
2023
  }, null, -1)])], 2)) : (openBlock(), createElementBlock("span", {
1778
2024
  key: 1,
1779
2025
  class: normalizeClass(`mint-icon-button__icon--${__props.size}`)
1780
- }, [renderSlot(_ctx.$slots, "default")], 2))], 10, _hoisted_1$76);
2026
+ }, [renderSlot(_ctx.$slots, "default")], 2))], 10, _hoisted_1$78);
1781
2027
  };
1782
2028
  }
1783
2029
  });
1784
2030
  //#endregion
1785
2031
  //#region src/components/ActionMenu.vue?vue&type=script&setup=true&lang.ts
1786
- var _hoisted_1$75 = [
2032
+ var _hoisted_1$77 = [
1787
2033
  "href",
1788
2034
  "target",
1789
2035
  "rel",
@@ -1919,7 +2165,7 @@ var ActionMenu_default = /* @__PURE__ */ defineComponent({
1919
2165
  class: normalizeClass(["mint-action-menu__item", { "mint-action-menu__item--danger": item.danger }]),
1920
2166
  role: "menuitem",
1921
2167
  onClick: ($event) => handleSelect(item)
1922
- }, toDisplayString(item.label), 11, _hoisted_1$75)) : (openBlock(), createElementBlock("button", {
2168
+ }, toDisplayString(item.label), 11, _hoisted_1$77)) : (openBlock(), createElementBlock("button", {
1923
2169
  key: 1,
1924
2170
  type: "button",
1925
2171
  class: normalizeClass(["mint-action-menu__item", { "mint-action-menu__item--danger": item.danger }]),
@@ -1933,7 +2179,7 @@ var ActionMenu_default = /* @__PURE__ */ defineComponent({
1933
2179
  });
1934
2180
  //#endregion
1935
2181
  //#region src/components/ThemeToggle.vue?vue&type=script&setup=true&lang.ts
1936
- var _hoisted_1$74 = {
2182
+ var _hoisted_1$76 = {
1937
2183
  key: 0,
1938
2184
  class: "mint-theme-toggle__icon",
1939
2185
  viewBox: "0 0 24 24",
@@ -1969,7 +2215,7 @@ var ThemeToggle_default = /* @__PURE__ */ defineComponent({
1969
2215
  label: unref(isDark) ? "Switch to light mode" : "Switch to dark mode",
1970
2216
  onClick: unref(toggleTheme)
1971
2217
  }, {
1972
- default: withCtx(() => [unref(isDark) ? (openBlock(), createElementBlock("svg", _hoisted_1$74, [..._cache[0] || (_cache[0] = [
2218
+ default: withCtx(() => [unref(isDark) ? (openBlock(), createElementBlock("svg", _hoisted_1$76, [..._cache[0] || (_cache[0] = [
1973
2219
  createElementVNode("circle", {
1974
2220
  cx: "12",
1975
2221
  cy: "12",
@@ -1995,14 +2241,14 @@ var ThemeToggle_default = /* @__PURE__ */ defineComponent({
1995
2241
  });
1996
2242
  //#endregion
1997
2243
  //#region src/components/CollapsibleCard.vue?vue&type=script&setup=true&lang.ts
1998
- var _hoisted_1$73 = { class: "mint-collapsible-card__header-shell" };
2244
+ var _hoisted_1$75 = { class: "mint-collapsible-card__header-shell" };
1999
2245
  var _hoisted_2$66 = ["disabled", "aria-expanded"];
2000
2246
  var _hoisted_3$62 = { class: "mint-collapsible-card__title-section" };
2001
2247
  var _hoisted_4$59 = ["d"];
2002
2248
  var _hoisted_5$56 = ["d"];
2003
2249
  var _hoisted_6$52 = { class: "mint-collapsible-card__titles" };
2004
- var _hoisted_7$46 = { class: "mint-collapsible-card__title" };
2005
- var _hoisted_8$41 = {
2250
+ var _hoisted_7$47 = { class: "mint-collapsible-card__title" };
2251
+ var _hoisted_8$42 = {
2006
2252
  key: 0,
2007
2253
  class: "mint-collapsible-card__subtitle"
2008
2254
  };
@@ -2117,7 +2363,7 @@ var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
2117
2363
  emit("action", action.id);
2118
2364
  }
2119
2365
  return (_ctx, _cache) => {
2120
- return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-collapsible-card", __props.dense ? "mint-collapsible-card--dense" : ""]) }, [createElementVNode("div", _hoisted_1$73, [createElementVNode("button", {
2366
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-collapsible-card", __props.dense ? "mint-collapsible-card--dense" : ""]) }, [createElementVNode("div", _hoisted_1$75, [createElementVNode("button", {
2121
2367
  type: "button",
2122
2368
  class: normalizeClass(headerClasses.value),
2123
2369
  disabled: __props.disabled,
@@ -2149,7 +2395,7 @@ var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
2149
2395
  key: 1,
2150
2396
  class: "mint-collapsible-card__icon-text",
2151
2397
  style: normalizeStyle(iconColorStyle.value)
2152
- }, toDisplayString(__props.icon), 5))], 4)) : createCommentVNode("", true), createElementVNode("div", _hoisted_6$52, [createElementVNode("h3", _hoisted_7$46, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_8$41, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)])])], 10, _hoisted_2$66), createElementVNode("div", _hoisted_9$39, [
2398
+ }, toDisplayString(__props.icon), 5))], 4)) : createCommentVNode("", true), createElementVNode("div", _hoisted_6$52, [createElementVNode("h3", _hoisted_7$47, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_8$42, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)])])], 10, _hoisted_2$66), createElementVNode("div", _hoisted_9$39, [
2153
2399
  __props.badge !== void 0 ? (openBlock(), createElementBlock("span", {
2154
2400
  key: 0,
2155
2401
  class: normalizeClass(badgeClasses.value)
@@ -2342,7 +2588,7 @@ function isFiniteNumber(value, min, max) {
2342
2588
  }
2343
2589
  //#endregion
2344
2590
  //#region src/components/internal/ActionItemInternal.vue?vue&type=script&setup=true&lang.ts
2345
- var _hoisted_1$72 = [
2591
+ var _hoisted_1$74 = [
2346
2592
  "href",
2347
2593
  "aria-disabled",
2348
2594
  "tabindex"
@@ -2399,7 +2645,7 @@ var ActionItemInternal_default = /* @__PURE__ */ defineComponent({
2399
2645
  "aria-disabled": __props.disabled || void 0,
2400
2646
  tabindex: __props.disabled ? -1 : void 0,
2401
2647
  onClick: handleClick
2402
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$72)) : __props.to ? (openBlock(), createBlock(_component_router_link, {
2648
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$74)) : __props.to ? (openBlock(), createBlock(_component_router_link, {
2403
2649
  key: 1,
2404
2650
  to: __props.to,
2405
2651
  custom: ""
@@ -2421,7 +2667,7 @@ var ActionItemInternal_default = /* @__PURE__ */ defineComponent({
2421
2667
  });
2422
2668
  //#endregion
2423
2669
  //#region src/components/PluginIcon.vue?vue&type=script&setup=true&lang.ts
2424
- var _hoisted_1$71 = ["viewBox"];
2670
+ var _hoisted_1$73 = ["viewBox"];
2425
2671
  var _hoisted_2$64 = { key: 0 };
2426
2672
  var _hoisted_3$60 = [
2427
2673
  "id",
@@ -2450,7 +2696,7 @@ var _hoisted_6$51 = [
2450
2696
  "stroke-width",
2451
2697
  "opacity"
2452
2698
  ];
2453
- var _hoisted_7$45 = {
2699
+ var _hoisted_7$46 = {
2454
2700
  key: 1,
2455
2701
  class: "mint-plugin-icon__svg",
2456
2702
  viewBox: "0 0 24 24",
@@ -2461,7 +2707,7 @@ var _hoisted_7$45 = {
2461
2707
  "stroke-linejoin": "round",
2462
2708
  "aria-hidden": "true"
2463
2709
  };
2464
- var _hoisted_8$40 = ["d"];
2710
+ var _hoisted_8$41 = ["d"];
2465
2711
  var _hoisted_9$38 = ["src"];
2466
2712
  //#endregion
2467
2713
  //#region src/components/PluginIcon.vue
@@ -2571,7 +2817,7 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2571
2817
  "stroke-linejoin": "round"
2572
2818
  }, null, 8, _hoisted_6$51);
2573
2819
  }), 128))
2574
- ], 8, _hoisted_1$71)) : detected.value.format === "path" || detected.value.format === "fallback" ? (openBlock(), createElementBlock("svg", _hoisted_7$45, [createElementVNode("path", { d: iconValue.value }, null, 8, _hoisted_8$40)])) : (openBlock(), createElementBlock("img", {
2820
+ ], 8, _hoisted_1$73)) : detected.value.format === "path" || detected.value.format === "fallback" ? (openBlock(), createElementBlock("svg", _hoisted_7$46, [createElementVNode("path", { d: iconValue.value }, null, 8, _hoisted_8$41)])) : (openBlock(), createElementBlock("img", {
2575
2821
  key: 2,
2576
2822
  class: "mint-plugin-icon__img",
2577
2823
  src: iconValue.value,
@@ -2584,7 +2830,7 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2584
2830
  });
2585
2831
  //#endregion
2586
2832
  //#region src/components/internal/AppTopBarPageSelectorInternal.vue?vue&type=script&setup=true&lang.ts
2587
- var _hoisted_1$70 = ["aria-expanded"];
2833
+ var _hoisted_1$72 = ["aria-expanded"];
2588
2834
  var _hoisted_2$63 = {
2589
2835
  key: 1,
2590
2836
  class: "mint-page-selector__icon-fallback"
@@ -2603,7 +2849,7 @@ var _hoisted_6$50 = {
2603
2849
  key: 1,
2604
2850
  class: "mint-page-selector__icon-fallback"
2605
2851
  };
2606
- var _hoisted_7$44 = { class: "mint-page-selector__item-label" };
2852
+ var _hoisted_7$45 = { class: "mint-page-selector__item-label" };
2607
2853
  //#endregion
2608
2854
  //#region src/components/internal/AppTopBarPageSelectorInternal.vue
2609
2855
  var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
@@ -2666,7 +2912,7 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2666
2912
  "stroke-linecap": "round",
2667
2913
  "stroke-linejoin": "round"
2668
2914
  }, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))])
2669
- ], 10, _hoisted_1$70), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$54, [_cache[2] || (_cache[2] = createElementVNode("div", { class: "mint-page-selector__menu-title" }, "Go to", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPages.value, (page) => {
2915
+ ], 10, _hoisted_1$72), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$54, [_cache[2] || (_cache[2] = createElementVNode("div", { class: "mint-page-selector__menu-title" }, "Go to", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPages.value, (page) => {
2670
2916
  return openBlock(), createBlock(ActionItemInternal_default, {
2671
2917
  key: page.id,
2672
2918
  href: page.href,
@@ -2686,7 +2932,7 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2686
2932
  icon: page.icon,
2687
2933
  size: "sm",
2688
2934
  variant: "solid"
2689
- }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_6$50, toDisplayString(page.label.charAt(0)), 1))])], 2), createElementVNode("span", _hoisted_7$44, toDisplayString(page.label), 1)]),
2935
+ }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_6$50, toDisplayString(page.label.charAt(0)), 1))])], 2), createElementVNode("span", _hoisted_7$45, toDisplayString(page.label), 1)]),
2690
2936
  _: 2
2691
2937
  }, 1032, [
2692
2938
  "href",
@@ -2701,7 +2947,7 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2701
2947
  });
2702
2948
  //#endregion
2703
2949
  //#region src/components/internal/AppTopBarPillNavInternal.vue?vue&type=script&setup=true&lang.ts
2704
- var _hoisted_1$69 = {
2950
+ var _hoisted_1$71 = {
2705
2951
  class: "mint-pill-nav",
2706
2952
  "aria-label": "Primary"
2707
2953
  };
@@ -2734,8 +2980,8 @@ var _hoisted_6$49 = {
2734
2980
  "stroke-linejoin": "round",
2735
2981
  "aria-hidden": "true"
2736
2982
  };
2737
- var _hoisted_7$43 = ["d"];
2738
- var _hoisted_8$39 = ["d"];
2983
+ var _hoisted_7$44 = ["d"];
2984
+ var _hoisted_8$40 = ["d"];
2739
2985
  var _hoisted_9$37 = {
2740
2986
  key: 2,
2741
2987
  class: "mint-pill-nav__dropdown",
@@ -2801,7 +3047,7 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2801
3047
  }
2802
3048
  useEventListener(() => document, "click", handleClickOutside);
2803
3049
  return (_ctx, _cache) => {
2804
- return openBlock(), createElementBlock("nav", _hoisted_1$69, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item) => {
3050
+ return openBlock(), createElementBlock("nav", _hoisted_1$71, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item) => {
2805
3051
  return openBlock(), createElementBlock("div", {
2806
3052
  key: item.id,
2807
3053
  ref_for: true,
@@ -2856,11 +3102,11 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2856
3102
  return openBlock(), createElementBlock("path", {
2857
3103
  key: index,
2858
3104
  d
2859
- }, null, 8, _hoisted_7$43);
3105
+ }, null, 8, _hoisted_7$44);
2860
3106
  }), 128)) : (openBlock(), createElementBlock("path", {
2861
3107
  key: 1,
2862
3108
  d: item.icon
2863
- }, null, 8, _hoisted_8$39))])) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(item.label), 1)]),
3109
+ }, null, 8, _hoisted_8$40))])) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(item.label), 1)]),
2864
3110
  _: 2
2865
3111
  }, 1032, [
2866
3112
  "href",
@@ -2898,7 +3144,7 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2898
3144
  });
2899
3145
  //#endregion
2900
3146
  //#region src/components/AppAvatarMenu.vue?vue&type=script&setup=true&lang.ts
2901
- var _hoisted_1$68 = ["aria-expanded", "title"];
3147
+ var _hoisted_1$70 = ["aria-expanded", "title"];
2902
3148
  var _hoisted_2$61 = { class: "mint-avatar-menu__avatar" };
2903
3149
  var _hoisted_3$57 = {
2904
3150
  key: 0,
@@ -2916,12 +3162,12 @@ var _hoisted_6$48 = {
2916
3162
  key: 1,
2917
3163
  class: "mint-avatar-menu__user-email"
2918
3164
  };
2919
- var _hoisted_7$42 = {
3165
+ var _hoisted_7$43 = {
2920
3166
  key: 0,
2921
3167
  class: "mint-avatar-menu__divider",
2922
3168
  role: "separator"
2923
3169
  };
2924
- var _hoisted_8$38 = {
3170
+ var _hoisted_8$39 = {
2925
3171
  key: 0,
2926
3172
  class: "mint-avatar-menu__item-icon"
2927
3173
  };
@@ -3010,7 +3256,7 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
3010
3256
  title: __props.userName ? `${__props.userName} · Account menu` : "Account menu",
3011
3257
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => unref(toggle) && unref(toggle)(...args), ["stop"])),
3012
3258
  onKeydown: _cache[1] || (_cache[1] = (...args) => unref(handleTriggerKeydown) && unref(handleTriggerKeydown)(...args))
3013
- }, [createElementVNode("span", _hoisted_2$61, [renderSlot(_ctx.$slots, "avatar", { initials: initials.value }, () => [createTextVNode(toDisplayString(initials.value), 1)])]), __props.userName ? (openBlock(), createElementBlock("span", _hoisted_3$57, toDisplayString(__props.userName), 1)) : createCommentVNode("", true)], 42, _hoisted_1$68), unref(isOpen) ? (openBlock(), createElementBlock("div", {
3259
+ }, [createElementVNode("span", _hoisted_2$61, [renderSlot(_ctx.$slots, "avatar", { initials: initials.value }, () => [createTextVNode(toDisplayString(initials.value), 1)])]), __props.userName ? (openBlock(), createElementBlock("span", _hoisted_3$57, toDisplayString(__props.userName), 1)) : createCommentVNode("", true)], 42, _hoisted_1$70), unref(isOpen) ? (openBlock(), createElementBlock("div", {
3014
3260
  key: 0,
3015
3261
  ref_key: "panelRef",
3016
3262
  ref: panelRef,
@@ -3020,7 +3266,7 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
3020
3266
  }, [
3021
3267
  __props.userName || __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_4$55, [__props.userName ? (openBlock(), createElementBlock("div", _hoisted_5$52, toDisplayString(__props.userName), 1)) : createCommentVNode("", true), __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_6$48, toDisplayString(__props.userEmail), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
3022
3268
  renderSlot(_ctx.$slots, "items", { close: closeSilently }, () => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
3023
- return openBlock(), createElementBlock(Fragment, { key: item.id }, [item.divider ? (openBlock(), createElementBlock("div", _hoisted_7$42)) : (openBlock(), createBlock(ActionItemInternal_default, {
3269
+ return openBlock(), createElementBlock(Fragment, { key: item.id }, [item.divider ? (openBlock(), createElementBlock("div", _hoisted_7$43)) : (openBlock(), createBlock(ActionItemInternal_default, {
3024
3270
  key: 1,
3025
3271
  href: item.href,
3026
3272
  to: item.to,
@@ -3029,7 +3275,7 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
3029
3275
  onClick: ($event) => handleSelect(item)
3030
3276
  }, {
3031
3277
  default: withCtx(() => [
3032
- item.icon ? (openBlock(), createElementBlock("span", _hoisted_8$38, [renderSlot(_ctx.$slots, "item-icon", { item })])) : createCommentVNode("", true),
3278
+ item.icon ? (openBlock(), createElementBlock("span", _hoisted_8$39, [renderSlot(_ctx.$slots, "item-icon", { item })])) : createCommentVNode("", true),
3033
3279
  createElementVNode("span", _hoisted_9$36, toDisplayString(item.label), 1),
3034
3280
  item.rightLabel ? (openBlock(), createElementBlock("span", _hoisted_10$33, toDisplayString(item.rightLabel), 1)) : createCommentVNode("", true)
3035
3281
  ]),
@@ -3056,7 +3302,7 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
3056
3302
  });
3057
3303
  //#endregion
3058
3304
  //#region src/components/AppPluginSwitcher.vue?vue&type=script&setup=true&lang.ts
3059
- var _hoisted_1$67 = ["aria-expanded"];
3305
+ var _hoisted_1$69 = ["aria-expanded"];
3060
3306
  var _hoisted_2$60 = { class: "mint-plugin-switcher__label" };
3061
3307
  var _hoisted_3$56 = {
3062
3308
  key: 0,
@@ -3072,11 +3318,11 @@ var _hoisted_5$51 = {
3072
3318
  role: "menu"
3073
3319
  };
3074
3320
  var _hoisted_6$47 = { class: "mint-plugin-switcher__item-label" };
3075
- var _hoisted_7$41 = {
3321
+ var _hoisted_7$42 = {
3076
3322
  key: 0,
3077
3323
  class: "mint-plugin-switcher__item-version"
3078
3324
  };
3079
- var _hoisted_8$37 = {
3325
+ var _hoisted_8$38 = {
3080
3326
  key: 1,
3081
3327
  class: "mint-plugin-switcher__item-check",
3082
3328
  viewBox: "0 0 24 24",
@@ -3149,7 +3395,7 @@ var AppPluginSwitcher_default = /* @__PURE__ */ defineComponent({
3149
3395
  "stroke-linecap": "round",
3150
3396
  "stroke-linejoin": "round"
3151
3397
  }, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))])
3152
- ], 10, _hoisted_1$67), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$51, [
3398
+ ], 10, _hoisted_1$69), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$51, [
3153
3399
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "mint-plugin-switcher__menu-title" }, "Switch plugin", -1)),
3154
3400
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins, (plugin) => {
3155
3401
  return openBlock(), createBlock(ActionItemInternal_default, {
@@ -3166,8 +3412,8 @@ var AppPluginSwitcher_default = /* @__PURE__ */ defineComponent({
3166
3412
  style: normalizeStyle({ background: plugin.color ?? "var(--color-primary)" })
3167
3413
  }, toDisplayString(initialsOf(plugin)), 5),
3168
3414
  createElementVNode("span", _hoisted_6$47, toDisplayString(plugin.label), 1),
3169
- plugin.version ? (openBlock(), createElementBlock("span", _hoisted_7$41, "v" + toDisplayString(plugin.version), 1)) : createCommentVNode("", true),
3170
- plugin.id === __props.current.id ? (openBlock(), createElementBlock("svg", _hoisted_8$37, [..._cache[2] || (_cache[2] = [createElementVNode("path", { d: "M5 13l4 4L19 7" }, null, -1)])])) : createCommentVNode("", true)
3415
+ plugin.version ? (openBlock(), createElementBlock("span", _hoisted_7$42, "v" + toDisplayString(plugin.version), 1)) : createCommentVNode("", true),
3416
+ plugin.id === __props.current.id ? (openBlock(), createElementBlock("svg", _hoisted_8$38, [..._cache[2] || (_cache[2] = [createElementVNode("path", { d: "M5 13l4 4L19 7" }, null, -1)])])) : createCommentVNode("", true)
3171
3417
  ]),
3172
3418
  _: 2
3173
3419
  }, 1032, [
@@ -3246,7 +3492,7 @@ function currentItemIdFromLocation(pages, pathname, routePrefix) {
3246
3492
  }
3247
3493
  //#endregion
3248
3494
  //#region src/components/AppTopBar.vue?vue&type=script&setup=true&lang.ts
3249
- var _hoisted_1$66 = { class: "mint-topbar__container" };
3495
+ var _hoisted_1$68 = { class: "mint-topbar__container" };
3250
3496
  var _hoisted_2$59 = { class: "mint-topbar__brand" };
3251
3497
  var _hoisted_3$55 = ["href"];
3252
3498
  var _hoisted_4$53 = {
@@ -3261,11 +3507,11 @@ var _hoisted_6$46 = {
3261
3507
  key: 0,
3262
3508
  class: "mint-topbar__identity"
3263
3509
  };
3264
- var _hoisted_7$40 = {
3510
+ var _hoisted_7$41 = {
3265
3511
  key: 0,
3266
3512
  class: "mint-topbar__logo"
3267
3513
  };
3268
- var _hoisted_8$36 = {
3514
+ var _hoisted_8$37 = {
3269
3515
  key: 0,
3270
3516
  class: "mint-topbar__identity"
3271
3517
  };
@@ -3366,7 +3612,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
3366
3612
  setup(__props, { emit: __emit }) {
3367
3613
  /** Full application top bar with brand logo, page selector or plugin switcher, centered pill nav, experiment popover, and avatar menu. */
3368
3614
  const props = __props;
3369
- const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-DOcCf0Vo.js").then((n) => n.n));
3615
+ const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-DELMkUFR.js").then((n) => n.n));
3370
3616
  const ExperimentPopover = defineAsyncComponent(() => import("./ExperimentPopover-CJdNlCZb.js").then((n) => n.n));
3371
3617
  const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-DHE9k8TP.js").then((n) => n.n));
3372
3618
  const emit = __emit;
@@ -3404,7 +3650,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
3404
3650
  return (_ctx, _cache) => {
3405
3651
  const _component_router_link = resolveComponent("router-link");
3406
3652
  return openBlock(), createElementBlock(Fragment, null, [
3407
- createElementVNode("header", { class: normalizeClass(["mint-topbar", `mint-topbar--${props.variant}`]) }, [createElementVNode("div", _hoisted_1$66, [
3653
+ createElementVNode("header", { class: normalizeClass(["mint-topbar", `mint-topbar--${props.variant}`]) }, [createElementVNode("div", _hoisted_1$68, [
3408
3654
  createElementVNode("div", _hoisted_2$59, [__props.homePath && (__props.homePath.startsWith("http") || __props.homePath.startsWith("/")) ? (openBlock(), createElementBlock("a", {
3409
3655
  key: 0,
3410
3656
  href: __props.homePath,
@@ -3442,9 +3688,9 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
3442
3688
  tone: pluginIcon.value.color,
3443
3689
  size: "topbar",
3444
3690
  variant: "solid"
3445
- }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_7$40, [..._cache[17] || (_cache[17] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])])) : createCommentVNode("", true)]),
3691
+ }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_7$41, [..._cache[17] || (_cache[17] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])])) : createCommentVNode("", true)]),
3446
3692
  _: 3
3447
- }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || __props.showLogo ? (openBlock(), createElementBlock("span", _hoisted_8$36, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
3693
+ }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || __props.showLogo ? (openBlock(), createElementBlock("span", _hoisted_8$37, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
3448
3694
  key: 0,
3449
3695
  class: "mint-topbar__plugin-icon",
3450
3696
  icon: unref(plugin)?.icon,
@@ -3635,7 +3881,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
3635
3881
  });
3636
3882
  //#endregion
3637
3883
  //#region src/components/StepWizard.vue?vue&type=script&setup=true&lang.ts
3638
- var _hoisted_1$65 = {
3884
+ var _hoisted_1$67 = {
3639
3885
  key: 0,
3640
3886
  class: "mint-wizard__progress"
3641
3887
  };
@@ -3654,8 +3900,8 @@ var _hoisted_5$49 = {
3654
3900
  "stroke-linejoin": "round"
3655
3901
  };
3656
3902
  var _hoisted_6$45 = { class: "mint-wizard__step-label" };
3657
- var _hoisted_7$39 = { class: "mint-wizard__body" };
3658
- var _hoisted_8$35 = { class: "mint-wizard__navigation" };
3903
+ var _hoisted_7$40 = { class: "mint-wizard__body" };
3904
+ var _hoisted_8$36 = { class: "mint-wizard__navigation" };
3659
3905
  var _hoisted_9$33 = ["disabled"];
3660
3906
  var _hoisted_10$31 = ["disabled"];
3661
3907
  var _hoisted_11$29 = ["disabled"];
@@ -3751,7 +3997,7 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3751
3997
  tabindex: "0",
3752
3998
  onKeydown: handleKeydown
3753
3999
  }, [
3754
- props.showProgress ? (openBlock(), createElementBlock("div", _hoisted_1$65, [renderSlot(_ctx.$slots, "progress", {
4000
+ props.showProgress ? (openBlock(), createElementBlock("div", _hoisted_1$67, [renderSlot(_ctx.$slots, "progress", {
3755
4001
  steps: props.steps,
3756
4002
  current: props.modelValue,
3757
4003
  states: stepStates.value
@@ -3764,7 +4010,7 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3764
4010
  onClick: ($event) => goToStep(index)
3765
4011
  }, [createElementVNode("div", _hoisted_4$52, [stepStates.value[index] === "completed" ? (openBlock(), createElementBlock("svg", _hoisted_5$49, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : props.showStepNumbers ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(index + 1), 1)], 64)) : createCommentVNode("", true)]), createElementVNode("div", _hoisted_6$45, toDisplayString(step.label), 1)], 10, _hoisted_3$54)], 64);
3766
4012
  }), 128))])])])) : createCommentVNode("", true),
3767
- createElementVNode("div", _hoisted_7$39, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.steps, (step, index) => {
4013
+ createElementVNode("div", _hoisted_7$40, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.steps, (step, index) => {
3768
4014
  return withDirectives((openBlock(), createElementBlock("div", {
3769
4015
  key: step.id,
3770
4016
  class: "mint-wizard__step-content"
@@ -3773,7 +4019,7 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3773
4019
  index
3774
4020
  })])), [[vShow, index === props.modelValue]]);
3775
4021
  }), 128))]),
3776
- createElementVNode("div", _hoisted_8$35, [renderSlot(_ctx.$slots, "navigation", {
4022
+ createElementVNode("div", _hoisted_8$36, [renderSlot(_ctx.$slots, "navigation", {
3777
4023
  goBack,
3778
4024
  goNext,
3779
4025
  finish,
@@ -3814,7 +4060,7 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3814
4060
  });
3815
4061
  //#endregion
3816
4062
  //#region src/components/internal/FormSectionRenderer.vue?vue&type=script&setup=true&lang.ts
3817
- var _hoisted_1$64 = {
4063
+ var _hoisted_1$66 = {
3818
4064
  key: 0,
3819
4065
  class: "mint-form-section"
3820
4066
  };
@@ -3847,7 +4093,7 @@ var FormSectionRenderer_default = /* @__PURE__ */ defineComponent({
3847
4093
  const visibleFields = computed(() => props.section.fields.filter((f) => props.builder.isFieldVisible(f.name)));
3848
4094
  const gridStyle = computed(() => ({ gridTemplateColumns: `repeat(${props.section.columns ?? 1}, 1fr)` }));
3849
4095
  return (_ctx, _cache) => {
3850
- return visibleFields.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$64, [renderSlot(_ctx.$slots, `section:${__props.section.id}`, {
4096
+ return visibleFields.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$66, [renderSlot(_ctx.$slots, `section:${__props.section.id}`, {
3851
4097
  section: __props.section,
3852
4098
  form: __props.builder.form
3853
4099
  }, () => [__props.section.collapsible ? (openBlock(), createBlock(CollapsibleCard_default, {
@@ -3908,7 +4154,7 @@ var FormSectionRenderer_default = /* @__PURE__ */ defineComponent({
3908
4154
  });
3909
4155
  //#endregion
3910
4156
  //#region src/components/FormActions.vue?vue&type=script&setup=true&lang.ts
3911
- var _hoisted_1$63 = { class: "mint-form-actions" };
4157
+ var _hoisted_1$65 = { class: "mint-form-actions" };
3912
4158
  //#endregion
3913
4159
  //#region src/components/FormActions.vue
3914
4160
  var FormActions_default = /* @__PURE__ */ defineComponent({
@@ -3965,7 +4211,7 @@ var FormActions_default = /* @__PURE__ */ defineComponent({
3965
4211
  */
3966
4212
  const emit = __emit;
3967
4213
  return (_ctx, _cache) => {
3968
- return openBlock(), createElementBlock("div", _hoisted_1$63, [
4214
+ return openBlock(), createElementBlock("div", _hoisted_1$65, [
3969
4215
  __props.showCancel ? (openBlock(), createBlock(BaseButton_default, {
3970
4216
  key: 0,
3971
4217
  variant: "ghost",
@@ -4010,7 +4256,7 @@ var FormActions_default = /* @__PURE__ */ defineComponent({
4010
4256
  });
4011
4257
  //#endregion
4012
4258
  //#region src/components/FormBuilder.vue?vue&type=script&setup=true&lang.ts
4013
- var _hoisted_1$62 = { class: "mint-form-builder__step" };
4259
+ var _hoisted_1$64 = { class: "mint-form-builder__step" };
4014
4260
  //#endregion
4015
4261
  //#region src/components/FormBuilder.vue
4016
4262
  var FormBuilder_default = /* @__PURE__ */ defineComponent({
@@ -4159,7 +4405,7 @@ var FormBuilder_default = /* @__PURE__ */ defineComponent({
4159
4405
  }, createSlots({ _: 2 }, [renderList(resolvedSchema.value.steps, (step) => {
4160
4406
  return {
4161
4407
  name: `step-${step.id}`,
4162
- fn: withCtx(() => [createElementVNode("div", _hoisted_1$62, [(openBlock(true), createElementBlock(Fragment, null, renderList(step.sections, (section) => {
4408
+ fn: withCtx(() => [createElementVNode("div", _hoisted_1$64, [(openBlock(true), createElementBlock(Fragment, null, renderList(step.sections, (section) => {
4163
4409
  return openBlock(), createElementBlock(Fragment, { key: section.id }, [unref(builder).isSectionVisible(section.id) ? (openBlock(), createBlock(FormSectionRenderer_default, {
4164
4410
  key: 0,
4165
4411
  section,
@@ -4246,7 +4492,7 @@ var FormBuilder_default = /* @__PURE__ */ defineComponent({
4246
4492
  });
4247
4493
  //#endregion
4248
4494
  //#region src/components/AppSidebar.vue?vue&type=script&setup=true&lang.ts
4249
- var _hoisted_1$61 = {
4495
+ var _hoisted_1$63 = {
4250
4496
  key: 0,
4251
4497
  class: "mint-sidebar__header"
4252
4498
  };
@@ -4267,8 +4513,8 @@ var _hoisted_6$44 = {
4267
4513
  key: 0,
4268
4514
  class: "mint-sidebar__badge"
4269
4515
  };
4270
- var _hoisted_7$38 = ["aria-label", "aria-expanded"];
4271
- var _hoisted_8$34 = ["id"];
4516
+ var _hoisted_7$39 = ["aria-label", "aria-expanded"];
4517
+ var _hoisted_8$35 = ["id"];
4272
4518
  var _hoisted_9$32 = { class: "mint-sidebar__group-head" };
4273
4519
  var _hoisted_10$30 = ["aria-expanded", "onClick"];
4274
4520
  var _hoisted_11$28 = {
@@ -4589,7 +4835,7 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4589
4835
  class: normalizeClass(sidebarClasses.value),
4590
4836
  style: normalizeStyle(sidebarStyle.value)
4591
4837
  }, [
4592
- _ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 || __props.collapsible ? (openBlock(), createElementBlock("div", _hoisted_1$61, [renderSlot(_ctx.$slots, "header", {
4838
+ _ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 || __props.collapsible ? (openBlock(), createElementBlock("div", _hoisted_1$63, [renderSlot(_ctx.$slots, "header", {
4593
4839
  collapsed: collapsedModel.value,
4594
4840
  toggleCollapsed
4595
4841
  }, () => [!collapsedModel.value ? (openBlock(), createElementBlock("div", _hoisted_2$56, [createElementVNode("div", _hoisted_3$52, [__props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$50, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_5$47, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), __props.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_6$44, toDisplayString(__props.badge), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), __props.collapsible ? (openBlock(), createElementBlock("button", {
@@ -4608,7 +4854,7 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4608
4854
  "stroke-linecap": "round",
4609
4855
  "stroke-linejoin": "round",
4610
4856
  "aria-hidden": "true"
4611
- }, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M11 19l-7-7 7-7m8 14l-7-7 7-7" }, null, -1)])], 2))], 8, _hoisted_7$38)) : createCommentVNode("", true)])])) : createCommentVNode("", true),
4857
+ }, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M11 19l-7-7 7-7m8 14l-7-7 7-7" }, null, -1)])], 2))], 8, _hoisted_7$39)) : createCommentVNode("", true)])])) : createCommentVNode("", true),
4612
4858
  !collapsedModel.value ? (openBlock(), createElementBlock("div", {
4613
4859
  key: 1,
4614
4860
  id: __props.contentId,
@@ -4716,7 +4962,7 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4716
4962
  sections: activeSections.value,
4717
4963
  activeView: resolvedActiveView.value,
4718
4964
  values: resolvedValues.value
4719
- })], 8, _hoisted_8$34)) : _ctx.$slots.collapsed ? (openBlock(), createElementBlock("div", _hoisted_27$10, [renderSlot(_ctx.$slots, "collapsed", {
4965
+ })], 8, _hoisted_8$35)) : _ctx.$slots.collapsed ? (openBlock(), createElementBlock("div", _hoisted_27$10, [renderSlot(_ctx.$slots, "collapsed", {
4720
4966
  sections: activeSections.value,
4721
4967
  expand: expandCollapsed
4722
4968
  })])) : (openBlock(), createElementBlock("div", _hoisted_28$9, [(openBlock(true), createElementBlock(Fragment, null, renderList(activeSections.value, (section) => {
@@ -4750,7 +4996,7 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4750
4996
  });
4751
4997
  //#endregion
4752
4998
  //#region src/components/AppLayout.vue?vue&type=script&setup=true&lang.ts
4753
- var _hoisted_1$60 = {
4999
+ var _hoisted_1$62 = {
4754
5000
  key: 0,
4755
5001
  class: "mint-layout__topbar"
4756
5002
  };
@@ -4856,7 +5102,7 @@ var AppLayout_default = /* @__PURE__ */ defineComponent({
4856
5102
  sidebarOpenModel.value = false;
4857
5103
  }
4858
5104
  return (_ctx, _cache) => {
4859
- return openBlock(), createElementBlock("div", { class: normalizeClass(layoutClasses.value) }, [_ctx.$slots.topbar ? (openBlock(), createElementBlock("div", _hoisted_1$60, [renderSlot(_ctx.$slots, "topbar")])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$55, [
5105
+ return openBlock(), createElementBlock("div", { class: normalizeClass(layoutClasses.value) }, [_ctx.$slots.topbar ? (openBlock(), createElementBlock("div", _hoisted_1$62, [renderSlot(_ctx.$slots, "topbar")])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$55, [
4860
5106
  __props.responsiveSidebar && _ctx.$slots.sidebar ? (openBlock(), createElementBlock("button", {
4861
5107
  key: 0,
4862
5108
  type: "button",
@@ -4882,7 +5128,7 @@ var AppLayout_default = /* @__PURE__ */ defineComponent({
4882
5128
  });
4883
5129
  //#endregion
4884
5130
  //#region src/components/MobileSupportGate.vue?vue&type=script&setup=true&lang.ts
4885
- var _hoisted_1$59 = { class: "mint-mobile-support-gate__panel" };
5131
+ var _hoisted_1$61 = { class: "mint-mobile-support-gate__panel" };
4886
5132
  var _hoisted_2$54 = { class: "mint-mobile-support-gate__copy" };
4887
5133
  var _hoisted_3$50 = { class: "mint-mobile-support-gate__eyebrow" };
4888
5134
  var _hoisted_4$48 = { class: "mint-mobile-support-gate__message" };
@@ -4920,7 +5166,7 @@ var MobileSupportGate_default = /* @__PURE__ */ defineComponent({
4920
5166
  }, [renderSlot(_ctx.$slots, "unsupported", {
4921
5167
  isMobileViewport: unref(isMobileViewport),
4922
5168
  isSupported: unref(isSupported)
4923
- }, () => [createElementVNode("section", _hoisted_1$59, [
5169
+ }, () => [createElementVNode("section", _hoisted_1$61, [
4924
5170
  _cache[1] || (_cache[1] = createStaticVNode("<div class=\"mint-mobile-support-gate__mark\" aria-hidden=\"true\"><svg class=\"mint-mobile-support-gate__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"12\" rx=\"2\"></rect><path d=\"M8 20h8\"></path><path d=\"M12 16v4\"></path></svg></div>", 1)),
4925
5171
  createElementVNode("div", _hoisted_2$54, [
4926
5172
  createElementVNode("p", _hoisted_3$50, toDisplayString(__props.appName), 1),
@@ -5551,36 +5797,39 @@ function humanize(value) {
5551
5797
  }
5552
5798
  //#endregion
5553
5799
  //#region src/components/ChartContainer.vue?vue&type=script&setup=true&lang.ts
5554
- var _hoisted_1$58 = { class: "mint-chart" };
5555
- var _hoisted_2$53 = {
5800
+ var _hoisted_1$60 = {
5556
5801
  key: 0,
5557
5802
  class: "mint-chart__header"
5558
5803
  };
5559
- var _hoisted_3$49 = {
5804
+ var _hoisted_2$53 = {
5560
5805
  key: 0,
5561
5806
  class: "mint-chart__header-text"
5562
5807
  };
5563
- var _hoisted_4$47 = {
5808
+ var _hoisted_3$49 = {
5564
5809
  key: 0,
5565
5810
  class: "mint-chart__title"
5566
5811
  };
5567
- var _hoisted_5$44 = {
5812
+ var _hoisted_4$47 = {
5568
5813
  key: 1,
5569
5814
  class: "mint-chart__description"
5570
5815
  };
5571
- var _hoisted_6$42 = {
5572
- key: 1,
5816
+ var _hoisted_5$44 = {
5817
+ key: 0,
5573
5818
  class: "mint-chart__toolbar"
5574
5819
  };
5575
- var _hoisted_7$37 = { class: "mint-chart__body" };
5576
- var _hoisted_8$33 = {
5820
+ var _hoisted_6$42 = { class: "mint-chart__body" };
5821
+ var _hoisted_7$38 = {
5577
5822
  key: 0,
5578
5823
  class: "mint-chart__loading-overlay"
5579
5824
  };
5580
- var _hoisted_9$31 = {
5825
+ var _hoisted_8$34 = {
5581
5826
  key: 1,
5582
5827
  class: "mint-chart__legend"
5583
5828
  };
5829
+ var _hoisted_9$31 = {
5830
+ key: 2,
5831
+ class: "mint-chart__footer"
5832
+ };
5584
5833
  //#endregion
5585
5834
  //#region src/components/ChartContainer.vue
5586
5835
  var ChartContainer_default = /* @__PURE__ */ defineComponent({
@@ -5596,26 +5845,29 @@ var ChartContainer_default = /* @__PURE__ */ defineComponent({
5596
5845
  type: Boolean,
5597
5846
  default: false
5598
5847
  },
5599
- emptyMessage: { default: "No data available" }
5848
+ emptyMessage: { default: "No data available" },
5849
+ variant: { default: "card" }
5600
5850
  },
5601
5851
  setup(__props) {
5602
5852
  /** Wraps a chart with header, toolbar slot, loading overlay, empty state, and legend slot. */
5603
5853
  return (_ctx, _cache) => {
5604
- return openBlock(), createElementBlock("div", _hoisted_1$58, [
5605
- __props.title || __props.description || _ctx.$slots.toolbar ? (openBlock(), createElementBlock("div", _hoisted_2$53, [__props.title || __props.description ? (openBlock(), createElementBlock("div", _hoisted_3$49, [__props.title ? (openBlock(), createElementBlock("h3", _hoisted_4$47, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.description ? (openBlock(), createElementBlock("p", _hoisted_5$44, toDisplayString(__props.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), _ctx.$slots.toolbar ? (openBlock(), createElementBlock("div", _hoisted_6$42, [renderSlot(_ctx.$slots, "toolbar")])) : createCommentVNode("", true)])) : createCommentVNode("", true),
5606
- createElementVNode("div", _hoisted_7$37, [__props.loading ? (openBlock(), createElementBlock("div", _hoisted_8$33, [createVNode(LoadingSpinner_default, { size: "lg" })])) : __props.empty ? renderSlot(_ctx.$slots, "empty", { key: 1 }, () => [createVNode(EmptyState_default, {
5854
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-chart", `mint-chart--${__props.variant}`]) }, [
5855
+ __props.title || __props.description || _ctx.$slots.header || _ctx.$slots.toolbar ? (openBlock(), createElementBlock("div", _hoisted_1$60, [renderSlot(_ctx.$slots, "header", {}, () => [__props.title || __props.description ? (openBlock(), createElementBlock("div", _hoisted_2$53, [__props.title ? (openBlock(), createElementBlock("h3", _hoisted_3$49, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.description ? (openBlock(), createElementBlock("p", _hoisted_4$47, toDisplayString(__props.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true)]), _ctx.$slots.toolbar ? (openBlock(), createElementBlock("div", _hoisted_5$44, [renderSlot(_ctx.$slots, "toolbar")])) : createCommentVNode("", true)])) : createCommentVNode("", true),
5856
+ renderSlot(_ctx.$slots, "subhead"),
5857
+ createElementVNode("div", _hoisted_6$42, [__props.loading ? (openBlock(), createElementBlock("div", _hoisted_7$38, [createVNode(LoadingSpinner_default, { size: "lg" })])) : __props.empty ? renderSlot(_ctx.$slots, "empty", { key: 1 }, () => [createVNode(EmptyState_default, {
5607
5858
  title: __props.emptyMessage,
5608
5859
  size: "sm",
5609
5860
  "icon-path": "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"
5610
5861
  }, null, 8, ["title"])]) : renderSlot(_ctx.$slots, "default", { key: 2 })]),
5611
- _ctx.$slots.legend ? (openBlock(), createElementBlock("div", _hoisted_9$31, [renderSlot(_ctx.$slots, "legend")])) : createCommentVNode("", true)
5612
- ]);
5862
+ _ctx.$slots.legend ? (openBlock(), createElementBlock("div", _hoisted_8$34, [renderSlot(_ctx.$slots, "legend")])) : createCommentVNode("", true),
5863
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_9$31, [renderSlot(_ctx.$slots, "footer")])) : createCommentVNode("", true)
5864
+ ], 2);
5613
5865
  };
5614
5866
  }
5615
5867
  });
5616
5868
  //#endregion
5617
5869
  //#region src/components/PlotlyChart.vue?vue&type=script&setup=true&lang.ts
5618
- var _hoisted_1$57 = ["aria-label"];
5870
+ var _hoisted_1$59 = ["aria-label"];
5619
5871
  //#endregion
5620
5872
  //#region src/components/PlotlyChart.vue
5621
5873
  var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -5635,9 +5887,21 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5635
5887
  default: false
5636
5888
  },
5637
5889
  emptyMessage: { default: "No data available" },
5638
- ariaLabel: { default: "Interactive Plotly chart" }
5890
+ ariaLabel: { default: "Interactive Plotly chart" },
5891
+ plotly: {},
5892
+ active: {
5893
+ type: Boolean,
5894
+ default: true
5895
+ },
5896
+ height: {},
5897
+ clickEvents: {
5898
+ type: Boolean,
5899
+ default: false
5900
+ },
5901
+ variant: { default: "card" }
5639
5902
  },
5640
- setup(__props) {
5903
+ emits: ["plotly-click"],
5904
+ setup(__props, { emit: __emit }) {
5641
5905
  /**
5642
5906
  * Render native Plotly data with MINT loading, empty, theme, and error states.
5643
5907
  *
@@ -5655,9 +5919,10 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5655
5919
  * ```
5656
5920
  */
5657
5921
  const props = __props;
5922
+ const emit = __emit;
5658
5923
  const chartElement = ref(null);
5659
5924
  const failed = ref(false);
5660
- let plotly = null;
5925
+ let plotly = props.plotly ?? null;
5661
5926
  let resizeObserver = null;
5662
5927
  let themeObserver = null;
5663
5928
  let renderedElement = null;
@@ -5665,9 +5930,15 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5665
5930
  let disposed = false;
5666
5931
  let revision = 0;
5667
5932
  async function loadPlotly() {
5933
+ if (props.plotly) return props.plotly;
5668
5934
  const module = await import("./plotly.min-c2Sez60c.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
5669
5935
  return "default" in module ? module.default : module;
5670
5936
  }
5937
+ function bindEvents(element) {
5938
+ const host = element;
5939
+ host.removeAllListeners?.("plotly_click");
5940
+ if (props.clickEvents) host.on?.("plotly_click", (event) => emit("plotly-click", event));
5941
+ }
5671
5942
  function cssValue(name, fallback) {
5672
5943
  return getComputedStyle(chartElement.value ?? document.documentElement).getPropertyValue(name).trim() || getComputedStyle(document.documentElement).getPropertyValue(name).trim() || fallback;
5673
5944
  }
@@ -5711,17 +5982,17 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5711
5982
  }
5712
5983
  async function renderChart() {
5713
5984
  revision++;
5714
- if (rendering || disposed || props.loading || props.empty) return;
5985
+ if (rendering || disposed || !props.active || props.loading || props.empty) return;
5715
5986
  rendering = true;
5716
5987
  try {
5717
- while (!disposed && !props.loading && !props.empty) {
5988
+ while (!disposed && props.active && !props.loading && !props.empty) {
5718
5989
  const currentRevision = revision;
5719
5990
  failed.value = false;
5720
5991
  await nextTick();
5721
- if (disposed || props.loading || props.empty) break;
5992
+ if (disposed || !props.active || props.loading || props.empty) break;
5722
5993
  try {
5723
5994
  plotly ??= await loadPlotly();
5724
- if (disposed || props.loading || props.empty) break;
5995
+ if (disposed || !props.active || props.loading || props.empty) break;
5725
5996
  if (currentRevision !== revision) continue;
5726
5997
  const element = chartElement.value;
5727
5998
  if (!element) break;
@@ -5732,7 +6003,10 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5732
6003
  ...props.config
5733
6004
  });
5734
6005
  if (disposed || props.loading || props.empty || element !== chartElement.value) purgeChart();
5735
- else resizeObserver?.observe(element);
6006
+ else if (props.active) {
6007
+ bindEvents(element);
6008
+ resizeObserver?.observe(element);
6009
+ }
5736
6010
  } catch {
5737
6011
  purgeChart();
5738
6012
  if (!disposed && currentRevision === revision) failed.value = true;
@@ -5746,7 +6020,7 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5746
6020
  }
5747
6021
  onMounted(() => {
5748
6022
  if (typeof ResizeObserver !== "undefined") resizeObserver = new ResizeObserver(() => {
5749
- if (rendering || !plotly || !renderedElement) return;
6023
+ if (rendering || !props.active || !plotly || !renderedElement) return;
5750
6024
  Promise.resolve(plotly.Plots.resize(renderedElement)).catch(() => {});
5751
6025
  });
5752
6026
  if (typeof MutationObserver !== "undefined") {
@@ -5763,14 +6037,26 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5763
6037
  () => props.layout,
5764
6038
  () => props.config,
5765
6039
  () => props.loading,
5766
- () => props.empty
6040
+ () => props.empty,
6041
+ () => props.active
5767
6042
  ], () => {
5768
- if (props.loading || props.empty) {
6043
+ if (props.loading || props.empty || !props.active) {
5769
6044
  resizeObserver?.disconnect();
5770
- if (!rendering) purgeChart();
6045
+ if ((props.loading || props.empty) && !rendering) purgeChart();
5771
6046
  }
5772
6047
  renderChart();
5773
6048
  });
6049
+ watch(() => props.clickEvents, () => {
6050
+ if (renderedElement) bindEvents(renderedElement);
6051
+ });
6052
+ const chartStyle = computed(() => {
6053
+ if (props.height === void 0) return void 0;
6054
+ const height = typeof props.height === "number" ? `${props.height}px` : props.height;
6055
+ return {
6056
+ height,
6057
+ minHeight: height
6058
+ };
6059
+ });
5774
6060
  onBeforeUnmount(() => {
5775
6061
  disposed = true;
5776
6062
  resizeObserver?.disconnect();
@@ -5783,45 +6069,63 @@ var PlotlyChart_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @
5783
6069
  description: __props.description,
5784
6070
  loading: __props.loading,
5785
6071
  empty: __props.empty,
5786
- "empty-message": __props.emptyMessage
6072
+ "empty-message": __props.emptyMessage,
6073
+ variant: __props.variant
5787
6074
  }, createSlots({
5788
6075
  default: withCtx(() => [failed.value ? renderSlot(_ctx.$slots, "error", { key: 0 }, () => [_cache[0] || (_cache[0] = createElementVNode("div", { class: "mint-plotly-chart__error" }, [createElementVNode("p", { role: "alert" }, "Unable to display this chart.")], -1))], true) : createCommentVNode("", true), withDirectives(createElementVNode("div", {
5789
6076
  ref_key: "chartElement",
5790
6077
  ref: chartElement,
5791
6078
  class: "mint-plotly-chart__plot",
5792
6079
  role: "group",
5793
- "aria-label": __props.ariaLabel
5794
- }, null, 8, _hoisted_1$57), [[vShow, !failed.value]])]),
6080
+ "aria-label": __props.ariaLabel,
6081
+ style: normalizeStyle(chartStyle.value)
6082
+ }, null, 12, _hoisted_1$59), [[vShow, !failed.value]])]),
5795
6083
  _: 2
5796
6084
  }, [
6085
+ _ctx.$slots.header ? {
6086
+ name: "header",
6087
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "header", {}, void 0, true)]),
6088
+ key: "0"
6089
+ } : void 0,
5797
6090
  _ctx.$slots.toolbar ? {
5798
6091
  name: "toolbar",
5799
6092
  fn: withCtx(() => [renderSlot(_ctx.$slots, "toolbar", {}, void 0, true)]),
5800
- key: "0"
6093
+ key: "1"
6094
+ } : void 0,
6095
+ _ctx.$slots.subhead ? {
6096
+ name: "subhead",
6097
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "subhead", {}, void 0, true)]),
6098
+ key: "2"
5801
6099
  } : void 0,
5802
6100
  _ctx.$slots.empty ? {
5803
6101
  name: "empty",
5804
6102
  fn: withCtx(() => [renderSlot(_ctx.$slots, "empty", {}, void 0, true)]),
5805
- key: "1"
6103
+ key: "3"
5806
6104
  } : void 0,
5807
6105
  _ctx.$slots.legend ? {
5808
6106
  name: "legend",
5809
6107
  fn: withCtx(() => [renderSlot(_ctx.$slots, "legend", {}, void 0, true)]),
5810
- key: "2"
6108
+ key: "4"
6109
+ } : void 0,
6110
+ _ctx.$slots.footer ? {
6111
+ name: "footer",
6112
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "footer", {}, void 0, true)]),
6113
+ key: "5"
5811
6114
  } : void 0
5812
6115
  ]), 1032, [
5813
6116
  "title",
5814
6117
  "description",
5815
6118
  "loading",
5816
6119
  "empty",
5817
- "empty-message"
6120
+ "empty-message",
6121
+ "variant"
5818
6122
  ]);
5819
6123
  };
5820
6124
  }
5821
- }), [["__scopeId", "data-v-ee2f733a"]]);
6125
+ }), [["__scopeId", "data-v-7b24d547"]]);
5822
6126
  //#endregion
5823
6127
  //#region src/components/GeneratedPlotlyResult.vue?vue&type=script&setup=true&lang.ts
5824
- var _hoisted_1$56 = ["src"];
6128
+ var _hoisted_1$58 = ["src"];
5825
6129
  //#endregion
5826
6130
  //#region src/components/GeneratedPlotlyResult.vue
5827
6131
  var GeneratedPlotlyResult_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -5850,7 +6154,7 @@ var GeneratedPlotlyResult_default = /* @__PURE__ */ _plugin_vue_export_helper_de
5850
6154
  class: "mint-generated-result__image",
5851
6155
  src: `data:${__props.fallback.media_type};base64,${__props.fallback.data}`,
5852
6156
  alt: "Static Plotly chart fallback"
5853
- }, null, 8, _hoisted_1$56)]),
6157
+ }, null, 8, _hoisted_1$58)]),
5854
6158
  key: "0"
5855
6159
  } : void 0]), 1032, [
5856
6160
  "data",
@@ -5862,7 +6166,7 @@ var GeneratedPlotlyResult_default = /* @__PURE__ */ _plugin_vue_export_helper_de
5862
6166
  }), [["__scopeId", "data-v-4a6d15d5"]]);
5863
6167
  //#endregion
5864
6168
  //#region src/components/GeneratedResultRenderer.vue?vue&type=script&setup=true&lang.ts
5865
- var _hoisted_1$55 = {
6169
+ var _hoisted_1$57 = {
5866
6170
  class: "mint-generated-result",
5867
6171
  "aria-live": "polite"
5868
6172
  };
@@ -5909,7 +6213,7 @@ var GeneratedResultRenderer_default = /* @__PURE__ */ _plugin_vue_export_helper_
5909
6213
  return value.replace(/[_-]+/g, " ").replace(/^\w/, (character) => character.toUpperCase());
5910
6214
  }
5911
6215
  return (_ctx, _cache) => {
5912
- return openBlock(), createElementBlock("article", _hoisted_1$55, [__props.result.kind === "text" ? (openBlock(), createElementBlock("p", _hoisted_2$52, toDisplayString(__props.result.text), 1)) : __props.result.kind === "json" ? (openBlock(), createElementBlock("pre", _hoisted_3$48, toDisplayString(formattedJson.value), 1)) : __props.result.kind === "table" ? (openBlock(), createBlock(DataFrame_default, {
6216
+ return openBlock(), createElementBlock("article", _hoisted_1$57, [__props.result.kind === "text" ? (openBlock(), createElementBlock("p", _hoisted_2$52, toDisplayString(__props.result.text), 1)) : __props.result.kind === "json" ? (openBlock(), createElementBlock("pre", _hoisted_3$48, toDisplayString(formattedJson.value), 1)) : __props.result.kind === "table" ? (openBlock(), createBlock(DataFrame_default, {
5913
6217
  key: 2,
5914
6218
  data: __props.result.rows,
5915
6219
  columns: tableColumns.value,
@@ -5942,7 +6246,7 @@ var GeneratedResultRenderer_default = /* @__PURE__ */ _plugin_vue_export_helper_
5942
6246
  }), [["__scopeId", "data-v-7500041f"]]);
5943
6247
  //#endregion
5944
6248
  //#region src/components/JobsStatusTray.vue?vue&type=script&setup=true&lang.ts
5945
- var _hoisted_1$54 = { class: "mint-jobs-tray" };
6249
+ var _hoisted_1$56 = { class: "mint-jobs-tray" };
5946
6250
  var _hoisted_2$51 = ["aria-expanded"];
5947
6251
  var _hoisted_3$47 = { class: "mint-jobs-tray__trigger-label" };
5948
6252
  var _hoisted_4$45 = {
@@ -5952,8 +6256,8 @@ var _hoisted_4$45 = {
5952
6256
  };
5953
6257
  var _hoisted_5$42 = { class: "mint-jobs-tray__header" };
5954
6258
  var _hoisted_6$41 = { class: "mint-jobs-tray__subtitle" };
5955
- var _hoisted_7$36 = { class: "mint-jobs-tray__header-actions" };
5956
- var _hoisted_8$32 = ["disabled"];
6259
+ var _hoisted_7$37 = { class: "mint-jobs-tray__header-actions" };
6260
+ var _hoisted_8$33 = ["disabled"];
5957
6261
  var _hoisted_9$30 = {
5958
6262
  class: "mint-jobs-tray__tabs",
5959
6263
  role: "tablist",
@@ -6111,7 +6415,7 @@ var JobsStatusTray_default = /* @__PURE__ */ defineComponent({
6111
6415
  return openBlock(), createBlock(Teleport, {
6112
6416
  to: teleportTarget.value,
6113
6417
  disabled: __props.teleportTo === false
6114
- }, [createElementVNode("div", _hoisted_1$54, [
6418
+ }, [createElementVNode("div", _hoisted_1$56, [
6115
6419
  createElementVNode("button", {
6116
6420
  ref_key: "triggerRef",
6117
6421
  ref: triggerRef,
@@ -6157,7 +6461,7 @@ var JobsStatusTray_default = /* @__PURE__ */ defineComponent({
6157
6461
  createElementVNode("header", _hoisted_5$42, [createElementVNode("div", null, [createElementVNode("h2", {
6158
6462
  id: titleId,
6159
6463
  class: "mint-jobs-tray__title"
6160
- }, toDisplayString(__props.title), 1), createElementVNode("p", _hoisted_6$41, toDisplayString(unref(tray).jobs.value.length) + " total", 1)]), createElementVNode("div", _hoisted_7$36, [unref(tray).canRefresh.value ? (openBlock(), createElementBlock("button", {
6464
+ }, toDisplayString(__props.title), 1), createElementVNode("p", _hoisted_6$41, toDisplayString(unref(tray).jobs.value.length) + " total", 1)]), createElementVNode("div", _hoisted_7$37, [unref(tray).canRefresh.value ? (openBlock(), createElementBlock("button", {
6161
6465
  key: 0,
6162
6466
  type: "button",
6163
6467
  class: "mint-jobs-tray__icon-button",
@@ -6169,7 +6473,7 @@ var JobsStatusTray_default = /* @__PURE__ */ defineComponent({
6169
6473
  fill: "none",
6170
6474
  stroke: "currentColor",
6171
6475
  "aria-hidden": "true"
6172
- }, [createElementVNode("path", { d: "M20 6v5h-5M4 18v-5h5" }), createElementVNode("path", { d: "M18.4 9A7 7 0 0 0 6.1 6.1L4 8m2 7a7 7 0 0 0 11.9 2.9L20 16" })], -1)])], 8, _hoisted_8$32)) : createCommentVNode("", true), createElementVNode("button", {
6476
+ }, [createElementVNode("path", { d: "M20 6v5h-5M4 18v-5h5" }), createElementVNode("path", { d: "M18.4 9A7 7 0 0 0 6.1 6.1L4 8m2 7a7 7 0 0 0 11.9 2.9L20 16" })], -1)])], 8, _hoisted_8$33)) : createCommentVNode("", true), createElementVNode("button", {
6173
6477
  type: "button",
6174
6478
  class: "mint-jobs-tray__icon-button",
6175
6479
  "aria-label": "Close jobs",
@@ -6279,7 +6583,7 @@ var JobsStatusTray_default = /* @__PURE__ */ defineComponent({
6279
6583
  });
6280
6584
  //#endregion
6281
6585
  //#region src/components/GeneratedPluginView.vue?vue&type=script&setup=true&lang.ts
6282
- var _hoisted_1$53 = { class: "mint-generated-workspace" };
6586
+ var _hoisted_1$55 = { class: "mint-generated-workspace" };
6283
6587
  var _hoisted_2$50 = {
6284
6588
  key: 0,
6285
6589
  class: "mint-generated-workspace__loading"
@@ -6392,7 +6696,7 @@ var GeneratedPluginView_default = /* @__PURE__ */ _plugin_vue_export_helper_defa
6392
6696
  "onUpdate:values": updateValues,
6393
6697
  onFormSubmit: submitJob
6394
6698
  }, {
6395
- default: withCtx(() => [createElementVNode("main", _hoisted_1$53, [unref(generated).isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$50, [createVNode(LoadingSpinner_default, { size: "lg" }), _cache[1] || (_cache[1] = createElementVNode("span", null, "Loading analysis workspace", -1))])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
6699
+ default: withCtx(() => [createElementVNode("main", _hoisted_1$55, [unref(generated).isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$50, [createVNode(LoadingSpinner_default, { size: "lg" }), _cache[1] || (_cache[1] = createElementVNode("span", null, "Loading analysis workspace", -1))])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
6396
6700
  unref(generated).error.value ? (openBlock(), createBlock(AlertBox_default, {
6397
6701
  key: 0,
6398
6702
  type: "error",
@@ -6435,7 +6739,7 @@ var GeneratedPluginView_default = /* @__PURE__ */ _plugin_vue_export_helper_defa
6435
6739
  }), [["__scopeId", "data-v-e6faabe4"]]);
6436
6740
  //#endregion
6437
6741
  //#region src/components/DoseCalculatorVolumeField.vue?vue&type=script&setup=true&lang.ts
6438
- var _hoisted_1$52 = { class: "mint-dose-calculator__field" };
6742
+ var _hoisted_1$54 = { class: "mint-dose-calculator__field" };
6439
6743
  var _hoisted_2$49 = { class: "mint-dose-calculator__field-label" };
6440
6744
  var _hoisted_3$45 = { class: "mint-dose-calculator__field-row" };
6441
6745
  var _hoisted_4$43 = ["value", "disabled"];
@@ -6476,7 +6780,7 @@ var DoseCalculatorVolumeField_default = /* @__PURE__ */ defineComponent({
6476
6780
  });
6477
6781
  }
6478
6782
  return (_ctx, _cache) => {
6479
- return openBlock(), createElementBlock("div", _hoisted_1$52, [createElementVNode("label", _hoisted_2$49, toDisplayString(__props.label), 1), createElementVNode("div", _hoisted_3$45, [createElementVNode("input", {
6783
+ return openBlock(), createElementBlock("div", _hoisted_1$54, [createElementVNode("label", _hoisted_2$49, toDisplayString(__props.label), 1), createElementVNode("div", _hoisted_3$45, [createElementVNode("input", {
6480
6784
  type: "number",
6481
6785
  value: __props.modelValue.value,
6482
6786
  disabled: __props.disabled,
@@ -6500,7 +6804,7 @@ var DoseCalculatorVolumeField_default = /* @__PURE__ */ defineComponent({
6500
6804
  });
6501
6805
  //#endregion
6502
6806
  //#region src/components/DoseCalculator.vue?vue&type=script&setup=true&lang.ts
6503
- var _hoisted_1$51 = {
6807
+ var _hoisted_1$53 = {
6504
6808
  key: 0,
6505
6809
  class: "mint-dose-calculator__tabs",
6506
6810
  role: "tablist"
@@ -6514,8 +6818,8 @@ var _hoisted_5$39 = {
6514
6818
  role: "tabpanel"
6515
6819
  };
6516
6820
  var _hoisted_6$38 = { class: "mint-dose-calculator__field" };
6517
- var _hoisted_7$35 = { class: "mint-dose-calculator__field" };
6518
- var _hoisted_8$31 = {
6821
+ var _hoisted_7$36 = { class: "mint-dose-calculator__field" };
6822
+ var _hoisted_8$32 = {
6519
6823
  key: 0,
6520
6824
  class: "mint-dose-calculator__result"
6521
6825
  };
@@ -6693,7 +6997,7 @@ var DoseCalculator_default = /* @__PURE__ */ defineComponent({
6693
6997
  });
6694
6998
  return (_ctx, _cache) => {
6695
6999
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-dose-calculator", __props.disabled ? "mint-dose-calculator--disabled" : ""]) }, [
6696
- showTabs.value ? (openBlock(), createElementBlock("div", _hoisted_1$51, [
7000
+ showTabs.value ? (openBlock(), createElementBlock("div", _hoisted_1$53, [
6697
7001
  createElementVNode("button", {
6698
7002
  type: "button",
6699
7003
  class: normalizeClass(["mint-dose-calculator__tab", activeMode.value === "dilution" ? "mint-dose-calculator__tab--active" : ""]),
@@ -6724,7 +7028,7 @@ var DoseCalculator_default = /* @__PURE__ */ defineComponent({
6724
7028
  "show-conversion": false,
6725
7029
  size: "md"
6726
7030
  }, null, 8, ["modelValue", "disabled"])]),
6727
- createElementVNode("div", _hoisted_7$35, [_cache[11] || (_cache[11] = createElementVNode("label", { class: "mint-dose-calculator__field-label" }, "Final Concentration", -1)), createVNode(ConcentrationInput_default, {
7031
+ createElementVNode("div", _hoisted_7$36, [_cache[11] || (_cache[11] = createElementVNode("label", { class: "mint-dose-calculator__field-label" }, "Final Concentration", -1)), createVNode(ConcentrationInput_default, {
6728
7032
  modelValue: finalConcentration.value,
6729
7033
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => finalConcentration.value = $event),
6730
7034
  disabled: __props.disabled,
@@ -6743,7 +7047,7 @@ var DoseCalculator_default = /* @__PURE__ */ defineComponent({
6743
7047
  "disabled"
6744
7048
  ]),
6745
7049
  _cache[16] || (_cache[16] = createElementVNode("div", { class: "mint-dose-calculator__divider" }, null, -1)),
6746
- dilutionResult.value?.valid ? (openBlock(), createElementBlock("div", _hoisted_8$31, [
7050
+ dilutionResult.value?.valid ? (openBlock(), createElementBlock("div", _hoisted_8$32, [
6747
7051
  _cache[15] || (_cache[15] = createElementVNode("div", { class: "mint-dose-calculator__result-title" }, "Result", -1)),
6748
7052
  createElementVNode("div", _hoisted_9$29, [_cache[12] || (_cache[12] = createElementVNode("span", { class: "mint-dose-calculator__result-label" }, "Stock volume", -1)), createElementVNode("span", _hoisted_10$28, toDisplayString(unref(formatVolume)(dilutionResult.value.stockVolume)), 1)]),
6749
7053
  createElementVNode("div", _hoisted_11$26, [_cache[13] || (_cache[13] = createElementVNode("span", { class: "mint-dose-calculator__result-label" }, "Diluent volume", -1)), createElementVNode("span", _hoisted_12$25, toDisplayString(unref(formatVolume)(dilutionResult.value.diluentVolume)), 1)]),
@@ -6854,7 +7158,7 @@ function formatProtocolDuration(minutes) {
6854
7158
  }
6855
7159
  //#endregion
6856
7160
  //#region src/components/ExperimentTimeline.vue?vue&type=script&setup=true&lang.ts
6857
- var _hoisted_1$50 = ["aria-label"];
7161
+ var _hoisted_1$52 = ["aria-label"];
6858
7162
  var _hoisted_2$47 = [
6859
7163
  "draggable",
6860
7164
  "tabindex",
@@ -6875,8 +7179,8 @@ var _hoisted_5$38 = {
6875
7179
  viewBox: "0 0 24 24"
6876
7180
  };
6877
7181
  var _hoisted_6$37 = ["d"];
6878
- var _hoisted_7$34 = { class: "mint-timeline__content" };
6879
- var _hoisted_8$30 = { class: "mint-timeline__title-row" };
7182
+ var _hoisted_7$35 = { class: "mint-timeline__content" };
7183
+ var _hoisted_8$31 = { class: "mint-timeline__title-row" };
6880
7184
  var _hoisted_9$28 = ["aria-label", "onClick"];
6881
7185
  var _hoisted_10$27 = ["aria-expanded"];
6882
7186
  var _hoisted_11$25 = {
@@ -7097,7 +7401,7 @@ var ExperimentTimeline_default = /* @__PURE__ */ defineComponent({
7097
7401
  "stroke-width": "2",
7098
7402
  d: unref(PROTOCOL_STEP_TYPE_ICONS)[step.type]
7099
7403
  }, null, 8, _hoisted_6$37)]))], 6),
7100
- createElementVNode("div", _hoisted_7$34, [createElementVNode("div", _hoisted_8$30, [createElementVNode("span", { class: normalizeClass(["mint-timeline__title", `mint-timeline__title--${__props.size}`]) }, toDisplayString(step.name), 3), __props.showDuration && step.duration ? (openBlock(), createElementBlock("span", {
7404
+ createElementVNode("div", _hoisted_7$35, [createElementVNode("div", _hoisted_8$31, [createElementVNode("span", { class: normalizeClass(["mint-timeline__title", `mint-timeline__title--${__props.size}`]) }, toDisplayString(step.name), 3), __props.showDuration && step.duration ? (openBlock(), createElementBlock("span", {
7101
7405
  key: 0,
7102
7406
  class: normalizeClass(["mint-timeline__duration", __props.size === "sm" ? "mint-timeline__duration--sm" : ""])
7103
7407
  }, toDisplayString(unref(formatProtocolDuration)(step.duration)), 3)) : createCommentVNode("", true)]), createElementVNode("div", { class: normalizeClass(["mint-timeline__type", `mint-timeline__type--${__props.size}`]) }, toDisplayString(step.type.replace("_", " ")), 3)]),
@@ -7218,20 +7522,20 @@ var ExperimentTimeline_default = /* @__PURE__ */ defineComponent({
7218
7522
  "aria-live": "polite",
7219
7523
  style: normalizeStyle(unref(announcerStyle))
7220
7524
  }, toDisplayString(unref(reorderAnnouncement)), 5)
7221
- ], 10, _hoisted_1$50);
7525
+ ], 10, _hoisted_1$52);
7222
7526
  };
7223
7527
  }
7224
7528
  });
7225
7529
  //#endregion
7226
7530
  //#region src/components/internal/WellEditPopupInternal.vue?vue&type=script&setup=true&lang.ts
7227
- var _hoisted_1$49 = { class: "mint-well-edit-popup__header" };
7531
+ var _hoisted_1$51 = { class: "mint-well-edit-popup__header" };
7228
7532
  var _hoisted_2$46 = { class: "mint-well-edit-popup__header-left" };
7229
7533
  var _hoisted_3$42 = { class: "mint-well-edit-popup__well-id" };
7230
7534
  var _hoisted_4$40 = { class: "mint-well-edit-popup__body" };
7231
7535
  var _hoisted_5$37 = { key: 0 };
7232
7536
  var _hoisted_6$36 = { class: "mint-well-edit-popup__row" };
7233
- var _hoisted_7$33 = { key: 0 };
7234
- var _hoisted_8$29 = { class: "mint-well-edit-popup__type-grid" };
7537
+ var _hoisted_7$34 = { key: 0 };
7538
+ var _hoisted_8$30 = { class: "mint-well-edit-popup__type-grid" };
7235
7539
  var _hoisted_9$27 = ["title", "onClick"];
7236
7540
  var _hoisted_10$26 = { key: 1 };
7237
7541
  var _hoisted_11$24 = {
@@ -7361,7 +7665,7 @@ var WellEditPopupInternal_default = /* @__PURE__ */ defineComponent({
7361
7665
  tabindex: "-1",
7362
7666
  onClick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"]))
7363
7667
  }, [
7364
- createElementVNode("div", _hoisted_1$49, [createElementVNode("div", _hoisted_2$46, [createElementVNode("span", _hoisted_3$42, toDisplayString(__props.wellId), 1), _cache[6] || (_cache[6] = createElementVNode("span", { class: "mint-well-edit-popup__title" }, "Edit Well", -1))]), createElementVNode("button", {
7668
+ createElementVNode("div", _hoisted_1$51, [createElementVNode("div", _hoisted_2$46, [createElementVNode("span", _hoisted_3$42, toDisplayString(__props.wellId), 1), _cache[6] || (_cache[6] = createElementVNode("span", { class: "mint-well-edit-popup__title" }, "Edit Well", -1))]), createElementVNode("button", {
7365
7669
  class: "mint-well-edit-popup__close",
7366
7670
  onClick: close
7367
7671
  }, [..._cache[7] || (_cache[7] = [createElementVNode("svg", {
@@ -7383,7 +7687,7 @@ var WellEditPopupInternal_default = /* @__PURE__ */ defineComponent({
7383
7687
  onKeydown: withKeys(save, ["enter"]),
7384
7688
  autofocus: ""
7385
7689
  }, null, 544), [[vModelText, formData.value.label]])])) : createCommentVNode("", true),
7386
- createElementVNode("div", _hoisted_6$36, [hasField("sampleType") ? (openBlock(), createElementBlock("div", _hoisted_7$33, [_cache[9] || (_cache[9] = createElementVNode("label", { class: "mint-well-edit-popup__label" }, "Type", -1)), createElementVNode("div", _hoisted_8$29, [(openBlock(), createElementBlock(Fragment, null, renderList(sampleTypeButtons, (btn) => {
7690
+ createElementVNode("div", _hoisted_6$36, [hasField("sampleType") ? (openBlock(), createElementBlock("div", _hoisted_7$34, [_cache[9] || (_cache[9] = createElementVNode("label", { class: "mint-well-edit-popup__label" }, "Type", -1)), createElementVNode("div", _hoisted_8$30, [(openBlock(), createElementBlock(Fragment, null, renderList(sampleTypeButtons, (btn) => {
7387
7691
  return createElementVNode("button", {
7388
7692
  key: btn.type,
7389
7693
  title: btn.tooltip,
@@ -7982,7 +8286,7 @@ var DEFAULT_WELL_LEGEND_ITEMS = [
7982
8286
  ];
7983
8287
  //#endregion
7984
8288
  //#region src/components/WellPlate.vue?vue&type=script&setup=true&lang.ts
7985
- var _hoisted_1$48 = {
8289
+ var _hoisted_1$50 = {
7986
8290
  key: 0,
7987
8291
  class: "mint-well-plate__state"
7988
8292
  };
@@ -8000,8 +8304,8 @@ var _hoisted_4$39 = {
8000
8304
  };
8001
8305
  var _hoisted_5$36 = { class: "mint-well-plate__content" };
8002
8306
  var _hoisted_6$35 = ["aria-label"];
8003
- var _hoisted_7$32 = { key: 0 };
8004
- var _hoisted_8$28 = ["colspan"];
8307
+ var _hoisted_7$33 = { key: 0 };
8308
+ var _hoisted_8$29 = ["colspan"];
8005
8309
  var _hoisted_9$26 = ["colspan"];
8006
8310
  var _hoisted_10$25 = { key: 1 };
8007
8311
  var _hoisted_11$23 = ["rowspan"];
@@ -8121,7 +8425,9 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8121
8425
  },
8122
8426
  loading: { type: Boolean },
8123
8427
  error: {},
8124
- emptyMessage: {}
8428
+ emptyMessage: {},
8429
+ wellClass: {},
8430
+ wellStyle: {}
8125
8431
  },
8126
8432
  emits: [
8127
8433
  "update:modelValue",
@@ -8177,7 +8483,7 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8177
8483
  emitSampleDrop: (wellId, data, event) => emit("sample-drop", wellId, data, event)
8178
8484
  });
8179
8485
  function getWellClasses(well) {
8180
- return wellClasses(well, {
8486
+ const base = wellClasses(well, {
8181
8487
  wellShape: props.wellShape,
8182
8488
  selectionMode: props.selectionMode,
8183
8489
  selected: isSelected(well.id),
@@ -8188,12 +8494,17 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8188
8494
  dragSource: dragSourceWell.value === well.id,
8189
8495
  dragTarget: dragTargetWell.value === well.id
8190
8496
  });
8497
+ const custom = props.wellClass?.(well);
8498
+ return custom ? [base, custom] : [base];
8191
8499
  }
8192
8500
  function getWellStyle(well) {
8193
- return wellStyle(well, {
8194
- heatmap: props.heatmap,
8195
- sampleColors: props.sampleColors
8196
- });
8501
+ return {
8502
+ ...wellStyle(well, {
8503
+ heatmap: props.heatmap,
8504
+ sampleColors: props.sampleColors
8505
+ }),
8506
+ ...props.wellStyle?.(well)
8507
+ };
8197
8508
  }
8198
8509
  function getSampleTypeIndicator(well) {
8199
8510
  return sampleTypeIndicator(well, props.showSampleTypeIndicator);
@@ -8227,7 +8538,7 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8227
8538
  class: normalizeClass(["mint-well-plate", isFillMode.value ? "mint-well-plate--fill" : "mint-well-plate--inline"]),
8228
8539
  style: normalizeStyle(containerStyle.value)
8229
8540
  }, [
8230
- __props.error ? (openBlock(), createElementBlock("div", _hoisted_1$48, [renderSlot(_ctx.$slots, "error", { error: __props.error }, () => [createVNode(DataStateInternal_default, {
8541
+ __props.error ? (openBlock(), createElementBlock("div", _hoisted_1$50, [renderSlot(_ctx.$slots, "error", { error: __props.error }, () => [createVNode(DataStateInternal_default, {
8231
8542
  state: "error",
8232
8543
  title: __props.error
8233
8544
  }, null, 8, ["title"])])])) : __props.loading ? (openBlock(), createElementBlock("div", _hoisted_2$45, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(DataStateInternal_default, {
@@ -8245,7 +8556,7 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8245
8556
  "aria-label": `${props.format}-well plate`,
8246
8557
  style: normalizeStyle(tableStyle.value)
8247
8558
  }, [
8248
- hasColumnConditions.value ? (openBlock(), createElementBlock("thead", _hoisted_7$32, [createElementVNode("tr", null, [
8559
+ hasColumnConditions.value ? (openBlock(), createElementBlock("thead", _hoisted_7$33, [createElementVNode("tr", null, [
8249
8560
  createElementVNode("th", { style: normalizeStyle({ width: sizeConfig.value.headerWidth }) }, null, 4),
8250
8561
  hasRowConditions.value ? (openBlock(), createElementBlock("th", {
8251
8562
  key: 0,
@@ -8261,7 +8572,7 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8261
8572
  fontSize: sizeConfig.value.fontSize,
8262
8573
  color: span.condition.color
8263
8574
  })
8264
- }, [createTextVNode(toDisplayString(span.condition.label), 1), span.condition.unit ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(" (" + toDisplayString(span.condition.unit) + ")", 1)], 64)) : createCommentVNode("", true)], 12, _hoisted_8$28)) : (openBlock(), createElementBlock("th", {
8575
+ }, [createTextVNode(toDisplayString(span.condition.label), 1), span.condition.unit ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(" (" + toDisplayString(span.condition.unit) + ")", 1)], 64)) : createCommentVNode("", true)], 12, _hoisted_8$29)) : (openBlock(), createElementBlock("th", {
8265
8576
  key: 1,
8266
8577
  colspan: span.colspan
8267
8578
  }, null, 8, _hoisted_9$26))], 64);
@@ -8442,7 +8753,7 @@ var WellPlate_default = /* @__PURE__ */ defineComponent({
8442
8753
  });
8443
8754
  //#endregion
8444
8755
  //#region src/components/SampleLegend.vue?vue&type=script&setup=true&lang.ts
8445
- var _hoisted_1$47 = ["aria-pressed", "onClick"];
8756
+ var _hoisted_1$49 = ["aria-pressed", "onClick"];
8446
8757
  var _hoisted_2$44 = ["aria-label", "onClick"];
8447
8758
  //#endregion
8448
8759
  //#region src/components/SampleLegend.vue
@@ -8534,7 +8845,7 @@ var SampleLegend_default = /* @__PURE__ */ defineComponent({
8534
8845
  "stroke-width": "2",
8535
8846
  d: "M6 18L18 6M6 6l12 12"
8536
8847
  })], -1)])], 8, _hoisted_2$44)) : createCommentVNode("", true)
8537
- ], 10, _hoisted_1$47);
8848
+ ], 10, _hoisted_1$49);
8538
8849
  }), 128)), __props.editable ? (openBlock(), createElementBlock("button", {
8539
8850
  key: 0,
8540
8851
  type: "button",
@@ -8557,7 +8868,7 @@ var SampleLegend_default = /* @__PURE__ */ defineComponent({
8557
8868
  });
8558
8869
  //#endregion
8559
8870
  //#region src/components/internal/PlateMapEditorToolbarInternal.vue?vue&type=script&setup=true&lang.ts
8560
- var _hoisted_1$46 = { class: "mint-plate-editor__toolbar" };
8871
+ var _hoisted_1$48 = { class: "mint-plate-editor__toolbar" };
8561
8872
  var _hoisted_2$43 = { class: "mint-plate-editor__tabs" };
8562
8873
  var _hoisted_3$40 = ["onClick"];
8563
8874
  var _hoisted_4$38 = { class: "mint-plate-editor__tab-name" };
@@ -8566,8 +8877,8 @@ var _hoisted_5$35 = {
8566
8877
  class: "mint-plate-editor__tab-count"
8567
8878
  };
8568
8879
  var _hoisted_6$34 = ["aria-label", "onClick"];
8569
- var _hoisted_7$31 = { class: "mint-plate-editor__actions" };
8570
- var _hoisted_8$27 = ["disabled"];
8880
+ var _hoisted_7$32 = { class: "mint-plate-editor__actions" };
8881
+ var _hoisted_8$28 = ["disabled"];
8571
8882
  var _hoisted_9$25 = ["disabled"];
8572
8883
  //#endregion
8573
8884
  //#region src/components/internal/PlateMapEditorToolbarInternal.vue
@@ -8596,7 +8907,7 @@ var PlateMapEditorToolbarInternal_default = /* @__PURE__ */ defineComponent({
8596
8907
  const props = __props;
8597
8908
  const emit = __emit;
8598
8909
  return (_ctx, _cache) => {
8599
- return openBlock(), createElementBlock("div", _hoisted_1$46, [
8910
+ return openBlock(), createElementBlock("div", _hoisted_1$48, [
8600
8911
  createElementVNode("div", _hoisted_2$43, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.plates, (plate, index) => {
8601
8912
  return openBlock(), createElementBlock("button", {
8602
8913
  key: plate.id,
@@ -8640,7 +8951,7 @@ var PlateMapEditorToolbarInternal_default = /* @__PURE__ */ defineComponent({
8640
8951
  "stroke-linejoin": "round"
8641
8952
  }, [createElementVNode("path", { d: "M5 12h14" }), createElementVNode("path", { d: "M12 5v14" })], -1), createElementVNode("span", null, "Add", -1)])])) : createCommentVNode("", true)]),
8642
8953
  _cache[12] || (_cache[12] = createElementVNode("div", { class: "mint-plate-editor__spacer" }, null, -1)),
8643
- createElementVNode("div", _hoisted_7$31, [
8954
+ createElementVNode("div", _hoisted_7$32, [
8644
8955
  createElementVNode("button", {
8645
8956
  type: "button",
8646
8957
  disabled: !__props.canUndo,
@@ -8654,7 +8965,7 @@ var PlateMapEditorToolbarInternal_default = /* @__PURE__ */ defineComponent({
8654
8965
  "stroke-width": "2",
8655
8966
  "stroke-linecap": "round",
8656
8967
  "stroke-linejoin": "round"
8657
- }, [createElementVNode("path", { d: "M9 14 4 9l5-5" }), createElementVNode("path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11" })], -1)])], 8, _hoisted_8$27),
8968
+ }, [createElementVNode("path", { d: "M9 14 4 9l5-5" }), createElementVNode("path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11" })], -1)])], 8, _hoisted_8$28),
8658
8969
  createElementVNode("button", {
8659
8970
  type: "button",
8660
8971
  disabled: !__props.canRedo,
@@ -8711,7 +9022,7 @@ var PlateMapEditorToolbarInternal_default = /* @__PURE__ */ defineComponent({
8711
9022
  });
8712
9023
  //#endregion
8713
9024
  //#region src/components/PlateMapEditor.vue?vue&type=script&setup=true&lang.ts
8714
- var _hoisted_1$45 = { class: "mint-plate-editor__main" };
9025
+ var _hoisted_1$47 = { class: "mint-plate-editor__main" };
8715
9026
  var _hoisted_2$42 = {
8716
9027
  key: 2,
8717
9028
  class: "mint-plate-editor__selection-bar"
@@ -8726,8 +9037,8 @@ var _hoisted_6$33 = {
8726
9037
  key: 0,
8727
9038
  class: "mint-plate-editor__add-sample"
8728
9039
  };
8729
- var _hoisted_7$30 = { class: "mint-plate-editor__add-sample-form" };
8730
- var _hoisted_8$26 = ["disabled"];
9040
+ var _hoisted_7$31 = { class: "mint-plate-editor__add-sample-form" };
9041
+ var _hoisted_8$27 = ["disabled"];
8731
9042
  var _hoisted_9$24 = { class: "mint-plate-editor__modal" };
8732
9043
  var _hoisted_10$24 = { class: "mint-plate-editor__modal-field" };
8733
9044
  var _hoisted_11$22 = { class: "mint-plate-editor__modal-field" };
@@ -8903,7 +9214,7 @@ var PlateMapEditor_default = /* @__PURE__ */ defineComponent({
8903
9214
  useEventListener(() => document, "keydown", handleKeyDown);
8904
9215
  return (_ctx, _cache) => {
8905
9216
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-plate-editor", { "mint-plate-editor--with-sidebar": __props.showSidebar }]) }, [
8906
- createElementVNode("div", _hoisted_1$45, [
9217
+ createElementVNode("div", _hoisted_1$47, [
8907
9218
  __props.showToolbar ? (openBlock(), createBlock(PlateMapEditorToolbarInternal_default, {
8908
9219
  key: 0,
8909
9220
  plates: unref(editor).plates.value,
@@ -8979,7 +9290,7 @@ var PlateMapEditor_default = /* @__PURE__ */ defineComponent({
8979
9290
  "editable",
8980
9291
  "size"
8981
9292
  ]),
8982
- __props.allowAddSamples ? (openBlock(), createElementBlock("div", _hoisted_6$33, [createElementVNode("div", _hoisted_7$30, [withDirectives(createElementVNode("input", {
9293
+ __props.allowAddSamples ? (openBlock(), createElementBlock("div", _hoisted_6$33, [createElementVNode("div", _hoisted_7$31, [withDirectives(createElementVNode("input", {
8983
9294
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => newSampleName.value = $event),
8984
9295
  type: "text",
8985
9296
  placeholder: "New sample...",
@@ -8990,7 +9301,7 @@ var PlateMapEditor_default = /* @__PURE__ */ defineComponent({
8990
9301
  disabled: !newSampleName.value.trim(),
8991
9302
  class: "mint-plate-editor__add-sample-btn",
8992
9303
  onClick: handleAddSample
8993
- }, " Add ", 8, _hoisted_8$26)])])) : createCommentVNode("", true),
9304
+ }, " Add ", 8, _hoisted_8$27)])])) : createCommentVNode("", true),
8994
9305
  _cache[12] || (_cache[12] = createStaticVNode("<div class=\"mint-plate-editor__shortcuts\"><h4 class=\"mint-plate-editor__shortcuts-title\">Shortcuts</h4><div class=\"mint-plate-editor__shortcuts-list\"><div><kbd class=\"mint-plate-editor__shortcut-key\">1-9</kbd> Quick assign</div><div><kbd class=\"mint-plate-editor__shortcut-key\">Del</kbd> Clear wells</div><div><kbd class=\"mint-plate-editor__shortcut-key\">Ctrl+Z</kbd> Undo</div><div><kbd class=\"mint-plate-editor__shortcut-key\">Ctrl+A</kbd> Select all</div></div></div>", 1))
8995
9306
  ])])) : createCommentVNode("", true),
8996
9307
  (openBlock(), createBlock(Teleport, { to: "body" }, [showImportModal.value ? (openBlock(), createElementBlock("div", {
@@ -9088,7 +9399,7 @@ function getReagentRowClasses(reagent, options) {
9088
9399
  }
9089
9400
  //#endregion
9090
9401
  //#region src/components/ReagentList.vue?vue&type=script&setup=true&lang.ts
9091
- var _hoisted_1$44 = { class: "mint-reagent-list" };
9402
+ var _hoisted_1$46 = { class: "mint-reagent-list" };
9092
9403
  var _hoisted_2$41 = { class: "mint-reagent-list__header" };
9093
9404
  var _hoisted_3$38 = {
9094
9405
  key: 0,
@@ -9103,14 +9414,14 @@ var _hoisted_5$33 = {
9103
9414
  style: { "width": "24px" }
9104
9415
  };
9105
9416
  var _hoisted_6$32 = ["aria-sort"];
9106
- var _hoisted_7$29 = {
9417
+ var _hoisted_7$30 = {
9107
9418
  key: 0,
9108
9419
  "stroke-linecap": "round",
9109
9420
  "stroke-linejoin": "round",
9110
9421
  "stroke-width": "2",
9111
9422
  d: "M19 9l-7 7-7-7"
9112
9423
  };
9113
- var _hoisted_8$25 = {
9424
+ var _hoisted_8$26 = {
9114
9425
  key: 1,
9115
9426
  "stroke-linecap": "round",
9116
9427
  "stroke-linejoin": "round",
@@ -9342,7 +9653,7 @@ var ReagentList_default = /* @__PURE__ */ defineComponent({
9342
9653
  emit("add");
9343
9654
  }
9344
9655
  return (_ctx, _cache) => {
9345
- return openBlock(), createElementBlock("div", _hoisted_1$44, [
9656
+ return openBlock(), createElementBlock("div", _hoisted_1$46, [
9346
9657
  createElementVNode("div", _hoisted_2$41, [__props.searchable ? (openBlock(), createElementBlock("div", _hoisted_3$38, [_cache[3] || (_cache[3] = createElementVNode("svg", {
9347
9658
  class: "mint-reagent-list__search-icon",
9348
9659
  fill: "none",
@@ -9392,7 +9703,7 @@ var ReagentList_default = /* @__PURE__ */ defineComponent({
9392
9703
  fill: "none",
9393
9704
  stroke: "currentColor",
9394
9705
  viewBox: "0 0 24 24"
9395
- }, [sortColumn.value === col && sortDirection.value === "desc" ? (openBlock(), createElementBlock("path", _hoisted_7$29)) : (openBlock(), createElementBlock("path", _hoisted_8$25))], 2)) : createCommentVNode("", true)]),
9706
+ }, [sortColumn.value === col && sortDirection.value === "desc" ? (openBlock(), createElementBlock("path", _hoisted_7$30)) : (openBlock(), createElementBlock("path", _hoisted_8$26))], 2)) : createCommentVNode("", true)]),
9396
9707
  _: 2
9397
9708
  }, 1064, [
9398
9709
  "type",
@@ -9583,7 +9894,7 @@ function fieldRecipeSummary(input) {
9583
9894
  }
9584
9895
  //#endregion
9585
9896
  //#region src/components/SmartGroupFieldRecipe.vue?vue&type=script&setup=true&lang.ts
9586
- var _hoisted_1$43 = { class: "sg-modal fr" };
9897
+ var _hoisted_1$45 = { class: "sg-modal fr" };
9587
9898
  var _hoisted_2$40 = { class: "sg-head" };
9588
9899
  var _hoisted_3$37 = { class: "sg-head__sub" };
9589
9900
  var _hoisted_4$35 = ["aria-expanded"];
@@ -9597,12 +9908,12 @@ var _hoisted_6$31 = [
9597
9908
  "aria-disabled",
9598
9909
  "title"
9599
9910
  ];
9600
- var _hoisted_7$28 = [
9911
+ var _hoisted_7$29 = [
9601
9912
  "disabled",
9602
9913
  "aria-disabled",
9603
9914
  "title"
9604
9915
  ];
9605
- var _hoisted_8$24 = {
9916
+ var _hoisted_8$25 = {
9606
9917
  class: "sg-mode",
9607
9918
  role: "tablist",
9608
9919
  "aria-label": "Grouping mode"
@@ -9917,7 +10228,7 @@ var SmartGroupFieldRecipe_default = /* @__PURE__ */ defineComponent({
9917
10228
  });
9918
10229
  }
9919
10230
  return (_ctx, _cache) => {
9920
- return openBlock(), createElementBlock("div", _hoisted_1$43, [
10231
+ return openBlock(), createElementBlock("div", _hoisted_1$45, [
9921
10232
  createElementVNode("div", _hoisted_2$40, [
9922
10233
  createVNode(Icon, {
9923
10234
  d: ICON.bolt,
@@ -9983,7 +10294,7 @@ var SmartGroupFieldRecipe_default = /* @__PURE__ */ defineComponent({
9983
10294
  }, [createVNode(Icon, {
9984
10295
  d: ICON.download,
9985
10296
  size: 14
9986
- }, null, 8, ["d"]), _cache[9] || (_cache[9] = createTextVNode(" Download pre-filled ", -1))], 8, _hoisted_7$28)
10297
+ }, null, 8, ["d"]), _cache[9] || (_cache[9] = createTextVNode(" Download pre-filled ", -1))], 8, _hoisted_7$29)
9987
10298
  ])) : createCommentVNode("", true),
9988
10299
  createElementVNode("input", {
9989
10300
  ref_key: "fileInput",
@@ -9994,7 +10305,7 @@ var SmartGroupFieldRecipe_default = /* @__PURE__ */ defineComponent({
9994
10305
  onChange: onFileChange
9995
10306
  }, null, 544)
9996
10307
  ], 512),
9997
- createElementVNode("div", _hoisted_8$24, [_cache[10] || (_cache[10] = createElementVNode("button", {
10308
+ createElementVNode("div", _hoisted_8$25, [_cache[10] || (_cache[10] = createElementVNode("button", {
9998
10309
  type: "button",
9999
10310
  class: "sg-mode__btn sg-mode__btn--on",
10000
10311
  role: "tab",
@@ -10223,7 +10534,7 @@ function assignSamples(samples, selected, assignment) {
10223
10534
  }
10224
10535
  //#endregion
10225
10536
  //#region src/components/SmartGroupManual.vue?vue&type=script&setup=true&lang.ts
10226
- var _hoisted_1$42 = { class: "sg-modal mg2" };
10537
+ var _hoisted_1$44 = { class: "sg-modal mg2" };
10227
10538
  var _hoisted_2$39 = { class: "sg-head" };
10228
10539
  var _hoisted_3$36 = {
10229
10540
  class: "sg-mode",
@@ -10233,8 +10544,8 @@ var _hoisted_3$36 = {
10233
10544
  var _hoisted_4$34 = { class: "mg2-body" };
10234
10545
  var _hoisted_5$31 = { class: "mg2-find" };
10235
10546
  var _hoisted_6$30 = { class: "mg2-search" };
10236
- var _hoisted_7$27 = { class: "mg2-chips" };
10237
- var _hoisted_8$23 = ["onClick"];
10547
+ var _hoisted_7$28 = { class: "mg2-chips" };
10548
+ var _hoisted_8$24 = ["onClick"];
10238
10549
  var _hoisted_9$21 = { class: "mg2-chip__n" };
10239
10550
  var _hoisted_10$21 = { class: "mg2-selbar" };
10240
10551
  var _hoisted_11$19 = { class: "mg2-check" };
@@ -10493,7 +10804,7 @@ var SmartGroupManual_default = /* @__PURE__ */ defineComponent({
10493
10804
  emit("done", { samples: samples.value });
10494
10805
  }
10495
10806
  return (_ctx, _cache) => {
10496
- return openBlock(), createElementBlock("div", _hoisted_1$42, [
10807
+ return openBlock(), createElementBlock("div", _hoisted_1$44, [
10497
10808
  createElementVNode("div", _hoisted_2$39, [
10498
10809
  createVNode(Icon, {
10499
10810
  d: ICON.layers,
@@ -10543,12 +10854,12 @@ var SmartGroupManual_default = /* @__PURE__ */ defineComponent({
10543
10854
  size: 13
10544
10855
  }, null, 8, ["d"])])) : createCommentVNode("", true)
10545
10856
  ]),
10546
- createElementVNode("div", _hoisted_7$27, [(openBlock(true), createElementBlock(Fragment, null, renderList(chips.value, (chip) => {
10857
+ createElementVNode("div", _hoisted_7$28, [(openBlock(true), createElementBlock(Fragment, null, renderList(chips.value, (chip) => {
10547
10858
  return openBlock(), createElementBlock("button", {
10548
10859
  key: chip.k,
10549
10860
  class: normalizeClass(["mg2-chip", { "mg2-chip--on": filter.value === chip.k }]),
10550
10861
  onClick: ($event) => filter.value = chip.k
10551
- }, [createTextVNode(toDisplayString(chip.label), 1), createElementVNode("span", _hoisted_9$21, toDisplayString(chip.n), 1)], 10, _hoisted_8$23);
10862
+ }, [createTextVNode(toDisplayString(chip.label), 1), createElementVNode("span", _hoisted_9$21, toDisplayString(chip.n), 1)], 10, _hoisted_8$24);
10552
10863
  }), 128))]),
10553
10864
  createElementVNode("div", _hoisted_10$21, [createElementVNode("label", _hoisted_11$19, [createElementVNode("input", {
10554
10865
  type: "checkbox",
@@ -11132,7 +11443,7 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
11132
11443
  });
11133
11444
  //#endregion
11134
11445
  //#region src/components/SampleSelectorSampleRow.vue?vue&type=script&setup=true&lang.ts
11135
- var _hoisted_1$41 = ["title", "aria-label"];
11446
+ var _hoisted_1$43 = ["title", "aria-label"];
11136
11447
  var _hoisted_2$38 = ["checked", "aria-label"];
11137
11448
  var _hoisted_3$35 = { class: "mint-sample-selector__sample-name" };
11138
11449
  //#endregion
@@ -11205,7 +11516,7 @@ var SampleSelectorSampleRow_default = /* @__PURE__ */ defineComponent({
11205
11516
  "stroke-width": "2",
11206
11517
  d: "M20 12H4"
11207
11518
  })], -1)])])) : createCommentVNode("", true)
11208
- ], 10, _hoisted_1$41);
11519
+ ], 10, _hoisted_1$43);
11209
11520
  };
11210
11521
  }
11211
11522
  });
@@ -11222,7 +11533,7 @@ function collectNodeKeys(nodes) {
11222
11533
  }
11223
11534
  //#endregion
11224
11535
  //#region src/components/SampleSelectorGroupNode.vue?vue&type=script&setup=true&lang.ts
11225
- var _hoisted_1$40 = [
11536
+ var _hoisted_1$42 = [
11226
11537
  "draggable",
11227
11538
  "aria-expanded",
11228
11539
  "aria-label"
@@ -11384,7 +11695,7 @@ var SampleSelectorGroupNode_default = /* @__PURE__ */ defineComponent({
11384
11695
  "stroke-width": "2",
11385
11696
  d: "M6 18L18 6M6 6l12 12"
11386
11697
  })], -1)])], 8, _hoisted_5$30)
11387
- ], 42, _hoisted_1$40), createVNode(Transition, { name: "mint-collapse" }, {
11698
+ ], 42, _hoisted_1$42), createVNode(Transition, { name: "mint-collapse" }, {
11388
11699
  default: withCtx(() => [expanded.value && !isLeaf.value ? (openBlock(), createElementBlock("div", {
11389
11700
  key: 0,
11390
11701
  class: "mint-sample-selector__sub-groups",
@@ -11695,7 +12006,7 @@ function useSampleSelectorSelection(options) {
11695
12006
  }
11696
12007
  //#endregion
11697
12008
  //#region src/components/SampleSelector.vue?vue&type=script&setup=true&lang.ts
11698
- var _hoisted_1$39 = { class: "mint-sample-selector" };
12009
+ var _hoisted_1$41 = { class: "mint-sample-selector" };
11699
12010
  var _hoisted_2$36 = {
11700
12011
  key: 0,
11701
12012
  class: "mint-sample-selector__state"
@@ -11713,8 +12024,8 @@ var _hoisted_5$29 = {
11713
12024
  class: "mint-sample-selector__select-all"
11714
12025
  };
11715
12026
  var _hoisted_6$29 = ["checked"];
11716
- var _hoisted_7$26 = { class: "mint-sample-selector__select-all-count" };
11717
- var _hoisted_8$22 = {
12027
+ var _hoisted_7$27 = { class: "mint-sample-selector__select-all-count" };
12028
+ var _hoisted_8$23 = {
11718
12029
  key: 4,
11719
12030
  class: "mint-sample-selector__actions"
11720
12031
  };
@@ -11941,7 +12252,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
11941
12252
  const isPlaceholderState = computed(() => props.loading || Boolean(props.error) || resolvedSamples.value.length === 0);
11942
12253
  __expose({ handleSmartGroupApply });
11943
12254
  return (_ctx, _cache) => {
11944
- return openBlock(), createElementBlock("div", _hoisted_1$39, [
12255
+ return openBlock(), createElementBlock("div", _hoisted_1$41, [
11945
12256
  __props.error ? (openBlock(), createElementBlock("div", _hoisted_2$36, [renderSlot(_ctx.$slots, "error", { error: __props.error }, () => [createVNode(DataStateInternal_default, {
11946
12257
  state: "error",
11947
12258
  size: "sm",
@@ -11963,9 +12274,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
11963
12274
  class: "mint-sample-selector__checkbox"
11964
12275
  }, null, 40, _hoisted_6$29),
11965
12276
  _cache[6] || (_cache[6] = createElementVNode("span", { class: "mint-sample-selector__select-all-label" }, "Select All", -1)),
11966
- createElementVNode("span", _hoisted_7$26, toDisplayString(resolvedSamples.value.length) + " samples", 1)
12277
+ createElementVNode("span", _hoisted_7$27, toDisplayString(resolvedSamples.value.length) + " samples", 1)
11967
12278
  ])) : createCommentVNode("", true),
11968
- !isPlaceholderState.value && __props.enableGrouping ? (openBlock(), createElementBlock("div", _hoisted_8$22, [createElementVNode("div", _hoisted_9$20, [createVNode(BaseButton_default, {
12279
+ !isPlaceholderState.value && __props.enableGrouping ? (openBlock(), createElementBlock("div", _hoisted_8$23, [createElementVNode("div", _hoisted_9$20, [createVNode(BaseButton_default, {
11969
12280
  variant: __props.enableSmartGroup && groupingEnabled.value ? "primary" : "secondary",
11970
12281
  size: "sm",
11971
12282
  disabled: resolvedSamples.value.length === 0,
@@ -12362,7 +12673,7 @@ function formatEventTime(event) {
12362
12673
  }
12363
12674
  //#endregion
12364
12675
  //#region src/components/ScheduleCalendar.vue?vue&type=script&setup=true&lang.ts
12365
- var _hoisted_1$38 = {
12676
+ var _hoisted_1$40 = {
12366
12677
  key: 0,
12367
12678
  class: "mint-schedule__header"
12368
12679
  };
@@ -12380,11 +12691,11 @@ var _hoisted_6$28 = {
12380
12691
  key: 1,
12381
12692
  class: "mint-schedule__state"
12382
12693
  };
12383
- var _hoisted_7$25 = {
12694
+ var _hoisted_7$26 = {
12384
12695
  key: 2,
12385
12696
  class: "mint-schedule__state"
12386
12697
  };
12387
- var _hoisted_8$21 = {
12698
+ var _hoisted_8$22 = {
12388
12699
  key: 3,
12389
12700
  class: "mint-schedule__state"
12390
12701
  };
@@ -12638,7 +12949,7 @@ var ScheduleCalendar_default = /* @__PURE__ */ defineComponent({
12638
12949
  class: "mint-schedule",
12639
12950
  style: normalizeStyle({ "--slot-height": `${unref(SLOT_HEIGHT)}px` })
12640
12951
  }, [
12641
- __props.showNavigation || __props.showViewToggle ? (openBlock(), createElementBlock("div", _hoisted_1$38, [
12952
+ __props.showNavigation || __props.showViewToggle ? (openBlock(), createElementBlock("div", _hoisted_1$40, [
12642
12953
  __props.showNavigation ? (openBlock(), createElementBlock("div", _hoisted_2$35, [
12643
12954
  createElementVNode("button", {
12644
12955
  type: "button",
@@ -12689,10 +13000,10 @@ var ScheduleCalendar_default = /* @__PURE__ */ defineComponent({
12689
13000
  __props.error ? (openBlock(), createElementBlock("div", _hoisted_6$28, [renderSlot(_ctx.$slots, "error", { error: __props.error }, () => [createVNode(DataStateInternal_default, {
12690
13001
  state: "error",
12691
13002
  title: __props.error
12692
- }, null, 8, ["title"])])])) : __props.loading ? (openBlock(), createElementBlock("div", _hoisted_7$25, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(DataStateInternal_default, {
13003
+ }, null, 8, ["title"])])])) : __props.loading ? (openBlock(), createElementBlock("div", _hoisted_7$26, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(DataStateInternal_default, {
12693
13004
  state: "loading",
12694
13005
  "loading-label": "Loading schedule"
12695
- })])])) : showEmptyState.value ? (openBlock(), createElementBlock("div", _hoisted_8$21, [renderSlot(_ctx.$slots, "empty", {}, () => [createVNode(DataStateInternal_default, {
13006
+ })])])) : showEmptyState.value ? (openBlock(), createElementBlock("div", _hoisted_8$22, [renderSlot(_ctx.$slots, "empty", {}, () => [createVNode(DataStateInternal_default, {
12696
13007
  state: "empty",
12697
13008
  title: __props.emptyMessage
12698
13009
  }, null, 8, ["title"])])])) : currentView.value === "day" || currentView.value === "week" ? (openBlock(), createElementBlock(Fragment, { key: 4 }, [currentView.value === "week" ? (openBlock(), createElementBlock("div", _hoisted_9$19, [_cache[5] || (_cache[5] = createElementVNode("div", { class: "mint-schedule__day-header-gutter" }, null, -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(visibleDays), (day, i) => {
@@ -12813,7 +13124,7 @@ var ScheduleCalendar_default = /* @__PURE__ */ defineComponent({
12813
13124
  });
12814
13125
  //#endregion
12815
13126
  //#region src/components/ComponentBindingRenderer.vue?vue&type=script&setup=true&lang.ts
12816
- var _hoisted_1$37 = [
13127
+ var _hoisted_1$39 = [
12817
13128
  "data-component-binding-id",
12818
13129
  "data-template-id",
12819
13130
  "data-template-component"
@@ -12832,8 +13143,8 @@ var _hoisted_6$27 = {
12832
13143
  key: 0,
12833
13144
  class: "mint-component-binding-renderer__description"
12834
13145
  };
12835
- var _hoisted_7$24 = { class: "mint-component-binding-renderer__body" };
12836
- var _hoisted_8$20 = {
13146
+ var _hoisted_7$25 = { class: "mint-component-binding-renderer__body" };
13147
+ var _hoisted_8$21 = {
12837
13148
  key: 0,
12838
13149
  class: "mint-component-binding-renderer__empty"
12839
13150
  };
@@ -12962,8 +13273,8 @@ var ComponentBindingRenderer_default = /* @__PURE__ */ _plugin_vue_export_helper
12962
13273
  "data-component-binding-id": renderableBinding.id,
12963
13274
  "data-template-id": renderableBinding.template_id,
12964
13275
  "data-template-component": renderableBinding.component
12965
- }, [__props.showHeaders ? (openBlock(), createElementBlock("header", _hoisted_2$34, [createElementVNode("div", _hoisted_3$31, [createElementVNode("p", _hoisted_4$30, toDisplayString(renderableBinding.component), 1), renderableBinding.template_id || renderableBinding.id ? (openBlock(), createElementBlock("p", _hoisted_5$27, toDisplayString(renderableBinding.template_id ?? renderableBinding.id), 1)) : createCommentVNode("", true)]), __props.showDescriptions && renderableBinding.description ? (openBlock(), createElementBlock("p", _hoisted_6$27, toDisplayString(renderableBinding.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", _hoisted_7$24, [(openBlock(), createBlock(resolveDynamicComponent(renderableBinding.componentImpl), mergeProps({ ref_for: true }, renderableBinding.normalizedProps), null, 16))])], 8, _hoisted_1$37);
12966
- }), 128)), renderableBindings.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_8$20, toDisplayString(__props.emptyText), 1)) : createCommentVNode("", true)], 2);
13276
+ }, [__props.showHeaders ? (openBlock(), createElementBlock("header", _hoisted_2$34, [createElementVNode("div", _hoisted_3$31, [createElementVNode("p", _hoisted_4$30, toDisplayString(renderableBinding.component), 1), renderableBinding.template_id || renderableBinding.id ? (openBlock(), createElementBlock("p", _hoisted_5$27, toDisplayString(renderableBinding.template_id ?? renderableBinding.id), 1)) : createCommentVNode("", true)]), __props.showDescriptions && renderableBinding.description ? (openBlock(), createElementBlock("p", _hoisted_6$27, toDisplayString(renderableBinding.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", _hoisted_7$25, [(openBlock(), createBlock(resolveDynamicComponent(renderableBinding.componentImpl), mergeProps({ ref_for: true }, renderableBinding.normalizedProps), null, 16))])], 8, _hoisted_1$39);
13277
+ }), 128)), renderableBindings.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_8$21, toDisplayString(__props.emptyText), 1)) : createCommentVNode("", true)], 2);
12967
13278
  };
12968
13279
  }
12969
13280
  }), [["__scopeId", "data-v-e6c3e169"]]);
@@ -13102,7 +13413,7 @@ function bioTemplatePresetWorkspaceProps(props) {
13102
13413
  }
13103
13414
  //#endregion
13104
13415
  //#region src/components/ControlWorkspaceView.vue?vue&type=script&setup=true&lang.ts
13105
- var _hoisted_1$36 = { class: "mint-control-workspace-view__content" };
13416
+ var _hoisted_1$38 = { class: "mint-control-workspace-view__content" };
13106
13417
  //#endregion
13107
13418
  //#region src/components/ControlWorkspaceView.vue
13108
13419
  var ControlWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -13319,7 +13630,7 @@ var ControlWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_def
13319
13630
  "form-disabled",
13320
13631
  "form-readonly"
13321
13632
  ])], true)]),
13322
- default: withCtx(() => [createElementVNode("main", _hoisted_1$36, [renderSlot(_ctx.$slots, "default", {
13633
+ default: withCtx(() => [createElementVNode("main", _hoisted_1$38, [renderSlot(_ctx.$slots, "default", {
13323
13634
  workspace: resolvedWorkspace.value,
13324
13635
  bindings: resolvedBindings.value,
13325
13636
  values: resolvedWorkspace.value.values,
@@ -13356,7 +13667,7 @@ var ControlWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_def
13356
13667
  }), [["__scopeId", "data-v-f3b22df2"]]);
13357
13668
  //#endregion
13358
13669
  //#region src/components/DoseDesignWorkspaceView.vue?vue&type=script&setup=true&lang.ts
13359
- var _hoisted_1$35 = { class: "mint-dose-design-workspace" };
13670
+ var _hoisted_1$37 = { class: "mint-dose-design-workspace" };
13360
13671
  //#endregion
13361
13672
  //#region src/components/DoseDesignWorkspaceView.vue
13362
13673
  var DoseDesignWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -13470,7 +13781,7 @@ var DoseDesignWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_
13470
13781
  onSubmit: _cache[2] || (_cache[2] = ($event) => emit("submit", $event)),
13471
13782
  onCancel: _cache[3] || (_cache[3] = ($event) => emit("cancel"))
13472
13783
  }), {
13473
- default: withCtx((workspaceSlotProps) => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createElementVNode("div", _hoisted_1$35, [renderSlot(_ctx.$slots, "plate", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createVNode(WellPlate_default, normalizeProps(guardReactiveProps(wellPlateBinding(workspaceSlotProps.componentPropsById))), null, 16)], true), renderSlot(_ctx.$slots, "dose", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createVNode(DoseCalculator_default, normalizeProps(guardReactiveProps(doseCalculatorBinding(workspaceSlotProps.componentPropsById))), null, 16)], true)])], true)]),
13784
+ default: withCtx((workspaceSlotProps) => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createElementVNode("div", _hoisted_1$37, [renderSlot(_ctx.$slots, "plate", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createVNode(WellPlate_default, normalizeProps(guardReactiveProps(wellPlateBinding(workspaceSlotProps.componentPropsById))), null, 16)], true), renderSlot(_ctx.$slots, "dose", normalizeProps(guardReactiveProps(slotProps(workspaceSlotProps))), () => [createVNode(DoseCalculator_default, normalizeProps(guardReactiveProps(doseCalculatorBinding(workspaceSlotProps.componentPropsById))), null, 16)], true)])], true)]),
13474
13785
  _: 3
13475
13786
  }, 16);
13476
13787
  };
@@ -13501,8 +13812,79 @@ var AppContainer_default = /* @__PURE__ */ defineComponent({
13501
13812
  }
13502
13813
  });
13503
13814
  //#endregion
13815
+ //#region src/components/LayoutResizeHandle.vue?vue&type=script&setup=true&lang.ts
13816
+ var _hoisted_1$36 = [
13817
+ "tabindex",
13818
+ "aria-label",
13819
+ "aria-orientation",
13820
+ "aria-valuemin",
13821
+ "aria-valuemax",
13822
+ "aria-valuenow",
13823
+ "aria-disabled"
13824
+ ];
13825
+ //#endregion
13826
+ //#region src/components/LayoutResizeHandle.vue
13827
+ var LayoutResizeHandle_default = /* @__PURE__ */ defineComponent({
13828
+ __name: "LayoutResizeHandle",
13829
+ props: {
13830
+ modelValue: {},
13831
+ min: {},
13832
+ max: {},
13833
+ label: {},
13834
+ orientation: {},
13835
+ edge: { default: void 0 },
13836
+ step: { default: 10 },
13837
+ disabled: {
13838
+ type: Boolean,
13839
+ default: false
13840
+ }
13841
+ },
13842
+ emits: ["update:modelValue", "resize-start"],
13843
+ setup(__props, { emit: __emit }) {
13844
+ /** Accessible pointer and keyboard handle for resizable workbench panes. */
13845
+ const props = __props;
13846
+ const emit = __emit;
13847
+ function update(value) {
13848
+ emit("update:modelValue", Math.min(props.max, Math.max(props.min, value)));
13849
+ }
13850
+ function handleKeydown(event) {
13851
+ if (props.disabled) return;
13852
+ const decrement = props.orientation === "vertical" ? "ArrowLeft" : "ArrowUp";
13853
+ const increment = props.orientation === "vertical" ? "ArrowRight" : "ArrowDown";
13854
+ if (event.key === decrement) update(props.modelValue - props.step);
13855
+ else if (event.key === increment) update(props.modelValue + props.step);
13856
+ else if (event.key === "Home") update(props.min);
13857
+ else if (event.key === "End") update(props.max);
13858
+ else return;
13859
+ event.preventDefault();
13860
+ }
13861
+ return (_ctx, _cache) => {
13862
+ return openBlock(), createElementBlock("div", {
13863
+ role: "separator",
13864
+ tabindex: __props.disabled ? -1 : 0,
13865
+ class: normalizeClass([
13866
+ "mint-layout-resize-handle",
13867
+ `mint-layout-resize-handle--${__props.orientation}`,
13868
+ __props.edge ? `mint-layout-resize-handle--edge-${__props.edge}` : ""
13869
+ ]),
13870
+ "aria-label": __props.label,
13871
+ "aria-orientation": __props.orientation,
13872
+ "aria-valuemin": __props.min,
13873
+ "aria-valuemax": __props.max,
13874
+ "aria-valuenow": __props.modelValue,
13875
+ "aria-disabled": __props.disabled || void 0,
13876
+ onPointerdown: _cache[0] || (_cache[0] = ($event) => !__props.disabled && emit("resize-start", $event)),
13877
+ onKeydown: handleKeydown
13878
+ }, [..._cache[1] || (_cache[1] = [createElementVNode("span", {
13879
+ class: "mint-layout-resize-handle__bar",
13880
+ "aria-hidden": "true"
13881
+ }, null, -1)])], 42, _hoisted_1$36);
13882
+ };
13883
+ }
13884
+ });
13885
+ //#endregion
13504
13886
  //#region src/components/Divider.vue?vue&type=script&setup=true&lang.ts
13505
- var _hoisted_1$34 = {
13887
+ var _hoisted_1$35 = {
13506
13888
  key: 0,
13507
13889
  class: "mint-divider__line"
13508
13890
  };
@@ -13542,7 +13924,7 @@ var Divider_default = /* @__PURE__ */ defineComponent({
13542
13924
  role: "separator",
13543
13925
  "aria-orientation": "horizontal"
13544
13926
  }, [__props.label ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
13545
- __props.align === "center" ? (openBlock(), createElementBlock("span", _hoisted_1$34)) : createCommentVNode("", true),
13927
+ __props.align === "center" ? (openBlock(), createElementBlock("span", _hoisted_1$35)) : createCommentVNode("", true),
13546
13928
  createElementVNode("span", _hoisted_2$33, toDisplayString(__props.label), 1),
13547
13929
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "mint-divider__line" }, null, -1))
13548
13930
  ], 64)) : createCommentVNode("", true)], 2));
@@ -13551,7 +13933,7 @@ var Divider_default = /* @__PURE__ */ defineComponent({
13551
13933
  });
13552
13934
  //#endregion
13553
13935
  //#region src/components/StatusIndicator.vue?vue&type=script&setup=true&lang.ts
13554
- var _hoisted_1$33 = { class: "mint-status" };
13936
+ var _hoisted_1$34 = { class: "mint-status" };
13555
13937
  var _hoisted_2$32 = {
13556
13938
  key: 0,
13557
13939
  class: "mint-status__label"
@@ -13577,7 +13959,7 @@ var StatusIndicator_default = /* @__PURE__ */ defineComponent({
13577
13959
  color: props.color
13578
13960
  } : {});
13579
13961
  return (_ctx, _cache) => {
13580
- return openBlock(), createElementBlock("span", _hoisted_1$33, [createElementVNode("span", {
13962
+ return openBlock(), createElementBlock("span", _hoisted_1$34, [createElementVNode("span", {
13581
13963
  class: normalizeClass([
13582
13964
  "mint-status__dot",
13583
13965
  { [`mint-status__dot--${__props.status}`]: !__props.color },
@@ -13590,7 +13972,7 @@ var StatusIndicator_default = /* @__PURE__ */ defineComponent({
13590
13972
  });
13591
13973
  //#endregion
13592
13974
  //#region src/components/ProgressBar.vue?vue&type=script&setup=true&lang.ts
13593
- var _hoisted_1$32 = {
13975
+ var _hoisted_1$33 = {
13594
13976
  key: 0,
13595
13977
  class: "mint-progress__header"
13596
13978
  };
@@ -13617,7 +13999,7 @@ var _hoisted_6$26 = [
13617
13999
  "aria-valuemax",
13618
14000
  "aria-label"
13619
14001
  ];
13620
- var _hoisted_7$23 = {
14002
+ var _hoisted_7$24 = {
13621
14003
  key: 3,
13622
14004
  class: "mint-progress__step-labels"
13623
14005
  };
@@ -13654,7 +14036,7 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
13654
14036
  const segmentCount = computed(() => props.steps.length || 0);
13655
14037
  return (_ctx, _cache) => {
13656
14038
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-progress", `mint-progress--${__props.variant}`]) }, [
13657
- __props.label || __props.showValue ? (openBlock(), createElementBlock("div", _hoisted_1$32, [
14039
+ __props.label || __props.showValue ? (openBlock(), createElementBlock("div", _hoisted_1$33, [
13658
14040
  __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$31, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
13659
14041
  __props.showValue && !__props.indeterminate && __props.variant === "rail" ? (openBlock(), createElementBlock("span", _hoisted_3$30, toDisplayString(clampedValue.value) + "%", 1)) : createCommentVNode("", true),
13660
14042
  __props.showValue && __props.variant === "segmented" && segmentCount.value ? (openBlock(), createElementBlock("span", _hoisted_4$29, toDisplayString(__props.currentStep) + " / " + toDisplayString(segmentCount.value), 1)) : createCommentVNode("", true)
@@ -13692,7 +14074,7 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
13692
14074
  ])
13693
14075
  }, null, 2);
13694
14076
  }), 128))], 10, _hoisted_6$26)),
13695
- __props.variant === "segmented" && __props.steps.length ? (openBlock(), createElementBlock("div", _hoisted_7$23, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.steps, (step, i) => {
14077
+ __props.variant === "segmented" && __props.steps.length ? (openBlock(), createElementBlock("div", _hoisted_7$24, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.steps, (step, i) => {
13696
14078
  return openBlock(), createElementBlock("span", {
13697
14079
  key: i,
13698
14080
  class: normalizeClass([
@@ -13708,7 +14090,7 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
13708
14090
  });
13709
14091
  //#endregion
13710
14092
  //#region src/components/Avatar.vue?vue&type=script&setup=true&lang.ts
13711
- var _hoisted_1$31 = ["aria-label"];
14093
+ var _hoisted_1$32 = ["aria-label"];
13712
14094
  var _hoisted_2$30 = ["src", "alt"];
13713
14095
  var _hoisted_3$29 = {
13714
14096
  key: 1,
@@ -13771,13 +14153,13 @@ var Avatar_default = /* @__PURE__ */ defineComponent({
13771
14153
  key: 0,
13772
14154
  class: normalizeClass(["mint-avatar__status", `mint-avatar__status--${__props.status}`]),
13773
14155
  "aria-hidden": "true"
13774
- }, null, 2)) : createCommentVNode("", true)], 10, _hoisted_1$31);
14156
+ }, null, 2)) : createCommentVNode("", true)], 10, _hoisted_1$32);
13775
14157
  };
13776
14158
  }
13777
14159
  });
13778
14160
  //#endregion
13779
14161
  //#region src/components/Breadcrumb.vue?vue&type=script&setup=true&lang.ts
13780
- var _hoisted_1$30 = {
14162
+ var _hoisted_1$31 = {
13781
14163
  class: "mint-breadcrumb",
13782
14164
  "aria-label": "Breadcrumb"
13783
14165
  };
@@ -13794,7 +14176,7 @@ var _hoisted_6$25 = {
13794
14176
  class: "mint-breadcrumb__separator",
13795
14177
  "aria-hidden": "true"
13796
14178
  };
13797
- var _hoisted_7$22 = {
14179
+ var _hoisted_7$23 = {
13798
14180
  key: 0,
13799
14181
  class: "mint-breadcrumb__chevron",
13800
14182
  viewBox: "0 0 24 24",
@@ -13822,7 +14204,7 @@ var Breadcrumb_default = /* @__PURE__ */ defineComponent({
13822
14204
  if (!item.href) emit("navigate", item);
13823
14205
  }
13824
14206
  return (_ctx, _cache) => {
13825
- return openBlock(), createElementBlock("nav", _hoisted_1$30, [createElementVNode("ol", _hoisted_2$29, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item, index) => {
14207
+ return openBlock(), createElementBlock("nav", _hoisted_1$31, [createElementVNode("ol", _hoisted_2$29, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item, index) => {
13826
14208
  return openBlock(), createElementBlock("li", {
13827
14209
  key: index,
13828
14210
  class: "mint-breadcrumb__item"
@@ -13838,12 +14220,46 @@ var Breadcrumb_default = /* @__PURE__ */ defineComponent({
13838
14220
  key: 1,
13839
14221
  class: "mint-breadcrumb__link",
13840
14222
  onClick: ($event) => handleClick(item)
13841
- }, toDisplayString(item.label), 9, _hoisted_4$27)) : (openBlock(), createElementBlock("span", _hoisted_5$25, toDisplayString(item.label), 1))]), index !== normalizedItems.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_6$25, [renderSlot(_ctx.$slots, "separator", {}, () => [__props.separator === "/" ? (openBlock(), createElementBlock("svg", _hoisted_7$22, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "m9 18 6-6-6-6" }, null, -1)])])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(__props.separator), 1)], 64))])])) : createCommentVNode("", true)]);
14223
+ }, toDisplayString(item.label), 9, _hoisted_4$27)) : (openBlock(), createElementBlock("span", _hoisted_5$25, toDisplayString(item.label), 1))]), index !== normalizedItems.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_6$25, [renderSlot(_ctx.$slots, "separator", {}, () => [__props.separator === "/" ? (openBlock(), createElementBlock("svg", _hoisted_7$23, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "m9 18 6-6-6-6" }, null, -1)])])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(__props.separator), 1)], 64))])])) : createCommentVNode("", true)]);
13842
14224
  }), 128))])]);
13843
14225
  };
13844
14226
  }
13845
14227
  });
13846
14228
  //#endregion
14229
+ //#region src/components/AdductText.vue?vue&type=script&setup=true&lang.ts
14230
+ var _hoisted_1$30 = ["title"];
14231
+ //#endregion
14232
+ //#region src/components/AdductText.vue
14233
+ var AdductText_default = /* @__PURE__ */ defineComponent({
14234
+ __name: "AdductText",
14235
+ props: {
14236
+ value: { default: null },
14237
+ emptyText: { default: "-" },
14238
+ variant: { default: "inline" },
14239
+ tone: { default: "default" },
14240
+ size: { default: "xs" },
14241
+ font: { default: "mono" }
14242
+ },
14243
+ setup(__props) {
14244
+ /** Compact, overflow-safe display for mass-spectrometry adduct notation. */
14245
+ const props = __props;
14246
+ const value = computed(() => props.value?.trim() ?? "");
14247
+ return (_ctx, _cache) => {
14248
+ return openBlock(), createElementBlock("span", {
14249
+ class: normalizeClass([
14250
+ "mint-adduct-text",
14251
+ `mint-adduct-text--${__props.variant}`,
14252
+ `mint-adduct-text--${__props.tone}`,
14253
+ `mint-adduct-text--${__props.size}`,
14254
+ `mint-adduct-text--${__props.font}`,
14255
+ { "mint-adduct-text--empty": !value.value }
14256
+ ]),
14257
+ title: value.value || void 0
14258
+ }, toDisplayString(value.value || __props.emptyText), 11, _hoisted_1$30);
14259
+ };
14260
+ }
14261
+ });
14262
+ //#endregion
13847
14263
  //#region src/components/BioTemplateRenderer.vue
13848
14264
  var BioTemplateRenderer_default = /* @__PURE__ */ defineComponent({
13849
14265
  __name: "BioTemplateRenderer",
@@ -13918,8 +14334,8 @@ var _hoisted_5$24 = {
13918
14334
  class: "mint-bio-template-experiment-workspace__templates"
13919
14335
  };
13920
14336
  var _hoisted_6$24 = { class: "mint-bio-template-experiment-workspace__template-id" };
13921
- var _hoisted_7$21 = { class: "mint-bio-template-experiment-workspace__template-version" };
13922
- var _hoisted_8$19 = { class: "mint-bio-template-experiment-workspace__meta" };
14337
+ var _hoisted_7$22 = { class: "mint-bio-template-experiment-workspace__template-version" };
14338
+ var _hoisted_8$20 = { class: "mint-bio-template-experiment-workspace__meta" };
13923
14339
  //#endregion
13924
14340
  //#region src/components/BioTemplateExperimentWorkspaceView.vue
13925
14341
  var BioTemplateExperimentWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -14071,7 +14487,7 @@ var BioTemplateExperimentWorkspaceView_default = /* @__PURE__ */ _plugin_vue_exp
14071
14487
  return openBlock(), createElementBlock("div", {
14072
14488
  key: template.id,
14073
14489
  class: "mint-bio-template-experiment-workspace__template"
14074
- }, [createElementVNode("p", _hoisted_6$24, toDisplayString(template.id), 1), createElementVNode("p", _hoisted_7$21, " v" + toDisplayString(template.version), 1)]);
14490
+ }, [createElementVNode("p", _hoisted_6$24, toDisplayString(template.id), 1), createElementVNode("p", _hoisted_7$22, " v" + toDisplayString(template.version), 1)]);
14075
14491
  }), 128))])) : createCommentVNode("", true),
14076
14492
  renderSlot(_ctx.$slots, "default", {
14077
14493
  target: __props.target,
@@ -14090,7 +14506,7 @@ var BioTemplateExperimentWorkspaceView_default = /* @__PURE__ */ _plugin_vue_exp
14090
14506
  "dense",
14091
14507
  "readonly"
14092
14508
  ])], true),
14093
- createElementVNode("p", _hoisted_8$19, " experiment: " + toDisplayString(resolvedCurrentExperimentId.value ?? "not selected"), 1)
14509
+ createElementVNode("p", _hoisted_8$20, " experiment: " + toDisplayString(resolvedCurrentExperimentId.value ?? "not selected"), 1)
14094
14510
  ]);
14095
14511
  };
14096
14512
  }
@@ -14208,11 +14624,11 @@ var _hoisted_4$25 = {
14208
14624
  };
14209
14625
  var _hoisted_5$23 = { class: "mint-bio-template-preset-workspace__main" };
14210
14626
  var _hoisted_6$23 = { class: "mint-bio-template-preset-workspace__sidebar-subtitle" };
14211
- var _hoisted_7$20 = {
14627
+ var _hoisted_7$21 = {
14212
14628
  key: 2,
14213
14629
  class: "mint-bio-template-preset-workspace__templates"
14214
14630
  };
14215
- var _hoisted_8$18 = { class: "mint-bio-template-preset-workspace__template-id" };
14631
+ var _hoisted_8$19 = { class: "mint-bio-template-preset-workspace__template-id" };
14216
14632
  var _hoisted_9$18 = { class: "mint-bio-template-preset-workspace__template-meta" };
14217
14633
  var _hoisted_10$18 = {
14218
14634
  key: 3,
@@ -14419,11 +14835,11 @@ var BioTemplatePresetWorkspaceView_default = /* @__PURE__ */ _plugin_vue_export_
14419
14835
  dense: __props.dense,
14420
14836
  readonly: __props.readonly
14421
14837
  }), null, 16, ["dense", "readonly"])], true)]),
14422
- __props.showTemplateSummary ? (openBlock(), createElementBlock("div", _hoisted_7$20, [(openBlock(true), createElementBlock(Fragment, null, renderList(templateIds.value, (templateId) => {
14838
+ __props.showTemplateSummary ? (openBlock(), createElementBlock("div", _hoisted_7$21, [(openBlock(true), createElementBlock(Fragment, null, renderList(templateIds.value, (templateId) => {
14423
14839
  return openBlock(), createElementBlock("div", {
14424
14840
  key: templateId,
14425
14841
  class: "mint-bio-template-preset-workspace__template"
14426
- }, [createElementVNode("p", _hoisted_8$18, toDisplayString(templateId), 1), createElementVNode("p", _hoisted_9$18, toDisplayString(presetId.value) + " - Experiment " + toDisplayString(currentExperimentId.value ?? "not selected"), 1)]);
14842
+ }, [createElementVNode("p", _hoisted_8$19, toDisplayString(templateId), 1), createElementVNode("p", _hoisted_9$18, toDisplayString(presetId.value) + " - Experiment " + toDisplayString(currentExperimentId.value ?? "not selected"), 1)]);
14427
14843
  }), 128))])) : createCommentVNode("", true),
14428
14844
  __props.showComponentSummary ? (openBlock(), createElementBlock("p", _hoisted_10$18, " component prop bindings: " + toDisplayString(componentPropsCount.value), 1)) : createCommentVNode("", true)
14429
14845
  ]);
@@ -14443,14 +14859,14 @@ var _hoisted_3$25 = [
14443
14859
  "onDragover",
14444
14860
  "onDrop"
14445
14861
  ];
14446
- var _hoisted_4$24 = ["onClick"];
14862
+ var _hoisted_4$24 = ["aria-label", "onClick"];
14447
14863
  var _hoisted_5$22 = {
14448
14864
  key: 0,
14449
14865
  class: "mint-rack-editor__toolbar"
14450
14866
  };
14451
14867
  var _hoisted_6$22 = { class: "mint-rack-editor__toolbar-group" };
14452
- var _hoisted_7$19 = { class: "mint-rack-editor__toolbar-section" };
14453
- var _hoisted_8$17 = { class: "mint-rack-editor__format-btns" };
14868
+ var _hoisted_7$20 = { class: "mint-rack-editor__toolbar-section" };
14869
+ var _hoisted_8$18 = { class: "mint-rack-editor__format-btns" };
14454
14870
  var _hoisted_9$17 = ["onClick"];
14455
14871
  var _hoisted_10$17 = { class: "mint-rack-editor__toolbar-section" };
14456
14872
  var _hoisted_11$16 = { class: "mint-rack-editor__slot-btns" };
@@ -14635,10 +15051,13 @@ var RackEditor_default = /* @__PURE__ */ defineComponent({
14635
15051
  return (_ctx, _cache) => {
14636
15052
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-rack-editor", { "mint-rack-editor--readonly": __props.readonly }]) }, [
14637
15053
  createElementVNode("div", _hoisted_1$27, [createElementVNode("div", _hoisted_2$26, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(editor).racks.value, (rack, rackIndex) => {
14638
- return openBlock(), createElementBlock("button", {
15054
+ return openBlock(), createElementBlock("div", {
14639
15055
  key: rack.id,
15056
+ class: "mint-rack-editor__tab-item"
15057
+ }, [createElementVNode("button", {
14640
15058
  ref_for: true,
14641
15059
  ref: (el) => setTabRef(rack.id, el),
15060
+ type: "button",
14642
15061
  draggable: __props.allowReorder && !__props.readonly,
14643
15062
  title: __props.allowReorder && !__props.readonly ? `${rack.name} — press Alt with the arrow keys to reorder` : void 0,
14644
15063
  class: normalizeClass(["mint-rack-editor__tab", {
@@ -14662,13 +15081,14 @@ var RackEditor_default = /* @__PURE__ */ defineComponent({
14662
15081
  getWellCount(rack) > 0 ? (openBlock(), createElementBlock("span", {
14663
15082
  key: 0,
14664
15083
  class: normalizeClass(["mint-rack-editor__count", unref(editor).activeRackId.value === rack.id ? "mint-rack-editor__count--active" : "mint-rack-editor__count--inactive"])
14665
- }, toDisplayString(getWellCount(rack)), 3)) : createCommentVNode("", true),
14666
- unref(editor).racks.value.length > __props.minRacks && !__props.readonly ? (openBlock(), createElementBlock("button", {
14667
- key: 1,
14668
- class: "mint-rack-editor__tab-remove",
14669
- onClick: withModifiers(($event) => handleRemoveRack(rack.id), ["stop"])
14670
- }, " × ", 8, _hoisted_4$24)) : createCommentVNode("", true)
14671
- ], 42, _hoisted_3$25);
15084
+ }, toDisplayString(getWellCount(rack)), 3)) : createCommentVNode("", true)
15085
+ ], 42, _hoisted_3$25), unref(editor).racks.value.length > __props.minRacks && !__props.readonly ? (openBlock(), createElementBlock("button", {
15086
+ key: 0,
15087
+ type: "button",
15088
+ class: "mint-rack-editor__tab-remove",
15089
+ "aria-label": `Remove ${rack.name}`,
15090
+ onClick: withModifiers(($event) => handleRemoveRack(rack.id), ["stop"])
15091
+ }, " × ", 8, _hoisted_4$24)) : createCommentVNode("", true)]);
14672
15092
  }), 128))]), unref(editor).racks.value.length < __props.maxRacks && !__props.readonly ? (openBlock(), createElementBlock("button", {
14673
15093
  key: 0,
14674
15094
  class: "mint-rack-editor__add-btn",
@@ -14685,7 +15105,7 @@ var RackEditor_default = /* @__PURE__ */ defineComponent({
14685
15105
  }, [createElementVNode("path", { d: "M5 12h14" }), createElementVNode("path", { d: "M12 5v14" })], -1), createTextVNode(" Add Rack ", -1)])])) : createCommentVNode("", true)]),
14686
15106
  unref(editor).activeRack.value && !__props.readonly ? (openBlock(), createElementBlock("div", _hoisted_5$22, [
14687
15107
  createElementVNode("div", _hoisted_6$22, [
14688
- createElementVNode("div", _hoisted_7$19, [_cache[3] || (_cache[3] = createElementVNode("span", { class: "mint-rack-editor__toolbar-label" }, "Plate", -1)), createElementVNode("div", _hoisted_8$17, [(openBlock(), createElementBlock(Fragment, null, renderList(FORMAT_OPTIONS, (opt) => {
15108
+ createElementVNode("div", _hoisted_7$20, [_cache[3] || (_cache[3] = createElementVNode("span", { class: "mint-rack-editor__toolbar-label" }, "Plate", -1)), createElementVNode("div", _hoisted_8$18, [(openBlock(), createElementBlock(Fragment, null, renderList(FORMAT_OPTIONS, (opt) => {
14689
15109
  return createElementVNode("button", {
14690
15110
  key: opt.value,
14691
15111
  class: normalizeClass(["mint-rack-editor__format-btn", unref(editor).activeRack.value.format === opt.value ? "mint-rack-editor__format-btn--active" : "mint-rack-editor__format-btn--inactive"]),
@@ -14775,12 +15195,12 @@ var _hoisted_3$24 = { class: "mint-group-assigner__zone-header" };
14775
15195
  var _hoisted_4$23 = { class: "mint-group-assigner__zone-label" };
14776
15196
  var _hoisted_5$21 = { class: "mint-group-assigner__zone-count" };
14777
15197
  var _hoisted_6$21 = { class: "mint-group-assigner__zone-content" };
14778
- var _hoisted_7$18 = [
15198
+ var _hoisted_7$19 = [
14779
15199
  "aria-label",
14780
15200
  "onDragstart",
14781
15201
  "onKeydown"
14782
15202
  ];
14783
- var _hoisted_8$16 = { class: "mint-group-assigner__pill-name" };
15203
+ var _hoisted_8$17 = { class: "mint-group-assigner__pill-name" };
14784
15204
  var _hoisted_9$16 = { class: "mint-group-assigner__pill-count" };
14785
15205
  var _hoisted_10$16 = ["onClick"];
14786
15206
  var _hoisted_11$15 = {
@@ -14957,7 +15377,7 @@ var GroupAssigner_default = /* @__PURE__ */ defineComponent({
14957
15377
  class: "mint-group-assigner__pill-color",
14958
15378
  style: normalizeStyle({ backgroundColor: group.color })
14959
15379
  }, null, 4),
14960
- createElementVNode("span", _hoisted_8$16, toDisplayString(group.name), 1),
15380
+ createElementVNode("span", _hoisted_8$17, toDisplayString(group.name), 1),
14961
15381
  createElementVNode("span", _hoisted_9$16, toDisplayString(group.count), 1),
14962
15382
  createElementVNode("button", {
14963
15383
  type: "button",
@@ -14971,7 +15391,7 @@ var GroupAssigner_default = /* @__PURE__ */ defineComponent({
14971
15391
  stroke: "currentColor",
14972
15392
  "stroke-width": "2"
14973
15393
  }, [createElementVNode("path", { d: "M6 18L18 6M6 6l12 12" })], -1)])], 8, _hoisted_10$16)
14974
- ], 40, _hoisted_7$18);
15394
+ ], 40, _hoisted_7$19);
14975
15395
  }), 128)), unref(zone1Groups).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_11$15, " Drag groups here ")) : createCommentVNode("", true)])], 38), createElementVNode("div", {
14976
15396
  class: normalizeClass([
14977
15397
  "mint-group-assigner__zone",
@@ -15133,8 +15553,8 @@ var _hoisted_3$23 = { class: "mint-reagent-editor__color-wrapper" };
15133
15553
  var _hoisted_4$22 = ["value"];
15134
15554
  var _hoisted_5$20 = ["value"];
15135
15555
  var _hoisted_6$20 = { class: "mint-reagent-editor__section" };
15136
- var _hoisted_7$17 = { class: "mint-reagent-editor__position-row" };
15137
- var _hoisted_8$15 = { class: "mint-reagent-editor__field mint-reagent-editor__field--flex" };
15556
+ var _hoisted_7$18 = { class: "mint-reagent-editor__position-row" };
15557
+ var _hoisted_8$16 = { class: "mint-reagent-editor__field mint-reagent-editor__field--flex" };
15138
15558
  var _hoisted_9$15 = { class: "mint-reagent-editor__field mint-reagent-editor__field--flex" };
15139
15559
  var _hoisted_10$15 = [
15140
15560
  "value",
@@ -15354,7 +15774,7 @@ var ReagentEditor_default = /* @__PURE__ */ defineComponent({
15354
15774
  "aria-label": "Reagent name",
15355
15775
  onInput: updateName
15356
15776
  }, null, 40, _hoisted_5$20)])]),
15357
- createElementVNode("div", _hoisted_6$20, [_cache[6] || (_cache[6] = createStaticVNode("<div class=\"mint-reagent-editor__section-header\"><svg class=\"mint-reagent-editor__section-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"></rect></svg> Position </div>", 1)), createElementVNode("div", _hoisted_7$17, [createElementVNode("div", _hoisted_8$15, [_cache[4] || (_cache[4] = createElementVNode("label", { class: "mint-reagent-editor__label" }, "Axis", -1)), createVNode(BaseSelect_default, {
15777
+ createElementVNode("div", _hoisted_6$20, [_cache[6] || (_cache[6] = createStaticVNode("<div class=\"mint-reagent-editor__section-header\"><svg class=\"mint-reagent-editor__section-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"></rect></svg> Position </div>", 1)), createElementVNode("div", _hoisted_7$18, [createElementVNode("div", _hoisted_8$16, [_cache[4] || (_cache[4] = createElementVNode("label", { class: "mint-reagent-editor__label" }, "Axis", -1)), createVNode(BaseSelect_default, {
15358
15778
  "model-value": __props.modelValue.axis,
15359
15779
  options: axisOptions,
15360
15780
  size: "sm",
@@ -15853,11 +16273,11 @@ var _hoisted_4$21 = {
15853
16273
  };
15854
16274
  var _hoisted_5$19 = ["value", "placeholder"];
15855
16275
  var _hoisted_6$19 = ["value"];
15856
- var _hoisted_7$16 = {
16276
+ var _hoisted_7$17 = {
15857
16277
  value: "",
15858
16278
  disabled: ""
15859
16279
  };
15860
- var _hoisted_8$14 = ["value"];
16280
+ var _hoisted_8$15 = ["value"];
15861
16281
  var _hoisted_9$14 = ["value", "placeholder"];
15862
16282
  var _hoisted_10$14 = {
15863
16283
  key: 5,
@@ -15915,11 +16335,11 @@ var ProtocolStepParameterField_default = /* @__PURE__ */ defineComponent({
15915
16335
  value: scalarValue.value,
15916
16336
  class: normalizeClass(["mint-protocol-editor__select", hasError.value ? "mint-protocol-editor__input--error" : ""]),
15917
16337
  onChange: handleSelectChange
15918
- }, [createElementVNode("option", _hoisted_7$16, "Select " + toDisplayString(__props.parameter.label.toLowerCase()), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.parameter.options, (option) => {
16338
+ }, [createElementVNode("option", _hoisted_7$17, "Select " + toDisplayString(__props.parameter.label.toLowerCase()), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.parameter.options, (option) => {
15919
16339
  return openBlock(), createElementBlock("option", {
15920
16340
  key: option.value,
15921
16341
  value: option.value
15922
- }, toDisplayString(option.label), 9, _hoisted_8$14);
16342
+ }, toDisplayString(option.label), 9, _hoisted_8$15);
15923
16343
  }), 128))], 42, _hoisted_6$19)) : __props.parameter.type === "concentration" ? (openBlock(), createBlock(ConcentrationInput_default, {
15924
16344
  key: 3,
15925
16345
  "model-value": concentrationValue.value,
@@ -16005,8 +16425,8 @@ var _hoisted_6$18 = {
16005
16425
  stroke: "currentColor",
16006
16426
  viewBox: "0 0 24 24"
16007
16427
  };
16008
- var _hoisted_7$15 = ["d"];
16009
- var _hoisted_8$13 = { class: "mint-protocol-editor__template-text" };
16428
+ var _hoisted_7$16 = ["d"];
16429
+ var _hoisted_8$14 = { class: "mint-protocol-editor__template-text" };
16010
16430
  var _hoisted_9$13 = {
16011
16431
  key: 0,
16012
16432
  class: "mint-protocol-editor__template-menu"
@@ -16175,8 +16595,8 @@ var ProtocolStepEditor_default = /* @__PURE__ */ defineComponent({
16175
16595
  "stroke-linejoin": "round",
16176
16596
  "stroke-width": "2",
16177
16597
  d: unref(PROTOCOL_STEP_TYPE_ICONS)[selectedTemplate.value.type]
16178
- }, null, 8, _hoisted_7$15)])) : createCommentVNode("", true),
16179
- createElementVNode("span", _hoisted_8$13, toDisplayString(selectedTemplate.value?.name || "Select template..."), 1),
16598
+ }, null, 8, _hoisted_7$16)])) : createCommentVNode("", true),
16599
+ createElementVNode("span", _hoisted_8$14, toDisplayString(selectedTemplate.value?.name || "Select template..."), 1),
16180
16600
  (openBlock(), createElementBlock("svg", {
16181
16601
  class: normalizeClass(["mint-protocol-editor__template-arrow", unref(templateDropdownOpen) ? "mint-protocol-editor__template-arrow--open" : ""]),
16182
16602
  fill: "none",
@@ -16288,11 +16708,11 @@ var _hoisted_6$17 = {
16288
16708
  key: 0,
16289
16709
  class: "mint-sci-number__suffix"
16290
16710
  };
16291
- var _hoisted_7$14 = {
16711
+ var _hoisted_7$15 = {
16292
16712
  key: 3,
16293
16713
  class: "mint-sci-number__plain"
16294
16714
  };
16295
- var _hoisted_8$12 = {
16715
+ var _hoisted_8$13 = {
16296
16716
  key: 4,
16297
16717
  class: "mint-sci-number__unit"
16298
16718
  };
@@ -16433,8 +16853,8 @@ var ScientificNumber_default = /* @__PURE__ */ defineComponent({
16433
16853
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "mint-sci-number__times" }, "×", -1)),
16434
16854
  _cache[1] || (_cache[1] = createElementVNode("span", { class: "mint-sci-number__base" }, "10", -1)),
16435
16855
  createElementVNode("span", _hoisted_4$19, toDisplayString(formatted.value.exponentStr), 1)
16436
- ], 64)) : formatted.value.type === "compact" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [createElementVNode("span", _hoisted_5$17, toDisplayString(formatted.value.plain), 1), formatted.value.suffix ? (openBlock(), createElementBlock("span", _hoisted_6$17, toDisplayString(formatted.value.suffix), 1)) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("span", _hoisted_7$14, toDisplayString(formatted.value.plain), 1)),
16437
- __props.unit ? (openBlock(), createElementBlock("span", _hoisted_8$12, toDisplayString(__props.unit), 1)) : createCommentVNode("", true),
16856
+ ], 64)) : formatted.value.type === "compact" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [createElementVNode("span", _hoisted_5$17, toDisplayString(formatted.value.plain), 1), formatted.value.suffix ? (openBlock(), createElementBlock("span", _hoisted_6$17, toDisplayString(formatted.value.suffix), 1)) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("span", _hoisted_7$15, toDisplayString(formatted.value.plain), 1)),
16857
+ __props.unit ? (openBlock(), createElementBlock("span", _hoisted_8$13, toDisplayString(__props.unit), 1)) : createCommentVNode("", true),
16438
16858
  __props.copyable ? (openBlock(), createElementBlock("button", {
16439
16859
  key: 5,
16440
16860
  class: normalizeClass(["mint-sci-number__copy-btn", { "mint-sci-number__copy-btn--copied": copied.value }]),
@@ -16455,54 +16875,87 @@ var ScientificNumber_default = /* @__PURE__ */ defineComponent({
16455
16875
  });
16456
16876
  //#endregion
16457
16877
  //#region src/components/ChemicalFormula.vue?vue&type=script&setup=true&lang.ts
16458
- var _hoisted_1$20 = {
16878
+ var _hoisted_1$20 = { class: "mint-chem-formula__formula" };
16879
+ var _hoisted_2$19 = {
16459
16880
  key: 0,
16460
16881
  class: "mint-chem-formula__element"
16461
16882
  };
16462
- var _hoisted_2$19 = {
16883
+ var _hoisted_3$18 = {
16463
16884
  key: 1,
16464
16885
  class: "mint-chem-formula__subscript"
16465
16886
  };
16466
- var _hoisted_3$18 = {
16887
+ var _hoisted_4$18 = {
16467
16888
  key: 2,
16468
16889
  class: "mint-chem-formula__superscript"
16469
16890
  };
16470
- var _hoisted_4$18 = {
16891
+ var _hoisted_5$16 = {
16471
16892
  key: 3,
16472
16893
  class: "mint-chem-formula__paren"
16473
16894
  };
16474
- var _hoisted_5$16 = {
16895
+ var _hoisted_6$16 = {
16475
16896
  key: 4,
16476
16897
  class: "mint-chem-formula__dot"
16477
16898
  };
16478
- var _hoisted_6$16 = {
16899
+ var _hoisted_7$14 = {
16479
16900
  key: 5,
16480
16901
  class: "mint-chem-formula__charge"
16481
16902
  };
16903
+ var _hoisted_8$12 = { key: 1 };
16482
16904
  //#endregion
16483
16905
  //#region src/components/ChemicalFormula.vue
16484
16906
  var ChemicalFormula_default = /* @__PURE__ */ defineComponent({
16485
16907
  __name: "ChemicalFormula",
16486
16908
  props: {
16487
- formula: {},
16909
+ formula: { default: null },
16488
16910
  inline: {
16489
16911
  type: Boolean,
16490
16912
  default: true
16491
- }
16913
+ },
16914
+ adduct: { default: null },
16915
+ emptyText: { default: "-" },
16916
+ pill: {
16917
+ type: Boolean,
16918
+ default: false
16919
+ },
16920
+ size: { default: "inherit" },
16921
+ tone: { default: "primary" }
16492
16922
  },
16493
16923
  setup(__props) {
16494
- /** Renders a chemical formula string (H₂O, C₆H₁₂O₆, Ca(OH)₂) with typographically correct subscripts and superscripts for charges. */
16924
+ /** Renders a chemical formula and optional MS adduct with typographically correct subscripts and charges. */
16925
+ const props = __props;
16495
16926
  const { renderFormulaParts } = useChemicalFormula();
16927
+ const formula = computed(() => props.formula?.trim() ?? "");
16928
+ const title = computed(() => [formula.value, props.adduct?.trim()].filter(Boolean).join(" "));
16496
16929
  function getParts(f) {
16497
16930
  return renderFormulaParts(f);
16498
16931
  }
16499
16932
  return (_ctx, _cache) => {
16500
- return openBlock(), createBlock(resolveDynamicComponent(__props.inline ? "span" : "div"), { class: normalizeClass(["mint-chem-formula", !__props.inline ? "mint-chem-formula--block" : ""]) }, {
16501
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(getParts(__props.formula), (part, i) => {
16502
- return openBlock(), createElementBlock(Fragment, { key: i }, [part.type === "element" ? (openBlock(), createElementBlock("span", _hoisted_1$20, toDisplayString(part.text), 1)) : part.type === "subscript" ? (openBlock(), createElementBlock("span", _hoisted_2$19, toDisplayString(part.text), 1)) : part.type === "superscript" ? (openBlock(), createElementBlock("span", _hoisted_3$18, toDisplayString(part.text), 1)) : part.type === "paren" ? (openBlock(), createElementBlock("span", _hoisted_4$18, toDisplayString(part.text), 1)) : part.type === "dot" ? (openBlock(), createElementBlock("span", _hoisted_5$16, toDisplayString(part.text), 1)) : part.type === "charge" ? (openBlock(), createElementBlock("span", _hoisted_6$16, toDisplayString(part.text), 1)) : createCommentVNode("", true)], 64);
16503
- }), 128))]),
16504
- _: 1
16505
- }, 8, ["class"]);
16933
+ return openBlock(), createBlock(resolveDynamicComponent(__props.inline ? "span" : "div"), {
16934
+ class: normalizeClass([
16935
+ "mint-chem-formula",
16936
+ !__props.inline ? "mint-chem-formula--block" : "",
16937
+ `mint-chem-formula--${__props.size}`,
16938
+ `mint-chem-formula--${__props.tone}`,
16939
+ {
16940
+ "mint-chem-formula--pill": __props.pill,
16941
+ "mint-chem-formula--empty": !formula.value
16942
+ }
16943
+ ]),
16944
+ title: title.value || void 0
16945
+ }, {
16946
+ default: withCtx(() => [formula.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
16947
+ createElementVNode("span", _hoisted_1$20, [(openBlock(true), createElementBlock(Fragment, null, renderList(getParts(formula.value), (part, i) => {
16948
+ return openBlock(), createElementBlock(Fragment, { key: i }, [part.type === "element" ? (openBlock(), createElementBlock("span", _hoisted_2$19, toDisplayString(part.text), 1)) : part.type === "subscript" ? (openBlock(), createElementBlock("span", _hoisted_3$18, toDisplayString(part.text), 1)) : part.type === "superscript" ? (openBlock(), createElementBlock("span", _hoisted_4$18, toDisplayString(part.text), 1)) : part.type === "paren" ? (openBlock(), createElementBlock("span", _hoisted_5$16, toDisplayString(part.text), 1)) : part.type === "dot" ? (openBlock(), createElementBlock("span", _hoisted_6$16, toDisplayString(part.text), 1)) : part.type === "charge" ? (openBlock(), createElementBlock("span", _hoisted_7$14, toDisplayString(part.text), 1)) : createCommentVNode("", true)], 64);
16949
+ }), 128))]),
16950
+ __props.adduct ? (openBlock(), createBlock(AdductText_default, {
16951
+ key: 0,
16952
+ value: __props.adduct,
16953
+ size: "inherit"
16954
+ }, null, 8, ["value"])) : createCommentVNode("", true),
16955
+ renderSlot(_ctx.$slots, "default")
16956
+ ], 64)) : (openBlock(), createElementBlock("span", _hoisted_8$12, toDisplayString(__props.emptyText), 1))]),
16957
+ _: 3
16958
+ }, 8, ["class", "title"]);
16506
16959
  };
16507
16960
  }
16508
16961
  });
@@ -21116,6 +21569,7 @@ var FilePicker_default = /* @__PURE__ */ defineComponent({
21116
21569
  //#region src/components/index.ts
21117
21570
  var components_exports = /* @__PURE__ */ __exportAll({
21118
21571
  ActionMenu: () => ActionMenu_default,
21572
+ AdductText: () => AdductText_default,
21119
21573
  AlertBox: () => AlertBox_default,
21120
21574
  AppAvatarMenu: () => AppAvatarMenu_default,
21121
21575
  AppContainer: () => AppContainer_default,
@@ -21186,6 +21640,7 @@ var components_exports = /* @__PURE__ */ __exportAll({
21186
21640
  InstrumentStateBadge: () => InstrumentStateBadge_default,
21187
21641
  InstrumentStatusCard: () => InstrumentStatusCard_default,
21188
21642
  JobsStatusTray: () => JobsStatusTray_default,
21643
+ LayoutResizeHandle: () => LayoutResizeHandle_default,
21189
21644
  LcmsSequenceTable: () => LcmsSequenceTable_default,
21190
21645
  LoadingSpinner: () => LoadingSpinner_default,
21191
21646
  MobileSupportGate: () => MobileSupportGate_default,
@@ -21208,6 +21663,7 @@ var components_exports = /* @__PURE__ */ __exportAll({
21208
21663
  SampleSelector: () => SampleSelector_default,
21209
21664
  ScheduleCalendar: () => ScheduleCalendar_default,
21210
21665
  ScientificNumber: () => ScientificNumber_default,
21666
+ SearchableSelect: () => SearchableSelect_default,
21211
21667
  SecretInput: () => SecretInput_default,
21212
21668
  SectionCard: () => SectionCard_default,
21213
21669
  SegmentedControl: () => SegmentedControl_default,
@@ -21229,6 +21685,6 @@ var components_exports = /* @__PURE__ */ __exportAll({
21229
21685
  WellPlate: () => WellPlate_default
21230
21686
  });
21231
21687
  //#endregion
21232
- export { AutoGroupModal_default as $, ChemicalFormula_default as A, ActionMenu_default as At, BioTemplateExperimentWorkspaceView_default as B, ColorSlider_default as Bt, SequenceProgressBar_default as C, StepWizard_default as Ct, formatSequenceRemaining as D, PluginIcon_default as Dt, formatSequenceEta as E, AppAvatarMenu_default as Et, SmartGroupModal_default as F, LoadingSpinner_default as Ft, StatusIndicator_default as G, Breadcrumb_default as H, GroupAssigner_default as I, Calendar_default as It, DoseDesignWorkspaceView_default as J, Divider_default as K, RackEditor_default as L, DropdownButton_default as Lt, ProtocolStepEditor_default as M, RuntimeUpdateNotice_default as Mt, SampleHierarchyTree_default as N, AppToastContainer_default as Nt, sequenceProgressPercent as O, CollapsibleCard_default as Ot, ReagentEditor_default as P, DataFrame_default as Pt, SampleSelector_default as Q, BioTemplatePresetWorkspaceView_default as R, SegmentedControl_default as Rt, InstrumentAlertLog_default as S, FormActions_default as St, estimateSequenceRemainingSeconds as T, AppPluginSwitcher_default as Tt, Avatar_default as U, BioTemplateRenderer_default as V, ProgressBar_default as W, ComponentBindingRenderer_default as X, ControlWorkspaceView_default as Y, ScheduleCalendar_default as Z, inferLcmsPlateTypeFromWellIds as _, PluginWorkspaceView_default as _t, FileBrowserModal_default as a, WellPlate_default as at, InstrumentStatusCard_default as b, AppSidebar_default as bt, TimeRangeInput_default as c, GeneratedPluginView_default as ct, AuditTrail_default as d, GeneratedPlotlyResult_default as dt, SmartGroupManual_default as et, LcmsSequenceTable_default as f, PlotlyChart_default as ft, extractLcmsSampleName as g, normalizeGeneratedJobInput as gt, extractLcmsCommonPrefix as h, generatedJobFormSchema as ht, ArtifactSaveDialog_default as i, SampleLegend_default as it, ScientificNumber_default as j, IconButton_default as jt, sequenceSamplesRemaining as k, ThemeToggle_default as kt, ExperimentDataViewer_default as l, JobsStatusTray_default as lt, basenameFromWindowsPath as m, generatedJobDefaults as mt, FilePicker_default as n, ReagentList_default as nt, SectionCard_default as o, ExperimentTimeline_default as ot, DEFAULT_LCMS_SEQUENCE_COLUMNS as p, ChartContainer_default as pt, AppContainer_default as q, FitPanel_default as r, PlateMapEditor_default as rt, ResourceCard_default as s, DoseCalculator_default as st, components_exports as t, SmartGroupFieldRecipe_default as tt, BatchProgressList_default as u, GeneratedResultRenderer_default as ut, lcmsWellIdFromPosition as v, MobileSupportGate_default as vt, estimateSequenceFinishDate as w, AppTopBar_default as wt, InstrumentStateBadge_default as x, FormBuilder_default as xt, reconstructLcmsPlateCellsFromSequenceItems as y, AppLayout_default as yt, BioTemplatePackWorkspaceView_default as z, BaseTabs_default as zt };
21688
+ export { ScheduleCalendar_default as $, ChemicalFormula_default as A, CollapsibleCard_default as At, BioTemplateExperimentWorkspaceView_default as B, SegmentedControl_default as Bt, SequenceProgressBar_default as C, FormBuilder_default as Ct, formatSequenceRemaining as D, AppPluginSwitcher_default as Dt, formatSequenceEta as E, AppTopBar_default as Et, SmartGroupModal_default as F, AppToastContainer_default as Ft, ProgressBar_default as G, AdductText_default as H, ColorSlider_default as Ht, GroupAssigner_default as I, DataFrame_default as It, LayoutResizeHandle_default as J, StatusIndicator_default as K, RackEditor_default as L, LoadingSpinner_default as Lt, ProtocolStepEditor_default as M, ActionMenu_default as Mt, SampleHierarchyTree_default as N, IconButton_default as Nt, sequenceProgressPercent as O, AppAvatarMenu_default as Ot, ReagentEditor_default as P, RuntimeUpdateNotice_default as Pt, ComponentBindingRenderer_default as Q, BioTemplatePresetWorkspaceView_default as R, Calendar_default as Rt, InstrumentAlertLog_default as S, AppSidebar_default as St, estimateSequenceRemainingSeconds as T, StepWizard_default as Tt, Breadcrumb_default as U, SearchableSelect_default as Ut, BioTemplateRenderer_default as V, BaseTabs_default as Vt, Avatar_default as W, DoseDesignWorkspaceView_default as X, AppContainer_default as Y, ControlWorkspaceView_default as Z, inferLcmsPlateTypeFromWellIds as _, generatedJobFormSchema as _t, FileBrowserModal_default as a, PlateMapEditor_default as at, InstrumentStatusCard_default as b, MobileSupportGate_default as bt, TimeRangeInput_default as c, ExperimentTimeline_default as ct, AuditTrail_default as d, JobsStatusTray_default as dt, SampleSelector_default as et, LcmsSequenceTable_default as f, GeneratedResultRenderer_default as ft, extractLcmsSampleName as g, generatedJobDefaults as gt, extractLcmsCommonPrefix as h, ChartContainer_default as ht, ArtifactSaveDialog_default as i, ReagentList_default as it, ScientificNumber_default as j, ThemeToggle_default as jt, sequenceSamplesRemaining as k, PluginIcon_default as kt, ExperimentDataViewer_default as l, DoseCalculator_default as lt, basenameFromWindowsPath as m, PlotlyChart_default as mt, FilePicker_default as n, SmartGroupManual_default as nt, SectionCard_default as o, SampleLegend_default as ot, DEFAULT_LCMS_SEQUENCE_COLUMNS as p, GeneratedPlotlyResult_default as pt, Divider_default as q, FitPanel_default as r, SmartGroupFieldRecipe_default as rt, ResourceCard_default as s, WellPlate_default as st, components_exports as t, AutoGroupModal_default as tt, BatchProgressList_default as u, GeneratedPluginView_default as ut, lcmsWellIdFromPosition as v, normalizeGeneratedJobInput as vt, estimateSequenceFinishDate as w, FormActions_default as wt, InstrumentStateBadge_default as x, AppLayout_default as xt, reconstructLcmsPlateCellsFromSequenceItems as y, PluginWorkspaceView_default as yt, BioTemplatePackWorkspaceView_default as z, DropdownButton_default as zt };
21233
21689
 
21234
- //# sourceMappingURL=components-Cp8DcNrU.js.map
21690
+ //# sourceMappingURL=components-CxQVQCpP.js.map