@morscherlab/mint-sdk 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.js +1 -1
- package/dist/{components-D0CzE0XK.js → components-CzdeV1xe.js} +69 -70
- package/dist/{components-D0CzE0XK.js.map → components-CzdeV1xe.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/install.js +1 -1
- package/dist/styles.css +78 -30
- package/package.json +1 -1
- package/src/components/SampleSelector.story.vue +12 -2
- package/src/components/SampleSelector.vue +11 -6
- package/src/styles/components/auto-group-modal.css +20 -6
- package/src/styles/components/sample-selector.css +23 -9
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as SampleLegend_default, A as ReagentEditor_default, B as ProgressBar_default, C as formatSequenceRemaining, Ct as BaseTabs_default, D as ScientificNumber_default, E as ChemicalFormula_default, F as BioTemplateExperimentWorkspaceView_default, G as ControlWorkspaceView_default, H as Divider_default, I as BioTemplateRenderer_default, J as SampleSelector_default, K as ComponentBindingRenderer_default, L as ChartContainer_default, M as RackEditor_default, N as BioTemplatePresetWorkspaceView_default, O as ProtocolStepEditor_default, P as BioTemplatePackWorkspaceView_default, Q as PlateMapEditor_default, R as Breadcrumb_default, S as formatSequenceEta, St as SegmentedControl_default, T as sequenceSamplesRemaining, U as AppContainer_default, V as StatusIndicator_default, W as DoseDesignWorkspaceView_default, X as LoadingSpinner_default, Y as AutoGroupModal_default, Z as ReagentList_default, _ as InstrumentStateBadge_default, _t as AppToastContainer_default, a as ExperimentDataViewer_default, at as AppLayout_default, b as estimateSequenceFinishDate, bt as Calendar_default, c as LcmsSequenceTable_default, ct as FormActions_default, d as extractLcmsCommonPrefix, dt as AppPluginSwitcher_default, et as WellPlate_default, f as extractLcmsSampleName, ft as AppAvatarMenu_default, g as InstrumentStatusCard_default, gt as IconButton_default, h as reconstructLcmsPlateCellsFromSequenceItems, ht as ThemeToggle_default, i as TimeRangeInput_default, it as MobileSupportGate_default, j as GroupAssigner_default, k as SampleHierarchyTree_default, l as DEFAULT_LCMS_SEQUENCE_COLUMNS, lt as StepWizard_default, m as lcmsWellIdFromPosition, mt as CollapsibleCard_default, n as FitPanel_default, nt as DoseCalculator_default, o as BatchProgressList_default, ot as AppSidebar_default, p as inferLcmsPlateTypeFromWellIds, pt as PluginIcon_default, q as ScheduleCalendar_default, r as ResourceCard_default, rt as PluginWorkspaceView_default, s as AuditTrail_default, st as FormBuilder_default, tt as ExperimentTimeline_default, u as basenameFromWindowsPath, ut as AppTopBar_default, v as InstrumentAlertLog_default, vt as AlertBox_default, w as sequenceProgressPercent, wt as ColorSlider_default, x as estimateSequenceRemainingSeconds, xt as DropdownButton_default, y as SequenceProgressBar_default, yt as DataFrame_default, z as Avatar_default } from "./components-
|
|
1
|
+
import { $ as SampleLegend_default, A as ReagentEditor_default, B as ProgressBar_default, C as formatSequenceRemaining, Ct as BaseTabs_default, D as ScientificNumber_default, E as ChemicalFormula_default, F as BioTemplateExperimentWorkspaceView_default, G as ControlWorkspaceView_default, H as Divider_default, I as BioTemplateRenderer_default, J as SampleSelector_default, K as ComponentBindingRenderer_default, L as ChartContainer_default, M as RackEditor_default, N as BioTemplatePresetWorkspaceView_default, O as ProtocolStepEditor_default, P as BioTemplatePackWorkspaceView_default, Q as PlateMapEditor_default, R as Breadcrumb_default, S as formatSequenceEta, St as SegmentedControl_default, T as sequenceSamplesRemaining, U as AppContainer_default, V as StatusIndicator_default, W as DoseDesignWorkspaceView_default, X as LoadingSpinner_default, Y as AutoGroupModal_default, Z as ReagentList_default, _ as InstrumentStateBadge_default, _t as AppToastContainer_default, a as ExperimentDataViewer_default, at as AppLayout_default, b as estimateSequenceFinishDate, bt as Calendar_default, c as LcmsSequenceTable_default, ct as FormActions_default, d as extractLcmsCommonPrefix, dt as AppPluginSwitcher_default, et as WellPlate_default, f as extractLcmsSampleName, ft as AppAvatarMenu_default, g as InstrumentStatusCard_default, gt as IconButton_default, h as reconstructLcmsPlateCellsFromSequenceItems, ht as ThemeToggle_default, i as TimeRangeInput_default, it as MobileSupportGate_default, j as GroupAssigner_default, k as SampleHierarchyTree_default, l as DEFAULT_LCMS_SEQUENCE_COLUMNS, lt as StepWizard_default, m as lcmsWellIdFromPosition, mt as CollapsibleCard_default, n as FitPanel_default, nt as DoseCalculator_default, o as BatchProgressList_default, ot as AppSidebar_default, p as inferLcmsPlateTypeFromWellIds, pt as PluginIcon_default, q as ScheduleCalendar_default, r as ResourceCard_default, rt as PluginWorkspaceView_default, s as AuditTrail_default, st as FormBuilder_default, tt as ExperimentTimeline_default, u as basenameFromWindowsPath, ut as AppTopBar_default, v as InstrumentAlertLog_default, vt as AlertBox_default, w as sequenceProgressPercent, wt as ColorSlider_default, x as estimateSequenceRemainingSeconds, xt as DropdownButton_default, y as SequenceProgressBar_default, yt as DataFrame_default, z as Avatar_default } from "./components-CzdeV1xe.js";
|
|
2
2
|
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";
|
|
3
3
|
import { r as BaseInput_default, t as BaseSelect_default } from "./BaseSelect-ekgr9fDo.js";
|
|
4
4
|
import { $ as parseTime, A as useConcentrationUnits, B as TagsInput_default, C as controlsToViewIds, D as getTypeDefault, E as getFieldRegistryEntry, F as ATOMIC_WEIGHTS, G as findAvailableSlots, H as addMinutes, I as useChemicalFormula, J as formatTime, K as findNearestTimeSlotIndex, L as DateTimePicker_default, M as SequenceInput_default, N as useSequenceUtils, O as ConcentrationInput_default, P as FormulaInput_default, Q as isTimeInRange, R as FileUploader_default, S as controlsToTopBarSettingsConfig, T as getDefaultControlView, U as compareTime, V as TimePicker_default, W as durationMinutes, X as fromMinutes, Y as formatTimeSlot, Z as generateTimeSlots, _ as controlsToFormSchema, a as defineDoseCalculatorControlProps, at as MultiSelect_default, b as controlsToSettingsSchema, c as defineWellPlateDoseComponentBindings, ct as BaseSlider_default, d as defineControlModel, dt as BaseCheckbox_default, et as rangesOverlap, ft as Tooltip_default, h as controlValuesToComponentProps, i as useControlSchema, it as DatePicker_default, j as MoleculeInput_default, k as UnitInput_default, l as defineWellPlateDoseControlProps, lt as BaseRadioGroup_default, m as controlValuesToComponentBindingsById, n as defineControls, nt as toMinutes, o as defineDoseDesignControlModel, ot as useListSelection, p as controlValuesToComponentBindings, pt as BaseTextarea_default, q as formatDuration, r as getControlDefaults, rt as useTimeUtils, s as defineWellPlateControlProps, st as useSelectionLimit, t as defineControlComponentBindings, tt as snapToSlot, u as useControlWorkspace, ut as BaseToggle_default, v as controlsToSectionFormSchema, w as controlsToViewItems, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas, z as NumberInput_default } from "./useControlSchema-Dkm-W_lg.js";
|
package/dist/install.js
CHANGED
package/dist/styles.css
CHANGED
|
@@ -10925,6 +10925,14 @@ to {
|
|
|
10925
10925
|
min-height: 0;
|
|
10926
10926
|
min-width: 0;
|
|
10927
10927
|
}
|
|
10928
|
+
.mint-modal__body:has(> .mint-auto-group .mint-auto-group__manual-mode) {
|
|
10929
|
+
overflow: hidden;
|
|
10930
|
+
}
|
|
10931
|
+
.mint-auto-group:has(.mint-auto-group__manual-mode) {
|
|
10932
|
+
height: min(34rem, calc(100vh - 12rem));
|
|
10933
|
+
min-height: min(26rem, calc(100vh - 12rem));
|
|
10934
|
+
overflow: hidden;
|
|
10935
|
+
}
|
|
10928
10936
|
|
|
10929
10937
|
/* --- Workflow tabs --- */
|
|
10930
10938
|
.mint-auto-group__workflow-bar {
|
|
@@ -10971,11 +10979,13 @@ to {
|
|
|
10971
10979
|
color: var(--color-primary);
|
|
10972
10980
|
}
|
|
10973
10981
|
.mint-auto-group__manual-mode {
|
|
10982
|
+
flex: 1;
|
|
10974
10983
|
display: flex;
|
|
10975
10984
|
flex-direction: column;
|
|
10976
10985
|
gap: 0.625rem;
|
|
10977
10986
|
min-height: 0;
|
|
10978
10987
|
min-width: 0;
|
|
10988
|
+
overflow: hidden;
|
|
10979
10989
|
}
|
|
10980
10990
|
.mint-auto-group__manual-summary {
|
|
10981
10991
|
display: flex;
|
|
@@ -11036,12 +11046,15 @@ to {
|
|
|
11036
11046
|
display: grid;
|
|
11037
11047
|
grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
|
|
11038
11048
|
gap: 0.625rem;
|
|
11039
|
-
|
|
11049
|
+
flex: 1;
|
|
11050
|
+
min-height: 0;
|
|
11040
11051
|
min-width: 0;
|
|
11052
|
+
overflow: hidden;
|
|
11041
11053
|
}
|
|
11042
11054
|
.mint-auto-group__manual-panel {
|
|
11043
11055
|
min-width: 0;
|
|
11044
11056
|
min-height: 0;
|
|
11057
|
+
overflow: hidden;
|
|
11045
11058
|
display: flex;
|
|
11046
11059
|
flex-direction: column;
|
|
11047
11060
|
gap: 0.5rem;
|
|
@@ -11437,13 +11450,13 @@ to {
|
|
|
11437
11450
|
flex-shrink: 0;
|
|
11438
11451
|
}
|
|
11439
11452
|
.mint-auto-group__manual-cohorts {
|
|
11440
|
-
flex: 1;
|
|
11453
|
+
flex: 0 1 auto;
|
|
11441
11454
|
min-height: 0;
|
|
11442
|
-
overflow
|
|
11455
|
+
overflow: visible;
|
|
11443
11456
|
display: flex;
|
|
11444
11457
|
flex-direction: column;
|
|
11445
11458
|
gap: 0.25rem;
|
|
11446
|
-
padding-right: 0
|
|
11459
|
+
padding-right: 0;
|
|
11447
11460
|
}
|
|
11448
11461
|
.mint-auto-group__manual-cohorts-head {
|
|
11449
11462
|
position: sticky;
|
|
@@ -12149,8 +12162,7 @@ to {
|
|
|
12149
12162
|
.mint-auto-group__manual-grid {
|
|
12150
12163
|
min-height: 0;
|
|
12151
12164
|
}
|
|
12152
|
-
.mint-auto-group__manual-list
|
|
12153
|
-
.mint-auto-group__manual-cohorts {
|
|
12165
|
+
.mint-auto-group__manual-list {
|
|
12154
12166
|
max-height: 18rem;
|
|
12155
12167
|
}
|
|
12156
12168
|
.mint-auto-group__manual-sample {
|
|
@@ -12248,24 +12260,30 @@ to {
|
|
|
12248
12260
|
position: relative;
|
|
12249
12261
|
}
|
|
12250
12262
|
.mint-sample-selector__actions-row {
|
|
12251
|
-
display:
|
|
12263
|
+
display: grid;
|
|
12264
|
+
grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
|
|
12252
12265
|
align-items: center;
|
|
12253
|
-
gap: 0.
|
|
12254
|
-
|
|
12266
|
+
gap: 0.375rem;
|
|
12267
|
+
min-width: 0;
|
|
12268
|
+
}
|
|
12269
|
+
.mint-sample-selector__actions-row--single-primary {
|
|
12270
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
12255
12271
|
}
|
|
12256
12272
|
|
|
12257
12273
|
/* BaseButton overrides for action buttons */
|
|
12258
12274
|
.mint-sample-selector__action-btn {
|
|
12259
|
-
|
|
12260
|
-
|
|
12275
|
+
width: 100%;
|
|
12276
|
+
min-width: 0; /* Allow labels to ellipsize inside tight containers */
|
|
12261
12277
|
align-items: center;
|
|
12262
12278
|
justify-content: center;
|
|
12263
|
-
gap: 0.
|
|
12264
|
-
|
|
12279
|
+
gap: 0.375rem;
|
|
12280
|
+
padding-inline: 0.5rem;
|
|
12281
|
+
font-size: 0.8125rem;
|
|
12265
12282
|
}
|
|
12266
12283
|
.mint-sample-selector__action-btn--reset {
|
|
12267
|
-
|
|
12268
|
-
min-width:
|
|
12284
|
+
width: var(--form-height-sm);
|
|
12285
|
+
min-width: var(--form-height-sm);
|
|
12286
|
+
aspect-ratio: 1;
|
|
12269
12287
|
padding: 0.5rem;
|
|
12270
12288
|
}
|
|
12271
12289
|
.mint-sample-selector__action-icon {
|
|
@@ -12273,6 +12291,12 @@ to {
|
|
|
12273
12291
|
height: 1rem;
|
|
12274
12292
|
flex-shrink: 0;
|
|
12275
12293
|
}
|
|
12294
|
+
.mint-sample-selector__action-label {
|
|
12295
|
+
min-width: 0;
|
|
12296
|
+
overflow: hidden;
|
|
12297
|
+
text-overflow: ellipsis;
|
|
12298
|
+
white-space: nowrap;
|
|
12299
|
+
}
|
|
12276
12300
|
|
|
12277
12301
|
/* Level Popover */
|
|
12278
12302
|
.mint-sample-selector__popover {
|
|
@@ -24389,23 +24413,29 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
24389
24413
|
position: relative;
|
|
24390
24414
|
}
|
|
24391
24415
|
.mint-sample-selector__actions-row {
|
|
24392
|
-
display:
|
|
24416
|
+
display: grid;
|
|
24417
|
+
grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
|
|
24393
24418
|
align-items: center;
|
|
24394
|
-
gap: 0.
|
|
24395
|
-
|
|
24419
|
+
gap: 0.375rem;
|
|
24420
|
+
min-width: 0;
|
|
24421
|
+
}
|
|
24422
|
+
.mint-sample-selector__actions-row--single-primary {
|
|
24423
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
24396
24424
|
}
|
|
24397
24425
|
/* BaseButton overrides for action buttons */
|
|
24398
24426
|
.mint-sample-selector__action-btn {
|
|
24399
|
-
|
|
24400
|
-
|
|
24427
|
+
width: 100%;
|
|
24428
|
+
min-width: 0; /* Allow labels to ellipsize inside tight containers */
|
|
24401
24429
|
align-items: center;
|
|
24402
24430
|
justify-content: center;
|
|
24403
|
-
gap: 0.
|
|
24404
|
-
|
|
24431
|
+
gap: 0.375rem;
|
|
24432
|
+
padding-inline: 0.5rem;
|
|
24433
|
+
font-size: 0.8125rem;
|
|
24405
24434
|
}
|
|
24406
24435
|
.mint-sample-selector__action-btn--reset {
|
|
24407
|
-
|
|
24408
|
-
min-width:
|
|
24436
|
+
width: var(--form-height-sm);
|
|
24437
|
+
min-width: var(--form-height-sm);
|
|
24438
|
+
aspect-ratio: 1;
|
|
24409
24439
|
padding: 0.5rem;
|
|
24410
24440
|
}
|
|
24411
24441
|
.mint-sample-selector__action-icon {
|
|
@@ -24413,6 +24443,12 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
24413
24443
|
height: 1rem;
|
|
24414
24444
|
flex-shrink: 0;
|
|
24415
24445
|
}
|
|
24446
|
+
.mint-sample-selector__action-label {
|
|
24447
|
+
min-width: 0;
|
|
24448
|
+
overflow: hidden;
|
|
24449
|
+
text-overflow: ellipsis;
|
|
24450
|
+
white-space: nowrap;
|
|
24451
|
+
}
|
|
24416
24452
|
/* Level Popover */
|
|
24417
24453
|
.mint-sample-selector__popover {
|
|
24418
24454
|
position: absolute;
|
|
@@ -24978,6 +25014,14 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
24978
25014
|
min-height: 0;
|
|
24979
25015
|
min-width: 0;
|
|
24980
25016
|
}
|
|
25017
|
+
.mint-modal__body:has(> .mint-auto-group .mint-auto-group__manual-mode) {
|
|
25018
|
+
overflow: hidden;
|
|
25019
|
+
}
|
|
25020
|
+
.mint-auto-group:has(.mint-auto-group__manual-mode) {
|
|
25021
|
+
height: min(34rem, calc(100vh - 12rem));
|
|
25022
|
+
min-height: min(26rem, calc(100vh - 12rem));
|
|
25023
|
+
overflow: hidden;
|
|
25024
|
+
}
|
|
24981
25025
|
/* --- Workflow tabs --- */
|
|
24982
25026
|
.mint-auto-group__workflow-bar {
|
|
24983
25027
|
display: flex;
|
|
@@ -25023,11 +25067,13 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
25023
25067
|
color: var(--color-primary);
|
|
25024
25068
|
}
|
|
25025
25069
|
.mint-auto-group__manual-mode {
|
|
25070
|
+
flex: 1;
|
|
25026
25071
|
display: flex;
|
|
25027
25072
|
flex-direction: column;
|
|
25028
25073
|
gap: 0.625rem;
|
|
25029
25074
|
min-height: 0;
|
|
25030
25075
|
min-width: 0;
|
|
25076
|
+
overflow: hidden;
|
|
25031
25077
|
}
|
|
25032
25078
|
.mint-auto-group__manual-summary {
|
|
25033
25079
|
display: flex;
|
|
@@ -25088,12 +25134,15 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
25088
25134
|
display: grid;
|
|
25089
25135
|
grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
|
|
25090
25136
|
gap: 0.625rem;
|
|
25091
|
-
|
|
25137
|
+
flex: 1;
|
|
25138
|
+
min-height: 0;
|
|
25092
25139
|
min-width: 0;
|
|
25140
|
+
overflow: hidden;
|
|
25093
25141
|
}
|
|
25094
25142
|
.mint-auto-group__manual-panel {
|
|
25095
25143
|
min-width: 0;
|
|
25096
25144
|
min-height: 0;
|
|
25145
|
+
overflow: hidden;
|
|
25097
25146
|
display: flex;
|
|
25098
25147
|
flex-direction: column;
|
|
25099
25148
|
gap: 0.5rem;
|
|
@@ -25489,13 +25538,13 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
25489
25538
|
flex-shrink: 0;
|
|
25490
25539
|
}
|
|
25491
25540
|
.mint-auto-group__manual-cohorts {
|
|
25492
|
-
flex: 1;
|
|
25541
|
+
flex: 0 1 auto;
|
|
25493
25542
|
min-height: 0;
|
|
25494
|
-
overflow
|
|
25543
|
+
overflow: visible;
|
|
25495
25544
|
display: flex;
|
|
25496
25545
|
flex-direction: column;
|
|
25497
25546
|
gap: 0.25rem;
|
|
25498
|
-
padding-right: 0
|
|
25547
|
+
padding-right: 0;
|
|
25499
25548
|
}
|
|
25500
25549
|
.mint-auto-group__manual-cohorts-head {
|
|
25501
25550
|
position: sticky;
|
|
@@ -26126,8 +26175,7 @@ html.dark .mint-toast__item .mint-toast__message {
|
|
|
26126
26175
|
min-height: 0;
|
|
26127
26176
|
}
|
|
26128
26177
|
|
|
26129
|
-
.mint-auto-group__manual-list
|
|
26130
|
-
.mint-auto-group__manual-cohorts {
|
|
26178
|
+
.mint-auto-group__manual-list {
|
|
26131
26179
|
max-height: 18rem;
|
|
26132
26180
|
}
|
|
26133
26181
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morscherlab/mint-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "MINT Platform SDK — Vue 3 components, composables, and types for plugin development. MINT = Mass-spec INtegrated Toolkit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -92,7 +92,7 @@ function handleSmartGroup(result: AutoGroupResult, state: { groups: SampleGroup[
|
|
|
92
92
|
</template>
|
|
93
93
|
<template #controls="{ state }">
|
|
94
94
|
<HstCheckbox v-model="state.enableGrouping" title="Enable Grouping" />
|
|
95
|
-
<HstCheckbox v-model="state.enableSmartGroup" title="Enable Smart
|
|
95
|
+
<HstCheckbox v-model="state.enableSmartGroup" title="Enable Smart" />
|
|
96
96
|
</template>
|
|
97
97
|
</Variant>
|
|
98
98
|
|
|
@@ -106,7 +106,17 @@ function handleSmartGroup(result: AutoGroupResult, state: { groups: SampleGroup[
|
|
|
106
106
|
</div>
|
|
107
107
|
</Variant>
|
|
108
108
|
|
|
109
|
-
<Variant title="
|
|
109
|
+
<Variant title="Narrow Action Bar">
|
|
110
|
+
<div style="padding: 2rem; width: 320px;">
|
|
111
|
+
<SampleSelector
|
|
112
|
+
:model-value="['Control_Rep1']"
|
|
113
|
+
:samples="mockSamples"
|
|
114
|
+
:groups="mockGroups"
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
</Variant>
|
|
118
|
+
|
|
119
|
+
<Variant title="With Manual Button">
|
|
110
120
|
<div style="padding: 2rem; max-width: 1040px;">
|
|
111
121
|
<SampleSelector
|
|
112
122
|
:model-value="[]"
|
|
@@ -245,8 +245,13 @@ defineExpose({ handleSmartGroupApply })
|
|
|
245
245
|
|
|
246
246
|
<!-- Action Buttons Row -->
|
|
247
247
|
<div v-if="enableGrouping" class="mint-sample-selector__actions">
|
|
248
|
-
<div
|
|
249
|
-
|
|
248
|
+
<div
|
|
249
|
+
:class="[
|
|
250
|
+
'mint-sample-selector__actions-row',
|
|
251
|
+
!enableSmartGroup ? 'mint-sample-selector__actions-row--single-primary' : '',
|
|
252
|
+
]"
|
|
253
|
+
>
|
|
254
|
+
<!-- Smart Button -->
|
|
250
255
|
<BaseButton
|
|
251
256
|
v-if="enableSmartGroup"
|
|
252
257
|
:variant="groupingEnabled ? 'primary' : 'secondary'"
|
|
@@ -258,7 +263,7 @@ defineExpose({ handleSmartGroupApply })
|
|
|
258
263
|
<svg class="mint-sample-selector__action-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
259
264
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
|
|
260
265
|
</svg>
|
|
261
|
-
<span>Smart
|
|
266
|
+
<span class="mint-sample-selector__action-label">Smart</span>
|
|
262
267
|
</BaseButton>
|
|
263
268
|
|
|
264
269
|
<BaseButton
|
|
@@ -271,7 +276,7 @@ defineExpose({ handleSmartGroupApply })
|
|
|
271
276
|
<svg class="mint-sample-selector__action-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
272
277
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" 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" />
|
|
273
278
|
</svg>
|
|
274
|
-
<span>Manual
|
|
279
|
+
<span class="mint-sample-selector__action-label">Manual</span>
|
|
275
280
|
</BaseButton>
|
|
276
281
|
|
|
277
282
|
<!-- Reset Button -->
|
|
@@ -599,7 +604,7 @@ defineExpose({ handleSmartGroupApply })
|
|
|
599
604
|
|
|
600
605
|
<!-- Empty state -->
|
|
601
606
|
<div v-if="internalGroups.length === 0" class="mint-sample-selector__empty">
|
|
602
|
-
Click Smart
|
|
607
|
+
Click Smart to auto-group samples
|
|
603
608
|
</div>
|
|
604
609
|
</div>
|
|
605
610
|
|
|
@@ -710,7 +715,7 @@ defineExpose({ handleSmartGroupApply })
|
|
|
710
715
|
</div>
|
|
711
716
|
</div>
|
|
712
717
|
|
|
713
|
-
<!-- Smart
|
|
718
|
+
<!-- Smart grouping modal -->
|
|
714
719
|
<AutoGroupModal
|
|
715
720
|
v-model="showSmartGroupModal"
|
|
716
721
|
:samples="resolvedSamples"
|
|
@@ -9,6 +9,16 @@
|
|
|
9
9
|
min-width: 0;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.mint-modal__body:has(> .mint-auto-group .mint-auto-group__manual-mode) {
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.mint-auto-group:has(.mint-auto-group__manual-mode) {
|
|
17
|
+
height: min(34rem, calc(100vh - 12rem));
|
|
18
|
+
min-height: min(26rem, calc(100vh - 12rem));
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
12
22
|
/* --- Workflow tabs --- */
|
|
13
23
|
.mint-auto-group__workflow-bar {
|
|
14
24
|
display: flex;
|
|
@@ -61,11 +71,13 @@
|
|
|
61
71
|
}
|
|
62
72
|
|
|
63
73
|
.mint-auto-group__manual-mode {
|
|
74
|
+
flex: 1;
|
|
64
75
|
display: flex;
|
|
65
76
|
flex-direction: column;
|
|
66
77
|
gap: 0.625rem;
|
|
67
78
|
min-height: 0;
|
|
68
79
|
min-width: 0;
|
|
80
|
+
overflow: hidden;
|
|
69
81
|
}
|
|
70
82
|
|
|
71
83
|
.mint-auto-group__manual-summary {
|
|
@@ -134,13 +146,16 @@
|
|
|
134
146
|
display: grid;
|
|
135
147
|
grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
|
|
136
148
|
gap: 0.625rem;
|
|
137
|
-
|
|
149
|
+
flex: 1;
|
|
150
|
+
min-height: 0;
|
|
138
151
|
min-width: 0;
|
|
152
|
+
overflow: hidden;
|
|
139
153
|
}
|
|
140
154
|
|
|
141
155
|
.mint-auto-group__manual-panel {
|
|
142
156
|
min-width: 0;
|
|
143
157
|
min-height: 0;
|
|
158
|
+
overflow: hidden;
|
|
144
159
|
display: flex;
|
|
145
160
|
flex-direction: column;
|
|
146
161
|
gap: 0.5rem;
|
|
@@ -591,13 +606,13 @@
|
|
|
591
606
|
}
|
|
592
607
|
|
|
593
608
|
.mint-auto-group__manual-cohorts {
|
|
594
|
-
flex: 1;
|
|
609
|
+
flex: 0 1 auto;
|
|
595
610
|
min-height: 0;
|
|
596
|
-
overflow
|
|
611
|
+
overflow: visible;
|
|
597
612
|
display: flex;
|
|
598
613
|
flex-direction: column;
|
|
599
614
|
gap: 0.25rem;
|
|
600
|
-
padding-right: 0
|
|
615
|
+
padding-right: 0;
|
|
601
616
|
}
|
|
602
617
|
|
|
603
618
|
.mint-auto-group__manual-cohorts-head {
|
|
@@ -1286,8 +1301,7 @@
|
|
|
1286
1301
|
min-height: 0;
|
|
1287
1302
|
}
|
|
1288
1303
|
|
|
1289
|
-
.mint-auto-group__manual-list
|
|
1290
|
-
.mint-auto-group__manual-cohorts {
|
|
1304
|
+
.mint-auto-group__manual-list {
|
|
1291
1305
|
max-height: 18rem;
|
|
1292
1306
|
}
|
|
1293
1307
|
|
|
@@ -72,25 +72,32 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
.mint-sample-selector__actions-row {
|
|
75
|
-
display:
|
|
75
|
+
display: grid;
|
|
76
|
+
grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
|
|
76
77
|
align-items: center;
|
|
77
|
-
gap: 0.
|
|
78
|
-
|
|
78
|
+
gap: 0.375rem;
|
|
79
|
+
min-width: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.mint-sample-selector__actions-row--single-primary {
|
|
83
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
/* BaseButton overrides for action buttons */
|
|
82
87
|
.mint-sample-selector__action-btn {
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
width: 100%;
|
|
89
|
+
min-width: 0; /* Allow labels to ellipsize inside tight containers */
|
|
85
90
|
align-items: center;
|
|
86
91
|
justify-content: center;
|
|
87
|
-
gap: 0.
|
|
88
|
-
|
|
92
|
+
gap: 0.375rem;
|
|
93
|
+
padding-inline: 0.5rem;
|
|
94
|
+
font-size: 0.8125rem;
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
.mint-sample-selector__action-btn--reset {
|
|
92
|
-
|
|
93
|
-
min-width:
|
|
98
|
+
width: var(--form-height-sm);
|
|
99
|
+
min-width: var(--form-height-sm);
|
|
100
|
+
aspect-ratio: 1;
|
|
94
101
|
padding: 0.5rem;
|
|
95
102
|
}
|
|
96
103
|
|
|
@@ -100,6 +107,13 @@
|
|
|
100
107
|
flex-shrink: 0;
|
|
101
108
|
}
|
|
102
109
|
|
|
110
|
+
.mint-sample-selector__action-label {
|
|
111
|
+
min-width: 0;
|
|
112
|
+
overflow: hidden;
|
|
113
|
+
text-overflow: ellipsis;
|
|
114
|
+
white-space: nowrap;
|
|
115
|
+
}
|
|
116
|
+
|
|
103
117
|
/* Level Popover */
|
|
104
118
|
.mint-sample-selector__popover {
|
|
105
119
|
position: absolute;
|