@morscherlab/mint-sdk 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{BaseSelect-DksaKYq_.js → BaseSelect-ekgr9fDo.js} +4 -1
  2. package/dist/BaseSelect-ekgr9fDo.js.map +1 -0
  3. package/dist/{ExperimentSelectorModal-DIFyL5ta.js → ExperimentSelectorModal-BOzDs8TU.js} +2 -2
  4. package/dist/{ExperimentSelectorModal-CHsU-LIh.js → ExperimentSelectorModal-CX0oBzpV.js} +2 -2
  5. package/dist/{ExperimentSelectorModal-CHsU-LIh.js.map → ExperimentSelectorModal-CX0oBzpV.js.map} +1 -1
  6. package/dist/{SettingsModal-LEKI6Ebl.js → SettingsModal-BTyXD0uP.js} +3 -3
  7. package/dist/{SettingsModal-LEKI6Ebl.js.map → SettingsModal-BTyXD0uP.js.map} +1 -1
  8. package/dist/SettingsModal-DXcSKk9D.js +5 -0
  9. package/dist/__tests__/components/MobileSupportGate.test.d.ts +1 -0
  10. package/dist/__tests__/composables/useMobileSupportGate.test.d.ts +1 -0
  11. package/dist/components/AutoGroupModal.vue.d.ts +6 -0
  12. package/dist/components/BaseInput.vue.d.ts +1 -0
  13. package/dist/components/MobileSupportGate.vue.d.ts +40 -0
  14. package/dist/components/SampleSelector.colors.d.ts +2 -1
  15. package/dist/components/index.d.ts +1 -0
  16. package/dist/components/index.js +6 -6
  17. package/dist/{components-Cyk8QEyL.js → components-CzdeV1xe.js} +1122 -535
  18. package/dist/components-CzdeV1xe.js.map +1 -0
  19. package/dist/composables/index.d.ts +1 -0
  20. package/dist/composables/index.js +7 -7
  21. package/dist/composables/useMobileSupportGate.d.ts +14 -0
  22. package/dist/{composables-D9mexHSW.js → composables-Da-4XOe2.js} +3 -3
  23. package/dist/{composables-D9mexHSW.js.map → composables-Da-4XOe2.js.map} +1 -1
  24. package/dist/index.js +10 -10
  25. package/dist/install.js +5 -5
  26. package/dist/styles.css +4004 -2537
  27. package/dist/templates/index.js +3 -3
  28. package/dist/{templates-Do43ZIMb.js → templates-Dnf8UNxg.js} +2 -2
  29. package/dist/{templates-Do43ZIMb.js.map → templates-Dnf8UNxg.js.map} +1 -1
  30. package/dist/{useControlSchema-0n8Bcftq.js → useControlSchema-Dkm-W_lg.js} +2 -2
  31. package/dist/{useControlSchema-0n8Bcftq.js.map → useControlSchema-Dkm-W_lg.js.map} +1 -1
  32. package/dist/{useFormBuilder-COfYWDuC.js → useFormBuilder-BOJ52N4M.js} +2 -2
  33. package/dist/{useFormBuilder-COfYWDuC.js.map → useFormBuilder-BOJ52N4M.js.map} +1 -1
  34. package/dist/{useProtocolTemplates-DODHlhxr.js → useProtocolTemplates-r2GOnnH1.js} +55 -5
  35. package/dist/useProtocolTemplates-r2GOnnH1.js.map +1 -0
  36. package/package.json +1 -1
  37. package/src/__tests__/components/MobileSupportGate.test.ts +120 -0
  38. package/src/__tests__/components/SampleSelector.test.ts +119 -0
  39. package/src/__tests__/composables/useMobileSupportGate.test.ts +74 -0
  40. package/src/components/AutoGroupModal.story.vue +46 -0
  41. package/src/components/AutoGroupModal.vue +578 -2
  42. package/src/components/BaseInput.vue +2 -0
  43. package/src/components/MobileSupportGate.story.vue +52 -0
  44. package/src/components/MobileSupportGate.vue +115 -0
  45. package/src/components/SampleSelector.colors.ts +7 -2
  46. package/src/components/SampleSelector.story.vue +45 -1
  47. package/src/components/SampleSelector.vue +32 -6
  48. package/src/components/index.ts +1 -0
  49. package/src/composables/index.ts +8 -0
  50. package/src/composables/useMobileSupportGate.ts +80 -0
  51. package/src/styles/components/auto-group-modal.css +758 -0
  52. package/src/styles/components/mobile-support-gate.css +119 -0
  53. package/src/styles/components/sample-selector.css +23 -9
  54. package/dist/BaseSelect-DksaKYq_.js.map +0 -1
  55. package/dist/SettingsModal-L7Ejny45.js +0 -5
  56. package/dist/components-Cyk8QEyL.js.map +0 -1
  57. package/dist/useProtocolTemplates-DODHlhxr.js.map +0 -1
@@ -1,15 +1,15 @@
1
- import { a as BasePill_default, i as Skeleton_default, n as ExperimentCodeBadge_default, o as BaseButton_default, r as EmptyState_default, t as ExperimentSelectorModal_default } from "./ExperimentSelectorModal-CHsU-LIh.js";
2
- import { n as normalizeOptionInput, r as BaseInput_default, t as BaseSelect_default } from "./BaseSelect-DksaKYq_.js";
3
- import { A as useConcentrationUnits, B as TagsInput_default, I as useChemicalFormula, J as formatTime, L as DateTimePicker_default, M as SequenceInput_default, O as ConcentrationInput_default, P as FormulaInput_default, R as FileUploader_default, T as getDefaultControlView, U as compareTime, V as TimePicker_default, W as durationMinutes, _ as controlsToFormSchema, at as MultiSelect_default, ct as BaseSlider_default, dt as BaseCheckbox_default, f as resolveControlModel, ft as Tooltip_default, g as mergeControlWorkspaceOptions, h as controlValuesToComponentProps, it as DatePicker_default, j as MoleculeInput_default, k as UnitInput_default, lt as BaseRadioGroup_default, m as controlValuesToComponentBindingsById, o as defineDoseDesignControlModel, ot as useListSelection, p as controlValuesToComponentBindings, pt as BaseTextarea_default, q as formatDuration, r as getControlDefaults, u as useControlWorkspace, ut as BaseToggle_default, w as controlsToViewItems, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas, z as NumberInput_default } from "./useControlSchema-0n8Bcftq.js";
1
+ import { a as BasePill_default, i as Skeleton_default, n as ExperimentCodeBadge_default, o as BaseButton_default, r as EmptyState_default, t as ExperimentSelectorModal_default } from "./ExperimentSelectorModal-CX0oBzpV.js";
2
+ import { n as normalizeOptionInput, r as BaseInput_default, t as BaseSelect_default } from "./BaseSelect-ekgr9fDo.js";
3
+ import { A as useConcentrationUnits, B as TagsInput_default, I as useChemicalFormula, J as formatTime, L as DateTimePicker_default, M as SequenceInput_default, O as ConcentrationInput_default, P as FormulaInput_default, R as FileUploader_default, T as getDefaultControlView, U as compareTime, V as TimePicker_default, W as durationMinutes, _ as controlsToFormSchema, at as MultiSelect_default, ct as BaseSlider_default, dt as BaseCheckbox_default, f as resolveControlModel, ft as Tooltip_default, g as mergeControlWorkspaceOptions, h as controlValuesToComponentProps, it as DatePicker_default, j as MoleculeInput_default, k as UnitInput_default, lt as BaseRadioGroup_default, m as controlValuesToComponentBindingsById, o as defineDoseDesignControlModel, ot as useListSelection, p as controlValuesToComponentBindings, pt as BaseTextarea_default, q as formatDuration, r as getControlDefaults, u as useControlWorkspace, ut as BaseToggle_default, w as controlsToViewItems, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas, z as NumberInput_default } from "./useControlSchema-Dkm-W_lg.js";
4
4
  import { t as useEventListener } from "./useEventListener-CfVkP9Xz.js";
5
- import { a as recordValuesEqualForKeys, c as normalizeLabelItemInput, i as pickExistingRecordKeys, n as FormFieldRendererInternal_default, o as FormField_default, r as formSchemaFieldNames, s as normalizeItemInput, t as SettingsModal_default } from "./SettingsModal-LEKI6Ebl.js";
5
+ import { a as recordValuesEqualForKeys, c as normalizeLabelItemInput, i as pickExistingRecordKeys, n as FormFieldRendererInternal_default, o as FormField_default, r as formSchemaFieldNames, s as normalizeItemInput, t as SettingsModal_default } from "./SettingsModal-BTyXD0uP.js";
6
6
  import { t as BaseModal_default } from "./BaseModal-B9UA8Y_I.js";
7
7
  import { t as useDropdownState } from "./useDropdownState-Ben4DnjJ.js";
8
- import { A as parseCSV, B as useTheme, C as useExpansionSet, F as classKey, I as useWellPlateEditor, K as useSortedItems, L as useDoseCalculator, P as DEFAULT_COLORS, R as APP_EXPERIMENT_KEY, V as useToast, W as useTextSearch, _ as useScheduleDrag, a as useReagentSeries, c as useBioTemplatePresetWorkspace, k as useAutoGroup, l as useBioTemplatePackWorkspace, n as DEFAULT_PRESETS, o as useGroupAssignment, r as DEFAULT_UNITS, s as useRackEditor, t as useProtocolTemplates, v as useExperimentSamples, w as useSampleGroups, y as useExperimentData, z as useAppExperiment } from "./useProtocolTemplates-DODHlhxr.js";
9
- import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-COfYWDuC.js";
8
+ import { A as parseCSV, B as APP_EXPERIMENT_KEY, C as useExpansionSet, F as classKey, H as useTheme, I as useWellPlateEditor, J as useSortedItems, K as useTextSearch, L as useDoseCalculator, P as DEFAULT_COLORS, R as DEFAULT_MOBILE_VIEWPORT_QUERY, U as useToast, V as useAppExperiment, _ as useScheduleDrag, a as useReagentSeries, c as useBioTemplatePresetWorkspace, k as useAutoGroup, l as useBioTemplatePackWorkspace, n as DEFAULT_PRESETS, o as useGroupAssignment, r as DEFAULT_UNITS, s as useRackEditor, t as useProtocolTemplates, v as useExperimentSamples, w as useSampleGroups, y as useExperimentData, z as useMobileSupportGate } from "./useProtocolTemplates-r2GOnnH1.js";
9
+ import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-BOJ52N4M.js";
10
10
  import { i as useApi } from "./useExperimentSelector-BBaz0w51.js";
11
11
  import { n as ConfirmDialog_default, t as ExperimentPopover_default } from "./ExperimentPopover-B29fIHQz.js";
12
- import { B as toBioTemplateComponentProps, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, V as toBioTemplateComponentPropsByComponent, dn as extractTemplateCollection } from "./templates-Do43ZIMb.js";
12
+ import { B as toBioTemplateComponentProps, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, V as toBioTemplateComponentPropsByComponent, dn as extractTemplateCollection } from "./templates-Dnf8UNxg.js";
13
13
  import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, effectScope, guardReactiveProps, h, inject, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onMounted, onScopeDispose, onUnmounted, openBlock, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, unref, useSlots, vModelCheckbox, vModelSelect, vModelText, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
14
14
  //#region \0rolldown/runtime.js
15
15
  var __defProp = Object.defineProperty;
@@ -24,9 +24,9 @@ var __exportAll = (all, no_symbols) => {
24
24
  };
25
25
  //#endregion
26
26
  //#region src/components/ColorSlider.vue?vue&type=script&setup=true&lang.ts
27
- var _hoisted_1$67 = { class: "mint-color-slider__row" };
28
- var _hoisted_2$59 = { class: "mint-color-slider__track" };
29
- var _hoisted_3$55 = [
27
+ var _hoisted_1$68 = { class: "mint-color-slider__row" };
28
+ var _hoisted_2$60 = { class: "mint-color-slider__track" };
29
+ var _hoisted_3$56 = [
30
30
  "value",
31
31
  "min",
32
32
  "max",
@@ -141,7 +141,7 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
141
141
  emit("update:modelValue", Number(target.value));
142
142
  }
143
143
  return (_ctx, _cache) => {
144
- return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-color-slider", { "mint-color-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$67, [createElementVNode("div", _hoisted_2$59, [createElementVNode("input", {
144
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-color-slider", { "mint-color-slider--disabled": __props.disabled }]) }, [createElementVNode("div", _hoisted_1$68, [createElementVNode("div", _hoisted_2$60, [createElementVNode("input", {
145
145
  type: "range",
146
146
  value: currentValue.value,
147
147
  min: __props.min,
@@ -158,7 +158,7 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
158
158
  "--thumb-size": `${sizeConfig.value.thumb}px`
159
159
  }),
160
160
  onInput: handleInput
161
- }, null, 44, _hoisted_3$55)]), __props.showValue ? (openBlock(), createElementBlock("div", {
161
+ }, null, 44, _hoisted_3$56)]), __props.showValue ? (openBlock(), createElementBlock("div", {
162
162
  key: 0,
163
163
  class: "mint-color-slider__badge",
164
164
  style: normalizeStyle({
@@ -177,13 +177,13 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
177
177
  });
178
178
  //#endregion
179
179
  //#region src/components/BaseTabs.vue?vue&type=script&setup=true&lang.ts
180
- var _hoisted_1$66 = [
180
+ var _hoisted_1$67 = [
181
181
  "aria-selected",
182
182
  "aria-disabled",
183
183
  "onClick"
184
184
  ];
185
- var _hoisted_2$58 = { class: "mint-tab__content" };
186
- var _hoisted_3$54 = {
185
+ var _hoisted_2$59 = { class: "mint-tab__content" };
186
+ var _hoisted_3$55 = {
187
187
  key: 0,
188
188
  class: "mint-tab__icon mint-tab__icon--svg",
189
189
  viewBox: "0 0 24 24",
@@ -194,8 +194,8 @@ var _hoisted_3$54 = {
194
194
  "stroke-linejoin": "round",
195
195
  "aria-hidden": "true"
196
196
  };
197
- var _hoisted_4$50 = ["d"];
198
- var _hoisted_5$48 = ["d"];
197
+ var _hoisted_4$51 = ["d"];
198
+ var _hoisted_5$49 = ["d"];
199
199
  var _hoisted_6$47 = {
200
200
  key: 1,
201
201
  class: "mint-tab__icon"
@@ -245,33 +245,33 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
245
245
  tab.disabled ? "mint-tab--disabled" : ""
246
246
  ]),
247
247
  onClick: ($event) => selectTab(tab.id)
248
- }, [createElementVNode("span", _hoisted_2$58, [
249
- isSvgIcon(tab.icon) ? (openBlock(), createElementBlock("svg", _hoisted_3$54, [Array.isArray(tab.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(tab.icon, (d, index) => {
248
+ }, [createElementVNode("span", _hoisted_2$59, [
249
+ isSvgIcon(tab.icon) ? (openBlock(), createElementBlock("svg", _hoisted_3$55, [Array.isArray(tab.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(tab.icon, (d, index) => {
250
250
  return openBlock(), createElementBlock("path", {
251
251
  key: index,
252
252
  d
253
- }, null, 8, _hoisted_4$50);
253
+ }, null, 8, _hoisted_4$51);
254
254
  }), 128)) : (openBlock(), createElementBlock("path", {
255
255
  key: 1,
256
256
  d: tab.icon
257
- }, null, 8, _hoisted_5$48))])) : tab.icon ? (openBlock(), createElementBlock("span", _hoisted_6$47, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
257
+ }, null, 8, _hoisted_5$49))])) : tab.icon ? (openBlock(), createElementBlock("span", _hoisted_6$47, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
258
258
  createTextVNode(" " + toDisplayString(tab.label) + " ", 1),
259
259
  tab.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_7$43, toDisplayString(tab.badge), 1)) : createCommentVNode("", true)
260
- ])], 10, _hoisted_1$66);
260
+ ])], 10, _hoisted_1$67);
261
261
  }), 128))], 2);
262
262
  };
263
263
  }
264
264
  });
265
265
  //#endregion
266
266
  //#region src/components/SegmentedControl.vue?vue&type=script&setup=true&lang.ts
267
- var _hoisted_1$65 = [
267
+ var _hoisted_1$66 = [
268
268
  "aria-checked",
269
269
  "disabled",
270
270
  "onClick",
271
271
  "onKeydown"
272
272
  ];
273
- var _hoisted_2$57 = { class: "mint-segmented-control__label" };
274
- var _hoisted_3$53 = {
273
+ var _hoisted_2$58 = { class: "mint-segmented-control__label" };
274
+ var _hoisted_3$54 = {
275
275
  key: 0,
276
276
  class: "mint-segmented-control__description"
277
277
  };
@@ -343,24 +343,24 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
343
343
  ]),
344
344
  onClick: ($event) => handleSelect(option),
345
345
  onKeydown: ($event) => handleKeydown($event, option)
346
- }, [createElementVNode("span", _hoisted_2$57, toDisplayString(option.label), 1), option.description && __props.variant === "card" ? (openBlock(), createElementBlock("span", _hoisted_3$53, toDisplayString(option.description), 1)) : createCommentVNode("", true)], 42, _hoisted_1$65);
346
+ }, [createElementVNode("span", _hoisted_2$58, toDisplayString(option.label), 1), option.description && __props.variant === "card" ? (openBlock(), createElementBlock("span", _hoisted_3$54, toDisplayString(option.description), 1)) : createCommentVNode("", true)], 42, _hoisted_1$66);
347
347
  }), 128))], 2);
348
348
  };
349
349
  }
350
350
  });
351
351
  //#endregion
352
352
  //#region src/components/DropdownButton.vue?vue&type=script&setup=true&lang.ts
353
- var _hoisted_1$64 = ["disabled", "aria-expanded"];
354
- var _hoisted_2$56 = {
353
+ var _hoisted_1$65 = ["disabled", "aria-expanded"];
354
+ var _hoisted_2$57 = {
355
355
  key: 0,
356
356
  class: "mint-dropdown-button__spinner",
357
357
  viewBox: "0 0 24 24",
358
358
  fill: "none",
359
359
  "aria-hidden": "true"
360
360
  };
361
- var _hoisted_3$52 = { class: "mint-dropdown-button__label" };
362
- var _hoisted_4$49 = ["aria-activedescendant"];
363
- var _hoisted_5$47 = [
361
+ var _hoisted_3$53 = { class: "mint-dropdown-button__label" };
362
+ var _hoisted_4$50 = ["aria-activedescendant"];
363
+ var _hoisted_5$48 = [
364
364
  "id",
365
365
  "aria-selected",
366
366
  "aria-disabled",
@@ -446,7 +446,7 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
446
446
  "aria-haspopup": "listbox",
447
447
  onClick: toggle
448
448
  }, [
449
- __props.loading ? (openBlock(), createElementBlock("svg", _hoisted_2$56, [..._cache[0] || (_cache[0] = [createElementVNode("circle", {
449
+ __props.loading ? (openBlock(), createElementBlock("svg", _hoisted_2$57, [..._cache[0] || (_cache[0] = [createElementVNode("circle", {
450
450
  cx: "12",
451
451
  cy: "12",
452
452
  r: "10",
@@ -459,7 +459,7 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
459
459
  "stroke-width": "3",
460
460
  "stroke-linecap": "round"
461
461
  }, null, -1)])])) : createCommentVNode("", true),
462
- createElementVNode("span", _hoisted_3$52, toDisplayString(selectedLabel.value), 1),
462
+ createElementVNode("span", _hoisted_3$53, toDisplayString(selectedLabel.value), 1),
463
463
  (openBlock(), createElementBlock("svg", {
464
464
  class: normalizeClass(["mint-dropdown-button__chevron", { "mint-dropdown-button__chevron--open": unref(isOpen) }]),
465
465
  viewBox: "0 0 24 24",
@@ -469,7 +469,7 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
469
469
  "stroke-linecap": "round",
470
470
  "stroke-linejoin": "round"
471
471
  }, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))
472
- ], 10, _hoisted_1$64), createVNode(Transition, { name: "mint-dropdown-button-menu" }, {
472
+ ], 10, _hoisted_1$65), createVNode(Transition, { name: "mint-dropdown-button-menu" }, {
473
473
  default: withCtx(() => [unref(isOpen) ? (openBlock(), createElementBlock("ul", {
474
474
  key: 0,
475
475
  class: "mint-dropdown-button__menu",
@@ -491,8 +491,8 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
491
491
  createElementVNode("span", _hoisted_6$46, toDisplayString(option.label), 1),
492
492
  option.description ? (openBlock(), createElementBlock("span", _hoisted_7$42, toDisplayString(option.description), 1)) : createCommentVNode("", true),
493
493
  option.value === __props.modelValue ? (openBlock(), createElementBlock("svg", _hoisted_8$39, [..._cache[2] || (_cache[2] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)
494
- ], 10, _hoisted_5$47);
495
- }), 128))], 8, _hoisted_4$49)) : createCommentVNode("", true)]),
494
+ ], 10, _hoisted_5$48);
495
+ }), 128))], 8, _hoisted_4$50)) : createCommentVNode("", true)]),
496
496
  _: 1
497
497
  })], 512);
498
498
  };
@@ -500,14 +500,14 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
500
500
  });
501
501
  //#endregion
502
502
  //#region src/components/Calendar.vue?vue&type=script&setup=true&lang.ts
503
- var _hoisted_1$63 = { class: "mint-calendar" };
504
- var _hoisted_2$55 = {
503
+ var _hoisted_1$64 = { class: "mint-calendar" };
504
+ var _hoisted_2$56 = {
505
505
  key: 0,
506
506
  class: "mint-calendar__header"
507
507
  };
508
- var _hoisted_3$51 = { class: "mint-calendar__title" };
509
- var _hoisted_4$48 = { class: "mint-calendar__weekdays" };
510
- var _hoisted_5$46 = { class: "mint-calendar__grid" };
508
+ var _hoisted_3$52 = { class: "mint-calendar__title" };
509
+ var _hoisted_4$49 = { class: "mint-calendar__weekdays" };
510
+ var _hoisted_5$47 = { class: "mint-calendar__grid" };
511
511
  var _hoisted_6$45 = [
512
512
  "disabled",
513
513
  "onClick",
@@ -734,8 +734,8 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
734
734
  emit("navigate", "next", currentMonth.value, currentYear.value);
735
735
  }
736
736
  return (_ctx, _cache) => {
737
- return openBlock(), createElementBlock("div", _hoisted_1$63, [
738
- __props.showNavigation ? (openBlock(), createElementBlock("div", _hoisted_2$55, [
737
+ return openBlock(), createElementBlock("div", _hoisted_1$64, [
738
+ __props.showNavigation ? (openBlock(), createElementBlock("div", _hoisted_2$56, [
739
739
  createElementVNode("button", {
740
740
  type: "button",
741
741
  class: "mint-calendar__nav-btn",
@@ -754,7 +754,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
754
754
  year: currentYear.value,
755
755
  prevMonth,
756
756
  nextMonth
757
- }, () => [createElementVNode("span", _hoisted_3$51, toDisplayString(monthLabel.value), 1)]),
757
+ }, () => [createElementVNode("span", _hoisted_3$52, toDisplayString(monthLabel.value), 1)]),
758
758
  createElementVNode("button", {
759
759
  type: "button",
760
760
  class: "mint-calendar__nav-btn",
@@ -769,7 +769,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
769
769
  "stroke-linejoin": "round"
770
770
  }, [createElementVNode("path", { d: "m9 18 6-6-6-6" })], -1)])])
771
771
  ])) : createCommentVNode("", true),
772
- createElementVNode("div", _hoisted_4$48, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDayLabels.value, (label, i) => {
772
+ createElementVNode("div", _hoisted_4$49, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDayLabels.value, (label, i) => {
773
773
  return openBlock(), createElementBlock("span", {
774
774
  key: i,
775
775
  class: "mint-calendar__weekday"
@@ -778,7 +778,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
778
778
  index: i
779
779
  }, () => [createTextVNode(toDisplayString(label), 1)])]);
780
780
  }), 128))]),
781
- createElementVNode("div", _hoisted_5$46, [(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day, i) => {
781
+ createElementVNode("div", _hoisted_5$47, [(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day, i) => {
782
782
  return openBlock(), createElementBlock("button", {
783
783
  key: i,
784
784
  type: "button",
@@ -808,14 +808,14 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
808
808
  });
809
809
  //#endregion
810
810
  //#region src/components/DataFrame.vue?vue&type=script&setup=true&lang.ts
811
- var _hoisted_1$62 = {
811
+ var _hoisted_1$63 = {
812
812
  key: 0,
813
813
  class: "mint-dataframe__header"
814
814
  };
815
- var _hoisted_2$54 = { class: "mint-dataframe__search-wrapper" };
816
- var _hoisted_3$50 = ["placeholder"];
817
- var _hoisted_4$47 = { class: "mint-dataframe__table" };
818
- var _hoisted_5$45 = {
815
+ var _hoisted_2$55 = { class: "mint-dataframe__search-wrapper" };
816
+ var _hoisted_3$51 = ["placeholder"];
817
+ var _hoisted_4$48 = { class: "mint-dataframe__table" };
818
+ var _hoisted_5$46 = {
819
819
  key: 0,
820
820
  class: "mint-dataframe__th mint-dataframe__th--checkbox"
821
821
  };
@@ -1037,7 +1037,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1037
1037
  });
1038
1038
  return (_ctx, _cache) => {
1039
1039
  return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-dataframe", { "mint-dataframe--bordered": __props.bordered }]) }, [
1040
- __props.searchable ? (openBlock(), createElementBlock("div", _hoisted_1$62, [createElementVNode("div", _hoisted_2$54, [_cache[4] || (_cache[4] = createElementVNode("svg", {
1040
+ __props.searchable ? (openBlock(), createElementBlock("div", _hoisted_1$63, [createElementVNode("div", _hoisted_2$55, [_cache[4] || (_cache[4] = createElementVNode("svg", {
1041
1041
  class: "mint-dataframe__search-icon",
1042
1042
  viewBox: "0 0 24 24",
1043
1043
  fill: "none",
@@ -1054,12 +1054,12 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1054
1054
  type: "text",
1055
1055
  class: "mint-dataframe__search",
1056
1056
  placeholder: __props.searchPlaceholder
1057
- }, null, 8, _hoisted_3$50), [[vModelText, searchQuery.value]])])])) : createCommentVNode("", true),
1057
+ }, null, 8, _hoisted_3$51), [[vModelText, searchQuery.value]])])])) : createCommentVNode("", true),
1058
1058
  createElementVNode("div", {
1059
1059
  class: "mint-dataframe__table-wrapper",
1060
1060
  style: normalizeStyle(wrapperStyle.value)
1061
1061
  }, [
1062
- createElementVNode("table", _hoisted_4$47, [createElementVNode("thead", { class: normalizeClass(["mint-dataframe__thead", { "mint-dataframe__thead--sticky": __props.stickyHeader }]) }, [createElementVNode("tr", null, [__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$45, [createElementVNode("input", {
1062
+ createElementVNode("table", _hoisted_4$48, [createElementVNode("thead", { class: normalizeClass(["mint-dataframe__thead", { "mint-dataframe__thead--sticky": __props.stickyHeader }]) }, [createElementVNode("tr", null, [__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$46, [createElementVNode("input", {
1063
1063
  type: "checkbox",
1064
1064
  checked: allSelected.value,
1065
1065
  indeterminate: selectIndeterminate.value,
@@ -1199,7 +1199,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
1199
1199
  });
1200
1200
  //#endregion
1201
1201
  //#region src/components/AlertBox.vue?vue&type=script&setup=true&lang.ts
1202
- var _hoisted_1$61 = {
1202
+ var _hoisted_1$62 = {
1203
1203
  key: 0,
1204
1204
  class: "mint-alert__icon mint-alert__icon--success",
1205
1205
  viewBox: "0 0 24 24",
@@ -1209,7 +1209,7 @@ var _hoisted_1$61 = {
1209
1209
  "stroke-linecap": "round",
1210
1210
  "stroke-linejoin": "round"
1211
1211
  };
1212
- var _hoisted_2$53 = {
1212
+ var _hoisted_2$54 = {
1213
1213
  key: 1,
1214
1214
  class: "mint-alert__icon mint-alert__icon--error",
1215
1215
  viewBox: "0 0 24 24",
@@ -1219,7 +1219,7 @@ var _hoisted_2$53 = {
1219
1219
  "stroke-linecap": "round",
1220
1220
  "stroke-linejoin": "round"
1221
1221
  };
1222
- var _hoisted_3$49 = {
1222
+ var _hoisted_3$50 = {
1223
1223
  key: 2,
1224
1224
  class: "mint-alert__icon mint-alert__icon--warning",
1225
1225
  viewBox: "0 0 24 24",
@@ -1229,7 +1229,7 @@ var _hoisted_3$49 = {
1229
1229
  "stroke-linecap": "round",
1230
1230
  "stroke-linejoin": "round"
1231
1231
  };
1232
- var _hoisted_4$46 = {
1232
+ var _hoisted_4$47 = {
1233
1233
  key: 3,
1234
1234
  class: "mint-alert__icon mint-alert__icon--info",
1235
1235
  viewBox: "0 0 24 24",
@@ -1239,7 +1239,7 @@ var _hoisted_4$46 = {
1239
1239
  "stroke-linecap": "round",
1240
1240
  "stroke-linejoin": "round"
1241
1241
  };
1242
- var _hoisted_5$44 = { class: "mint-alert__content" };
1242
+ var _hoisted_5$45 = { class: "mint-alert__content" };
1243
1243
  var _hoisted_6$43 = {
1244
1244
  key: 0,
1245
1245
  class: "mint-alert__title"
@@ -1274,11 +1274,11 @@ var AlertBox_default = /* @__PURE__ */ defineComponent({
1274
1274
  class: normalizeClass(["mint-alert", `mint-alert--${props.type}`]),
1275
1275
  role: "alert"
1276
1276
  }, [
1277
- props.type === "success" ? (openBlock(), createElementBlock("svg", _hoisted_1$61, [..._cache[2] || (_cache[2] = [createElementVNode("circle", {
1277
+ props.type === "success" ? (openBlock(), createElementBlock("svg", _hoisted_1$62, [..._cache[2] || (_cache[2] = [createElementVNode("circle", {
1278
1278
  cx: "12",
1279
1279
  cy: "12",
1280
1280
  r: "10"
1281
- }, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])])) : props.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_2$53, [..._cache[3] || (_cache[3] = [
1281
+ }, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])])) : props.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_2$54, [..._cache[3] || (_cache[3] = [
1282
1282
  createElementVNode("circle", {
1283
1283
  cx: "12",
1284
1284
  cy: "12",
@@ -1286,11 +1286,11 @@ var AlertBox_default = /* @__PURE__ */ defineComponent({
1286
1286
  }, null, -1),
1287
1287
  createElementVNode("path", { d: "m15 9-6 6" }, null, -1),
1288
1288
  createElementVNode("path", { d: "m9 9 6 6" }, null, -1)
1289
- ])])) : props.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_3$49, [..._cache[4] || (_cache[4] = [
1289
+ ])])) : props.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_3$50, [..._cache[4] || (_cache[4] = [
1290
1290
  createElementVNode("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }, null, -1),
1291
1291
  createElementVNode("path", { d: "M12 9v4" }, null, -1),
1292
1292
  createElementVNode("path", { d: "M12 17h.01" }, null, -1)
1293
- ])])) : (openBlock(), createElementBlock("svg", _hoisted_4$46, [..._cache[5] || (_cache[5] = [
1293
+ ])])) : (openBlock(), createElementBlock("svg", _hoisted_4$47, [..._cache[5] || (_cache[5] = [
1294
1294
  createElementVNode("circle", {
1295
1295
  cx: "12",
1296
1296
  cy: "12",
@@ -1299,7 +1299,7 @@ var AlertBox_default = /* @__PURE__ */ defineComponent({
1299
1299
  createElementVNode("path", { d: "M12 16v-4" }, null, -1),
1300
1300
  createElementVNode("path", { d: "M12 8h.01" }, null, -1)
1301
1301
  ])])),
1302
- createElementVNode("div", _hoisted_5$44, [props.title ? (openBlock(), createElementBlock("h4", _hoisted_6$43, toDisplayString(props.title), 1)) : createCommentVNode("", true), createElementVNode("div", _hoisted_7$39, [renderSlot(_ctx.$slots, "default")])]),
1302
+ createElementVNode("div", _hoisted_5$45, [props.title ? (openBlock(), createElementBlock("h4", _hoisted_6$43, toDisplayString(props.title), 1)) : createCommentVNode("", true), createElementVNode("div", _hoisted_7$39, [renderSlot(_ctx.$slots, "default")])]),
1303
1303
  hasActions() ? (openBlock(), createElementBlock("div", _hoisted_8$36, [renderSlot(_ctx.$slots, "actions", {}, () => [createElementVNode("button", {
1304
1304
  type: "button",
1305
1305
  class: normalizeClass(["mint-alert__action-btn", `mint-alert__action-btn--${props.type}`]),
@@ -1326,9 +1326,9 @@ var AlertBox_default = /* @__PURE__ */ defineComponent({
1326
1326
  });
1327
1327
  //#endregion
1328
1328
  //#region src/components/AppToastContainer.vue?vue&type=script&setup=true&lang.ts
1329
- var _hoisted_1$60 = { class: "mint-toast__container" };
1330
- var _hoisted_2$52 = ["onClick"];
1331
- var _hoisted_3$48 = { class: "mint-toast__message" };
1329
+ var _hoisted_1$61 = { class: "mint-toast__container" };
1330
+ var _hoisted_2$53 = ["onClick"];
1331
+ var _hoisted_3$49 = { class: "mint-toast__message" };
1332
1332
  //#endregion
1333
1333
  //#region src/components/AppToastContainer.vue
1334
1334
  var AppToastContainer_default = /* @__PURE__ */ defineComponent({
@@ -1343,7 +1343,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1343
1343
  info: "#3B82F6"
1344
1344
  };
1345
1345
  return (_ctx, _cache) => {
1346
- return openBlock(), createBlock(Teleport, { to: "body" }, [createElementVNode("div", _hoisted_1$60, [createVNode(TransitionGroup, { name: "toast" }, {
1346
+ return openBlock(), createBlock(Teleport, { to: "body" }, [createElementVNode("div", _hoisted_1$61, [createVNode(TransitionGroup, { name: "toast" }, {
1347
1347
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(toasts), (toast) => {
1348
1348
  return openBlock(), createElementBlock("div", {
1349
1349
  key: toast.id,
@@ -1417,7 +1417,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1417
1417
  createElementVNode("path", { d: "M12 16v-4" }, null, -1),
1418
1418
  createElementVNode("path", { d: "M12 8h.01" }, null, -1)
1419
1419
  ])], 4)),
1420
- createElementVNode("span", _hoisted_3$48, toDisplayString(toast.message), 1),
1420
+ createElementVNode("span", _hoisted_3$49, toDisplayString(toast.message), 1),
1421
1421
  createElementVNode("span", {
1422
1422
  class: "mint-toast__progress",
1423
1423
  style: normalizeStyle({
@@ -1425,7 +1425,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1425
1425
  animationDuration: `${toast.duration ?? 3500}ms`
1426
1426
  })
1427
1427
  }, null, 4)
1428
- ], 14, _hoisted_2$52);
1428
+ ], 14, _hoisted_2$53);
1429
1429
  }), 128))]),
1430
1430
  _: 1
1431
1431
  })])]);
@@ -1434,7 +1434,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
1434
1434
  });
1435
1435
  //#endregion
1436
1436
  //#region src/components/IconButton.vue?vue&type=script&setup=true&lang.ts
1437
- var _hoisted_1$59 = [
1437
+ var _hoisted_1$60 = [
1438
1438
  "disabled",
1439
1439
  "aria-label",
1440
1440
  "title"
@@ -1496,13 +1496,13 @@ var IconButton_default = /* @__PURE__ */ defineComponent({
1496
1496
  }, null, -1)])], 2)) : (openBlock(), createElementBlock("span", {
1497
1497
  key: 1,
1498
1498
  class: normalizeClass(`mint-icon-button__icon--${__props.size}`)
1499
- }, [renderSlot(_ctx.$slots, "default")], 2))], 10, _hoisted_1$59);
1499
+ }, [renderSlot(_ctx.$slots, "default")], 2))], 10, _hoisted_1$60);
1500
1500
  };
1501
1501
  }
1502
1502
  });
1503
1503
  //#endregion
1504
1504
  //#region src/components/ThemeToggle.vue?vue&type=script&setup=true&lang.ts
1505
- var _hoisted_1$58 = {
1505
+ var _hoisted_1$59 = {
1506
1506
  key: 0,
1507
1507
  class: "mint-theme-toggle__icon",
1508
1508
  viewBox: "0 0 24 24",
@@ -1512,7 +1512,7 @@ var _hoisted_1$58 = {
1512
1512
  "stroke-linecap": "round",
1513
1513
  "stroke-linejoin": "round"
1514
1514
  };
1515
- var _hoisted_2$51 = {
1515
+ var _hoisted_2$52 = {
1516
1516
  key: 1,
1517
1517
  class: "mint-theme-toggle__icon",
1518
1518
  viewBox: "0 0 24 24",
@@ -1538,7 +1538,7 @@ var ThemeToggle_default = /* @__PURE__ */ defineComponent({
1538
1538
  label: unref(isDark) ? "Switch to light mode" : "Switch to dark mode",
1539
1539
  onClick: unref(toggleTheme)
1540
1540
  }, {
1541
- default: withCtx(() => [unref(isDark) ? (openBlock(), createElementBlock("svg", _hoisted_1$58, [..._cache[0] || (_cache[0] = [
1541
+ default: withCtx(() => [unref(isDark) ? (openBlock(), createElementBlock("svg", _hoisted_1$59, [..._cache[0] || (_cache[0] = [
1542
1542
  createElementVNode("circle", {
1543
1543
  cx: "12",
1544
1544
  cy: "12",
@@ -1552,7 +1552,7 @@ var ThemeToggle_default = /* @__PURE__ */ defineComponent({
1552
1552
  createElementVNode("path", { d: "M20 12h2" }, null, -1),
1553
1553
  createElementVNode("path", { d: "m6.34 17.66-1.41 1.41" }, null, -1),
1554
1554
  createElementVNode("path", { d: "m19.07 4.93-1.41 1.41" }, null, -1)
1555
- ])])) : (openBlock(), createElementBlock("svg", _hoisted_2$51, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }, null, -1)])]))]),
1555
+ ])])) : (openBlock(), createElementBlock("svg", _hoisted_2$52, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }, null, -1)])]))]),
1556
1556
  _: 1
1557
1557
  }, 8, [
1558
1558
  "size",
@@ -1564,11 +1564,11 @@ var ThemeToggle_default = /* @__PURE__ */ defineComponent({
1564
1564
  });
1565
1565
  //#endregion
1566
1566
  //#region src/components/CollapsibleCard.vue?vue&type=script&setup=true&lang.ts
1567
- var _hoisted_1$57 = { class: "mint-collapsible-card__header-shell" };
1568
- var _hoisted_2$50 = ["disabled", "aria-expanded"];
1569
- var _hoisted_3$47 = { class: "mint-collapsible-card__title-section" };
1570
- var _hoisted_4$45 = ["d"];
1571
- var _hoisted_5$43 = ["d"];
1567
+ var _hoisted_1$58 = { class: "mint-collapsible-card__header-shell" };
1568
+ var _hoisted_2$51 = ["disabled", "aria-expanded"];
1569
+ var _hoisted_3$48 = { class: "mint-collapsible-card__title-section" };
1570
+ var _hoisted_4$46 = ["d"];
1571
+ var _hoisted_5$44 = ["d"];
1572
1572
  var _hoisted_6$42 = { class: "mint-collapsible-card__titles" };
1573
1573
  var _hoisted_7$38 = { class: "mint-collapsible-card__title" };
1574
1574
  var _hoisted_8$35 = {
@@ -1686,13 +1686,13 @@ var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
1686
1686
  emit("action", action.id);
1687
1687
  }
1688
1688
  return (_ctx, _cache) => {
1689
- return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-collapsible-card", __props.dense ? "mint-collapsible-card--dense" : ""]) }, [createElementVNode("div", _hoisted_1$57, [createElementVNode("button", {
1689
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["mint-collapsible-card", __props.dense ? "mint-collapsible-card--dense" : ""]) }, [createElementVNode("div", _hoisted_1$58, [createElementVNode("button", {
1690
1690
  type: "button",
1691
1691
  class: normalizeClass(headerClasses.value),
1692
1692
  disabled: __props.disabled,
1693
1693
  "aria-expanded": isOpen.value,
1694
1694
  onClick: toggle
1695
- }, [createElementVNode("div", _hoisted_3$47, [__props.icon ? (openBlock(), createElementBlock("div", {
1695
+ }, [createElementVNode("div", _hoisted_3$48, [__props.icon ? (openBlock(), createElementBlock("div", {
1696
1696
  key: 0,
1697
1697
  class: "mint-collapsible-card__icon-badge",
1698
1698
  style: normalizeStyle(iconBgStyle.value)
@@ -1710,15 +1710,15 @@ var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
1710
1710
  return openBlock(), createElementBlock("path", {
1711
1711
  key: i,
1712
1712
  d
1713
- }, null, 8, _hoisted_4$45);
1713
+ }, null, 8, _hoisted_4$46);
1714
1714
  }), 128)) : (openBlock(), createElementBlock("path", {
1715
1715
  key: 1,
1716
1716
  d: __props.icon
1717
- }, null, 8, _hoisted_5$43))], 4)) : (openBlock(), createElementBlock("span", {
1717
+ }, null, 8, _hoisted_5$44))], 4)) : (openBlock(), createElementBlock("span", {
1718
1718
  key: 1,
1719
1719
  class: "mint-collapsible-card__icon-text",
1720
1720
  style: normalizeStyle(iconColorStyle.value)
1721
- }, toDisplayString(__props.icon), 5))], 4)) : createCommentVNode("", true), createElementVNode("div", _hoisted_6$42, [createElementVNode("h3", _hoisted_7$38, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_8$35, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)])])], 10, _hoisted_2$50), createElementVNode("div", _hoisted_9$32, [
1721
+ }, toDisplayString(__props.icon), 5))], 4)) : createCommentVNode("", true), createElementVNode("div", _hoisted_6$42, [createElementVNode("h3", _hoisted_7$38, toDisplayString(__props.title), 1), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_8$35, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)])])], 10, _hoisted_2$51), createElementVNode("div", _hoisted_9$32, [
1722
1722
  __props.badge !== void 0 ? (openBlock(), createElementBlock("span", {
1723
1723
  key: 0,
1724
1724
  class: normalizeClass(badgeClasses.value)
@@ -1913,18 +1913,18 @@ function isFiniteNumber(value, min, max) {
1913
1913
  }
1914
1914
  //#endregion
1915
1915
  //#region src/components/internal/ActionItemInternal.vue?vue&type=script&setup=true&lang.ts
1916
- var _hoisted_1$56 = [
1916
+ var _hoisted_1$57 = [
1917
1917
  "href",
1918
1918
  "aria-disabled",
1919
1919
  "tabindex"
1920
1920
  ];
1921
- var _hoisted_2$49 = [
1921
+ var _hoisted_2$50 = [
1922
1922
  "href",
1923
1923
  "aria-disabled",
1924
1924
  "tabindex",
1925
1925
  "onClick"
1926
1926
  ];
1927
- var _hoisted_3$46 = ["type", "disabled"];
1927
+ var _hoisted_3$47 = ["type", "disabled"];
1928
1928
  //#endregion
1929
1929
  //#region src/components/internal/ActionItemInternal.vue
1930
1930
  var ActionItemInternal_default = /* @__PURE__ */ defineComponent({
@@ -1970,7 +1970,7 @@ var ActionItemInternal_default = /* @__PURE__ */ defineComponent({
1970
1970
  "aria-disabled": __props.disabled || void 0,
1971
1971
  tabindex: __props.disabled ? -1 : void 0,
1972
1972
  onClick: handleClick
1973
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$56)) : __props.to ? (openBlock(), createBlock(_component_router_link, {
1973
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$57)) : __props.to ? (openBlock(), createBlock(_component_router_link, {
1974
1974
  key: 1,
1975
1975
  to: __props.to,
1976
1976
  custom: ""
@@ -1980,33 +1980,33 @@ var ActionItemInternal_default = /* @__PURE__ */ defineComponent({
1980
1980
  "aria-disabled": __props.disabled || void 0,
1981
1981
  tabindex: __props.disabled ? -1 : void 0,
1982
1982
  onClick: ($event) => handleRouterClick($event, navigate)
1983
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2$49)]),
1983
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2$50)]),
1984
1984
  _: 3
1985
1985
  }, 8, ["to"])) : (openBlock(), createElementBlock("button", mergeProps({ key: 2 }, _ctx.$attrs, {
1986
1986
  type: __props.type,
1987
1987
  disabled: __props.disabled,
1988
1988
  onClick: handleClick
1989
- }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_3$46));
1989
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_3$47));
1990
1990
  };
1991
1991
  }
1992
1992
  });
1993
1993
  //#endregion
1994
1994
  //#region src/components/PluginIcon.vue?vue&type=script&setup=true&lang.ts
1995
- var _hoisted_1$55 = ["viewBox"];
1996
- var _hoisted_2$48 = { key: 0 };
1997
- var _hoisted_3$45 = [
1995
+ var _hoisted_1$56 = ["viewBox"];
1996
+ var _hoisted_2$49 = { key: 0 };
1997
+ var _hoisted_3$46 = [
1998
1998
  "id",
1999
1999
  "x1",
2000
2000
  "y1",
2001
2001
  "x2",
2002
2002
  "y2"
2003
2003
  ];
2004
- var _hoisted_4$44 = [
2004
+ var _hoisted_4$45 = [
2005
2005
  "offset",
2006
2006
  "stop-color",
2007
2007
  "stop-opacity"
2008
2008
  ];
2009
- var _hoisted_5$42 = [
2009
+ var _hoisted_5$43 = [
2010
2010
  "x",
2011
2011
  "y",
2012
2012
  "width",
@@ -2107,7 +2107,7 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2107
2107
  viewBox: structuredIcon.value.viewBox,
2108
2108
  "aria-hidden": "true"
2109
2109
  }, [
2110
- structuredIcon.value.gradient ? (openBlock(), createElementBlock("defs", _hoisted_2$48, [createElementVNode("linearGradient", {
2110
+ structuredIcon.value.gradient ? (openBlock(), createElementBlock("defs", _hoisted_2$49, [createElementVNode("linearGradient", {
2111
2111
  id: gradientId.value,
2112
2112
  x1: gradientCoords.value.x1,
2113
2113
  y1: gradientCoords.value.y1,
@@ -2119,8 +2119,8 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2119
2119
  offset: stop.offset,
2120
2120
  "stop-color": stop.color,
2121
2121
  "stop-opacity": stop.opacity
2122
- }, null, 8, _hoisted_4$44);
2123
- }), 128))], 8, _hoisted_3$45)])) : createCommentVNode("", true),
2122
+ }, null, 8, _hoisted_4$45);
2123
+ }), 128))], 8, _hoisted_3$46)])) : createCommentVNode("", true),
2124
2124
  structuredIcon.value.background ? (openBlock(), createElementBlock("rect", {
2125
2125
  key: 1,
2126
2126
  x: structuredViewBox.value.x,
@@ -2129,7 +2129,7 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2129
2129
  height: structuredViewBox.value.height,
2130
2130
  rx: structuredIcon.value.background.radius,
2131
2131
  fill: backgroundFill.value
2132
- }, null, 8, _hoisted_5$42)) : createCommentVNode("", true),
2132
+ }, null, 8, _hoisted_5$43)) : createCommentVNode("", true),
2133
2133
  (openBlock(true), createElementBlock(Fragment, null, renderList(structuredIcon.value.paths, (path, index) => {
2134
2134
  return openBlock(), createElementBlock("path", {
2135
2135
  key: index,
@@ -2142,7 +2142,7 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2142
2142
  "stroke-linejoin": "round"
2143
2143
  }, null, 8, _hoisted_6$41);
2144
2144
  }), 128))
2145
- ], 8, _hoisted_1$55)) : detected.value.format === "path" || detected.value.format === "fallback" ? (openBlock(), createElementBlock("svg", _hoisted_7$37, [createElementVNode("path", { d: iconValue.value }, null, 8, _hoisted_8$34)])) : (openBlock(), createElementBlock("img", {
2145
+ ], 8, _hoisted_1$56)) : detected.value.format === "path" || detected.value.format === "fallback" ? (openBlock(), createElementBlock("svg", _hoisted_7$37, [createElementVNode("path", { d: iconValue.value }, null, 8, _hoisted_8$34)])) : (openBlock(), createElementBlock("img", {
2146
2146
  key: 2,
2147
2147
  class: "mint-plugin-icon__img",
2148
2148
  src: iconValue.value,
@@ -2155,17 +2155,17 @@ var PluginIcon_default = /* @__PURE__ */ defineComponent({
2155
2155
  });
2156
2156
  //#endregion
2157
2157
  //#region src/components/internal/AppTopBarPageSelectorInternal.vue?vue&type=script&setup=true&lang.ts
2158
- var _hoisted_1$54 = ["aria-expanded"];
2159
- var _hoisted_2$47 = {
2158
+ var _hoisted_1$55 = ["aria-expanded"];
2159
+ var _hoisted_2$48 = {
2160
2160
  key: 1,
2161
2161
  class: "mint-page-selector__icon-fallback"
2162
2162
  };
2163
- var _hoisted_3$44 = { class: "mint-page-selector__label" };
2164
- var _hoisted_4$43 = {
2163
+ var _hoisted_3$45 = { class: "mint-page-selector__label" };
2164
+ var _hoisted_4$44 = {
2165
2165
  class: "mint-page-selector__chevron-wrap",
2166
2166
  "aria-hidden": "true"
2167
2167
  };
2168
- var _hoisted_5$41 = {
2168
+ var _hoisted_5$42 = {
2169
2169
  key: 0,
2170
2170
  class: "mint-page-selector__menu",
2171
2171
  role: "menu"
@@ -2228,9 +2228,9 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2228
2228
  icon: current.value.icon,
2229
2229
  size: "sm",
2230
2230
  variant: "tinted"
2231
- }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_2$47, toDisplayString(current.value.label.charAt(0)), 1))])], 2)) : createCommentVNode("", true),
2232
- createElementVNode("span", _hoisted_3$44, toDisplayString(current.value?.label ?? __props.placeholder), 1),
2233
- createElementVNode("span", _hoisted_4$43, [(openBlock(), createElementBlock("svg", {
2231
+ }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_2$48, toDisplayString(current.value.label.charAt(0)), 1))])], 2)) : createCommentVNode("", true),
2232
+ createElementVNode("span", _hoisted_3$45, toDisplayString(current.value?.label ?? __props.placeholder), 1),
2233
+ createElementVNode("span", _hoisted_4$44, [(openBlock(), createElementBlock("svg", {
2234
2234
  class: normalizeClass(["mint-page-selector__chevron", { "mint-page-selector__chevron--open": unref(isOpen) }]),
2235
2235
  viewBox: "0 0 24 24",
2236
2236
  fill: "none",
@@ -2239,7 +2239,7 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2239
2239
  "stroke-linecap": "round",
2240
2240
  "stroke-linejoin": "round"
2241
2241
  }, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))])
2242
- ], 10, _hoisted_1$54), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$41, [_cache[2] || (_cache[2] = createElementVNode("div", { class: "mint-page-selector__menu-title" }, "Go to", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPages.value, (page) => {
2242
+ ], 10, _hoisted_1$55), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$42, [_cache[2] || (_cache[2] = createElementVNode("div", { class: "mint-page-selector__menu-title" }, "Go to", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPages.value, (page) => {
2243
2243
  return openBlock(), createBlock(ActionItemInternal_default, {
2244
2244
  key: page.id,
2245
2245
  href: page.href,
@@ -2278,16 +2278,16 @@ var AppTopBarPageSelectorInternal_default = /* @__PURE__ */ defineComponent({
2278
2278
  });
2279
2279
  //#endregion
2280
2280
  //#region src/components/internal/AppTopBarPillNavInternal.vue?vue&type=script&setup=true&lang.ts
2281
- var _hoisted_1$53 = {
2281
+ var _hoisted_1$54 = {
2282
2282
  class: "mint-pill-nav",
2283
2283
  "aria-label": "Primary"
2284
2284
  };
2285
- var _hoisted_2$46 = [
2285
+ var _hoisted_2$47 = [
2286
2286
  "disabled",
2287
2287
  "aria-expanded",
2288
2288
  "onClick"
2289
2289
  ];
2290
- var _hoisted_3$43 = {
2290
+ var _hoisted_3$44 = {
2291
2291
  key: 0,
2292
2292
  class: "mint-pill-nav__icon",
2293
2293
  viewBox: "0 0 24 24",
@@ -2298,8 +2298,8 @@ var _hoisted_3$43 = {
2298
2298
  "stroke-linejoin": "round",
2299
2299
  "aria-hidden": "true"
2300
2300
  };
2301
- var _hoisted_4$42 = ["d"];
2302
- var _hoisted_5$40 = ["d"];
2301
+ var _hoisted_4$43 = ["d"];
2302
+ var _hoisted_5$41 = ["d"];
2303
2303
  var _hoisted_6$39 = {
2304
2304
  key: 0,
2305
2305
  class: "mint-pill-nav__icon",
@@ -2378,7 +2378,7 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2378
2378
  }
2379
2379
  useEventListener(() => document, "click", handleClickOutside);
2380
2380
  return (_ctx, _cache) => {
2381
- return openBlock(), createElementBlock("nav", _hoisted_1$53, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item) => {
2381
+ return openBlock(), createElementBlock("nav", _hoisted_1$54, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedItems.value, (item) => {
2382
2382
  return openBlock(), createElementBlock("div", {
2383
2383
  key: item.id,
2384
2384
  ref_for: true,
@@ -2397,15 +2397,15 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2397
2397
  "aria-haspopup": "menu",
2398
2398
  onClick: withModifiers(($event) => handleClick(item), ["stop"])
2399
2399
  }, [
2400
- isSvgIcon(item.icon) ? (openBlock(), createElementBlock("svg", _hoisted_3$43, [Array.isArray(item.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(item.icon, (d, index) => {
2400
+ isSvgIcon(item.icon) ? (openBlock(), createElementBlock("svg", _hoisted_3$44, [Array.isArray(item.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(item.icon, (d, index) => {
2401
2401
  return openBlock(), createElementBlock("path", {
2402
2402
  key: index,
2403
2403
  d
2404
- }, null, 8, _hoisted_4$42);
2404
+ }, null, 8, _hoisted_4$43);
2405
2405
  }), 128)) : (openBlock(), createElementBlock("path", {
2406
2406
  key: 1,
2407
2407
  d: item.icon
2408
- }, null, 8, _hoisted_5$40))])) : createCommentVNode("", true),
2408
+ }, null, 8, _hoisted_5$41))])) : createCommentVNode("", true),
2409
2409
  createTextVNode(" " + toDisplayString(item.label) + " ", 1),
2410
2410
  (openBlock(), createElementBlock("svg", {
2411
2411
  class: normalizeClass(["mint-pill-nav__chevron", { "mint-pill-nav__chevron--open": openItemId.value === item.id }]),
@@ -2417,7 +2417,7 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2417
2417
  "stroke-linejoin": "round",
2418
2418
  "aria-hidden": "true"
2419
2419
  }, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))
2420
- ], 10, _hoisted_2$46)) : (openBlock(), createBlock(ActionItemInternal_default, {
2420
+ ], 10, _hoisted_2$47)) : (openBlock(), createBlock(ActionItemInternal_default, {
2421
2421
  key: 1,
2422
2422
  href: item.href,
2423
2423
  to: item.to,
@@ -2475,18 +2475,18 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
2475
2475
  });
2476
2476
  //#endregion
2477
2477
  //#region src/components/AppAvatarMenu.vue?vue&type=script&setup=true&lang.ts
2478
- var _hoisted_1$52 = ["aria-expanded", "title"];
2479
- var _hoisted_2$45 = { class: "mint-avatar-menu__avatar" };
2480
- var _hoisted_3$42 = {
2478
+ var _hoisted_1$53 = ["aria-expanded", "title"];
2479
+ var _hoisted_2$46 = { class: "mint-avatar-menu__avatar" };
2480
+ var _hoisted_3$43 = {
2481
2481
  key: 0,
2482
2482
  class: "mint-avatar-menu__name"
2483
2483
  };
2484
- var _hoisted_4$41 = {
2484
+ var _hoisted_4$42 = {
2485
2485
  key: 0,
2486
2486
  class: "mint-avatar-menu__panel",
2487
2487
  role: "menu"
2488
2488
  };
2489
- var _hoisted_5$39 = {
2489
+ var _hoisted_5$40 = {
2490
2490
  key: 0,
2491
2491
  class: "mint-avatar-menu__header"
2492
2492
  };
@@ -2578,8 +2578,8 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
2578
2578
  "aria-haspopup": "menu",
2579
2579
  title: __props.userName ? `${__props.userName} · Account menu` : "Account menu",
2580
2580
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => unref(toggle) && unref(toggle)(...args), ["stop"]))
2581
- }, [createElementVNode("span", _hoisted_2$45, [renderSlot(_ctx.$slots, "avatar", { initials: initials.value }, () => [createTextVNode(toDisplayString(initials.value), 1)])]), __props.userName ? (openBlock(), createElementBlock("span", _hoisted_3$42, toDisplayString(__props.userName), 1)) : createCommentVNode("", true)], 10, _hoisted_1$52), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_4$41, [
2582
- __props.userName || __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_5$39, [__props.userName ? (openBlock(), createElementBlock("div", _hoisted_6$38, toDisplayString(__props.userName), 1)) : createCommentVNode("", true), __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_7$34, toDisplayString(__props.userEmail), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
2581
+ }, [createElementVNode("span", _hoisted_2$46, [renderSlot(_ctx.$slots, "avatar", { initials: initials.value }, () => [createTextVNode(toDisplayString(initials.value), 1)])]), __props.userName ? (openBlock(), createElementBlock("span", _hoisted_3$43, toDisplayString(__props.userName), 1)) : createCommentVNode("", true)], 10, _hoisted_1$53), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_4$42, [
2582
+ __props.userName || __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_5$40, [__props.userName ? (openBlock(), createElementBlock("div", _hoisted_6$38, toDisplayString(__props.userName), 1)) : createCommentVNode("", true), __props.userEmail ? (openBlock(), createElementBlock("div", _hoisted_7$34, toDisplayString(__props.userEmail), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
2583
2583
  renderSlot(_ctx.$slots, "items", { close: closeSilently }, () => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
2584
2584
  return openBlock(), createElementBlock(Fragment, { key: item.id }, [item.divider ? (openBlock(), createElementBlock("div", _hoisted_8$31)) : (openBlock(), createBlock(ActionItemInternal_default, {
2585
2585
  key: 1,
@@ -2617,17 +2617,17 @@ var AppAvatarMenu_default = /* @__PURE__ */ defineComponent({
2617
2617
  });
2618
2618
  //#endregion
2619
2619
  //#region src/components/AppPluginSwitcher.vue?vue&type=script&setup=true&lang.ts
2620
- var _hoisted_1$51 = ["aria-expanded"];
2621
- var _hoisted_2$44 = { class: "mint-plugin-switcher__label" };
2622
- var _hoisted_3$41 = {
2620
+ var _hoisted_1$52 = ["aria-expanded"];
2621
+ var _hoisted_2$45 = { class: "mint-plugin-switcher__label" };
2622
+ var _hoisted_3$42 = {
2623
2623
  key: 0,
2624
2624
  class: "mint-plugin-switcher__version"
2625
2625
  };
2626
- var _hoisted_4$40 = {
2626
+ var _hoisted_4$41 = {
2627
2627
  class: "mint-plugin-switcher__chevron-wrap",
2628
2628
  "aria-hidden": "true"
2629
2629
  };
2630
- var _hoisted_5$38 = {
2630
+ var _hoisted_5$39 = {
2631
2631
  key: 0,
2632
2632
  class: "mint-plugin-switcher__menu",
2633
2633
  role: "menu"
@@ -2697,9 +2697,9 @@ var AppPluginSwitcher_default = /* @__PURE__ */ defineComponent({
2697
2697
  "aria-haspopup": "menu",
2698
2698
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => unref(toggle) && unref(toggle)(...args), ["stop"]))
2699
2699
  }, [
2700
- createElementVNode("span", _hoisted_2$44, toDisplayString(__props.current.label), 1),
2701
- __props.current.version ? (openBlock(), createElementBlock("span", _hoisted_3$41, "v" + toDisplayString(__props.current.version), 1)) : createCommentVNode("", true),
2702
- createElementVNode("span", _hoisted_4$40, [(openBlock(), createElementBlock("svg", {
2700
+ createElementVNode("span", _hoisted_2$45, toDisplayString(__props.current.label), 1),
2701
+ __props.current.version ? (openBlock(), createElementBlock("span", _hoisted_3$42, "v" + toDisplayString(__props.current.version), 1)) : createCommentVNode("", true),
2702
+ createElementVNode("span", _hoisted_4$41, [(openBlock(), createElementBlock("svg", {
2703
2703
  class: normalizeClass(["mint-plugin-switcher__chevron", { "mint-plugin-switcher__chevron--open": unref(isOpen) }]),
2704
2704
  viewBox: "0 0 24 24",
2705
2705
  fill: "none",
@@ -2708,7 +2708,7 @@ var AppPluginSwitcher_default = /* @__PURE__ */ defineComponent({
2708
2708
  "stroke-linecap": "round",
2709
2709
  "stroke-linejoin": "round"
2710
2710
  }, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))])
2711
- ], 10, _hoisted_1$51), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$38, [
2711
+ ], 10, _hoisted_1$52), unref(isOpen) ? (openBlock(), createElementBlock("div", _hoisted_5$39, [
2712
2712
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "mint-plugin-switcher__menu-title" }, "Switch plugin", -1)),
2713
2713
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins, (plugin) => {
2714
2714
  return openBlock(), createBlock(ActionItemInternal_default, {
@@ -2806,14 +2806,14 @@ function currentItemIdFromLocation(pages, pathname, routePrefix) {
2806
2806
  }
2807
2807
  //#endregion
2808
2808
  //#region src/components/AppTopBar.vue?vue&type=script&setup=true&lang.ts
2809
- var _hoisted_1$50 = { class: "mint-topbar__container" };
2810
- var _hoisted_2$43 = { class: "mint-topbar__brand" };
2811
- var _hoisted_3$40 = ["href"];
2812
- var _hoisted_4$39 = {
2809
+ var _hoisted_1$51 = { class: "mint-topbar__container" };
2810
+ var _hoisted_2$44 = { class: "mint-topbar__brand" };
2811
+ var _hoisted_3$41 = ["href"];
2812
+ var _hoisted_4$40 = {
2813
2813
  key: 0,
2814
2814
  class: "mint-topbar__logo"
2815
2815
  };
2816
- var _hoisted_5$37 = {
2816
+ var _hoisted_5$38 = {
2817
2817
  key: 0,
2818
2818
  class: "mint-topbar__logo"
2819
2819
  };
@@ -2924,9 +2924,9 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
2924
2924
  setup(__props, { emit: __emit }) {
2925
2925
  /** Full application top bar with brand logo, page selector or plugin switcher, centered pill nav, experiment popover, and avatar menu. */
2926
2926
  const props = __props;
2927
- const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-L7Ejny45.js"));
2927
+ const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-DXcSKk9D.js"));
2928
2928
  const ExperimentPopover = defineAsyncComponent(() => import("./ExperimentPopover-gdSA9ZCF.js"));
2929
- const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-DIFyL5ta.js"));
2929
+ const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-BOzDs8TU.js"));
2930
2930
  const emit = __emit;
2931
2931
  const settingsOpen = ref(false);
2932
2932
  const { isIntegrated, plugin } = usePlatformContext();
@@ -2962,8 +2962,8 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
2962
2962
  return (_ctx, _cache) => {
2963
2963
  const _component_router_link = resolveComponent("router-link");
2964
2964
  return openBlock(), createElementBlock(Fragment, null, [
2965
- createElementVNode("header", { class: normalizeClass(["mint-topbar", `mint-topbar--${props.variant}`]) }, [createElementVNode("div", _hoisted_1$50, [
2966
- createElementVNode("div", _hoisted_2$43, [__props.homePath && (__props.homePath.startsWith("http") || __props.homePath.startsWith("/")) ? (openBlock(), createElementBlock("a", {
2965
+ createElementVNode("header", { class: normalizeClass(["mint-topbar", `mint-topbar--${props.variant}`]) }, [createElementVNode("div", _hoisted_1$51, [
2966
+ createElementVNode("div", _hoisted_2$44, [__props.homePath && (__props.homePath.startsWith("http") || __props.homePath.startsWith("/")) ? (openBlock(), createElementBlock("a", {
2967
2967
  key: 0,
2968
2968
  href: __props.homePath,
2969
2969
  class: "mint-topbar-home-link"
@@ -2974,7 +2974,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
2974
2974
  tone: pluginIcon.value.color,
2975
2975
  size: "md",
2976
2976
  variant: "solid"
2977
- }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_4$39, [..._cache[19] || (_cache[19] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])], 8, _hoisted_3$40)) : __props.homePath ? (openBlock(), createBlock(_component_router_link, {
2977
+ }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_4$40, [..._cache[19] || (_cache[19] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])], 8, _hoisted_3$41)) : __props.homePath ? (openBlock(), createBlock(_component_router_link, {
2978
2978
  key: 1,
2979
2979
  to: __props.homePath,
2980
2980
  class: "mint-topbar-home-link"
@@ -2986,7 +2986,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
2986
2986
  tone: pluginIcon.value.color,
2987
2987
  size: "md",
2988
2988
  variant: "solid"
2989
- }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_5$37, [..._cache[20] || (_cache[20] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])]),
2989
+ }, null, 8, ["icon", "tone"])) : renderSlot(_ctx.$slots, "logo", { key: 1 }, () => [__props.showLogo ? (openBlock(), createElementBlock("div", _hoisted_5$38, [..._cache[20] || (_cache[20] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)])])]),
2990
2990
  _: 3
2991
2991
  }, 8, ["to"])) : renderSlot(_ctx.$slots, "icon", { key: 2 }, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
2992
2992
  key: 0,
@@ -3178,14 +3178,14 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
3178
3178
  });
3179
3179
  //#endregion
3180
3180
  //#region src/components/StepWizard.vue?vue&type=script&setup=true&lang.ts
3181
- var _hoisted_1$49 = {
3181
+ var _hoisted_1$50 = {
3182
3182
  key: 0,
3183
3183
  class: "mint-wizard__progress"
3184
3184
  };
3185
- var _hoisted_2$42 = { class: "mint-wizard__steps-indicator" };
3186
- var _hoisted_3$39 = ["onClick"];
3187
- var _hoisted_4$38 = { class: "mint-wizard__step-dot" };
3188
- var _hoisted_5$36 = {
3185
+ var _hoisted_2$43 = { class: "mint-wizard__steps-indicator" };
3186
+ var _hoisted_3$40 = ["onClick"];
3187
+ var _hoisted_4$39 = { class: "mint-wizard__step-dot" };
3188
+ var _hoisted_5$37 = {
3189
3189
  key: 0,
3190
3190
  width: "12",
3191
3191
  height: "12",
@@ -3294,18 +3294,18 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3294
3294
  tabindex: "0",
3295
3295
  onKeydown: handleKeydown
3296
3296
  }, [
3297
- props.showProgress ? (openBlock(), createElementBlock("div", _hoisted_1$49, [renderSlot(_ctx.$slots, "progress", {
3297
+ props.showProgress ? (openBlock(), createElementBlock("div", _hoisted_1$50, [renderSlot(_ctx.$slots, "progress", {
3298
3298
  steps: props.steps,
3299
3299
  current: props.modelValue,
3300
3300
  states: stepStates.value
3301
- }, () => [createElementVNode("div", _hoisted_2$42, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.steps, (step, index) => {
3301
+ }, () => [createElementVNode("div", _hoisted_2$43, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.steps, (step, index) => {
3302
3302
  return openBlock(), createElementBlock(Fragment, { key: step.id }, [index > 0 ? (openBlock(), createElementBlock("div", {
3303
3303
  key: 0,
3304
3304
  class: normalizeClass(["mint-wizard__step-connector", stepStates.value[index - 1] === "completed" ? "mint-wizard__step-connector--completed" : ""])
3305
3305
  }, null, 2)) : createCommentVNode("", true), createElementVNode("div", {
3306
3306
  class: normalizeClass(["mint-wizard__step-indicator", `mint-wizard__step-indicator--${stepStates.value[index]}`]),
3307
3307
  onClick: ($event) => goToStep(index)
3308
- }, [createElementVNode("div", _hoisted_4$38, [stepStates.value[index] === "completed" ? (openBlock(), createElementBlock("svg", _hoisted_5$36, [..._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$35, toDisplayString(step.label), 1)], 10, _hoisted_3$39)], 64);
3308
+ }, [createElementVNode("div", _hoisted_4$39, [stepStates.value[index] === "completed" ? (openBlock(), createElementBlock("svg", _hoisted_5$37, [..._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$35, toDisplayString(step.label), 1)], 10, _hoisted_3$40)], 64);
3309
3309
  }), 128))])])])) : createCommentVNode("", true),
3310
3310
  createElementVNode("div", _hoisted_7$31, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.steps, (step, index) => {
3311
3311
  return withDirectives((openBlock(), createElementBlock("div", {
@@ -3357,23 +3357,23 @@ var StepWizard_default = /* @__PURE__ */ defineComponent({
3357
3357
  });
3358
3358
  //#endregion
3359
3359
  //#region src/components/internal/FormSectionRenderer.vue?vue&type=script&setup=true&lang.ts
3360
- var _hoisted_1$48 = {
3360
+ var _hoisted_1$49 = {
3361
3361
  key: 0,
3362
3362
  class: "mint-form-section"
3363
3363
  };
3364
- var _hoisted_2$41 = {
3364
+ var _hoisted_2$42 = {
3365
3365
  key: 1,
3366
3366
  class: "mint-form-section--static"
3367
3367
  };
3368
- var _hoisted_3$38 = {
3368
+ var _hoisted_3$39 = {
3369
3369
  key: 0,
3370
3370
  class: "mint-form-section__header"
3371
3371
  };
3372
- var _hoisted_4$37 = {
3372
+ var _hoisted_4$38 = {
3373
3373
  key: 0,
3374
3374
  class: "mint-form-section__title"
3375
3375
  };
3376
- var _hoisted_5$35 = {
3376
+ var _hoisted_5$36 = {
3377
3377
  key: 1,
3378
3378
  class: "mint-form-section__description"
3379
3379
  };
@@ -3390,7 +3390,7 @@ var FormSectionRenderer_default = /* @__PURE__ */ defineComponent({
3390
3390
  const visibleFields = computed(() => props.section.fields.filter((f) => props.builder.isFieldVisible(f.name)));
3391
3391
  const gridStyle = computed(() => ({ gridTemplateColumns: `repeat(${props.section.columns ?? 1}, 1fr)` }));
3392
3392
  return (_ctx, _cache) => {
3393
- return visibleFields.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$48, [renderSlot(_ctx.$slots, `section:${__props.section.id}`, {
3393
+ return visibleFields.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$49, [renderSlot(_ctx.$slots, `section:${__props.section.id}`, {
3394
3394
  section: __props.section,
3395
3395
  form: __props.builder.form
3396
3396
  }, () => [__props.section.collapsible ? (openBlock(), createBlock(CollapsibleCard_default, {
@@ -3425,7 +3425,7 @@ var FormSectionRenderer_default = /* @__PURE__ */ defineComponent({
3425
3425
  "title",
3426
3426
  "subtitle",
3427
3427
  "default-open"
3428
- ])) : (openBlock(), createElementBlock("div", _hoisted_2$41, [__props.section.title || __props.section.description ? (openBlock(), createElementBlock("div", _hoisted_3$38, [__props.section.title ? (openBlock(), createElementBlock("h3", _hoisted_4$37, toDisplayString(__props.section.title), 1)) : createCommentVNode("", true), __props.section.description ? (openBlock(), createElementBlock("p", _hoisted_5$35, toDisplayString(__props.section.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", {
3428
+ ])) : (openBlock(), createElementBlock("div", _hoisted_2$42, [__props.section.title || __props.section.description ? (openBlock(), createElementBlock("div", _hoisted_3$39, [__props.section.title ? (openBlock(), createElementBlock("h3", _hoisted_4$38, toDisplayString(__props.section.title), 1)) : createCommentVNode("", true), __props.section.description ? (openBlock(), createElementBlock("p", _hoisted_5$36, toDisplayString(__props.section.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), createElementVNode("div", {
3429
3429
  class: "mint-form-section__grid",
3430
3430
  style: normalizeStyle(gridStyle.value)
3431
3431
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleFields.value, (field) => {
@@ -3451,7 +3451,7 @@ var FormSectionRenderer_default = /* @__PURE__ */ defineComponent({
3451
3451
  });
3452
3452
  //#endregion
3453
3453
  //#region src/components/FormActions.vue?vue&type=script&setup=true&lang.ts
3454
- var _hoisted_1$47 = { class: "mint-form-actions" };
3454
+ var _hoisted_1$48 = { class: "mint-form-actions" };
3455
3455
  //#endregion
3456
3456
  //#region src/components/FormActions.vue
3457
3457
  var FormActions_default = /* @__PURE__ */ defineComponent({
@@ -3508,7 +3508,7 @@ var FormActions_default = /* @__PURE__ */ defineComponent({
3508
3508
  */
3509
3509
  const emit = __emit;
3510
3510
  return (_ctx, _cache) => {
3511
- return openBlock(), createElementBlock("div", _hoisted_1$47, [
3511
+ return openBlock(), createElementBlock("div", _hoisted_1$48, [
3512
3512
  __props.showCancel ? (openBlock(), createBlock(BaseButton_default, {
3513
3513
  key: 0,
3514
3514
  variant: "ghost",
@@ -3553,7 +3553,7 @@ var FormActions_default = /* @__PURE__ */ defineComponent({
3553
3553
  });
3554
3554
  //#endregion
3555
3555
  //#region src/components/FormBuilder.vue?vue&type=script&setup=true&lang.ts
3556
- var _hoisted_1$46 = { class: "mint-form-builder__step" };
3556
+ var _hoisted_1$47 = { class: "mint-form-builder__step" };
3557
3557
  //#endregion
3558
3558
  //#region src/components/FormBuilder.vue
3559
3559
  var FormBuilder_default = /* @__PURE__ */ defineComponent({
@@ -3697,7 +3697,7 @@ var FormBuilder_default = /* @__PURE__ */ defineComponent({
3697
3697
  }, createSlots({ _: 2 }, [renderList(resolvedSchema.value.steps, (step) => {
3698
3698
  return {
3699
3699
  name: `step-${step.id}`,
3700
- fn: withCtx(() => [createElementVNode("div", _hoisted_1$46, [(openBlock(true), createElementBlock(Fragment, null, renderList(step.sections, (section) => {
3700
+ fn: withCtx(() => [createElementVNode("div", _hoisted_1$47, [(openBlock(true), createElementBlock(Fragment, null, renderList(step.sections, (section) => {
3701
3701
  return openBlock(), createElementBlock(Fragment, { key: section.id }, [unref(builder).isSectionVisible(section.id) ? (openBlock(), createBlock(FormSectionRenderer_default, {
3702
3702
  key: 0,
3703
3703
  section,
@@ -3784,20 +3784,20 @@ var FormBuilder_default = /* @__PURE__ */ defineComponent({
3784
3784
  });
3785
3785
  //#endregion
3786
3786
  //#region src/components/AppSidebar.vue?vue&type=script&setup=true&lang.ts
3787
- var _hoisted_1$45 = {
3787
+ var _hoisted_1$46 = {
3788
3788
  key: 0,
3789
3789
  class: "mint-sidebar__header"
3790
3790
  };
3791
- var _hoisted_2$40 = {
3791
+ var _hoisted_2$41 = {
3792
3792
  key: 0,
3793
3793
  class: "mint-sidebar__heading"
3794
3794
  };
3795
- var _hoisted_3$37 = { class: "mint-sidebar__heading-copy" };
3796
- var _hoisted_4$36 = {
3795
+ var _hoisted_3$38 = { class: "mint-sidebar__heading-copy" };
3796
+ var _hoisted_4$37 = {
3797
3797
  key: 0,
3798
3798
  class: "mint-sidebar__title"
3799
3799
  };
3800
- var _hoisted_5$34 = {
3800
+ var _hoisted_5$35 = {
3801
3801
  key: 1,
3802
3802
  class: "mint-sidebar__subtitle"
3803
3803
  };
@@ -4071,10 +4071,10 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4071
4071
  class: normalizeClass(sidebarClasses.value),
4072
4072
  style: normalizeStyle(sidebarStyle.value)
4073
4073
  }, [
4074
- _ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 || resolvedCollapsible.value ? (openBlock(), createElementBlock("div", _hoisted_1$45, [renderSlot(_ctx.$slots, "header", {
4074
+ _ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 || resolvedCollapsible.value ? (openBlock(), createElementBlock("div", _hoisted_1$46, [renderSlot(_ctx.$slots, "header", {
4075
4075
  collapsed: collapsedModel.value,
4076
4076
  toggleCollapsed
4077
- }, () => [!collapsedModel.value ? (openBlock(), createElementBlock("div", _hoisted_2$40, [createElementVNode("div", _hoisted_3$37, [__props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$36, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_5$34, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), __props.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_6$34, toDisplayString(__props.badge), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), resolvedCollapsible.value ? (openBlock(), createElementBlock("button", {
4077
+ }, () => [!collapsedModel.value ? (openBlock(), createElementBlock("div", _hoisted_2$41, [createElementVNode("div", _hoisted_3$38, [__props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$37, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_5$35, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), __props.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_6$34, toDisplayString(__props.badge), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), resolvedCollapsible.value ? (openBlock(), createElementBlock("button", {
4078
4078
  key: 1,
4079
4079
  type: "button",
4080
4080
  class: "mint-sidebar__collapse-button",
@@ -4193,13 +4193,13 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
4193
4193
  });
4194
4194
  //#endregion
4195
4195
  //#region src/components/AppLayout.vue?vue&type=script&setup=true&lang.ts
4196
- var _hoisted_1$44 = {
4196
+ var _hoisted_1$45 = {
4197
4197
  key: 0,
4198
4198
  class: "mint-layout__topbar"
4199
4199
  };
4200
- var _hoisted_2$39 = { class: "mint-layout__body" };
4201
- var _hoisted_3$36 = ["aria-label", "aria-expanded"];
4202
- var _hoisted_4$35 = {
4200
+ var _hoisted_2$40 = { class: "mint-layout__body" };
4201
+ var _hoisted_3$37 = ["aria-label", "aria-expanded"];
4202
+ var _hoisted_4$36 = {
4203
4203
  key: 0,
4204
4204
  class: "mint-layout__sidebar-toggle-icon",
4205
4205
  viewBox: "0 0 24 24",
@@ -4210,7 +4210,7 @@ var _hoisted_4$35 = {
4210
4210
  "stroke-linejoin": "round",
4211
4211
  "aria-hidden": "true"
4212
4212
  };
4213
- var _hoisted_5$33 = {
4213
+ var _hoisted_5$34 = {
4214
4214
  key: 1,
4215
4215
  class: "mint-layout__sidebar-toggle-icon",
4216
4216
  viewBox: "0 0 24 24",
@@ -4299,7 +4299,7 @@ var AppLayout_default = /* @__PURE__ */ defineComponent({
4299
4299
  sidebarOpenModel.value = false;
4300
4300
  }
4301
4301
  return (_ctx, _cache) => {
4302
- return openBlock(), createElementBlock("div", { class: normalizeClass(layoutClasses.value) }, [_ctx.$slots.topbar ? (openBlock(), createElementBlock("div", _hoisted_1$44, [renderSlot(_ctx.$slots, "topbar")])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$39, [
4302
+ return openBlock(), createElementBlock("div", { class: normalizeClass(layoutClasses.value) }, [_ctx.$slots.topbar ? (openBlock(), createElementBlock("div", _hoisted_1$45, [renderSlot(_ctx.$slots, "topbar")])) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$40, [
4303
4303
  __props.responsiveSidebar && _ctx.$slots.sidebar ? (openBlock(), createElementBlock("button", {
4304
4304
  key: 0,
4305
4305
  type: "button",
@@ -4307,7 +4307,7 @@ var AppLayout_default = /* @__PURE__ */ defineComponent({
4307
4307
  "aria-label": sidebarOpenModel.value ? __props.sidebarCloseLabel : __props.sidebarToggleLabel,
4308
4308
  "aria-expanded": sidebarOpenModel.value,
4309
4309
  onClick: toggleSidebar
4310
- }, [!sidebarOpenModel.value ? (openBlock(), createElementBlock("svg", _hoisted_4$35, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M4 6h16M4 12h16M4 18h16" }, null, -1)])])) : (openBlock(), createElementBlock("svg", _hoisted_5$33, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "M6 18 18 6M6 6l12 12" }, null, -1)])]))], 8, _hoisted_3$36)) : createCommentVNode("", true),
4310
+ }, [!sidebarOpenModel.value ? (openBlock(), createElementBlock("svg", _hoisted_4$36, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M4 6h16M4 12h16M4 18h16" }, null, -1)])])) : (openBlock(), createElementBlock("svg", _hoisted_5$34, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "M6 18 18 6M6 6l12 12" }, null, -1)])]))], 8, _hoisted_3$37)) : createCommentVNode("", true),
4311
4311
  __props.responsiveSidebar && _ctx.$slots.sidebar && sidebarOpenModel.value ? (openBlock(), createElementBlock("div", {
4312
4312
  key: 1,
4313
4313
  class: "mint-layout__sidebar-backdrop",
@@ -4324,6 +4324,74 @@ var AppLayout_default = /* @__PURE__ */ defineComponent({
4324
4324
  }
4325
4325
  });
4326
4326
  //#endregion
4327
+ //#region src/components/MobileSupportGate.vue?vue&type=script&setup=true&lang.ts
4328
+ var _hoisted_1$44 = { class: "mint-mobile-support-gate__panel" };
4329
+ var _hoisted_2$39 = { class: "mint-mobile-support-gate__copy" };
4330
+ var _hoisted_3$36 = { class: "mint-mobile-support-gate__eyebrow" };
4331
+ var _hoisted_4$35 = { class: "mint-mobile-support-gate__message" };
4332
+ var _hoisted_5$33 = { class: "mint-mobile-support-gate__hint" };
4333
+ var nextMobileSupportGateTitleId = 0;
4334
+ //#endregion
4335
+ //#region src/components/MobileSupportGate.vue
4336
+ var MobileSupportGate_default = /* @__PURE__ */ defineComponent({
4337
+ __name: "MobileSupportGate",
4338
+ props: {
4339
+ supported: {
4340
+ type: Boolean,
4341
+ default: true
4342
+ },
4343
+ mediaQuery: { default: DEFAULT_MOBILE_VIEWPORT_QUERY },
4344
+ appName: { default: "MINT" },
4345
+ title: { default: "Desktop workspace recommended" },
4346
+ message: { default: "This workspace is optimized for a wider desktop screen and is not supported on mobile." },
4347
+ desktopLabel: { default: "Open this page from a desktop browser to use the full workflow." }
4348
+ },
4349
+ setup(__props) {
4350
+ const props = __props;
4351
+ const titleId = `mint-mobile-support-title-${++nextMobileSupportGateTitleId}`;
4352
+ const { isMobileViewport, isSupported, shouldShowUnsupported } = useMobileSupportGate({
4353
+ supported: computed(() => props.supported),
4354
+ mediaQuery: computed(() => props.mediaQuery)
4355
+ });
4356
+ return (_ctx, _cache) => {
4357
+ return unref(shouldShowUnsupported) ? (openBlock(), createElementBlock("div", {
4358
+ key: 0,
4359
+ class: "mint-mobile-support-gate",
4360
+ role: "main",
4361
+ "aria-labelledby": titleId,
4362
+ "data-testid": "mobile-unsupported"
4363
+ }, [renderSlot(_ctx.$slots, "unsupported", {
4364
+ isMobileViewport: unref(isMobileViewport),
4365
+ isSupported: unref(isSupported)
4366
+ }, () => [createElementVNode("section", _hoisted_1$44, [
4367
+ _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)),
4368
+ createElementVNode("div", _hoisted_2$39, [
4369
+ createElementVNode("p", _hoisted_3$36, toDisplayString(__props.appName), 1),
4370
+ createElementVNode("h1", {
4371
+ id: titleId,
4372
+ class: "mint-mobile-support-gate__title"
4373
+ }, toDisplayString(__props.title), 1),
4374
+ createElementVNode("p", _hoisted_4$35, toDisplayString(__props.message), 1)
4375
+ ]),
4376
+ createElementVNode("div", _hoisted_5$33, [_cache[0] || (_cache[0] = createElementVNode("svg", {
4377
+ class: "mint-mobile-support-gate__hint-icon",
4378
+ viewBox: "0 0 24 24",
4379
+ fill: "none",
4380
+ stroke: "currentColor",
4381
+ "stroke-width": "2",
4382
+ "stroke-linecap": "round",
4383
+ "stroke-linejoin": "round",
4384
+ "aria-hidden": "true"
4385
+ }, [createElementVNode("path", { d: "M12 20h9" }), createElementVNode("path", { d: "M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z" })], -1)), createElementVNode("span", null, toDisplayString(__props.desktopLabel), 1)])
4386
+ ])])])) : renderSlot(_ctx.$slots, "default", {
4387
+ key: 1,
4388
+ isMobileViewport: unref(isMobileViewport),
4389
+ isSupported: unref(isSupported)
4390
+ });
4391
+ };
4392
+ }
4393
+ });
4394
+ //#endregion
4327
4395
  //#region src/components/PluginWorkspaceView.controls.ts
4328
4396
  function usePluginWorkspaceControls(options) {
4329
4397
  const resolvedModel = computed(() => resolveControlModel(options.model()));
@@ -8050,144 +8118,252 @@ var LoadingSpinner_default = /* @__PURE__ */ defineComponent({
8050
8118
  }
8051
8119
  });
8052
8120
  //#endregion
8121
+ //#region src/components/SampleSelector.colors.ts
8122
+ var DEFAULT_COLOR_PICKER_SEED = "#3B82F6";
8123
+ var SAMPLE_GROUP_COLOR_OPTIONS = DEFAULT_COLORS.slice(0, 5);
8124
+ function applySampleGroupColorEdit(groups, edit, color) {
8125
+ const targets = edit.kind === "family" ? new Set(edit.names) : new Set([edit.name]);
8126
+ return groups.map((group) => targets.has(group.name) ? {
8127
+ ...group,
8128
+ color
8129
+ } : group);
8130
+ }
8131
+ function getSampleGroupColorEditSeed(edit, getGroupColor) {
8132
+ if (!edit) return DEFAULT_COLOR_PICKER_SEED;
8133
+ return getGroupColor(edit.kind === "family" ? edit.names[0] : edit.name);
8134
+ }
8135
+ function pickUnusedSampleGroupColor(groups) {
8136
+ const usedColors = new Set(groups.map((group) => group.color));
8137
+ return DEFAULT_COLORS.find((color) => !usedColors.has(color)) || DEFAULT_COLORS[0];
8138
+ }
8139
+ function createSampleGroup(name, existingGroups, color) {
8140
+ const trimmedName = name.trim();
8141
+ if (!trimmedName) return null;
8142
+ return {
8143
+ name: trimmedName,
8144
+ color: color || pickUnusedSampleGroupColor(existingGroups),
8145
+ samples: []
8146
+ };
8147
+ }
8148
+ //#endregion
8053
8149
  //#region src/components/AutoGroupModal.vue?vue&type=script&setup=true&lang.ts
8054
8150
  var _hoisted_1$33 = { class: "mint-auto-group" };
8055
- var _hoisted_2$29 = { class: "mint-auto-group__input-step" };
8056
- var _hoisted_3$27 = { class: "mint-auto-group__mode-toggle" };
8057
- var _hoisted_4$26 = {
8151
+ var _hoisted_2$29 = {
8152
+ class: "mint-auto-group__workflow-tabs",
8153
+ role: "tablist",
8154
+ "aria-label": "Grouping workflow"
8155
+ };
8156
+ var _hoisted_3$27 = ["aria-selected"];
8157
+ var _hoisted_4$26 = ["aria-selected"];
8158
+ var _hoisted_5$24 = {
8159
+ key: 0,
8160
+ class: "mint-auto-group__manual-summary"
8161
+ };
8162
+ var _hoisted_6$24 = {
8163
+ class: "mint-auto-group__manual-stats",
8164
+ "aria-label": "Manual grouping status"
8165
+ };
8166
+ var _hoisted_7$22 = { class: "mint-auto-group__input-step" };
8167
+ var _hoisted_8$19 = { class: "mint-auto-group__mode-toggle" };
8168
+ var _hoisted_9$17 = {
8058
8169
  key: 0,
8059
8170
  class: "mint-auto-group__experiment"
8060
8171
  };
8061
- var _hoisted_5$24 = {
8172
+ var _hoisted_10$16 = {
8062
8173
  key: 0,
8063
8174
  class: "mint-auto-group__experiment-loading"
8064
8175
  };
8065
- var _hoisted_6$24 = {
8176
+ var _hoisted_11$14 = {
8066
8177
  key: 1,
8067
8178
  class: "mint-auto-group__experiment-error"
8068
8179
  };
8069
- var _hoisted_7$22 = {
8180
+ var _hoisted_12$13 = {
8070
8181
  key: 2,
8071
8182
  class: "mint-auto-group__experiment-loaded"
8072
8183
  };
8073
- var _hoisted_8$19 = { class: "mint-auto-group__experiment-summary" };
8074
- var _hoisted_9$17 = { class: "mint-auto-group__experiment-stat" };
8075
- var _hoisted_10$16 = { class: "mint-auto-group__experiment-stat" };
8076
- var _hoisted_11$14 = { class: "mint-auto-group__experiment-fields" };
8077
- var _hoisted_12$13 = {
8184
+ var _hoisted_13$13 = { class: "mint-auto-group__experiment-summary" };
8185
+ var _hoisted_14$11 = { class: "mint-auto-group__experiment-stat" };
8186
+ var _hoisted_15$10 = { class: "mint-auto-group__experiment-stat" };
8187
+ var _hoisted_16$9 = { class: "mint-auto-group__experiment-fields" };
8188
+ var _hoisted_17$9 = {
8078
8189
  key: 1,
8079
8190
  class: "mint-auto-group__paste"
8080
8191
  };
8081
- var _hoisted_13$13 = {
8192
+ var _hoisted_18$9 = {
8082
8193
  key: 0,
8083
8194
  class: "mint-auto-group__sample-count"
8084
8195
  };
8085
- var _hoisted_14$11 = {
8196
+ var _hoisted_19$9 = {
8086
8197
  key: 2,
8087
8198
  class: "mint-auto-group__csv"
8088
8199
  };
8089
- var _hoisted_15$10 = {
8200
+ var _hoisted_20$8 = {
8090
8201
  key: 1,
8091
8202
  class: "mint-auto-group__csv-error"
8092
8203
  };
8093
- var _hoisted_16$9 = {
8204
+ var _hoisted_21$7 = {
8094
8205
  key: 2,
8095
8206
  class: "mint-auto-group__file-info"
8096
8207
  };
8097
- var _hoisted_17$9 = { class: "mint-auto-group__file-name" };
8098
- var _hoisted_18$9 = { class: "mint-auto-group__file-rows" };
8099
- var _hoisted_19$9 = {
8208
+ var _hoisted_22$6 = { class: "mint-auto-group__file-name" };
8209
+ var _hoisted_23$5 = { class: "mint-auto-group__file-rows" };
8210
+ var _hoisted_24$5 = {
8100
8211
  key: 3,
8101
8212
  class: "mint-auto-group__template"
8102
8213
  };
8103
- var _hoisted_20$8 = { class: "mint-auto-group__template-actions" };
8104
- var _hoisted_21$7 = { class: "mint-auto-group__workspace" };
8105
- var _hoisted_22$6 = {
8214
+ var _hoisted_25$5 = { class: "mint-auto-group__template-actions" };
8215
+ var _hoisted_26$5 = { class: "mint-auto-group__workspace" };
8216
+ var _hoisted_27$4 = {
8106
8217
  class: "mint-auto-group__classes",
8107
8218
  "aria-label": "Detected sample classes"
8108
8219
  };
8109
- var _hoisted_23$5 = ["onClick"];
8110
- var _hoisted_24$5 = { class: "mint-auto-group__class-label" };
8111
- var _hoisted_25$5 = { class: "mint-auto-group__class-count" };
8112
- var _hoisted_26$5 = { class: "mint-auto-group__routing" };
8113
- var _hoisted_27$4 = { class: "mint-auto-group__routing-radio" };
8114
- var _hoisted_28$3 = ["checked"];
8115
- var _hoisted_29$2 = { class: "mint-auto-group__routing-radio" };
8116
- var _hoisted_30$2 = ["checked"];
8117
- var _hoisted_31$2 = { class: "mint-auto-group__routing-radio" };
8118
- var _hoisted_32$2 = ["checked"];
8119
- var _hoisted_33$2 = {
8220
+ var _hoisted_28$3 = ["onClick"];
8221
+ var _hoisted_29$2 = { class: "mint-auto-group__class-label" };
8222
+ var _hoisted_30$2 = { class: "mint-auto-group__class-count" };
8223
+ var _hoisted_31$2 = { class: "mint-auto-group__routing" };
8224
+ var _hoisted_32$2 = { class: "mint-auto-group__routing-radio" };
8225
+ var _hoisted_33$2 = ["checked"];
8226
+ var _hoisted_34$2 = { class: "mint-auto-group__routing-radio" };
8227
+ var _hoisted_35$2 = ["checked"];
8228
+ var _hoisted_36$2 = { class: "mint-auto-group__routing-radio" };
8229
+ var _hoisted_37$2 = ["checked"];
8230
+ var _hoisted_38$2 = {
8120
8231
  class: "mint-auto-group__schema",
8121
8232
  "aria-label": "Schema editor"
8122
8233
  };
8123
- var _hoisted_34$2 = { class: "mint-auto-group__stats" };
8124
- var _hoisted_35$2 = { class: "mint-auto-group__stat mint-auto-group__stat--primary" };
8125
- var _hoisted_36$2 = { class: "mint-auto-group__stat-v" };
8126
- var _hoisted_37$2 = { class: "mint-auto-group__stat-sub" };
8127
- var _hoisted_38$2 = {
8234
+ var _hoisted_39$1 = { class: "mint-auto-group__stats" };
8235
+ var _hoisted_40$1 = { class: "mint-auto-group__stat mint-auto-group__stat--primary" };
8236
+ var _hoisted_41$1 = { class: "mint-auto-group__stat-v" };
8237
+ var _hoisted_42 = { class: "mint-auto-group__stat-sub" };
8238
+ var _hoisted_43 = {
8128
8239
  key: 0,
8129
8240
  class: "mint-auto-group__stat-empty"
8130
8241
  };
8131
- var _hoisted_39$2 = { class: "mint-auto-group__stat" };
8132
- var _hoisted_40$1 = { class: "mint-auto-group__stat-v" };
8133
- var _hoisted_41$1 = { class: "mint-auto-group__stat-sub mint-auto-group__stat-sub--muted" };
8134
- var _hoisted_42 = { class: "mint-auto-group__stat" };
8135
- var _hoisted_43 = { class: "mint-auto-group__stat-v" };
8136
- var _hoisted_44 = { class: "mint-auto-group__stat-sub mint-auto-group__stat-sub--muted" };
8137
- var _hoisted_45 = {
8242
+ var _hoisted_44 = { class: "mint-auto-group__stat" };
8243
+ var _hoisted_45 = { class: "mint-auto-group__stat-v" };
8244
+ var _hoisted_46 = { class: "mint-auto-group__stat-sub mint-auto-group__stat-sub--muted" };
8245
+ var _hoisted_47 = { class: "mint-auto-group__stat" };
8246
+ var _hoisted_48 = { class: "mint-auto-group__stat-v" };
8247
+ var _hoisted_49 = { class: "mint-auto-group__stat-sub mint-auto-group__stat-sub--muted" };
8248
+ var _hoisted_50 = {
8138
8249
  key: 0,
8139
8250
  class: "mint-auto-group__suggest"
8140
8251
  };
8141
- var _hoisted_46 = {
8252
+ var _hoisted_51 = {
8142
8253
  class: "mint-auto-group__token-table",
8143
8254
  role: "table",
8144
8255
  "aria-label": "Token positions"
8145
8256
  };
8146
- var _hoisted_47 = ["onClick"];
8147
- var _hoisted_48 = {
8257
+ var _hoisted_52 = ["onClick"];
8258
+ var _hoisted_53 = {
8148
8259
  class: "mint-auto-group__token-ix",
8149
8260
  role: "cell"
8150
8261
  };
8151
- var _hoisted_49 = {
8262
+ var _hoisted_54 = {
8152
8263
  class: "mint-auto-group__token-nm",
8153
8264
  role: "cell"
8154
8265
  };
8155
- var _hoisted_50 = {
8266
+ var _hoisted_55 = {
8156
8267
  class: "mint-auto-group__token-unique",
8157
8268
  role: "cell"
8158
8269
  };
8159
- var _hoisted_51 = {
8270
+ var _hoisted_56 = {
8160
8271
  class: "mint-auto-group__token-preview",
8161
8272
  role: "cell"
8162
8273
  };
8163
- var _hoisted_52 = {
8274
+ var _hoisted_57 = {
8164
8275
  key: 0,
8165
8276
  class: "mint-auto-group__token-more"
8166
8277
  };
8167
- var _hoisted_53 = ["checked", "onChange"];
8168
- var _hoisted_54 = { class: "mint-auto-group__popover-head" };
8169
- var _hoisted_55 = { class: "mono" };
8170
- var _hoisted_56 = { class: "mint-auto-group__popover-section" };
8171
- var _hoisted_57 = { class: "mint-auto-group__pills" };
8172
- var _hoisted_58 = ["onClick"];
8173
- var _hoisted_59 = { class: "mint-auto-group__popover-section" };
8174
- var _hoisted_60 = { class: "mint-auto-group__popover-section" };
8175
- var _hoisted_61 = { class: "mint-auto-group__popover-label" };
8176
- var _hoisted_62 = { class: "mint-auto-group__values-list" };
8177
- var _hoisted_63 = { class: "mint-auto-group__value-src" };
8178
- var _hoisted_64 = ["value", "onChange"];
8179
- var _hoisted_65 = { class: "mint-auto-group__value-excl" };
8180
- var _hoisted_66 = ["checked", "onChange"];
8181
- var _hoisted_67 = { class: "mint-auto-group__preview" };
8182
- var _hoisted_68 = { class: "mint-auto-group__preview-summary" };
8183
- var _hoisted_69 = { class: "mint-auto-group__preview-grid" };
8184
- var _hoisted_70 = { class: "mint-auto-group__preview-panel" };
8185
- var _hoisted_71 = { class: "mint-auto-group__preview-count" };
8186
- var _hoisted_72 = { class: "mint-auto-group__preview-samples" };
8187
- var _hoisted_73 = { class: "mint-auto-group__preview-panel" };
8188
- var _hoisted_74 = { class: "mint-auto-group__qc-chips" };
8189
- var _hoisted_75 = { class: "mint-auto-group__fingerprint" };
8190
- var _hoisted_76 = { class: "mint-auto-group__nav" };
8278
+ var _hoisted_58 = ["checked", "onChange"];
8279
+ var _hoisted_59 = { class: "mint-auto-group__popover-head" };
8280
+ var _hoisted_60 = { class: "mono" };
8281
+ var _hoisted_61 = { class: "mint-auto-group__popover-section" };
8282
+ var _hoisted_62 = { class: "mint-auto-group__pills" };
8283
+ var _hoisted_63 = ["onClick"];
8284
+ var _hoisted_64 = { class: "mint-auto-group__popover-section" };
8285
+ var _hoisted_65 = { class: "mint-auto-group__popover-section" };
8286
+ var _hoisted_66 = { class: "mint-auto-group__popover-label" };
8287
+ var _hoisted_67 = { class: "mint-auto-group__values-list" };
8288
+ var _hoisted_68 = { class: "mint-auto-group__value-src" };
8289
+ var _hoisted_69 = ["value", "onChange"];
8290
+ var _hoisted_70 = { class: "mint-auto-group__value-excl" };
8291
+ var _hoisted_71 = ["checked", "onChange"];
8292
+ var _hoisted_72 = { class: "mint-auto-group__preview" };
8293
+ var _hoisted_73 = { class: "mint-auto-group__preview-summary" };
8294
+ var _hoisted_74 = { class: "mint-auto-group__preview-grid" };
8295
+ var _hoisted_75 = { class: "mint-auto-group__preview-panel" };
8296
+ var _hoisted_76 = { class: "mint-auto-group__preview-count" };
8297
+ var _hoisted_77 = { class: "mint-auto-group__preview-samples" };
8298
+ var _hoisted_78 = { class: "mint-auto-group__preview-panel" };
8299
+ var _hoisted_79 = { class: "mint-auto-group__qc-chips" };
8300
+ var _hoisted_80 = { class: "mint-auto-group__fingerprint" };
8301
+ var _hoisted_81 = { class: "mint-auto-group__nav" };
8302
+ var _hoisted_82 = {
8303
+ key: 1,
8304
+ class: "mint-auto-group__manual-mode"
8305
+ };
8306
+ var _hoisted_83 = { class: "mint-auto-group__manual-grid" };
8307
+ var _hoisted_84 = {
8308
+ class: "mint-auto-group__manual-panel",
8309
+ "aria-label": "Manual sample selection"
8310
+ };
8311
+ var _hoisted_85 = { class: "mint-auto-group__manual-panel-head" };
8312
+ var _hoisted_86 = { class: "mint-auto-group__manual-panel-meta" };
8313
+ var _hoisted_87 = { class: "mint-auto-group__manual-filter" };
8314
+ var _hoisted_88 = { class: "mint-auto-group__manual-search" };
8315
+ var _hoisted_89 = { class: "mint-auto-group__manual-selectbar" };
8316
+ var _hoisted_90 = [
8317
+ "checked",
8318
+ "indeterminate",
8319
+ "disabled"
8320
+ ];
8321
+ var _hoisted_91 = { class: "mint-auto-group__manual-selectbar-count" };
8322
+ var _hoisted_92 = { class: "mint-auto-group__manual-list" };
8323
+ var _hoisted_93 = ["title"];
8324
+ var _hoisted_94 = ["checked", "onChange"];
8325
+ var _hoisted_95 = { class: "mint-auto-group__manual-sample-name" };
8326
+ var _hoisted_96 = { class: "mint-auto-group__manual-tooltip" };
8327
+ var _hoisted_97 = {
8328
+ key: 0,
8329
+ class: "mint-auto-group__manual-empty"
8330
+ };
8331
+ var _hoisted_98 = { class: "mint-auto-group__manual-selection-footer" };
8332
+ var _hoisted_99 = ["disabled"];
8333
+ var _hoisted_100 = {
8334
+ class: "mint-auto-group__manual-panel",
8335
+ "aria-label": "Manual cohort assignment"
8336
+ };
8337
+ var _hoisted_101 = { class: "mint-auto-group__manual-selected-summary" };
8338
+ var _hoisted_102 = { class: "mint-auto-group__manual-fields" };
8339
+ var _hoisted_103 = { class: "mint-auto-group__manual-field" };
8340
+ var _hoisted_104 = { class: "mint-auto-group__manual-combo" };
8341
+ var _hoisted_105 = { id: "mint-auto-group-manual-groups" };
8342
+ var _hoisted_106 = ["value"];
8343
+ var _hoisted_107 = { class: "mint-auto-group__manual-field" };
8344
+ var _hoisted_108 = { class: "mint-auto-group__manual-combo" };
8345
+ var _hoisted_109 = { id: "mint-auto-group-manual-subgroups" };
8346
+ var _hoisted_110 = ["value"];
8347
+ var _hoisted_111 = { class: "mint-auto-group__manual-field" };
8348
+ var _hoisted_112 = { class: "mint-auto-group__manual-swatches" };
8349
+ var _hoisted_113 = ["aria-label", "onClick"];
8350
+ var _hoisted_114 = { class: "mint-auto-group__manual-target" };
8351
+ var _hoisted_115 = { class: "mint-auto-group__manual-cohorts" };
8352
+ var _hoisted_116 = { class: "mint-auto-group__manual-cohorts-head" };
8353
+ var _hoisted_117 = ["title", "onClick"];
8354
+ var _hoisted_118 = { class: "mint-auto-group__manual-chip-main" };
8355
+ var _hoisted_119 = { class: "mint-auto-group__manual-chip-count" };
8356
+ var _hoisted_120 = ["title", "onClick"];
8357
+ var _hoisted_121 = { class: "mint-auto-group__manual-chip-sub" };
8358
+ var _hoisted_122 = { class: "mint-auto-group__manual-chip-count" };
8359
+ var _hoisted_123 = ["title", "onClick"];
8360
+ var _hoisted_124 = { class: "mint-auto-group__manual-chip-main" };
8361
+ var _hoisted_125 = { class: "mint-auto-group__manual-chip-count" };
8362
+ var _hoisted_126 = {
8363
+ key: 2,
8364
+ class: "mint-auto-group__manual-empty"
8365
+ };
8366
+ var _hoisted_127 = { class: "mint-auto-group__nav mint-auto-group__nav--manual" };
8191
8367
  //#endregion
8192
8368
  //#region src/components/AutoGroupModal.vue
8193
8369
  var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
@@ -8195,6 +8371,8 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8195
8371
  props: {
8196
8372
  modelValue: { type: Boolean },
8197
8373
  samples: { default: () => [] },
8374
+ groups: { default: () => [] },
8375
+ initialMode: { default: "auto" },
8198
8376
  experimentId: { default: void 0 },
8199
8377
  designData: { default: void 0 }
8200
8378
  },
@@ -8212,6 +8390,15 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8212
8390
  const experimentLoading = ref(false);
8213
8391
  const experimentError = ref(null);
8214
8392
  const csvError = ref(null);
8393
+ const activeWorkflow = ref("auto");
8394
+ const manualDraftGroups = ref([]);
8395
+ const manualSearchQuery = ref("");
8396
+ const manualUngroupedOnly = ref(true);
8397
+ const manualSelectedSamples = ref([]);
8398
+ const manualGroupName = ref("");
8399
+ const manualSubGroupName = ref("");
8400
+ const manualColorOptions = SAMPLE_GROUP_COLOR_OPTIONS;
8401
+ const manualSelectedColor = ref(manualColorOptions[0]);
8215
8402
  const openPopoverIdx = ref(null);
8216
8403
  const qcAsOverlay = ref(true);
8217
8404
  const excludeQc = ref(false);
@@ -8244,6 +8431,143 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8244
8431
  });
8245
8432
  const totalGrouped = computed(() => (autoGroup.result.value.experimentalGroups ?? []).reduce((acc, g) => acc + g.samples.length, 0));
8246
8433
  const totalQc = computed(() => (autoGroup.qcGroups.value ?? []).reduce((acc, g) => acc + g.samples.length, 0));
8434
+ function cloneGroups(groups) {
8435
+ return groups.map((group) => ({
8436
+ ...group,
8437
+ samples: [...group.samples]
8438
+ }));
8439
+ }
8440
+ function manualResetSelection() {
8441
+ manualSearchQuery.value = "";
8442
+ manualUngroupedOnly.value = true;
8443
+ manualSelectedSamples.value = [];
8444
+ manualGroupName.value = "";
8445
+ manualSubGroupName.value = "";
8446
+ manualSelectedColor.value = manualColorOptions[0];
8447
+ }
8448
+ function manualToggleSample(sample) {
8449
+ if (manualSelectedSet.value.has(sample)) manualSelectedSamples.value = manualSelectedSamples.value.filter((item) => item !== sample);
8450
+ else manualSelectedSamples.value = [...manualSelectedSamples.value, sample];
8451
+ }
8452
+ function manualSelectVisibleSamples() {
8453
+ const next = new Set(manualSelectedSamples.value);
8454
+ for (const sample of manualFilteredSamples.value) next.add(sample);
8455
+ manualSelectedSamples.value = [...next];
8456
+ }
8457
+ function manualClearSamples() {
8458
+ manualSelectedSamples.value = [];
8459
+ }
8460
+ function manualToggleVisibleSamples() {
8461
+ if (manualAllVisibleSelected.value) {
8462
+ manualSelectedSamples.value = manualSelectedSamples.value.filter((sample) => !manualVisibleSet.value.has(sample));
8463
+ return;
8464
+ }
8465
+ manualSelectVisibleSamples();
8466
+ }
8467
+ function manualGetSampleGroup(sample) {
8468
+ return manualDraftGroups.value.find((group) => group.samples.includes(sample));
8469
+ }
8470
+ function manualGetSampleStatus(sample) {
8471
+ return manualGetSampleGroup(sample)?.name.replace("/", " · ") || "unassigned";
8472
+ }
8473
+ function manualGetGroupPrimaryName(name) {
8474
+ return name.split("/")[0];
8475
+ }
8476
+ function manualGetGroupSecondaryName(name) {
8477
+ const separatorIndex = name.indexOf("/");
8478
+ return separatorIndex === -1 ? null : name.slice(separatorIndex + 1);
8479
+ }
8480
+ function manualChooseColor(color) {
8481
+ manualSelectedColor.value = color;
8482
+ }
8483
+ function manualUseExistingGroupAsTarget(name) {
8484
+ const existingGroup = manualDraftGroups.value.find((group) => group.name === name);
8485
+ if (existingGroup) manualSelectedColor.value = existingGroup.color;
8486
+ const separatorIndex = name.indexOf("/");
8487
+ if (separatorIndex === -1) {
8488
+ manualGroupName.value = name;
8489
+ manualSubGroupName.value = "";
8490
+ return;
8491
+ }
8492
+ manualGroupName.value = name.slice(0, separatorIndex);
8493
+ manualSubGroupName.value = name.slice(separatorIndex + 1);
8494
+ }
8495
+ function manualAssignSamplesToGroup() {
8496
+ const target = manualTargetGroupName.value;
8497
+ if (!manualCanAssign.value || !target) return;
8498
+ const selected = manualAssignableSamples.value;
8499
+ const selectedSet = new Set(selected);
8500
+ if (selectedSet.size === 0) return;
8501
+ let nextGroups = manualDraftGroups.value.map((group) => ({
8502
+ ...group,
8503
+ samples: group.samples.filter((sample) => !selectedSet.has(sample))
8504
+ }));
8505
+ const targetIndex = nextGroups.findIndex((group) => group.name === target);
8506
+ if (targetIndex === -1) {
8507
+ const newGroup = createSampleGroup(target, nextGroups, manualSelectedColor.value);
8508
+ if (!newGroup) return;
8509
+ nextGroups = [...nextGroups, {
8510
+ ...newGroup,
8511
+ samples: selected
8512
+ }];
8513
+ } else {
8514
+ const group = nextGroups[targetIndex];
8515
+ nextGroups[targetIndex] = {
8516
+ ...group,
8517
+ color: manualSelectedColor.value,
8518
+ samples: [...group.samples, ...selected.filter((sample) => !group.samples.includes(sample))]
8519
+ };
8520
+ }
8521
+ manualDraftGroups.value = nextGroups;
8522
+ manualSelectedSamples.value = [];
8523
+ }
8524
+ const manualSamples = computed(() => props.samples.length > 0 ? props.samples : autoGroup.samples.value);
8525
+ const manualSampleGroups = useSampleGroups({
8526
+ samples: () => manualSamples.value,
8527
+ groups: computed({
8528
+ get: () => manualDraftGroups.value,
8529
+ set: (value) => {
8530
+ manualDraftGroups.value = value;
8531
+ }
8532
+ })
8533
+ });
8534
+ const manualHierarchicalGroups = manualSampleGroups.hierarchicalGroups;
8535
+ const manualShowHierarchy = manualSampleGroups.showHierarchy;
8536
+ const manualUngroupedSamples = manualSampleGroups.ungroupedSamples;
8537
+ const manualSamplePool = computed(() => manualUngroupedOnly.value ? manualUngroupedSamples.value : manualSamples.value);
8538
+ const manualFilteredSamples = useTextSearch({
8539
+ items: () => manualSamplePool.value,
8540
+ query: manualSearchQuery,
8541
+ getText: (sample) => sample
8542
+ }).filteredItems;
8543
+ const manualSelectedSet = computed(() => new Set(manualSelectedSamples.value));
8544
+ const manualVisibleSet = computed(() => new Set(manualFilteredSamples.value));
8545
+ const manualAllVisibleSelected = computed(() => manualFilteredSamples.value.length > 0 && manualFilteredSamples.value.every((sample) => manualSelectedSet.value.has(sample)));
8546
+ const manualSomeVisibleSelected = computed(() => manualFilteredSamples.value.some((sample) => manualSelectedSet.value.has(sample)) && !manualAllVisibleSelected.value);
8547
+ const manualAssignableSamples = computed(() => manualSelectedSamples.value.filter((sample) => manualSamples.value.includes(sample)));
8548
+ const manualTargetGroupName = computed(() => {
8549
+ const major = manualGroupName.value.trim();
8550
+ const sub = manualSubGroupName.value.trim();
8551
+ if (!major) return "";
8552
+ return sub ? `${major}/${sub}` : major;
8553
+ });
8554
+ const manualCanAssign = computed(() => manualAssignableSamples.value.length > 0 && manualTargetGroupName.value.length > 0);
8555
+ const manualGroupedSamples = computed(() => {
8556
+ const validSamples = new Set(manualSamples.value);
8557
+ return new Set(manualDraftGroups.value.flatMap((group) => group.samples).filter((sample) => validSamples.has(sample)));
8558
+ });
8559
+ const manualGroupedCount = computed(() => manualGroupedSamples.value.size);
8560
+ const manualUngroupedCount = computed(() => Math.max(manualSamples.value.length - manualGroupedCount.value, 0));
8561
+ const manualResult = computed(() => {
8562
+ const groups = cloneGroups(manualDraftGroups.value);
8563
+ return {
8564
+ groups,
8565
+ experimentalGroups: groups,
8566
+ qcGroups: [],
8567
+ metadata: [],
8568
+ excludedSamples: []
8569
+ };
8570
+ });
8247
8571
  function acceptSuggestion(s) {
8248
8572
  autoGroup.mergeColumns(autoGroup.activeClassKey.value, s.columnIndices);
8249
8573
  }
@@ -8327,6 +8651,9 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8327
8651
  }
8328
8652
  watch(() => props.modelValue, (open) => {
8329
8653
  if (open) {
8654
+ activeWorkflow.value = props.initialMode;
8655
+ manualDraftGroups.value = cloneGroups(props.groups);
8656
+ manualResetSelection();
8330
8657
  autoGroup.reset();
8331
8658
  currentStep.value = 0;
8332
8659
  csvFileName.value = "";
@@ -8343,6 +8670,15 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8343
8670
  } else autoGroup.inputMode.value = "paste";
8344
8671
  }
8345
8672
  }, { immediate: true });
8673
+ watch(manualSamples, (samples) => {
8674
+ manualSelectedSamples.value = manualSelectedSamples.value.filter((sample) => samples.includes(sample));
8675
+ });
8676
+ watch(manualTargetGroupName, (target) => {
8677
+ if (!target) return;
8678
+ const existingGroup = manualDraftGroups.value.find((group) => group.name === target);
8679
+ if (!existingGroup) return;
8680
+ manualSelectedColor.value = existingGroup.color;
8681
+ });
8346
8682
  const allSteps = [
8347
8683
  {
8348
8684
  id: "input",
@@ -8387,6 +8723,10 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8387
8723
  emit("apply", autoGroup.result.value);
8388
8724
  emit("update:modelValue", false);
8389
8725
  }
8726
+ function handleManualApply() {
8727
+ emit("apply", manualResult.value);
8728
+ emit("update:modelValue", false);
8729
+ }
8390
8730
  function handleCancel() {
8391
8731
  emit("update:modelValue", false);
8392
8732
  }
@@ -8456,24 +8796,41 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8456
8796
  return (_ctx, _cache) => {
8457
8797
  return openBlock(), createBlock(BaseModal_default, {
8458
8798
  "model-value": __props.modelValue,
8459
- title: "Smart Group",
8460
- size: "lg",
8799
+ title: "Group Samples",
8800
+ size: activeWorkflow.value === "manual" ? "xl" : "lg",
8461
8801
  "close-on-overlay": false,
8462
8802
  "close-on-escape": false,
8463
- "onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => emit("update:modelValue", $event)),
8803
+ "onUpdate:modelValue": _cache[23] || (_cache[23] = ($event) => emit("update:modelValue", $event)),
8464
8804
  onClose: handleCancel
8465
- }, {
8466
- default: withCtx(() => [createElementVNode("div", _hoisted_1$33, [createVNode(StepWizard_default, {
8805
+ }, createSlots({
8806
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$33, [createElementVNode("div", { class: normalizeClass(["mint-auto-group__workflow-bar", activeWorkflow.value === "manual" ? "mint-auto-group__workflow-bar--manual" : ""]) }, [createElementVNode("div", _hoisted_2$29, [createElementVNode("button", {
8807
+ type: "button",
8808
+ class: normalizeClass(["mint-auto-group__workflow-tab", activeWorkflow.value === "auto" ? "mint-auto-group__workflow-tab--active" : ""]),
8809
+ role: "tab",
8810
+ "aria-selected": activeWorkflow.value === "auto",
8811
+ onClick: _cache[0] || (_cache[0] = ($event) => activeWorkflow.value = "auto")
8812
+ }, " Auto ", 10, _hoisted_3$27), createElementVNode("button", {
8813
+ type: "button",
8814
+ class: normalizeClass(["mint-auto-group__workflow-tab", activeWorkflow.value === "manual" ? "mint-auto-group__workflow-tab--active" : ""]),
8815
+ role: "tab",
8816
+ "aria-selected": activeWorkflow.value === "manual",
8817
+ onClick: _cache[1] || (_cache[1] = ($event) => activeWorkflow.value = "manual")
8818
+ }, " Manual ", 10, _hoisted_4$26)]), activeWorkflow.value === "manual" ? (openBlock(), createElementBlock("div", _hoisted_5$24, [_cache[27] || (_cache[27] = createElementVNode("div", { class: "mint-auto-group__manual-summary-text" }, [createElementVNode("span", { class: "mint-auto-group__manual-eyebrow" }, "Manual workflow"), createElementVNode("strong", null, "Assign selected samples to cohorts")], -1)), createElementVNode("div", _hoisted_6$24, [
8819
+ createElementVNode("span", null, [createElementVNode("strong", null, toDisplayString(manualGroupedCount.value), 1), _cache[24] || (_cache[24] = createTextVNode(" grouped", -1))]),
8820
+ createElementVNode("span", null, [createElementVNode("strong", null, toDisplayString(manualUngroupedCount.value), 1), _cache[25] || (_cache[25] = createTextVNode(" unassigned", -1))]),
8821
+ createElementVNode("span", null, [createElementVNode("strong", null, toDisplayString(manualDraftGroups.value.length), 1), _cache[26] || (_cache[26] = createTextVNode(" cohorts", -1))])
8822
+ ])])) : createCommentVNode("", true)], 2), activeWorkflow.value === "auto" ? (openBlock(), createBlock(StepWizard_default, {
8823
+ key: 0,
8467
8824
  ref_key: "wizardRef",
8468
8825
  ref: wizardRef,
8469
8826
  modelValue: currentStep.value,
8470
- "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => currentStep.value = $event),
8827
+ "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => currentStep.value = $event),
8471
8828
  steps: dynamicSteps.value,
8472
8829
  linear: true,
8473
8830
  size: "sm"
8474
8831
  }, {
8475
- "step-input": withCtx(() => [createElementVNode("div", _hoisted_2$29, [
8476
- createElementVNode("div", _hoisted_3$27, [
8832
+ "step-input": withCtx(() => [createElementVNode("div", _hoisted_7$22, [
8833
+ createElementVNode("div", _hoisted_8$19, [
8477
8834
  __props.experimentId || __props.designData ? (openBlock(), createBlock(BaseButton_default, {
8478
8835
  key: 0,
8479
8836
  variant: unref(autoGroup).inputMode.value === "experiment" ? "primary" : "secondary",
@@ -8481,7 +8838,7 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8481
8838
  disabled: experimentLoading.value,
8482
8839
  onClick: fetchExperimentData
8483
8840
  }, {
8484
- default: withCtx(() => [..._cache[18] || (_cache[18] = [createTextVNode(" Experiment ", -1)])]),
8841
+ default: withCtx(() => [..._cache[28] || (_cache[28] = [createTextVNode(" Experiment ", -1)])]),
8485
8842
  _: 1
8486
8843
  }, 8, ["variant", "disabled"])) : createCommentVNode("", true),
8487
8844
  createVNode(BaseButton_default, {
@@ -8489,51 +8846,51 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8489
8846
  size: "sm",
8490
8847
  onClick: switchToPasteMode
8491
8848
  }, {
8492
- default: withCtx(() => [..._cache[19] || (_cache[19] = [createTextVNode(" Paste ", -1)])]),
8849
+ default: withCtx(() => [..._cache[29] || (_cache[29] = [createTextVNode(" Paste ", -1)])]),
8493
8850
  _: 1
8494
8851
  }, 8, ["variant"]),
8495
8852
  createVNode(BaseButton_default, {
8496
8853
  variant: unref(autoGroup).inputMode.value === "csv" ? "primary" : "secondary",
8497
8854
  size: "sm",
8498
- onClick: _cache[0] || (_cache[0] = ($event) => unref(autoGroup).inputMode.value = "csv")
8855
+ onClick: _cache[2] || (_cache[2] = ($event) => unref(autoGroup).inputMode.value = "csv")
8499
8856
  }, {
8500
- default: withCtx(() => [..._cache[20] || (_cache[20] = [createTextVNode(" CSV ", -1)])]),
8857
+ default: withCtx(() => [..._cache[30] || (_cache[30] = [createTextVNode(" CSV ", -1)])]),
8501
8858
  _: 1
8502
8859
  }, 8, ["variant"])
8503
8860
  ]),
8504
- unref(autoGroup).inputMode.value === "experiment" ? (openBlock(), createElementBlock("div", _hoisted_4$26, [experimentLoading.value ? (openBlock(), createElementBlock("div", _hoisted_5$24, [createVNode(LoadingSpinner_default, { size: "sm" }), _cache[21] || (_cache[21] = createElementVNode("span", null, "Loading experiment metadata…", -1))])) : experimentError.value ? (openBlock(), createElementBlock("div", _hoisted_6$24, [createElementVNode("p", null, toDisplayString(experimentError.value), 1), createElementVNode("p", null, [
8505
- _cache[22] || (_cache[22] = createTextVNode(" Switch to ", -1)),
8861
+ unref(autoGroup).inputMode.value === "experiment" ? (openBlock(), createElementBlock("div", _hoisted_9$17, [experimentLoading.value ? (openBlock(), createElementBlock("div", _hoisted_10$16, [createVNode(LoadingSpinner_default, { size: "sm" }), _cache[31] || (_cache[31] = createElementVNode("span", null, "Loading experiment metadata…", -1))])) : experimentError.value ? (openBlock(), createElementBlock("div", _hoisted_11$14, [createElementVNode("p", null, toDisplayString(experimentError.value), 1), createElementVNode("p", null, [
8862
+ _cache[32] || (_cache[32] = createTextVNode(" Switch to ", -1)),
8506
8863
  createElementVNode("button", {
8507
8864
  type: "button",
8508
8865
  class: "mint-auto-group__link-btn",
8509
8866
  onClick: switchToPasteMode
8510
8867
  }, "Paste"),
8511
- _cache[23] || (_cache[23] = createTextVNode(" or ", -1)),
8868
+ _cache[33] || (_cache[33] = createTextVNode(" or ", -1)),
8512
8869
  createElementVNode("button", {
8513
8870
  type: "button",
8514
8871
  class: "mint-auto-group__link-btn",
8515
- onClick: _cache[1] || (_cache[1] = ($event) => unref(autoGroup).inputMode.value = "csv")
8872
+ onClick: _cache[3] || (_cache[3] = ($event) => unref(autoGroup).inputMode.value = "csv")
8516
8873
  }, "CSV"),
8517
- _cache[24] || (_cache[24] = createTextVNode(" mode instead. ", -1))
8518
- ])])) : unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_7$22, [createElementVNode("div", _hoisted_8$19, [createElementVNode("span", _hoisted_9$17, [createElementVNode("strong", null, toDisplayString(unref(autoGroup).csvData.value.rows.length), 1), _cache[25] || (_cache[25] = createTextVNode(" samples ", -1))]), createElementVNode("span", _hoisted_10$16, [createElementVNode("strong", null, toDisplayString(experimentFieldNames.value.length), 1), _cache[26] || (_cache[26] = createTextVNode(" metadata fields ", -1))])]), createElementVNode("div", _hoisted_11$14, [(openBlock(true), createElementBlock(Fragment, null, renderList(experimentFieldNames.value, (col) => {
8874
+ _cache[34] || (_cache[34] = createTextVNode(" mode instead. ", -1))
8875
+ ])])) : unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_12$13, [createElementVNode("div", _hoisted_13$13, [createElementVNode("span", _hoisted_14$11, [createElementVNode("strong", null, toDisplayString(unref(autoGroup).csvData.value.rows.length), 1), _cache[35] || (_cache[35] = createTextVNode(" samples ", -1))]), createElementVNode("span", _hoisted_15$10, [createElementVNode("strong", null, toDisplayString(experimentFieldNames.value.length), 1), _cache[36] || (_cache[36] = createTextVNode(" metadata fields ", -1))])]), createElementVNode("div", _hoisted_16$9, [(openBlock(true), createElementBlock(Fragment, null, renderList(experimentFieldNames.value, (col) => {
8519
8876
  return openBlock(), createElementBlock("span", {
8520
8877
  key: col,
8521
8878
  class: "mint-auto-group__field-value"
8522
8879
  }, toDisplayString(col), 1);
8523
8880
  }), 128))])])) : createCommentVNode("", true)])) : createCommentVNode("", true),
8524
- unref(autoGroup).inputMode.value === "paste" ? (openBlock(), createElementBlock("div", _hoisted_12$13, [withDirectives(createElementVNode("textarea", {
8525
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(autoGroup).rawText.value = $event),
8881
+ unref(autoGroup).inputMode.value === "paste" ? (openBlock(), createElementBlock("div", _hoisted_17$9, [withDirectives(createElementVNode("textarea", {
8882
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(autoGroup).rawText.value = $event),
8526
8883
  class: "mint-auto-group__textarea",
8527
8884
  rows: "12",
8528
8885
  placeholder: "Paste sample names, one per line..."
8529
- }, null, 512), [[vModelText, unref(autoGroup).rawText.value]]), unref(autoGroup).samples.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_13$13, toDisplayString(unref(autoGroup).samples.value.length) + " samples ", 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
8530
- unref(autoGroup).inputMode.value === "csv" ? (openBlock(), createElementBlock("div", _hoisted_14$11, [
8886
+ }, null, 512), [[vModelText, unref(autoGroup).rawText.value]]), unref(autoGroup).samples.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_18$9, toDisplayString(unref(autoGroup).samples.value.length) + " samples ", 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
8887
+ unref(autoGroup).inputMode.value === "csv" ? (openBlock(), createElementBlock("div", _hoisted_19$9, [
8531
8888
  !unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", {
8532
8889
  key: 0,
8533
8890
  class: normalizeClass(["mint-auto-group__dropzone", isDragOver.value ? "mint-auto-group__dropzone--dragover" : ""]),
8534
8891
  onDrop: handleFileDrop,
8535
- onDragover: _cache[3] || (_cache[3] = withModifiers(($event) => isDragOver.value = true, ["prevent"])),
8536
- onDragleave: _cache[4] || (_cache[4] = ($event) => isDragOver.value = false)
8892
+ onDragover: _cache[5] || (_cache[5] = withModifiers(($event) => isDragOver.value = true, ["prevent"])),
8893
+ onDragleave: _cache[6] || (_cache[6] = ($event) => isDragOver.value = false)
8537
8894
  }, [
8538
8895
  createElementVNode("input", {
8539
8896
  type: "file",
@@ -8541,7 +8898,7 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8541
8898
  class: "mint-auto-group__file-input",
8542
8899
  onChange: handleFileInput
8543
8900
  }, null, 32),
8544
- _cache[27] || (_cache[27] = createElementVNode("svg", {
8901
+ _cache[37] || (_cache[37] = createElementVNode("svg", {
8545
8902
  class: "mint-auto-group__upload-icon",
8546
8903
  fill: "none",
8547
8904
  stroke: "currentColor",
@@ -8552,12 +8909,12 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8552
8909
  "stroke-width": "1.5",
8553
8910
  d: "M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
8554
8911
  })], -1)),
8555
- _cache[28] || (_cache[28] = createElementVNode("p", { class: "mint-auto-group__upload-text" }, [createElementVNode("span", { class: "mint-auto-group__upload-highlight" }, "Click to upload"), createTextVNode(" or drag and drop a CSV file ")], -1)),
8556
- _cache[29] || (_cache[29] = createElementVNode("p", { class: "mint-auto-group__upload-hint" }, " CSV or TSV with a header row. First column or column named \"Sample\" / \"File Name\" is used as sample identifier. Other columns become grouping fields. ", -1))
8912
+ _cache[38] || (_cache[38] = createElementVNode("p", { class: "mint-auto-group__upload-text" }, [createElementVNode("span", { class: "mint-auto-group__upload-highlight" }, "Click to upload"), createTextVNode(" or drag and drop a CSV file ")], -1)),
8913
+ _cache[39] || (_cache[39] = createElementVNode("p", { class: "mint-auto-group__upload-hint" }, " CSV or TSV with a header row. First column or column named \"Sample\" / \"File Name\" is used as sample identifier. Other columns become grouping fields. ", -1))
8557
8914
  ], 34)) : createCommentVNode("", true),
8558
- csvError.value && !unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_15$10, toDisplayString(csvError.value), 1)) : createCommentVNode("", true),
8559
- unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_16$9, [
8560
- _cache[30] || (_cache[30] = createElementVNode("svg", {
8915
+ csvError.value && !unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_20$8, toDisplayString(csvError.value), 1)) : createCommentVNode("", true),
8916
+ unref(autoGroup).csvData.value ? (openBlock(), createElementBlock("div", _hoisted_21$7, [
8917
+ _cache[40] || (_cache[40] = createElementVNode("svg", {
8561
8918
  class: "mint-auto-group__file-icon",
8562
8919
  fill: "none",
8563
8920
  stroke: "currentColor",
@@ -8568,8 +8925,8 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8568
8925
  "stroke-width": "2",
8569
8926
  d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
8570
8927
  })], -1)),
8571
- createElementVNode("span", _hoisted_17$9, toDisplayString(csvFileName.value), 1),
8572
- createElementVNode("span", _hoisted_18$9, toDisplayString(unref(autoGroup).csvData.value.rows.length) + " rows", 1),
8928
+ createElementVNode("span", _hoisted_22$6, toDisplayString(csvFileName.value), 1),
8929
+ createElementVNode("span", _hoisted_23$5, toDisplayString(unref(autoGroup).csvData.value.rows.length) + " rows", 1),
8573
8930
  createElementVNode("button", {
8574
8931
  type: "button",
8575
8932
  class: "mint-auto-group__file-clear",
@@ -8577,25 +8934,25 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8577
8934
  }, " Change file ")
8578
8935
  ])) : createCommentVNode("", true)
8579
8936
  ])) : createCommentVNode("", true),
8580
- unref(autoGroup).canDownloadTemplate.value ? (openBlock(), createElementBlock("div", _hoisted_19$9, [_cache[33] || (_cache[33] = createElementVNode("div", { class: "mint-auto-group__template-label" }, "Or hand-edit in Excel:", -1)), createElementVNode("div", _hoisted_20$8, [createVNode(BaseButton_default, {
8937
+ unref(autoGroup).canDownloadTemplate.value ? (openBlock(), createElementBlock("div", _hoisted_24$5, [_cache[43] || (_cache[43] = createElementVNode("div", { class: "mint-auto-group__template-label" }, "Or hand-edit in Excel:", -1)), createElementVNode("div", _hoisted_25$5, [createVNode(BaseButton_default, {
8581
8938
  size: "sm",
8582
8939
  variant: "ghost",
8583
- onClick: _cache[5] || (_cache[5] = ($event) => unref(autoGroup).downloadTemplate("prefilled", "csv"))
8940
+ onClick: _cache[7] || (_cache[7] = ($event) => unref(autoGroup).downloadTemplate("prefilled", "csv"))
8584
8941
  }, {
8585
- default: withCtx(() => [..._cache[31] || (_cache[31] = [createTextVNode(" Download pre-filled CSV ", -1)])]),
8942
+ default: withCtx(() => [..._cache[41] || (_cache[41] = [createTextVNode(" Download pre-filled CSV ", -1)])]),
8586
8943
  _: 1
8587
8944
  }), createVNode(BaseButton_default, {
8588
8945
  size: "sm",
8589
8946
  variant: "ghost",
8590
- onClick: _cache[6] || (_cache[6] = ($event) => unref(autoGroup).downloadTemplate("blank", "csv"))
8947
+ onClick: _cache[8] || (_cache[8] = ($event) => unref(autoGroup).downloadTemplate("blank", "csv"))
8591
8948
  }, {
8592
- default: withCtx(() => [..._cache[32] || (_cache[32] = [createTextVNode(" Download blank CSV ", -1)])]),
8949
+ default: withCtx(() => [..._cache[42] || (_cache[42] = [createTextVNode(" Download blank CSV ", -1)])]),
8593
8950
  _: 1
8594
8951
  })])])) : createCommentVNode("", true)
8595
8952
  ])]),
8596
- "step-workspace": withCtx(() => [createElementVNode("div", _hoisted_21$7, [
8597
- createElementVNode("aside", _hoisted_22$6, [
8598
- _cache[39] || (_cache[39] = createElementVNode("h3", null, "Detected classes", -1)),
8953
+ "step-workspace": withCtx(() => [createElementVNode("div", _hoisted_26$5, [
8954
+ createElementVNode("aside", _hoisted_27$4, [
8955
+ _cache[49] || (_cache[49] = createElementVNode("h3", null, "Detected classes", -1)),
8599
8956
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(autoGroup).classes.value, (cls) => {
8600
8957
  return openBlock(), createElementBlock("button", {
8601
8958
  key: unref(classKey)(cls),
@@ -8607,39 +8964,39 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8607
8964
  ]),
8608
8965
  onClick: ($event) => unref(autoGroup).activeClassKey.value = unref(classKey)(cls)
8609
8966
  }, [
8610
- _cache[34] || (_cache[34] = createElementVNode("span", { class: "mint-auto-group__class-dot" }, null, -1)),
8611
- createElementVNode("span", _hoisted_24$5, toDisplayString(cls.label), 1),
8612
- createElementVNode("span", _hoisted_25$5, toDisplayString(cls.members.length), 1)
8613
- ], 10, _hoisted_23$5);
8967
+ _cache[44] || (_cache[44] = createElementVNode("span", { class: "mint-auto-group__class-dot" }, null, -1)),
8968
+ createElementVNode("span", _hoisted_29$2, toDisplayString(cls.label), 1),
8969
+ createElementVNode("span", _hoisted_30$2, toDisplayString(cls.members.length), 1)
8970
+ ], 10, _hoisted_28$3);
8614
8971
  }), 128)),
8615
- createElementVNode("div", _hoisted_26$5, [
8616
- _cache[38] || (_cache[38] = createElementVNode("h4", { class: "mint-auto-group__routing-head" }, "QC routing", -1)),
8617
- createElementVNode("label", _hoisted_27$4, [createElementVNode("input", {
8972
+ createElementVNode("div", _hoisted_31$2, [
8973
+ _cache[48] || (_cache[48] = createElementVNode("h4", { class: "mint-auto-group__routing-head" }, "QC routing", -1)),
8974
+ createElementVNode("label", _hoisted_32$2, [createElementVNode("input", {
8618
8975
  type: "radio",
8619
8976
  name: "qc-routing",
8620
8977
  checked: qcRouting.value === "overlay",
8621
- onChange: _cache[7] || (_cache[7] = ($event) => setQcRouting("overlay"))
8622
- }, null, 40, _hoisted_28$3), _cache[35] || (_cache[35] = createElementVNode("span", null, [createTextVNode("Overlay "), createElementVNode("small", null, "preview only")], -1))]),
8623
- createElementVNode("label", _hoisted_29$2, [createElementVNode("input", {
8978
+ onChange: _cache[9] || (_cache[9] = ($event) => setQcRouting("overlay"))
8979
+ }, null, 40, _hoisted_33$2), _cache[45] || (_cache[45] = createElementVNode("span", null, [createTextVNode("Overlay "), createElementVNode("small", null, "preview only")], -1))]),
8980
+ createElementVNode("label", _hoisted_34$2, [createElementVNode("input", {
8624
8981
  type: "radio",
8625
8982
  name: "qc-routing",
8626
8983
  checked: qcRouting.value === "exclude",
8627
- onChange: _cache[8] || (_cache[8] = ($event) => setQcRouting("exclude"))
8628
- }, null, 40, _hoisted_30$2), _cache[36] || (_cache[36] = createElementVNode("span", null, "Exclude entirely", -1))]),
8629
- createElementVNode("label", _hoisted_31$2, [createElementVNode("input", {
8984
+ onChange: _cache[10] || (_cache[10] = ($event) => setQcRouting("exclude"))
8985
+ }, null, 40, _hoisted_35$2), _cache[46] || (_cache[46] = createElementVNode("span", null, "Exclude entirely", -1))]),
8986
+ createElementVNode("label", _hoisted_36$2, [createElementVNode("input", {
8630
8987
  type: "radio",
8631
8988
  name: "qc-routing",
8632
8989
  checked: qcRouting.value === "mix",
8633
- onChange: _cache[9] || (_cache[9] = ($event) => setQcRouting("mix"))
8634
- }, null, 40, _hoisted_32$2), _cache[37] || (_cache[37] = createElementVNode("span", null, "Mix into groups", -1))])
8990
+ onChange: _cache[11] || (_cache[11] = ($event) => setQcRouting("mix"))
8991
+ }, null, 40, _hoisted_37$2), _cache[47] || (_cache[47] = createElementVNode("span", null, "Mix into groups", -1))])
8635
8992
  ])
8636
8993
  ]),
8637
- createElementVNode("section", _hoisted_33$2, [
8638
- createElementVNode("div", _hoisted_34$2, [
8639
- createElementVNode("div", _hoisted_35$2, [
8640
- createElementVNode("div", _hoisted_36$2, toDisplayString(groupStats.value.count), 1),
8641
- _cache[41] || (_cache[41] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Groups", -1)),
8642
- createElementVNode("div", _hoisted_37$2, [groupKeyNames.value.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_38$2, [..._cache[40] || (_cache[40] = [
8994
+ createElementVNode("section", _hoisted_38$2, [
8995
+ createElementVNode("div", _hoisted_39$1, [
8996
+ createElementVNode("div", _hoisted_40$1, [
8997
+ createElementVNode("div", _hoisted_41$1, toDisplayString(groupStats.value.count), 1),
8998
+ _cache[51] || (_cache[51] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Groups", -1)),
8999
+ createElementVNode("div", _hoisted_42, [groupKeyNames.value.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_43, [..._cache[50] || (_cache[50] = [
8643
9000
  createTextVNode("Toggle ", -1),
8644
9001
  createElementVNode("strong", null, "Use", -1),
8645
9002
  createTextVNode(" on a column to start splitting", -1)
@@ -8650,34 +9007,34 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8650
9007
  }, toDisplayString(name), 1);
8651
9008
  }), 128))])
8652
9009
  ]),
8653
- createElementVNode("div", _hoisted_39$2, [
8654
- createElementVNode("div", _hoisted_40$1, toDisplayString(activeMemberCount.value), 1),
8655
- _cache[42] || (_cache[42] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Samples", -1)),
8656
- createElementVNode("div", _hoisted_41$1, toDisplayString(activeSchemaLabel.value) + " · " + toDisplayString(activeColumnCount.value) + " token positions", 1)
9010
+ createElementVNode("div", _hoisted_44, [
9011
+ createElementVNode("div", _hoisted_45, toDisplayString(activeMemberCount.value), 1),
9012
+ _cache[52] || (_cache[52] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Samples", -1)),
9013
+ createElementVNode("div", _hoisted_46, toDisplayString(activeSchemaLabel.value) + " · " + toDisplayString(activeColumnCount.value) + " token positions", 1)
8657
9014
  ]),
8658
- createElementVNode("div", _hoisted_42, [
8659
- createElementVNode("div", _hoisted_43, toDisplayString(groupStats.value.avg), 1),
8660
- _cache[43] || (_cache[43] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Avg / group", -1)),
8661
- createElementVNode("div", _hoisted_44, [groupStats.value.count > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode("Min " + toDisplayString(groupStats.value.min) + " · Max " + toDisplayString(groupStats.value.max), 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode("—")], 64))])
9015
+ createElementVNode("div", _hoisted_47, [
9016
+ createElementVNode("div", _hoisted_48, toDisplayString(groupStats.value.avg), 1),
9017
+ _cache[53] || (_cache[53] = createElementVNode("div", { class: "mint-auto-group__stat-l" }, "Avg / group", -1)),
9018
+ createElementVNode("div", _hoisted_49, [groupStats.value.count > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode("Min " + toDisplayString(groupStats.value.min) + " · Max " + toDisplayString(groupStats.value.max), 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode("—")], 64))])
8662
9019
  ])
8663
9020
  ]),
8664
- unref(autoGroup).suggestions.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_45, [
8665
- _cache[44] || (_cache[44] = createElementVNode("strong", null, "Suggested merge:", -1)),
9021
+ unref(autoGroup).suggestions.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_50, [
9022
+ _cache[54] || (_cache[54] = createElementVNode("strong", null, "Suggested merge:", -1)),
8666
9023
  createTextVNode(" columns " + toDisplayString(unref(autoGroup).suggestions.value[0].columnIndices.map((i) => i + 1).join(" + ")) + " always co-occur — combine into ", 1),
8667
9024
  createElementVNode("code", null, toDisplayString(unref(autoGroup).suggestions.value[0].proposedName), 1),
8668
- _cache[45] || (_cache[45] = createTextVNode("? ", -1)),
9025
+ _cache[55] || (_cache[55] = createTextVNode("? ", -1)),
8669
9026
  createElementVNode("button", {
8670
9027
  type: "button",
8671
9028
  class: "mint-auto-group__suggest-btn",
8672
- onClick: _cache[10] || (_cache[10] = ($event) => acceptSuggestion(unref(autoGroup).suggestions.value[0]))
9029
+ onClick: _cache[12] || (_cache[12] = ($event) => acceptSuggestion(unref(autoGroup).suggestions.value[0]))
8673
9030
  }, " Accept · merge "),
8674
9031
  createElementVNode("button", {
8675
9032
  type: "button",
8676
9033
  class: "mint-auto-group__suggest-btn mint-auto-group__suggest-btn--ghost",
8677
- onClick: _cache[11] || (_cache[11] = ($event) => dismissSuggestion(unref(autoGroup).suggestions.value[0]))
9034
+ onClick: _cache[13] || (_cache[13] = ($event) => dismissSuggestion(unref(autoGroup).suggestions.value[0]))
8678
9035
  }, " Dismiss ")
8679
9036
  ])) : createCommentVNode("", true),
8680
- createElementVNode("div", _hoisted_46, [_cache[47] || (_cache[47] = createElementVNode("div", {
9037
+ createElementVNode("div", _hoisted_51, [_cache[57] || (_cache[57] = createElementVNode("div", {
8681
9038
  class: "mint-auto-group__token-row mint-auto-group__token-row--head",
8682
9039
  role: "row"
8683
9040
  }, [
@@ -8709,46 +9066,46 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8709
9066
  class: normalizeClass(["mint-auto-group__token-row", openPopoverIdx.value === col.index ? "mint-auto-group__token-row--active" : ""]),
8710
9067
  onClick: ($event) => openPopoverIdx.value = col.index
8711
9068
  }, [
8712
- createElementVNode("span", _hoisted_48, toDisplayString(col.index + 1), 1),
8713
- createElementVNode("span", _hoisted_49, toDisplayString(col.displayName ?? col.name), 1),
9069
+ createElementVNode("span", _hoisted_53, toDisplayString(col.index + 1), 1),
9070
+ createElementVNode("span", _hoisted_54, toDisplayString(col.displayName ?? col.name), 1),
8714
9071
  createElementVNode("span", {
8715
9072
  class: normalizeClass(["mint-auto-group__role", `mint-auto-group__role--${col.role}`]),
8716
9073
  role: "cell"
8717
9074
  }, toDisplayString(roleLabel(col.role)), 3),
8718
- createElementVNode("span", _hoisted_50, toDisplayString(col.cardinality), 1),
8719
- createElementVNode("span", _hoisted_51, [createTextVNode(toDisplayString(col.uniqueValues.slice(0, 4).join(", ")), 1), col.uniqueValues.length > 4 ? (openBlock(), createElementBlock("span", _hoisted_52, " +" + toDisplayString(col.uniqueValues.length - 4) + " more", 1)) : createCommentVNode("", true)]),
9075
+ createElementVNode("span", _hoisted_55, toDisplayString(col.cardinality), 1),
9076
+ createElementVNode("span", _hoisted_56, [createTextVNode(toDisplayString(col.uniqueValues.slice(0, 4).join(", ")), 1), col.uniqueValues.length > 4 ? (openBlock(), createElementBlock("span", _hoisted_57, " +" + toDisplayString(col.uniqueValues.length - 4) + " more", 1)) : createCommentVNode("", true)]),
8720
9077
  createElementVNode("label", {
8721
9078
  class: "mint-auto-group__token-use",
8722
9079
  role: "cell",
8723
- onClick: _cache[12] || (_cache[12] = withModifiers(() => {}, ["stop"]))
9080
+ onClick: _cache[14] || (_cache[14] = withModifiers(() => {}, ["stop"]))
8724
9081
  }, [createElementVNode("input", {
8725
9082
  type: "checkbox",
8726
9083
  checked: (unref(autoGroup).activeSchema.value?.groupBy ?? []).includes(col.index),
8727
9084
  onChange: ($event) => unref(autoGroup).toggleGroupBy(unref(autoGroup).activeClassKey.value, col.index)
8728
- }, null, 40, _hoisted_53)]),
8729
- _cache[46] || (_cache[46] = createElementVNode("span", {
9085
+ }, null, 40, _hoisted_58)]),
9086
+ _cache[56] || (_cache[56] = createElementVNode("span", {
8730
9087
  class: "mint-auto-group__token-trigger",
8731
9088
  role: "cell",
8732
9089
  "aria-hidden": "true"
8733
9090
  }, "⋯", -1))
8734
- ], 10, _hoisted_47);
9091
+ ], 10, _hoisted_52);
8735
9092
  }), 128))])
8736
9093
  ]),
8737
9094
  openPopoverIdx.value !== null && activeColumn.value ? (openBlock(), createElementBlock("div", {
8738
9095
  key: 0,
8739
9096
  class: "mint-auto-group__popover",
8740
- onClick: _cache[15] || (_cache[15] = withModifiers(() => {}, ["stop"]))
9097
+ onClick: _cache[17] || (_cache[17] = withModifiers(() => {}, ["stop"]))
8741
9098
  }, [
8742
- createElementVNode("div", _hoisted_54, [
9099
+ createElementVNode("div", _hoisted_59, [
8743
9100
  createElementVNode("strong", null, toDisplayString(activeColumn.value.displayName ?? activeColumn.value.name), 1),
8744
- createElementVNode("span", _hoisted_55, toDisplayString(activeColumn.value.cardinality) + " unique", 1),
9101
+ createElementVNode("span", _hoisted_60, toDisplayString(activeColumn.value.cardinality) + " unique", 1),
8745
9102
  createElementVNode("button", {
8746
9103
  type: "button",
8747
9104
  class: "mint-auto-group__popover-close",
8748
- onClick: _cache[13] || (_cache[13] = ($event) => openPopoverIdx.value = null)
9105
+ onClick: _cache[15] || (_cache[15] = ($event) => openPopoverIdx.value = null)
8749
9106
  }, "×")
8750
9107
  ]),
8751
- createElementVNode("div", _hoisted_56, [_cache[48] || (_cache[48] = createElementVNode("div", { class: "mint-auto-group__popover-label" }, "Role", -1)), createElementVNode("div", _hoisted_57, [(openBlock(), createElementBlock(Fragment, null, renderList([
9108
+ createElementVNode("div", _hoisted_61, [_cache[58] || (_cache[58] = createElementVNode("div", { class: "mint-auto-group__popover-label" }, "Role", -1)), createElementVNode("div", _hoisted_62, [(openBlock(), createElementBlock(Fragment, null, renderList([
8752
9109
  "factor",
8753
9110
  "replicate",
8754
9111
  "run-order",
@@ -8761,28 +9118,28 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8761
9118
  type: "button",
8762
9119
  class: normalizeClass(["mint-auto-group__pill-btn", activeColumn.value.role === r ? "mint-auto-group__pill-btn--on" : ""]),
8763
9120
  onClick: ($event) => unref(autoGroup).setRole(unref(autoGroup).activeClassKey.value, activeColumn.value.index, r)
8764
- }, toDisplayString(roleLabel(r)), 11, _hoisted_58);
9121
+ }, toDisplayString(roleLabel(r)), 11, _hoisted_63);
8765
9122
  }), 64))])]),
8766
- createElementVNode("div", _hoisted_59, [_cache[49] || (_cache[49] = createElementVNode("div", { class: "mint-auto-group__popover-label" }, "Rename", -1)), createVNode(BaseInput_default, {
9123
+ createElementVNode("div", _hoisted_64, [_cache[59] || (_cache[59] = createElementVNode("div", { class: "mint-auto-group__popover-label" }, "Rename", -1)), createVNode(BaseInput_default, {
8767
9124
  "model-value": activeColumn.value.displayName ?? activeColumn.value.name,
8768
- "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => renameActive(String($event ?? "")))
9125
+ "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => renameActive(String($event ?? "")))
8769
9126
  }, null, 8, ["model-value"])]),
8770
- createElementVNode("div", _hoisted_60, [createElementVNode("div", _hoisted_61, "Values (" + toDisplayString(activeColumn.value.uniqueValues.length) + ")", 1), createElementVNode("div", _hoisted_62, [(openBlock(true), createElementBlock(Fragment, null, renderList(activeColumn.value.uniqueValues, (v) => {
9127
+ createElementVNode("div", _hoisted_65, [createElementVNode("div", _hoisted_66, "Values (" + toDisplayString(activeColumn.value.uniqueValues.length) + ")", 1), createElementVNode("div", _hoisted_67, [(openBlock(true), createElementBlock(Fragment, null, renderList(activeColumn.value.uniqueValues, (v) => {
8771
9128
  return openBlock(), createElementBlock("div", {
8772
9129
  key: v,
8773
9130
  class: "mint-auto-group__value-row"
8774
9131
  }, [
8775
- createElementVNode("span", _hoisted_63, toDisplayString(v) + " →", 1),
9132
+ createElementVNode("span", _hoisted_68, toDisplayString(v) + " →", 1),
8776
9133
  createElementVNode("input", {
8777
9134
  class: "mint-auto-group__value-input",
8778
9135
  value: activeColumn.value.ops?.alias?.[v] ?? v,
8779
9136
  onChange: ($event) => setAlias(v, $event.target.value)
8780
- }, null, 40, _hoisted_64),
8781
- createElementVNode("label", _hoisted_65, [createElementVNode("input", {
9137
+ }, null, 40, _hoisted_69),
9138
+ createElementVNode("label", _hoisted_70, [createElementVNode("input", {
8782
9139
  type: "checkbox",
8783
9140
  checked: activeColumn.value.ops?.exclude?.includes(v) ?? false,
8784
9141
  onChange: ($event) => toggleExclude(v)
8785
- }, null, 40, _hoisted_66), _cache[50] || (_cache[50] = createTextVNode(" excl ", -1))])
9142
+ }, null, 40, _hoisted_71), _cache[60] || (_cache[60] = createTextVNode(" excl ", -1))])
8786
9143
  ]);
8787
9144
  }), 128))])]),
8788
9145
  createElementVNode("div", { class: "mint-auto-group__popover-section" }, [createElementVNode("button", {
@@ -8792,26 +9149,26 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8792
9149
  }, "▸ Merge with next column")])
8793
9150
  ])) : createCommentVNode("", true)
8794
9151
  ])]),
8795
- "step-preview": withCtx(() => [createElementVNode("div", _hoisted_67, [
8796
- createElementVNode("div", _hoisted_68, [
9152
+ "step-preview": withCtx(() => [createElementVNode("div", _hoisted_72, [
9153
+ createElementVNode("div", _hoisted_73, [
8797
9154
  createElementVNode("strong", null, toDisplayString(unref(autoGroup).groups.value.length), 1),
8798
- _cache[51] || (_cache[51] = createTextVNode(" groups · ", -1)),
9155
+ _cache[61] || (_cache[61] = createTextVNode(" groups · ", -1)),
8799
9156
  createElementVNode("strong", null, toDisplayString(totalGrouped.value), 1),
8800
- _cache[52] || (_cache[52] = createTextVNode(" samples · ", -1)),
9157
+ _cache[62] || (_cache[62] = createTextVNode(" samples · ", -1)),
8801
9158
  createElementVNode("strong", null, toDisplayString(totalQc.value), 1),
8802
- _cache[53] || (_cache[53] = createTextVNode(" QC kept aside · ", -1)),
9159
+ _cache[63] || (_cache[63] = createTextVNode(" QC kept aside · ", -1)),
8803
9160
  createElementVNode("strong", null, toDisplayString(unref(autoGroup).excludedSamples.value.length), 1),
8804
- _cache[54] || (_cache[54] = createTextVNode(" excluded ", -1))
9161
+ _cache[64] || (_cache[64] = createTextVNode(" excluded ", -1))
8805
9162
  ]),
8806
9163
  unref(autoGroup).allSingletons.value ? (openBlock(), createBlock(AlertBox_default, {
8807
9164
  key: 0,
8808
9165
  type: "warning",
8809
9166
  title: "Each group has only one sample"
8810
9167
  }, {
8811
- default: withCtx(() => [..._cache[55] || (_cache[55] = [createTextVNode(" Group key produced a unique key per row. Go back and disable any column whose values are unique per sample. ", -1)])]),
9168
+ default: withCtx(() => [..._cache[65] || (_cache[65] = [createTextVNode(" Group key produced a unique key per row. Go back and disable any column whose values are unique per sample. ", -1)])]),
8812
9169
  _: 1
8813
9170
  })) : createCommentVNode("", true),
8814
- createElementVNode("div", _hoisted_69, [createElementVNode("div", _hoisted_70, [_cache[56] || (_cache[56] = createElementVNode("h4", null, "Experimental groups", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(autoGroup).result.value.experimentalGroups ?? [], (group) => {
9171
+ createElementVNode("div", _hoisted_74, [createElementVNode("div", _hoisted_75, [_cache[66] || (_cache[66] = createElementVNode("h4", null, "Experimental groups", -1)), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(autoGroup).result.value.experimentalGroups ?? [], (group) => {
8815
9172
  return openBlock(), createElementBlock("details", {
8816
9173
  key: group.name,
8817
9174
  class: "mint-auto-group__preview-group"
@@ -8821,39 +9178,39 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8821
9178
  style: normalizeStyle({ background: group.color })
8822
9179
  }, null, 4),
8823
9180
  createElementVNode("span", null, toDisplayString(group.name), 1),
8824
- createElementVNode("span", _hoisted_71, toDisplayString(group.samples.length), 1)
8825
- ]), createElementVNode("div", _hoisted_72, [(openBlock(true), createElementBlock(Fragment, null, renderList(group.samples, (s) => {
9181
+ createElementVNode("span", _hoisted_76, toDisplayString(group.samples.length), 1)
9182
+ ]), createElementVNode("div", _hoisted_77, [(openBlock(true), createElementBlock(Fragment, null, renderList(group.samples, (s) => {
8826
9183
  return openBlock(), createElementBlock("span", {
8827
9184
  key: s,
8828
9185
  class: "mint-auto-group__preview-sample"
8829
9186
  }, toDisplayString(s), 1);
8830
9187
  }), 128))])]);
8831
- }), 128))]), createElementVNode("div", _hoisted_73, [
8832
- _cache[58] || (_cache[58] = createElementVNode("h4", null, "QC kept aside (overlay)", -1)),
8833
- createElementVNode("div", _hoisted_74, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(autoGroup).qcGroups.value ?? [], (g) => {
9188
+ }), 128))]), createElementVNode("div", _hoisted_78, [
9189
+ _cache[68] || (_cache[68] = createElementVNode("h4", null, "QC kept aside (overlay)", -1)),
9190
+ createElementVNode("div", _hoisted_79, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(autoGroup).qcGroups.value ?? [], (g) => {
8834
9191
  return openBlock(), createElementBlock("span", {
8835
9192
  key: g.name,
8836
9193
  class: "mint-auto-group__qc-chip"
8837
9194
  }, [createTextVNode(toDisplayString(g.name) + " ", 1), createElementVNode("code", null, "×" + toDisplayString(g.samples.length), 1)]);
8838
9195
  }), 128))]),
8839
- createElementVNode("details", _hoisted_75, [_cache[57] || (_cache[57] = createElementVNode("summary", null, "Schema fingerprint", -1)), createElementVNode("pre", null, toDisplayString(JSON.stringify(unref(autoGroup).fingerprint.value, null, 2)), 1)])
9196
+ createElementVNode("details", _hoisted_80, [_cache[67] || (_cache[67] = createElementVNode("summary", null, "Schema fingerprint", -1)), createElementVNode("pre", null, toDisplayString(JSON.stringify(unref(autoGroup).fingerprint.value, null, 2)), 1)])
8840
9197
  ])])
8841
9198
  ])]),
8842
- navigation: withCtx(({ goBack, goNext, canProceed }) => [createElementVNode("div", _hoisted_76, [
9199
+ navigation: withCtx(({ goBack, goNext, canProceed }) => [createElementVNode("div", _hoisted_81, [
8843
9200
  createVNode(BaseButton_default, {
8844
9201
  variant: "secondary",
8845
9202
  onClick: handleCancel
8846
9203
  }, {
8847
- default: withCtx(() => [..._cache[59] || (_cache[59] = [createTextVNode(" Cancel ", -1)])]),
9204
+ default: withCtx(() => [..._cache[69] || (_cache[69] = [createTextVNode(" Cancel ", -1)])]),
8848
9205
  _: 1
8849
9206
  }),
8850
- _cache[63] || (_cache[63] = createElementVNode("div", { class: "mint-auto-group__nav-spacer" }, null, -1)),
9207
+ _cache[73] || (_cache[73] = createElementVNode("div", { class: "mint-auto-group__nav-spacer" }, null, -1)),
8851
9208
  !isFirstStep.value ? (openBlock(), createBlock(BaseButton_default, {
8852
9209
  key: 0,
8853
9210
  variant: "secondary",
8854
9211
  onClick: goBack
8855
9212
  }, {
8856
- default: withCtx(() => [..._cache[60] || (_cache[60] = [createTextVNode(" Back ", -1)])]),
9213
+ default: withCtx(() => [..._cache[70] || (_cache[70] = [createTextVNode(" Back ", -1)])]),
8857
9214
  _: 1
8858
9215
  }, 8, ["onClick"])) : createCommentVNode("", true),
8859
9216
  !isLastStep.value ? (openBlock(), createBlock(BaseButton_default, {
@@ -8865,7 +9222,7 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8865
9222
  goNext();
8866
9223
  }
8867
9224
  }, {
8868
- default: withCtx(() => [..._cache[61] || (_cache[61] = [createTextVNode(" Next ", -1)])]),
9225
+ default: withCtx(() => [..._cache[71] || (_cache[71] = [createTextVNode(" Next ", -1)])]),
8869
9226
  _: 1
8870
9227
  }, 8, ["disabled", "onClick"])) : createCommentVNode("", true),
8871
9228
  isLastStep.value ? (openBlock(), createBlock(BaseButton_default, {
@@ -8873,14 +9230,239 @@ var AutoGroupModal_default = /* @__PURE__ */ defineComponent({
8873
9230
  variant: "primary",
8874
9231
  onClick: handleApply
8875
9232
  }, {
8876
- default: withCtx(() => [..._cache[62] || (_cache[62] = [createTextVNode(" Apply ", -1)])]),
9233
+ default: withCtx(() => [..._cache[72] || (_cache[72] = [createTextVNode(" Apply ", -1)])]),
8877
9234
  _: 1
8878
9235
  })) : createCommentVNode("", true)
8879
9236
  ])]),
8880
9237
  _: 1
8881
- }, 8, ["modelValue", "steps"])])]),
8882
- _: 1
8883
- }, 8, ["model-value"]);
9238
+ }, 8, ["modelValue", "steps"])) : (openBlock(), createElementBlock("div", _hoisted_82, [createElementVNode("div", _hoisted_83, [createElementVNode("section", _hoisted_84, [
9239
+ createElementVNode("div", _hoisted_85, [_cache[75] || (_cache[75] = createElementVNode("div", null, [createElementVNode("span", { class: "mint-auto-group__manual-step" }, "1"), createElementVNode("h3", null, "Samples")], -1)), createElementVNode("div", _hoisted_86, [createElementVNode("span", null, toDisplayString(unref(manualFilteredSamples).length) + " of " + toDisplayString(manualSamplePool.value.length), 1), createElementVNode("label", _hoisted_87, [withDirectives(createElementVNode("input", {
9240
+ "onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => manualUngroupedOnly.value = $event),
9241
+ type: "checkbox",
9242
+ class: "mint-auto-group__manual-checkbox"
9243
+ }, null, 512), [[vModelCheckbox, manualUngroupedOnly.value]]), _cache[74] || (_cache[74] = createElementVNode("span", null, "Ungrouped only", -1))])])]),
9244
+ createElementVNode("div", _hoisted_88, [_cache[76] || (_cache[76] = createElementVNode("svg", {
9245
+ class: "mint-auto-group__manual-search-icon",
9246
+ fill: "none",
9247
+ stroke: "currentColor",
9248
+ viewBox: "0 0 24 24"
9249
+ }, [createElementVNode("path", {
9250
+ "stroke-linecap": "round",
9251
+ "stroke-linejoin": "round",
9252
+ "stroke-width": "2",
9253
+ d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
9254
+ })], -1)), withDirectives(createElementVNode("input", {
9255
+ "onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => manualSearchQuery.value = $event),
9256
+ type: "text",
9257
+ "aria-label": "Search samples for manual grouping",
9258
+ placeholder: "Search sample keyword...",
9259
+ class: "mint-auto-group__manual-search-input"
9260
+ }, null, 512), [[vModelText, manualSearchQuery.value]])]),
9261
+ createElementVNode("label", _hoisted_89, [
9262
+ createElementVNode("input", {
9263
+ type: "checkbox",
9264
+ checked: manualAllVisibleSelected.value,
9265
+ indeterminate: manualSomeVisibleSelected.value,
9266
+ disabled: unref(manualFilteredSamples).length === 0,
9267
+ class: "mint-auto-group__manual-checkbox",
9268
+ onChange: manualToggleVisibleSamples
9269
+ }, null, 40, _hoisted_90),
9270
+ _cache[77] || (_cache[77] = createElementVNode("span", null, "Select all matching", -1)),
9271
+ createElementVNode("span", _hoisted_91, toDisplayString(unref(manualFilteredSamples).length) + " shown ", 1)
9272
+ ]),
9273
+ createElementVNode("div", _hoisted_92, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(manualFilteredSamples), (sample) => {
9274
+ return openBlock(), createElementBlock("label", {
9275
+ key: sample,
9276
+ class: normalizeClass(["mint-auto-group__manual-sample", manualSelectedSet.value.has(sample) ? "mint-auto-group__manual-sample--selected" : ""]),
9277
+ title: sample
9278
+ }, [
9279
+ createElementVNode("input", {
9280
+ type: "checkbox",
9281
+ checked: manualSelectedSet.value.has(sample),
9282
+ class: "mint-auto-group__manual-checkbox",
9283
+ onChange: ($event) => manualToggleSample(sample)
9284
+ }, null, 40, _hoisted_94),
9285
+ createElementVNode("span", _hoisted_95, toDisplayString(sample), 1),
9286
+ createElementVNode("span", { class: normalizeClass(["mint-auto-group__manual-status", manualGetSampleGroup(sample) ? "" : "mint-auto-group__manual-status--empty"]) }, [manualGetSampleGroup(sample) ? (openBlock(), createElementBlock("span", {
9287
+ key: 0,
9288
+ class: "mint-auto-group__manual-dot",
9289
+ style: normalizeStyle({ backgroundColor: manualGetSampleGroup(sample)?.color }),
9290
+ "aria-hidden": "true"
9291
+ }, null, 4)) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(manualGetSampleStatus(sample)), 1)], 2),
9292
+ createElementVNode("span", _hoisted_96, toDisplayString(sample), 1)
9293
+ ], 10, _hoisted_93);
9294
+ }), 128)), unref(manualFilteredSamples).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_97, " No samples ")) : createCommentVNode("", true)]),
9295
+ createElementVNode("div", _hoisted_98, [createElementVNode("span", null, [createElementVNode("strong", null, toDisplayString(manualSelectedSamples.value.length), 1), _cache[78] || (_cache[78] = createTextVNode(" selected", -1))]), createElementVNode("button", {
9296
+ type: "button",
9297
+ class: "mint-auto-group__manual-link",
9298
+ disabled: manualSelectedSamples.value.length === 0,
9299
+ onClick: manualClearSamples
9300
+ }, " Clear ", 8, _hoisted_99)])
9301
+ ]), createElementVNode("section", _hoisted_100, [
9302
+ _cache[87] || (_cache[87] = createElementVNode("div", { class: "mint-auto-group__manual-panel-head" }, [createElementVNode("div", null, [createElementVNode("span", { class: "mint-auto-group__manual-step" }, "2"), createElementVNode("h3", null, "Cohort target")])], -1)),
9303
+ createElementVNode("div", { class: normalizeClass(["mint-auto-group__manual-assignment", manualSelectedSamples.value.length === 0 ? "mint-auto-group__manual-assignment--empty" : ""]) }, [
9304
+ createElementVNode("div", _hoisted_101, [createElementVNode("span", {
9305
+ class: "mint-auto-group__manual-dot",
9306
+ style: normalizeStyle({ backgroundColor: manualSelectedColor.value }),
9307
+ "aria-hidden": "true"
9308
+ }, null, 4), createElementVNode("span", null, toDisplayString(manualSelectedSamples.value.length > 0 ? `${manualSelectedSamples.value.length} selected` : "No sample selected"), 1)]),
9309
+ createElementVNode("div", _hoisted_102, [createElementVNode("label", _hoisted_103, [_cache[80] || (_cache[80] = createElementVNode("span", null, "Group", -1)), createElementVNode("div", _hoisted_104, [
9310
+ createElementVNode("span", {
9311
+ class: "mint-auto-group__manual-dot",
9312
+ style: normalizeStyle({ backgroundColor: manualSelectedColor.value }),
9313
+ "aria-hidden": "true"
9314
+ }, null, 4),
9315
+ createVNode(BaseInput_default, {
9316
+ modelValue: manualGroupName.value,
9317
+ "onUpdate:modelValue": _cache[21] || (_cache[21] = ($event) => manualGroupName.value = $event),
9318
+ list: "mint-auto-group-manual-groups",
9319
+ placeholder: "Type or pick...",
9320
+ size: "sm",
9321
+ class: "mint-auto-group__manual-combo-input"
9322
+ }, null, 8, ["modelValue"]),
9323
+ _cache[79] || (_cache[79] = createElementVNode("svg", {
9324
+ class: "mint-auto-group__manual-combo-icon",
9325
+ fill: "none",
9326
+ stroke: "currentColor",
9327
+ viewBox: "0 0 24 24"
9328
+ }, [createElementVNode("path", {
9329
+ "stroke-linecap": "round",
9330
+ "stroke-linejoin": "round",
9331
+ "stroke-width": "2",
9332
+ d: "M6 9l6 6 6-6"
9333
+ })], -1)),
9334
+ createElementVNode("datalist", _hoisted_105, [(openBlock(true), createElementBlock(Fragment, null, renderList(manualDraftGroups.value, (group) => {
9335
+ return openBlock(), createElementBlock("option", {
9336
+ key: `manual-group-option-${group.name}`,
9337
+ value: manualGetGroupPrimaryName(group.name)
9338
+ }, null, 8, _hoisted_106);
9339
+ }), 128))])
9340
+ ])]), createElementVNode("label", _hoisted_107, [_cache[82] || (_cache[82] = createElementVNode("span", null, [createTextVNode("Subgroup "), createElementVNode("small", null, "optional")], -1)), createElementVNode("div", _hoisted_108, [
9341
+ createVNode(BaseInput_default, {
9342
+ modelValue: manualSubGroupName.value,
9343
+ "onUpdate:modelValue": _cache[22] || (_cache[22] = ($event) => manualSubGroupName.value = $event),
9344
+ list: "mint-auto-group-manual-subgroups",
9345
+ placeholder: "e.g. Day 7",
9346
+ size: "sm",
9347
+ class: "mint-auto-group__manual-combo-input"
9348
+ }, null, 8, ["modelValue"]),
9349
+ _cache[81] || (_cache[81] = createElementVNode("svg", {
9350
+ class: "mint-auto-group__manual-combo-icon",
9351
+ fill: "none",
9352
+ stroke: "currentColor",
9353
+ viewBox: "0 0 24 24"
9354
+ }, [createElementVNode("path", {
9355
+ "stroke-linecap": "round",
9356
+ "stroke-linejoin": "round",
9357
+ "stroke-width": "2",
9358
+ d: "M6 9l6 6 6-6"
9359
+ })], -1)),
9360
+ createElementVNode("datalist", _hoisted_109, [(openBlock(true), createElementBlock(Fragment, null, renderList(manualDraftGroups.value, (group) => {
9361
+ return openBlock(), createElementBlock("option", {
9362
+ key: `manual-subgroup-option-${group.name}`,
9363
+ value: manualGetGroupSecondaryName(group.name) || group.name
9364
+ }, null, 8, _hoisted_110);
9365
+ }), 128))])
9366
+ ])])]),
9367
+ createElementVNode("div", _hoisted_111, [_cache[83] || (_cache[83] = createElementVNode("span", null, "Color", -1)), createElementVNode("div", _hoisted_112, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(manualColorOptions), (color) => {
9368
+ return openBlock(), createElementBlock("button", {
9369
+ key: color,
9370
+ type: "button",
9371
+ class: normalizeClass(["mint-auto-group__manual-swatch", manualSelectedColor.value === color ? "mint-auto-group__manual-swatch--active" : ""]),
9372
+ style: normalizeStyle({ backgroundColor: color }),
9373
+ "aria-label": `Use color ${color}`,
9374
+ onClick: ($event) => manualChooseColor(color)
9375
+ }, null, 14, _hoisted_113);
9376
+ }), 128))])]),
9377
+ createElementVNode("div", _hoisted_114, [_cache[84] || (_cache[84] = createElementVNode("span", null, "Target cohort", -1)), createElementVNode("code", null, toDisplayString(manualTargetGroupName.value || "Group/Subgroup"), 1)]),
9378
+ createVNode(BaseButton_default, {
9379
+ variant: "primary",
9380
+ size: "sm",
9381
+ class: "mint-auto-group__manual-assign",
9382
+ disabled: !manualCanAssign.value,
9383
+ onClick: manualAssignSamplesToGroup
9384
+ }, {
9385
+ default: withCtx(() => [..._cache[85] || (_cache[85] = [createElementVNode("svg", {
9386
+ class: "mint-auto-group__manual-btn-icon",
9387
+ fill: "none",
9388
+ stroke: "currentColor",
9389
+ viewBox: "0 0 24 24"
9390
+ }, [createElementVNode("path", {
9391
+ "stroke-linecap": "round",
9392
+ "stroke-linejoin": "round",
9393
+ "stroke-width": "2",
9394
+ d: "M5 12h14m-6-6 6 6-6 6"
9395
+ })], -1), createTextVNode(" Assign ", -1)])]),
9396
+ _: 1
9397
+ }, 8, ["disabled"])
9398
+ ], 2),
9399
+ createElementVNode("div", _hoisted_115, [
9400
+ createElementVNode("div", _hoisted_116, [_cache[86] || (_cache[86] = createElementVNode("span", null, "Cohorts so far", -1)), createElementVNode("span", null, toDisplayString(manualDraftGroups.value.length) + " groups", 1)]),
9401
+ unref(manualShowHierarchy) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(manualHierarchicalGroups), (majorGroup) => {
9402
+ return openBlock(), createElementBlock(Fragment, { key: `manual-major-${majorGroup.name}` }, [createElementVNode("button", {
9403
+ type: "button",
9404
+ class: "mint-auto-group__manual-chip mint-auto-group__manual-chip--major",
9405
+ title: majorGroup.name,
9406
+ onClick: ($event) => manualUseExistingGroupAsTarget(majorGroup.subGroups[0]?.name || majorGroup.name)
9407
+ }, [
9408
+ createElementVNode("span", {
9409
+ class: "mint-auto-group__manual-chip-dot",
9410
+ style: normalizeStyle({ backgroundColor: majorGroup.color }),
9411
+ "aria-hidden": "true"
9412
+ }, null, 4),
9413
+ createElementVNode("span", _hoisted_118, toDisplayString(majorGroup.name), 1),
9414
+ createElementVNode("span", _hoisted_119, toDisplayString(majorGroup.allSamples.length), 1)
9415
+ ], 8, _hoisted_117), (openBlock(true), createElementBlock(Fragment, null, renderList(majorGroup.subGroups, (subGroup) => {
9416
+ return openBlock(), createElementBlock("button", {
9417
+ key: `manual-sub-${subGroup.name}`,
9418
+ type: "button",
9419
+ class: "mint-auto-group__manual-chip mint-auto-group__manual-chip--sub",
9420
+ title: subGroup.name,
9421
+ onClick: ($event) => manualUseExistingGroupAsTarget(subGroup.name)
9422
+ }, [createElementVNode("span", _hoisted_121, toDisplayString(manualGetGroupSecondaryName(subGroup.name) || subGroup.name), 1), createElementVNode("span", _hoisted_122, toDisplayString(subGroup.samples.length), 1)], 8, _hoisted_120);
9423
+ }), 128))], 64);
9424
+ }), 128)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(manualDraftGroups.value, (group) => {
9425
+ return openBlock(), createElementBlock("button", {
9426
+ key: group.name,
9427
+ type: "button",
9428
+ class: "mint-auto-group__manual-chip",
9429
+ title: group.name,
9430
+ onClick: ($event) => manualUseExistingGroupAsTarget(group.name)
9431
+ }, [
9432
+ createElementVNode("span", {
9433
+ class: "mint-auto-group__manual-chip-dot",
9434
+ style: normalizeStyle({ backgroundColor: group.color }),
9435
+ "aria-hidden": "true"
9436
+ }, null, 4),
9437
+ createElementVNode("span", _hoisted_124, toDisplayString(group.name), 1),
9438
+ createElementVNode("span", _hoisted_125, toDisplayString(group.samples.length), 1)
9439
+ ], 8, _hoisted_123);
9440
+ }), 128)),
9441
+ manualDraftGroups.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_126, " No cohorts yet ")) : createCommentVNode("", true)
9442
+ ])
9443
+ ])])]))])]),
9444
+ _: 2
9445
+ }, [activeWorkflow.value === "manual" ? {
9446
+ name: "footer",
9447
+ fn: withCtx(() => [createElementVNode("div", _hoisted_127, [
9448
+ createVNode(BaseButton_default, {
9449
+ variant: "secondary",
9450
+ onClick: handleCancel
9451
+ }, {
9452
+ default: withCtx(() => [..._cache[88] || (_cache[88] = [createTextVNode(" Cancel ", -1)])]),
9453
+ _: 1
9454
+ }),
9455
+ _cache[90] || (_cache[90] = createElementVNode("div", { class: "mint-auto-group__nav-spacer" }, null, -1)),
9456
+ createVNode(BaseButton_default, {
9457
+ variant: "primary",
9458
+ onClick: handleManualApply
9459
+ }, {
9460
+ default: withCtx(() => [..._cache[89] || (_cache[89] = [createTextVNode(" Apply ", -1)])]),
9461
+ _: 1
9462
+ })
9463
+ ])]),
9464
+ key: "0"
9465
+ } : void 0]), 1032, ["model-value", "size"]);
8884
9466
  };
8885
9467
  }
8886
9468
  });
@@ -9209,33 +9791,6 @@ function useSampleSelectorSelection(options) {
9209
9791
  };
9210
9792
  }
9211
9793
  //#endregion
9212
- //#region src/components/SampleSelector.colors.ts
9213
- var DEFAULT_COLOR_PICKER_SEED = "#3B82F6";
9214
- function applySampleGroupColorEdit(groups, edit, color) {
9215
- const targets = edit.kind === "family" ? new Set(edit.names) : new Set([edit.name]);
9216
- return groups.map((group) => targets.has(group.name) ? {
9217
- ...group,
9218
- color
9219
- } : group);
9220
- }
9221
- function getSampleGroupColorEditSeed(edit, getGroupColor) {
9222
- if (!edit) return DEFAULT_COLOR_PICKER_SEED;
9223
- return getGroupColor(edit.kind === "family" ? edit.names[0] : edit.name);
9224
- }
9225
- function pickUnusedSampleGroupColor(groups) {
9226
- const usedColors = new Set(groups.map((group) => group.color));
9227
- return DEFAULT_COLORS.find((color) => !usedColors.has(color)) || DEFAULT_COLORS[0];
9228
- }
9229
- function createSampleGroup(name, existingGroups) {
9230
- const trimmedName = name.trim();
9231
- if (!trimmedName) return null;
9232
- return {
9233
- name: trimmedName,
9234
- color: pickUnusedSampleGroupColor(existingGroups),
9235
- samples: []
9236
- };
9237
- }
9238
- //#endregion
9239
9794
  //#region src/components/SampleSelector.vue?vue&type=script&setup=true&lang.ts
9240
9795
  var _hoisted_1$31 = { class: "mint-sample-selector" };
9241
9796
  var _hoisted_2$27 = { class: "mint-sample-selector__select-all" };
@@ -9245,82 +9800,81 @@ var _hoisted_5$23 = {
9245
9800
  key: 0,
9246
9801
  class: "mint-sample-selector__actions"
9247
9802
  };
9248
- var _hoisted_6$23 = { class: "mint-sample-selector__actions-row" };
9249
- var _hoisted_7$21 = {
9803
+ var _hoisted_6$23 = {
9250
9804
  key: 1,
9251
9805
  class: "mint-sample-selector__grouped"
9252
9806
  };
9253
- var _hoisted_8$18 = { class: "mint-sample-selector__groups-header" };
9254
- var _hoisted_9$16 = { class: "mint-sample-selector__groups-title" };
9255
- var _hoisted_10$15 = { class: "mint-sample-selector__tree" };
9256
- var _hoisted_11$13 = [
9807
+ var _hoisted_7$21 = { class: "mint-sample-selector__groups-header" };
9808
+ var _hoisted_8$18 = { class: "mint-sample-selector__groups-title" };
9809
+ var _hoisted_9$16 = { class: "mint-sample-selector__tree" };
9810
+ var _hoisted_10$15 = [
9257
9811
  "onClick",
9258
9812
  "onDragstart",
9259
9813
  "onDragover",
9260
9814
  "onDrop"
9261
9815
  ];
9262
- var _hoisted_12$12 = [
9816
+ var _hoisted_11$13 = [
9263
9817
  "checked",
9264
9818
  "indeterminate",
9265
9819
  "onChange"
9266
9820
  ];
9267
- var _hoisted_13$12 = ["onClick"];
9268
- var _hoisted_14$10 = { class: "mint-sample-selector__major-name" };
9269
- var _hoisted_15$9 = ["onClick"];
9270
- var _hoisted_16$8 = ["onDragover", "onDrop"];
9271
- var _hoisted_17$8 = [
9821
+ var _hoisted_12$12 = ["onClick"];
9822
+ var _hoisted_13$12 = { class: "mint-sample-selector__major-name" };
9823
+ var _hoisted_14$10 = ["onClick"];
9824
+ var _hoisted_15$9 = ["onDragover", "onDrop"];
9825
+ var _hoisted_16$8 = [
9272
9826
  "onClick",
9273
9827
  "onDragstart",
9274
9828
  "onDragover",
9275
9829
  "onDrop"
9276
9830
  ];
9277
- var _hoisted_18$8 = [
9831
+ var _hoisted_17$8 = [
9278
9832
  "checked",
9279
9833
  "indeterminate",
9280
9834
  "onChange"
9281
9835
  ];
9282
- var _hoisted_19$8 = { class: "mint-sample-selector__sub-name" };
9283
- var _hoisted_20$7 = ["onClick"];
9284
- var _hoisted_21$6 = ["onDragover", "onDrop"];
9285
- var _hoisted_22$5 = [
9836
+ var _hoisted_18$8 = { class: "mint-sample-selector__sub-name" };
9837
+ var _hoisted_19$8 = ["onClick"];
9838
+ var _hoisted_20$7 = ["onDragover", "onDrop"];
9839
+ var _hoisted_21$6 = [
9286
9840
  "onClick",
9287
9841
  "onDragstart",
9288
9842
  "onDragover",
9289
9843
  "onDrop"
9290
9844
  ];
9291
- var _hoisted_23$4 = [
9845
+ var _hoisted_22$5 = [
9292
9846
  "checked",
9293
9847
  "indeterminate",
9294
9848
  "onChange"
9295
9849
  ];
9296
- var _hoisted_24$4 = ["onClick"];
9297
- var _hoisted_25$4 = { class: "mint-sample-selector__major-name" };
9298
- var _hoisted_26$4 = ["onClick"];
9299
- var _hoisted_27$3 = {
9850
+ var _hoisted_23$4 = ["onClick"];
9851
+ var _hoisted_24$4 = { class: "mint-sample-selector__major-name" };
9852
+ var _hoisted_25$4 = ["onClick"];
9853
+ var _hoisted_26$4 = {
9300
9854
  key: 2,
9301
9855
  class: "mint-sample-selector__empty"
9302
9856
  };
9303
- var _hoisted_28$2 = {
9857
+ var _hoisted_27$3 = {
9304
9858
  key: 0,
9305
9859
  class: "mint-sample-selector__ungrouped"
9306
9860
  };
9307
- var _hoisted_29$1 = { class: "mint-sample-selector__ungrouped-count" };
9308
- var _hoisted_30$1 = {
9861
+ var _hoisted_28$2 = { class: "mint-sample-selector__ungrouped-count" };
9862
+ var _hoisted_29$1 = {
9309
9863
  key: 0,
9310
9864
  class: "mint-sample-selector__ungrouped-list"
9311
9865
  };
9312
- var _hoisted_31$1 = { class: "mint-sample-selector__new-group" };
9313
- var _hoisted_32$1 = ["value"];
9314
- var _hoisted_33$1 = {
9866
+ var _hoisted_30$1 = { class: "mint-sample-selector__new-group" };
9867
+ var _hoisted_31$1 = ["value"];
9868
+ var _hoisted_32$1 = {
9315
9869
  key: 2,
9316
9870
  class: "mint-sample-selector__flat"
9317
9871
  };
9318
- var _hoisted_34$1 = { class: "mint-sample-selector__search" };
9319
- var _hoisted_35$1 = { class: "mint-sample-selector__flat-list" };
9320
- var _hoisted_36$1 = ["title", "aria-label"];
9321
- var _hoisted_37$1 = ["checked", "onChange"];
9322
- var _hoisted_38$1 = { class: "mint-sample-selector__flat-name" };
9323
- var _hoisted_39$1 = {
9872
+ var _hoisted_33$1 = { class: "mint-sample-selector__search" };
9873
+ var _hoisted_34$1 = { class: "mint-sample-selector__flat-list" };
9874
+ var _hoisted_35$1 = ["title", "aria-label"];
9875
+ var _hoisted_36$1 = ["checked", "onChange"];
9876
+ var _hoisted_37$1 = { class: "mint-sample-selector__flat-name" };
9877
+ var _hoisted_38$1 = {
9324
9878
  key: 0,
9325
9879
  class: "mint-sample-selector__empty"
9326
9880
  };
@@ -9357,6 +9911,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9357
9911
  const props = __props;
9358
9912
  const emit = __emit;
9359
9913
  const showSmartGroupModal = ref(false);
9914
+ const groupingModalMode = ref("auto");
9360
9915
  const newGroupName = ref("");
9361
9916
  const editingColor = ref(null);
9362
9917
  const colorPickerInput = ref(null);
@@ -9417,6 +9972,10 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9417
9972
  emit("smartGroup", result);
9418
9973
  emit("update:groups", result.groups);
9419
9974
  }
9975
+ function openGroupingModal(mode) {
9976
+ groupingModalMode.value = mode;
9977
+ showSmartGroupModal.value = true;
9978
+ }
9420
9979
  function clearGroups() {
9421
9980
  internalGroups.value = [];
9422
9981
  }
@@ -9474,57 +10033,80 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9474
10033
  onChange: _cache[0] || (_cache[0] = (...args) => unref(toggleSelectAll) && unref(toggleSelectAll)(...args)),
9475
10034
  class: "mint-sample-selector__checkbox"
9476
10035
  }, null, 40, _hoisted_3$25),
9477
- _cache[17] || (_cache[17] = createElementVNode("span", { class: "mint-sample-selector__select-all-label" }, "Select All", -1)),
10036
+ _cache[18] || (_cache[18] = createElementVNode("span", { class: "mint-sample-selector__select-all-label" }, "Select All", -1)),
9478
10037
  createElementVNode("span", _hoisted_4$25, toDisplayString(resolvedSamples.value.length) + " samples", 1)
9479
10038
  ]),
9480
- __props.enableGrouping ? (openBlock(), createElementBlock("div", _hoisted_5$23, [createElementVNode("div", _hoisted_6$23, [__props.enableSmartGroup ? (openBlock(), createBlock(BaseButton_default, {
9481
- key: 0,
9482
- variant: groupingEnabled.value ? "primary" : "secondary",
9483
- size: "sm",
9484
- disabled: resolvedSamples.value.length === 0,
9485
- class: "mint-sample-selector__action-btn",
9486
- onClick: _cache[1] || (_cache[1] = ($event) => showSmartGroupModal.value = true)
9487
- }, {
9488
- default: withCtx(() => [..._cache[18] || (_cache[18] = [createElementVNode("svg", {
9489
- class: "mint-sample-selector__action-icon",
9490
- fill: "none",
9491
- stroke: "currentColor",
9492
- viewBox: "0 0 24 24"
9493
- }, [createElementVNode("path", {
9494
- "stroke-linecap": "round",
9495
- "stroke-linejoin": "round",
9496
- "stroke-width": "2",
9497
- d: "M13 10V3L4 14h7v7l9-11h-7z"
9498
- })], -1), createElementVNode("span", null, "Smart Group", -1)])]),
9499
- _: 1
9500
- }, 8, ["variant", "disabled"])) : createCommentVNode("", true), createVNode(BaseButton_default, {
9501
- variant: "ghost",
9502
- size: "sm",
9503
- disabled: internalGroups.value.length === 0,
9504
- class: "mint-sample-selector__action-btn mint-sample-selector__action-btn--reset",
9505
- onClick: clearGroups,
9506
- title: "Clear all groups"
9507
- }, {
9508
- default: withCtx(() => [..._cache[19] || (_cache[19] = [createElementVNode("svg", {
9509
- class: "mint-sample-selector__action-icon",
9510
- fill: "none",
9511
- stroke: "currentColor",
9512
- viewBox: "0 0 24 24"
9513
- }, [createElementVNode("path", {
9514
- "stroke-linecap": "round",
9515
- "stroke-linejoin": "round",
9516
- "stroke-width": "2",
9517
- d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
9518
- })], -1)])]),
9519
- _: 1
9520
- }, 8, ["disabled"])])])) : createCommentVNode("", true),
9521
- groupingEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_7$21, [
9522
- createElementVNode("div", _hoisted_8$18, [createElementVNode("span", _hoisted_9$16, "Groups (" + toDisplayString(internalGroups.value.length) + ")", 1), createElementVNode("div", { class: "mint-sample-selector__groups-controls" }, [createElementVNode("button", {
10039
+ __props.enableGrouping ? (openBlock(), createElementBlock("div", _hoisted_5$23, [createElementVNode("div", { class: normalizeClass(["mint-sample-selector__actions-row", !__props.enableSmartGroup ? "mint-sample-selector__actions-row--single-primary" : ""]) }, [
10040
+ __props.enableSmartGroup ? (openBlock(), createBlock(BaseButton_default, {
10041
+ key: 0,
10042
+ variant: groupingEnabled.value ? "primary" : "secondary",
10043
+ size: "sm",
10044
+ disabled: resolvedSamples.value.length === 0,
10045
+ class: "mint-sample-selector__action-btn",
10046
+ onClick: _cache[1] || (_cache[1] = ($event) => openGroupingModal("auto"))
10047
+ }, {
10048
+ default: withCtx(() => [..._cache[19] || (_cache[19] = [createElementVNode("svg", {
10049
+ class: "mint-sample-selector__action-icon",
10050
+ fill: "none",
10051
+ stroke: "currentColor",
10052
+ viewBox: "0 0 24 24"
10053
+ }, [createElementVNode("path", {
10054
+ "stroke-linecap": "round",
10055
+ "stroke-linejoin": "round",
10056
+ "stroke-width": "2",
10057
+ d: "M13 10V3L4 14h7v7l9-11h-7z"
10058
+ })], -1), createElementVNode("span", { class: "mint-sample-selector__action-label" }, "Smart", -1)])]),
10059
+ _: 1
10060
+ }, 8, ["variant", "disabled"])) : createCommentVNode("", true),
10061
+ createVNode(BaseButton_default, {
10062
+ variant: "secondary",
10063
+ size: "sm",
10064
+ disabled: resolvedSamples.value.length === 0,
10065
+ class: "mint-sample-selector__action-btn",
10066
+ onClick: _cache[2] || (_cache[2] = ($event) => openGroupingModal("manual"))
10067
+ }, {
10068
+ default: withCtx(() => [..._cache[20] || (_cache[20] = [createElementVNode("svg", {
10069
+ class: "mint-sample-selector__action-icon",
10070
+ fill: "none",
10071
+ stroke: "currentColor",
10072
+ viewBox: "0 0 24 24"
10073
+ }, [createElementVNode("path", {
10074
+ "stroke-linecap": "round",
10075
+ "stroke-linejoin": "round",
10076
+ "stroke-width": "2",
10077
+ d: "M12 3 3 7.5l9 4.5 9-4.5L12 3ZM3 12l9 4.5 9-4.5M3 16.5l9 4.5 9-4.5"
10078
+ })], -1), createElementVNode("span", { class: "mint-sample-selector__action-label" }, "Manual", -1)])]),
10079
+ _: 1
10080
+ }, 8, ["disabled"]),
10081
+ createVNode(BaseButton_default, {
10082
+ variant: "ghost",
10083
+ size: "sm",
10084
+ disabled: internalGroups.value.length === 0,
10085
+ class: "mint-sample-selector__action-btn mint-sample-selector__action-btn--reset",
10086
+ onClick: clearGroups,
10087
+ title: "Clear all groups"
10088
+ }, {
10089
+ default: withCtx(() => [..._cache[21] || (_cache[21] = [createElementVNode("svg", {
10090
+ class: "mint-sample-selector__action-icon",
10091
+ fill: "none",
10092
+ stroke: "currentColor",
10093
+ viewBox: "0 0 24 24"
10094
+ }, [createElementVNode("path", {
10095
+ "stroke-linecap": "round",
10096
+ "stroke-linejoin": "round",
10097
+ "stroke-width": "2",
10098
+ d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
10099
+ })], -1)])]),
10100
+ _: 1
10101
+ }, 8, ["disabled"])
10102
+ ], 2)])) : createCommentVNode("", true),
10103
+ groupingEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_6$23, [
10104
+ createElementVNode("div", _hoisted_7$21, [createElementVNode("span", _hoisted_8$18, "Groups (" + toDisplayString(internalGroups.value.length) + ")", 1), createElementVNode("div", { class: "mint-sample-selector__groups-controls" }, [createElementVNode("button", {
9523
10105
  type: "button",
9524
10106
  class: "mint-sample-selector__expand-btn",
9525
10107
  onClick: expandAllGroups,
9526
10108
  title: "Expand all"
9527
- }, [..._cache[20] || (_cache[20] = [createElementVNode("svg", {
10109
+ }, [..._cache[22] || (_cache[22] = [createElementVNode("svg", {
9528
10110
  class: "mint-sample-selector__expand-icon",
9529
10111
  fill: "none",
9530
10112
  stroke: "currentColor",
@@ -9539,7 +10121,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9539
10121
  class: "mint-sample-selector__expand-btn",
9540
10122
  onClick: collapseAllGroups,
9541
10123
  title: "Collapse all"
9542
- }, [..._cache[21] || (_cache[21] = [createElementVNode("svg", {
10124
+ }, [..._cache[23] || (_cache[23] = [createElementVNode("svg", {
9543
10125
  class: "mint-sample-selector__expand-icon",
9544
10126
  fill: "none",
9545
10127
  stroke: "currentColor",
@@ -9550,7 +10132,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9550
10132
  "stroke-width": "2",
9551
10133
  d: "M9 5l7 7-7 7"
9552
10134
  })], -1)])])])]),
9553
- createElementVNode("div", _hoisted_10$15, [unref(showHierarchy) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(hierarchicalGroups), (majorGroup) => {
10135
+ createElementVNode("div", _hoisted_9$16, [unref(showHierarchy) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(hierarchicalGroups), (majorGroup) => {
9554
10136
  return openBlock(), createElementBlock("div", {
9555
10137
  key: majorGroup.name,
9556
10138
  class: "mint-sample-selector__major-group"
@@ -9564,9 +10146,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9564
10146
  draggable: "true",
9565
10147
  onClick: ($event) => toggleGroupExpanded(`major:${majorGroup.name}`),
9566
10148
  onDragstart: ($event) => unref(handleGroupDragStart)(majorGroup.name, "major", $event),
9567
- onDragend: _cache[3] || (_cache[3] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
10149
+ onDragend: _cache[4] || (_cache[4] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
9568
10150
  onDragover: ($event) => unref(handleGroupDragOver)(majorGroup.name, "major", $event),
9569
- onDragleave: _cache[4] || (_cache[4] = ($event) => unref(handleGroupDragLeave)($event)),
10151
+ onDragleave: _cache[5] || (_cache[5] = ($event) => unref(handleGroupDragLeave)($event)),
9570
10152
  onDrop: ($event) => unref(handleGroupDrop)(majorGroup.name, "major", $event)
9571
10153
  }, [
9572
10154
  (openBlock(), createElementBlock("svg", {
@@ -9574,7 +10156,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9574
10156
  fill: "none",
9575
10157
  stroke: "currentColor",
9576
10158
  viewBox: "0 0 24 24"
9577
- }, [..._cache[22] || (_cache[22] = [createElementVNode("path", {
10159
+ }, [..._cache[24] || (_cache[24] = [createElementVNode("path", {
9578
10160
  "stroke-linecap": "round",
9579
10161
  "stroke-linejoin": "round",
9580
10162
  "stroke-width": "2",
@@ -9586,17 +10168,17 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9586
10168
  indeterminate: unref(isMajorGroupPartiallySelected)(majorGroup),
9587
10169
  class: "mint-sample-selector__checkbox",
9588
10170
  style: normalizeStyle({ accentColor: majorGroup.color }),
9589
- onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
10171
+ onClick: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"])),
9590
10172
  onChange: ($event) => unref(toggleMajorGroupSamples)(majorGroup)
9591
- }, null, 44, _hoisted_12$12),
10173
+ }, null, 44, _hoisted_11$13),
9592
10174
  createElementVNode("button", {
9593
10175
  type: "button",
9594
10176
  class: "mint-sample-selector__color-dot mint-sample-selector__color-dot--large mint-sample-selector__color-dot--clickable",
9595
10177
  style: normalizeStyle({ backgroundColor: majorGroup.color }),
9596
10178
  onClick: withModifiers(($event) => openMajorGroupColorPicker(majorGroup, $event), ["stop"]),
9597
10179
  title: "Click to change color family"
9598
- }, null, 12, _hoisted_13$12),
9599
- createElementVNode("span", _hoisted_14$10, toDisplayString(majorGroup.name), 1),
10180
+ }, null, 12, _hoisted_12$12),
10181
+ createElementVNode("span", _hoisted_13$12, toDisplayString(majorGroup.name), 1),
9600
10182
  createElementVNode("span", {
9601
10183
  class: "mint-sample-selector__count-badge",
9602
10184
  style: normalizeStyle({
@@ -9609,7 +10191,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9609
10191
  class: "mint-sample-selector__delete-btn mint-sample-selector__delete-btn--hidden",
9610
10192
  onClick: withModifiers(($event) => deleteMajorGroup(majorGroup), ["stop"]),
9611
10193
  title: "Remove major group"
9612
- }, [..._cache[23] || (_cache[23] = [createElementVNode("svg", {
10194
+ }, [..._cache[25] || (_cache[25] = [createElementVNode("svg", {
9613
10195
  fill: "none",
9614
10196
  stroke: "currentColor",
9615
10197
  viewBox: "0 0 24 24"
@@ -9618,8 +10200,8 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9618
10200
  "stroke-linejoin": "round",
9619
10201
  "stroke-width": "2",
9620
10202
  d: "M6 18L18 6M6 6l12 12"
9621
- })], -1)])], 8, _hoisted_15$9)
9622
- ], 42, _hoisted_11$13), createVNode(Transition, { name: "mint-collapse" }, {
10203
+ })], -1)])], 8, _hoisted_14$10)
10204
+ ], 42, _hoisted_10$15), createVNode(Transition, { name: "mint-collapse" }, {
9623
10205
  default: withCtx(() => [isGroupExpanded(`major:${majorGroup.name}`) ? (openBlock(), createElementBlock("div", {
9624
10206
  key: 0,
9625
10207
  class: "mint-sample-selector__sub-groups",
@@ -9629,7 +10211,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9629
10211
  key: subGroup.name,
9630
10212
  class: normalizeClass(["mint-sample-selector__sub-group", unref(dragOverGroup) === subGroup.name ? "mint-sample-selector__sub-group--drag-over" : ""]),
9631
10213
  onDragover: ($event) => unref(handleDragOver)(subGroup.name, $event),
9632
- onDragleave: _cache[8] || (_cache[8] = (...args) => unref(handleDragLeave) && unref(handleDragLeave)(...args)),
10214
+ onDragleave: _cache[9] || (_cache[9] = (...args) => unref(handleDragLeave) && unref(handleDragLeave)(...args)),
9633
10215
  onDrop: ($event) => unref(handleDrop)(subGroup.name, $event)
9634
10216
  }, [createElementVNode("div", {
9635
10217
  class: normalizeClass([
@@ -9641,9 +10223,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9641
10223
  draggable: "true",
9642
10224
  onClick: ($event) => toggleGroupExpanded(subGroup.name),
9643
10225
  onDragstart: ($event) => unref(handleGroupDragStart)(subGroup.name, "sub", $event),
9644
- onDragend: _cache[6] || (_cache[6] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
10226
+ onDragend: _cache[7] || (_cache[7] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
9645
10227
  onDragover: ($event) => unref(handleGroupDragOver)(subGroup.name, "sub", $event),
9646
- onDragleave: _cache[7] || (_cache[7] = ($event) => unref(handleGroupDragLeave)($event)),
10228
+ onDragleave: _cache[8] || (_cache[8] = ($event) => unref(handleGroupDragLeave)($event)),
9647
10229
  onDrop: ($event) => unref(handleGroupDrop)(subGroup.name, "sub", $event)
9648
10230
  }, [
9649
10231
  (openBlock(), createElementBlock("svg", {
@@ -9651,7 +10233,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9651
10233
  fill: "none",
9652
10234
  stroke: "currentColor",
9653
10235
  viewBox: "0 0 24 24"
9654
- }, [..._cache[24] || (_cache[24] = [createElementVNode("path", {
10236
+ }, [..._cache[26] || (_cache[26] = [createElementVNode("path", {
9655
10237
  "stroke-linecap": "round",
9656
10238
  "stroke-linejoin": "round",
9657
10239
  "stroke-width": "2",
@@ -9663,15 +10245,15 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9663
10245
  indeterminate: unref(isGroupPartiallySelected)(subGroup.name),
9664
10246
  class: "mint-sample-selector__checkbox mint-sample-selector__checkbox--small",
9665
10247
  style: normalizeStyle({ accentColor: subGroup.displayColor }),
9666
- onClick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"])),
10248
+ onClick: _cache[6] || (_cache[6] = withModifiers(() => {}, ["stop"])),
9667
10249
  onChange: ($event) => unref(toggleGroupSamples)(subGroup.name)
9668
- }, null, 44, _hoisted_18$8),
10250
+ }, null, 44, _hoisted_17$8),
9669
10251
  createElementVNode("div", {
9670
10252
  class: "mint-sample-selector__color-dot",
9671
10253
  style: normalizeStyle({ backgroundColor: subGroup.displayColor }),
9672
10254
  "aria-hidden": "true"
9673
10255
  }, null, 4),
9674
- createElementVNode("span", _hoisted_19$8, toDisplayString(subGroup.name), 1),
10256
+ createElementVNode("span", _hoisted_18$8, toDisplayString(subGroup.name), 1),
9675
10257
  createElementVNode("span", {
9676
10258
  class: "mint-sample-selector__count-badge mint-sample-selector__count-badge--small",
9677
10259
  style: normalizeStyle({
@@ -9684,7 +10266,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9684
10266
  class: "mint-sample-selector__delete-btn mint-sample-selector__delete-btn--hidden",
9685
10267
  onClick: withModifiers(($event) => deleteGroup(subGroup.name), ["stop"]),
9686
10268
  title: "Remove sub group"
9687
- }, [..._cache[25] || (_cache[25] = [createElementVNode("svg", {
10269
+ }, [..._cache[27] || (_cache[27] = [createElementVNode("svg", {
9688
10270
  fill: "none",
9689
10271
  stroke: "currentColor",
9690
10272
  viewBox: "0 0 24 24"
@@ -9693,8 +10275,8 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9693
10275
  "stroke-linejoin": "round",
9694
10276
  "stroke-width": "2",
9695
10277
  d: "M6 18L18 6M6 6l12 12"
9696
- })], -1)])], 8, _hoisted_20$7)
9697
- ], 42, _hoisted_17$8), createVNode(Transition, { name: "mint-collapse" }, {
10278
+ })], -1)])], 8, _hoisted_19$8)
10279
+ ], 42, _hoisted_16$8), createVNode(Transition, { name: "mint-collapse" }, {
9698
10280
  default: withCtx(() => [isGroupExpanded(subGroup.name) ? (openBlock(), createElementBlock("div", {
9699
10281
  key: 0,
9700
10282
  class: "mint-sample-selector__samples",
@@ -9724,7 +10306,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9724
10306
  ]);
9725
10307
  }), 128))], 4)) : createCommentVNode("", true)]),
9726
10308
  _: 2
9727
- }, 1024)], 42, _hoisted_16$8);
10309
+ }, 1024)], 42, _hoisted_15$9);
9728
10310
  }), 128))], 4)) : createCommentVNode("", true)]),
9729
10311
  _: 2
9730
10312
  }, 1024)]);
@@ -9733,7 +10315,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9733
10315
  key: group.name,
9734
10316
  class: normalizeClass(["mint-sample-selector__sub-group", unref(dragOverGroup) === group.name ? "mint-sample-selector__sub-group--drag-over" : ""]),
9735
10317
  onDragover: ($event) => unref(handleDragOver)(group.name, $event),
9736
- onDragleave: _cache[12] || (_cache[12] = (...args) => unref(handleDragLeave) && unref(handleDragLeave)(...args)),
10318
+ onDragleave: _cache[13] || (_cache[13] = (...args) => unref(handleDragLeave) && unref(handleDragLeave)(...args)),
9737
10319
  onDrop: ($event) => unref(handleDrop)(group.name, $event)
9738
10320
  }, [createElementVNode("div", {
9739
10321
  class: normalizeClass([
@@ -9745,9 +10327,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9745
10327
  draggable: "true",
9746
10328
  onClick: ($event) => toggleGroupExpanded(group.name),
9747
10329
  onDragstart: ($event) => unref(handleGroupDragStart)(group.name, "flat", $event),
9748
- onDragend: _cache[10] || (_cache[10] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
10330
+ onDragend: _cache[11] || (_cache[11] = (...args) => unref(handleGroupDragEnd) && unref(handleGroupDragEnd)(...args)),
9749
10331
  onDragover: ($event) => unref(handleGroupDragOver)(group.name, "flat", $event),
9750
- onDragleave: _cache[11] || (_cache[11] = ($event) => unref(handleGroupDragLeave)($event)),
10332
+ onDragleave: _cache[12] || (_cache[12] = ($event) => unref(handleGroupDragLeave)($event)),
9751
10333
  onDrop: ($event) => unref(handleGroupDrop)(group.name, "flat", $event)
9752
10334
  }, [
9753
10335
  (openBlock(), createElementBlock("svg", {
@@ -9755,7 +10337,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9755
10337
  fill: "none",
9756
10338
  stroke: "currentColor",
9757
10339
  viewBox: "0 0 24 24"
9758
- }, [..._cache[26] || (_cache[26] = [createElementVNode("path", {
10340
+ }, [..._cache[28] || (_cache[28] = [createElementVNode("path", {
9759
10341
  "stroke-linecap": "round",
9760
10342
  "stroke-linejoin": "round",
9761
10343
  "stroke-width": "2",
@@ -9767,17 +10349,17 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9767
10349
  indeterminate: unref(isGroupPartiallySelected)(group.name),
9768
10350
  class: "mint-sample-selector__checkbox",
9769
10351
  style: normalizeStyle({ accentColor: group.color }),
9770
- onClick: _cache[9] || (_cache[9] = withModifiers(() => {}, ["stop"])),
10352
+ onClick: _cache[10] || (_cache[10] = withModifiers(() => {}, ["stop"])),
9771
10353
  onChange: ($event) => unref(toggleGroupSamples)(group.name)
9772
- }, null, 44, _hoisted_23$4),
10354
+ }, null, 44, _hoisted_22$5),
9773
10355
  createElementVNode("button", {
9774
10356
  type: "button",
9775
10357
  class: "mint-sample-selector__color-dot mint-sample-selector__color-dot--large mint-sample-selector__color-dot--clickable",
9776
10358
  style: normalizeStyle({ backgroundColor: group.color }),
9777
10359
  onClick: withModifiers(($event) => openColorPicker(group.name, $event), ["stop"]),
9778
10360
  title: "Click to change color"
9779
- }, null, 12, _hoisted_24$4),
9780
- createElementVNode("span", _hoisted_25$4, toDisplayString(group.name), 1),
10361
+ }, null, 12, _hoisted_23$4),
10362
+ createElementVNode("span", _hoisted_24$4, toDisplayString(group.name), 1),
9781
10363
  createElementVNode("span", {
9782
10364
  class: "mint-sample-selector__count-badge",
9783
10365
  style: normalizeStyle({
@@ -9790,7 +10372,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9790
10372
  class: "mint-sample-selector__delete-btn mint-sample-selector__delete-btn--hidden",
9791
10373
  onClick: withModifiers(($event) => deleteGroup(group.name), ["stop"]),
9792
10374
  title: "Remove group"
9793
- }, [..._cache[27] || (_cache[27] = [createElementVNode("svg", {
10375
+ }, [..._cache[29] || (_cache[29] = [createElementVNode("svg", {
9794
10376
  fill: "none",
9795
10377
  stroke: "currentColor",
9796
10378
  viewBox: "0 0 24 24"
@@ -9799,8 +10381,8 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9799
10381
  "stroke-linejoin": "round",
9800
10382
  "stroke-width": "2",
9801
10383
  d: "M6 18L18 6M6 6l12 12"
9802
- })], -1)])], 8, _hoisted_26$4)
9803
- ], 42, _hoisted_22$5), createVNode(Transition, { name: "mint-collapse" }, {
10384
+ })], -1)])], 8, _hoisted_25$4)
10385
+ ], 42, _hoisted_21$6), createVNode(Transition, { name: "mint-collapse" }, {
9804
10386
  default: withCtx(() => [isGroupExpanded(group.name) ? (openBlock(), createElementBlock("div", {
9805
10387
  key: 0,
9806
10388
  class: "mint-sample-selector__samples",
@@ -9830,27 +10412,27 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9830
10412
  ]);
9831
10413
  }), 128))], 4)) : createCommentVNode("", true)]),
9832
10414
  _: 2
9833
- }, 1024)], 42, _hoisted_21$6);
9834
- }), 128)), internalGroups.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_27$3, " Click Smart Group to auto-group samples ")) : createCommentVNode("", true)]),
9835
- unref(ungroupedSamples).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_28$2, [createElementVNode("div", {
10415
+ }, 1024)], 42, _hoisted_20$7);
10416
+ }), 128)), internalGroups.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_26$4, " Click Smart to auto-group samples ")) : createCommentVNode("", true)]),
10417
+ unref(ungroupedSamples).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_27$3, [createElementVNode("div", {
9836
10418
  class: "mint-sample-selector__ungrouped-header",
9837
- onClick: _cache[13] || (_cache[13] = ($event) => toggleGroupExpanded("__ungrouped__"))
10419
+ onClick: _cache[14] || (_cache[14] = ($event) => toggleGroupExpanded("__ungrouped__"))
9838
10420
  }, [
9839
10421
  (openBlock(), createElementBlock("svg", {
9840
10422
  class: normalizeClass(["mint-sample-selector__chevron", isGroupExpanded("__ungrouped__") ? "mint-sample-selector__chevron--open" : ""]),
9841
10423
  fill: "none",
9842
10424
  stroke: "currentColor",
9843
10425
  viewBox: "0 0 24 24"
9844
- }, [..._cache[28] || (_cache[28] = [createElementVNode("path", {
10426
+ }, [..._cache[30] || (_cache[30] = [createElementVNode("path", {
9845
10427
  "stroke-linecap": "round",
9846
10428
  "stroke-linejoin": "round",
9847
10429
  "stroke-width": "2",
9848
10430
  d: "M9 5l7 7-7 7"
9849
10431
  }, null, -1)])], 2)),
9850
- _cache[29] || (_cache[29] = createElementVNode("span", { class: "mint-sample-selector__ungrouped-label" }, "Ungrouped", -1)),
9851
- createElementVNode("span", _hoisted_29$1, toDisplayString(unref(ungroupedSamples).length), 1)
10432
+ _cache[31] || (_cache[31] = createElementVNode("span", { class: "mint-sample-selector__ungrouped-label" }, "Ungrouped", -1)),
10433
+ createElementVNode("span", _hoisted_28$2, toDisplayString(unref(ungroupedSamples).length), 1)
9852
10434
  ]), createVNode(Transition, { name: "mint-collapse" }, {
9853
- default: withCtx(() => [isGroupExpanded("__ungrouped__") ? (openBlock(), createElementBlock("div", _hoisted_30$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(ungroupedSamples), (sample) => {
10435
+ default: withCtx(() => [isGroupExpanded("__ungrouped__") ? (openBlock(), createElementBlock("div", _hoisted_29$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(ungroupedSamples), (sample) => {
9854
10436
  return openBlock(), createBlock(SampleSelectorSampleRow_default, {
9855
10437
  key: sample,
9856
10438
  sample,
@@ -9871,9 +10453,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9871
10453
  }), 128))])) : createCommentVNode("", true)]),
9872
10454
  _: 1
9873
10455
  })])) : createCommentVNode("", true),
9874
- createElementVNode("div", _hoisted_31$1, [createVNode(BaseInput_default, {
10456
+ createElementVNode("div", _hoisted_30$1, [createVNode(BaseInput_default, {
9875
10457
  modelValue: newGroupName.value,
9876
- "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => newGroupName.value = $event),
10458
+ "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => newGroupName.value = $event),
9877
10459
  placeholder: "New group name...",
9878
10460
  class: "mint-sample-selector__new-group-input",
9879
10461
  onKeyup: withKeys(addNewGroup, ["enter"])
@@ -9884,7 +10466,7 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9884
10466
  class: "mint-sample-selector__new-group-btn",
9885
10467
  onClick: addNewGroup
9886
10468
  }, {
9887
- default: withCtx(() => [..._cache[30] || (_cache[30] = [createTextVNode(" Add ", -1)])]),
10469
+ default: withCtx(() => [..._cache[32] || (_cache[32] = [createTextVNode(" Add ", -1)])]),
9888
10470
  _: 1
9889
10471
  }, 8, ["disabled"])]),
9890
10472
  createElementVNode("input", {
@@ -9894,9 +10476,9 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9894
10476
  class: "mint-sample-selector__color-input",
9895
10477
  value: colorPickerSeed.value,
9896
10478
  onChange: handleColorChange
9897
- }, null, 40, _hoisted_32$1)
10479
+ }, null, 40, _hoisted_31$1)
9898
10480
  ])) : createCommentVNode("", true),
9899
- !groupingEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_33$1, [createElementVNode("div", _hoisted_34$1, [_cache[31] || (_cache[31] = createElementVNode("svg", {
10481
+ !groupingEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_32$1, [createElementVNode("div", _hoisted_33$1, [_cache[33] || (_cache[33] = createElementVNode("svg", {
9900
10482
  class: "mint-sample-selector__search-icon",
9901
10483
  fill: "none",
9902
10484
  stroke: "currentColor",
@@ -9907,11 +10489,11 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9907
10489
  "stroke-width": "2",
9908
10490
  d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
9909
10491
  })], -1)), withDirectives(createElementVNode("input", {
9910
- "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => searchQuery.value = $event),
10492
+ "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => searchQuery.value = $event),
9911
10493
  type: "text",
9912
10494
  placeholder: "Search samples...",
9913
10495
  class: "mint-sample-selector__search-input"
9914
- }, null, 512), [[vModelText, searchQuery.value]])]), createElementVNode("div", _hoisted_35$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(filteredSamples), (sample) => {
10496
+ }, null, 512), [[vModelText, searchQuery.value]])]), createElementVNode("div", _hoisted_34$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(filteredSamples), (sample) => {
9915
10497
  return openBlock(), createElementBlock("div", {
9916
10498
  key: sample,
9917
10499
  class: "mint-sample-selector__flat-item",
@@ -9922,18 +10504,22 @@ var SampleSelector_default = /* @__PURE__ */ defineComponent({
9922
10504
  checked: __props.modelValue.includes(sample),
9923
10505
  class: "mint-sample-selector__checkbox",
9924
10506
  onChange: ($event) => unref(toggleSample)(sample)
9925
- }, null, 40, _hoisted_37$1), createElementVNode("span", _hoisted_38$1, toDisplayString(sample), 1)], 8, _hoisted_36$1);
9926
- }), 128)), unref(filteredSamples).length === 0 && searchQuery.value.trim() ? (openBlock(), createElementBlock("div", _hoisted_39$1, " No samples match \"" + toDisplayString(searchQuery.value) + "\" ", 1)) : createCommentVNode("", true)])])) : createCommentVNode("", true),
10507
+ }, null, 40, _hoisted_36$1), createElementVNode("span", _hoisted_37$1, toDisplayString(sample), 1)], 8, _hoisted_35$1);
10508
+ }), 128)), unref(filteredSamples).length === 0 && searchQuery.value.trim() ? (openBlock(), createElementBlock("div", _hoisted_38$1, " No samples match \"" + toDisplayString(searchQuery.value) + "\" ", 1)) : createCommentVNode("", true)])])) : createCommentVNode("", true),
9927
10509
  createVNode(AutoGroupModal_default, {
9928
10510
  modelValue: showSmartGroupModal.value,
9929
- "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => showSmartGroupModal.value = $event),
10511
+ "onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => showSmartGroupModal.value = $event),
9930
10512
  samples: resolvedSamples.value,
10513
+ groups: internalGroups.value,
10514
+ "initial-mode": groupingModalMode.value,
9931
10515
  "experiment-id": resolvedExperimentId.value,
9932
10516
  "design-data": resolvedDesignData.value,
9933
10517
  onApply: handleSmartGroupApply
9934
10518
  }, null, 8, [
9935
10519
  "modelValue",
9936
10520
  "samples",
10521
+ "groups",
10522
+ "initial-mode",
9937
10523
  "experiment-id",
9938
10524
  "design-data"
9939
10525
  ])
@@ -15982,6 +16568,7 @@ var components_exports = /* @__PURE__ */ __exportAll({
15982
16568
  InstrumentStatusCard: () => InstrumentStatusCard_default,
15983
16569
  LcmsSequenceTable: () => LcmsSequenceTable_default,
15984
16570
  LoadingSpinner: () => LoadingSpinner_default,
16571
+ MobileSupportGate: () => MobileSupportGate_default,
15985
16572
  MoleculeInput: () => MoleculeInput_default,
15986
16573
  MultiSelect: () => MultiSelect_default,
15987
16574
  NumberInput: () => NumberInput_default,
@@ -16015,6 +16602,6 @@ var components_exports = /* @__PURE__ */ __exportAll({
16015
16602
  WellPlate: () => WellPlate_default
16016
16603
  });
16017
16604
  //#endregion
16018
- export { SampleLegend_default as $, ReagentEditor_default as A, ProgressBar_default as B, formatSequenceRemaining as C, ColorSlider_default as Ct, ScientificNumber_default as D, ChemicalFormula_default as E, BioTemplateExperimentWorkspaceView_default as F, ControlWorkspaceView_default as G, Divider_default as H, BioTemplateRenderer_default as I, SampleSelector_default as J, ComponentBindingRenderer_default as K, ChartContainer_default as L, RackEditor_default as M, BioTemplatePresetWorkspaceView_default as N, ProtocolStepEditor_default as O, BioTemplatePackWorkspaceView_default as P, PlateMapEditor_default as Q, Breadcrumb_default as R, formatSequenceEta as S, BaseTabs_default as St, sequenceSamplesRemaining as T, AppContainer_default as U, StatusIndicator_default as V, DoseDesignWorkspaceView_default as W, LoadingSpinner_default as X, AutoGroupModal_default as Y, ReagentList_default as Z, InstrumentStateBadge_default as _, AlertBox_default as _t, ExperimentDataViewer_default as a, AppSidebar_default as at, estimateSequenceFinishDate as b, DropdownButton_default as bt, LcmsSequenceTable_default as c, StepWizard_default as ct, extractLcmsCommonPrefix as d, AppAvatarMenu_default as dt, WellPlate_default as et, extractLcmsSampleName as f, PluginIcon_default as ft, InstrumentStatusCard_default as g, AppToastContainer_default as gt, reconstructLcmsPlateCellsFromSequenceItems as h, IconButton_default as ht, TimeRangeInput_default as i, AppLayout_default as it, GroupAssigner_default as j, SampleHierarchyTree_default as k, DEFAULT_LCMS_SEQUENCE_COLUMNS as l, AppTopBar_default as lt, lcmsWellIdFromPosition as m, ThemeToggle_default as mt, FitPanel_default as n, DoseCalculator_default as nt, BatchProgressList_default as o, FormBuilder_default as ot, inferLcmsPlateTypeFromWellIds as p, CollapsibleCard_default as pt, ScheduleCalendar_default as q, ResourceCard_default as r, PluginWorkspaceView_default as rt, AuditTrail_default as s, FormActions_default as st, components_exports as t, ExperimentTimeline_default as tt, basenameFromWindowsPath as u, AppPluginSwitcher_default as ut, InstrumentAlertLog_default as v, DataFrame_default as vt, sequenceProgressPercent as w, estimateSequenceRemainingSeconds as x, SegmentedControl_default as xt, SequenceProgressBar_default as y, Calendar_default as yt, Avatar_default as z };
16605
+ export { SampleLegend_default as $, ReagentEditor_default as A, ProgressBar_default as B, formatSequenceRemaining as C, BaseTabs_default as Ct, ScientificNumber_default as D, ChemicalFormula_default as E, BioTemplateExperimentWorkspaceView_default as F, ControlWorkspaceView_default as G, Divider_default as H, BioTemplateRenderer_default as I, SampleSelector_default as J, ComponentBindingRenderer_default as K, ChartContainer_default as L, RackEditor_default as M, BioTemplatePresetWorkspaceView_default as N, ProtocolStepEditor_default as O, BioTemplatePackWorkspaceView_default as P, PlateMapEditor_default as Q, Breadcrumb_default as R, formatSequenceEta as S, SegmentedControl_default as St, sequenceSamplesRemaining as T, AppContainer_default as U, StatusIndicator_default as V, DoseDesignWorkspaceView_default as W, LoadingSpinner_default as X, AutoGroupModal_default as Y, ReagentList_default as Z, InstrumentStateBadge_default as _, AppToastContainer_default as _t, ExperimentDataViewer_default as a, AppLayout_default as at, estimateSequenceFinishDate as b, Calendar_default as bt, LcmsSequenceTable_default as c, FormActions_default as ct, extractLcmsCommonPrefix as d, AppPluginSwitcher_default as dt, WellPlate_default as et, extractLcmsSampleName as f, AppAvatarMenu_default as ft, InstrumentStatusCard_default as g, IconButton_default as gt, reconstructLcmsPlateCellsFromSequenceItems as h, ThemeToggle_default as ht, TimeRangeInput_default as i, MobileSupportGate_default as it, GroupAssigner_default as j, SampleHierarchyTree_default as k, DEFAULT_LCMS_SEQUENCE_COLUMNS as l, StepWizard_default as lt, lcmsWellIdFromPosition as m, CollapsibleCard_default as mt, FitPanel_default as n, DoseCalculator_default as nt, BatchProgressList_default as o, AppSidebar_default as ot, inferLcmsPlateTypeFromWellIds as p, PluginIcon_default as pt, ScheduleCalendar_default as q, ResourceCard_default as r, PluginWorkspaceView_default as rt, AuditTrail_default as s, FormBuilder_default as st, components_exports as t, ExperimentTimeline_default as tt, basenameFromWindowsPath as u, AppTopBar_default as ut, InstrumentAlertLog_default as v, AlertBox_default as vt, sequenceProgressPercent as w, ColorSlider_default as wt, estimateSequenceRemainingSeconds as x, DropdownButton_default as xt, SequenceProgressBar_default as y, DataFrame_default as yt, Avatar_default as z };
16019
16606
 
16020
- //# sourceMappingURL=components-Cyk8QEyL.js.map
16607
+ //# sourceMappingURL=components-CzdeV1xe.js.map