@morscherlab/mint-sdk 1.3.0-beta.9 → 1.3.0
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-GDDvof8D.js → components-vHfxV2PB.js} +12 -25
- package/dist/components-vHfxV2PB.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/install.js +1 -1
- package/dist/styles.css +58 -14
- package/package.json +1 -1
- package/src/__tests__/components/AppTopBarPageSelector.test.ts +4 -4
- package/src/components/internal/AppTopBarPageSelectorInternal.vue +3 -6
- package/src/styles/components/app-page-selector.css +58 -14
- package/dist/components-GDDvof8D.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as PlateEditor_default, A as SampleLegend_default, At as AppToastContainer_default, B as StatusIndicator_default, C as ChemicalFormula_default, Ct as AppAvatarMenu_default, D as ReagentEditor_default, Dt as ActionMenu_default, E as SampleHierarchyTree_default, Et as ThemeToggle_default, F as SettingsModal_default, Ft as Calendar_default, G as ControlWorkspaceView_default, H as LayoutResizeHandle_default, I as AdductText_default, It as BasePill_default, J as SampleSelector_default, K as ComponentBindingRenderer_default, L as Breadcrumb_default, Lt as SegmentedControl_default, M as BioTemplatePackWorkspaceView_default, Mt as FormField_default, N as BioTemplateExperimentWorkspaceView_default, Nt as DataFrame_default, O as SmartGroupModal_default, Ot as IconButton_default, P as BioTemplateRenderer_default, Pt as LoadingSpinner_default, Q as ReagentList_default, R as Avatar_default, Rt as BaseTabs_default, S as sequenceSamplesRemaining, St as AppTopBar_default, T as ProtocolStepEditor_default, Tt as CollapsibleCard_default, U as AppContainer_default, V as Divider_default, W as DoseDesignWorkspaceView_default, X as SmartGroupManual_default, Y as AutoGroupModal_default, Z as SmartGroupFieldRecipe_default, _ as estimateSequenceFinishDate, _t as AppLayout_default, a as ArtifactSaveDialog_default, at as GeneratedPluginView_default, b as formatSequenceRemaining, bt as FormActions_default, c as SectionCard_default, ct as GeneratedPlotlyResult_default, d as ExperimentCodeBadge_default, dt as ChartContainer_default, et as ConfirmDialog_default, f as ExperimentDataViewer_default, ft as generatedJobDefaults, g as SequenceProgressBar_default, gt as MobileSupportGate_default, h as InstrumentStateBadge_default, ht as PluginWorkspaceView_default, i as ExperimentPopover_default, it as DoseCalculator_default, j as BioTemplatePresetWorkspaceView_default, jt as AlertBox_default, k as GroupAssigner_default, kt as RuntimeUpdateNotice_default, l as ResourceCard_default, lt as PlotlyChart_default, m as AuditTrail_default, mt as normalizeGeneratedJobInput, n as FilePicker_default, nt as sampleTypeMarker, o as ArtifactSelectorModal_default, ot as JobsStatusTray_default, p as BatchProgressList_default, pt as generatedJobFormSchema, q as ScheduleCalendar_default, r as FitPanel_default, rt as ExperimentTimeline_default, s as ExperimentSelectorModal_default, st as GeneratedResultRenderer_default, tt as WellPlate_default, u as TimeRangeInput_default, ut as mintPlotlyTemplate, v as estimateSequenceRemainingSeconds, vt as AppSidebar_default, w as ScientificNumber_default, wt as PluginIcon_default, x as sequenceProgressPercent, xt as StepWizard_default, y as formatSequenceEta, yt as FormBuilder_default, z as ProgressBar_default, zt as SearchableSelect_default } from "./components-
|
|
1
|
+
import { $ as PlateEditor_default, A as SampleLegend_default, At as AppToastContainer_default, B as StatusIndicator_default, C as ChemicalFormula_default, Ct as AppAvatarMenu_default, D as ReagentEditor_default, Dt as ActionMenu_default, E as SampleHierarchyTree_default, Et as ThemeToggle_default, F as SettingsModal_default, Ft as Calendar_default, G as ControlWorkspaceView_default, H as LayoutResizeHandle_default, I as AdductText_default, It as BasePill_default, J as SampleSelector_default, K as ComponentBindingRenderer_default, L as Breadcrumb_default, Lt as SegmentedControl_default, M as BioTemplatePackWorkspaceView_default, Mt as FormField_default, N as BioTemplateExperimentWorkspaceView_default, Nt as DataFrame_default, O as SmartGroupModal_default, Ot as IconButton_default, P as BioTemplateRenderer_default, Pt as LoadingSpinner_default, Q as ReagentList_default, R as Avatar_default, Rt as BaseTabs_default, S as sequenceSamplesRemaining, St as AppTopBar_default, T as ProtocolStepEditor_default, Tt as CollapsibleCard_default, U as AppContainer_default, V as Divider_default, W as DoseDesignWorkspaceView_default, X as SmartGroupManual_default, Y as AutoGroupModal_default, Z as SmartGroupFieldRecipe_default, _ as estimateSequenceFinishDate, _t as AppLayout_default, a as ArtifactSaveDialog_default, at as GeneratedPluginView_default, b as formatSequenceRemaining, bt as FormActions_default, c as SectionCard_default, ct as GeneratedPlotlyResult_default, d as ExperimentCodeBadge_default, dt as ChartContainer_default, et as ConfirmDialog_default, f as ExperimentDataViewer_default, ft as generatedJobDefaults, g as SequenceProgressBar_default, gt as MobileSupportGate_default, h as InstrumentStateBadge_default, ht as PluginWorkspaceView_default, i as ExperimentPopover_default, it as DoseCalculator_default, j as BioTemplatePresetWorkspaceView_default, jt as AlertBox_default, k as GroupAssigner_default, kt as RuntimeUpdateNotice_default, l as ResourceCard_default, lt as PlotlyChart_default, m as AuditTrail_default, mt as normalizeGeneratedJobInput, n as FilePicker_default, nt as sampleTypeMarker, o as ArtifactSelectorModal_default, ot as JobsStatusTray_default, p as BatchProgressList_default, pt as generatedJobFormSchema, q as ScheduleCalendar_default, r as FitPanel_default, rt as ExperimentTimeline_default, s as ExperimentSelectorModal_default, st as GeneratedResultRenderer_default, tt as WellPlate_default, u as TimeRangeInput_default, ut as mintPlotlyTemplate, v as estimateSequenceRemainingSeconds, vt as AppSidebar_default, w as ScientificNumber_default, wt as PluginIcon_default, x as sequenceProgressPercent, xt as StepWizard_default, y as formatSequenceEta, yt as FormBuilder_default, z as ProgressBar_default, zt as SearchableSelect_default } from "./components-vHfxV2PB.js";
|
|
2
2
|
import { a as tryUseSettingsStore, c as mintApiErrorFromResponse, i as tableDensityToSize, n as colorPalettes, o as useSettingsStore, r as paletteCssVariables, s as MintApiError, t as PALETTE_CSS_VARIABLES } from "./settings-BLr8lzw6.js";
|
|
3
3
|
import { a as SORT_OPTIONS, c as formatExperimentDate, d as resolveExperimentCode, f as BaseModal_default, h as BaseButton_default, i as EXPERIMENT_STATUS_VARIANT_MAP, l as formatExperimentStatus, m as useEventListener, n as EXPERIMENT_STATUS_LABELS, o as datePresetToISO, p as useFocusTrap, r as EXPERIMENT_STATUS_OPTIONS, s as experimentIdFromRoute, t as DATE_PRESET_OPTIONS, u as getExperimentStatusVariant } from "./experiment-utils-DTANyVKV.js";
|
|
4
4
|
import { i as BaseSelect_default, n as Skeleton_default, o as BaseInput_default, r as EmptyState_default } from "./ResourcePickerListInternal-CFAw4vTZ.js";
|
package/dist/install.js
CHANGED
package/dist/styles.css
CHANGED
|
@@ -19491,8 +19491,8 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
19491
19491
|
|
|
19492
19492
|
/* AppTopBar page selector — left-side route/page dropdown.
|
|
19493
19493
|
Trigger speaks the field language (5a): 36px (the identity tile height), hover changes the background
|
|
19494
|
-
only, open = field focus, inline 12px chevron.
|
|
19495
|
-
|
|
19494
|
+
only, open = field focus, inline 12px chevron. The menu keeps the 1.2 panel
|
|
19495
|
+
(own card, tinted active row) rather than .mint-popover + .mint-menu-item. */
|
|
19496
19496
|
|
|
19497
19497
|
.mint-page-selector {
|
|
19498
19498
|
position: relative;
|
|
@@ -19592,44 +19592,88 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
19592
19592
|
|
|
19593
19593
|
.mint-page-selector__menu {
|
|
19594
19594
|
position: absolute;
|
|
19595
|
-
top: calc(100% + 0.
|
|
19595
|
+
top: calc(100% + 0.375rem);
|
|
19596
19596
|
left: 0;
|
|
19597
19597
|
width: 16.25rem;
|
|
19598
|
+
background: var(--bg-card);
|
|
19599
|
+
border: 1px solid var(--border-color);
|
|
19600
|
+
border-radius: var(--radius-lg);
|
|
19601
|
+
box-shadow: var(--shadow-md);
|
|
19602
|
+
padding: 0.375rem;
|
|
19598
19603
|
z-index: 50;
|
|
19599
19604
|
}
|
|
19600
19605
|
|
|
19601
19606
|
.mint-page-selector__menu-title {
|
|
19602
|
-
padding: 0.
|
|
19607
|
+
padding: 0.375rem 0.625rem 0.5rem;
|
|
19603
19608
|
font-size: 0.75rem;
|
|
19604
19609
|
font-weight: 500;
|
|
19605
19610
|
color: var(--text-secondary);
|
|
19606
19611
|
}
|
|
19607
19612
|
|
|
19613
|
+
.mint-page-selector__item {
|
|
19614
|
+
display: flex;
|
|
19615
|
+
align-items: center;
|
|
19616
|
+
gap: 0.625rem;
|
|
19617
|
+
width: 100%;
|
|
19618
|
+
padding: 0.5rem 0.625rem;
|
|
19619
|
+
border: 0;
|
|
19620
|
+
background: transparent;
|
|
19621
|
+
border-radius: 0.4375rem;
|
|
19622
|
+
color: var(--text-primary);
|
|
19623
|
+
font-size: 0.8125rem;
|
|
19624
|
+
font-weight: 500;
|
|
19625
|
+
font-family: inherit;
|
|
19626
|
+
text-align: left;
|
|
19627
|
+
text-decoration: none;
|
|
19628
|
+
cursor: pointer;
|
|
19629
|
+
transition: background-color var(--mint-transition);
|
|
19630
|
+
}
|
|
19631
|
+
|
|
19632
|
+
.mint-page-selector__item:hover:not(.mint-page-selector__item--disabled) {
|
|
19633
|
+
background: var(--bg-hover);
|
|
19634
|
+
}
|
|
19635
|
+
|
|
19636
|
+
.mint-page-selector__item--active {
|
|
19637
|
+
background: var(--bg-tertiary);
|
|
19638
|
+
font-weight: 600;
|
|
19639
|
+
}
|
|
19640
|
+
|
|
19641
|
+
.mint-page-selector__item--disabled {
|
|
19642
|
+
opacity: var(--mint-disabled-opacity);
|
|
19643
|
+
cursor: not-allowed;
|
|
19644
|
+
}
|
|
19645
|
+
|
|
19608
19646
|
.mint-page-selector__item-icon {
|
|
19609
|
-
width: 1.
|
|
19610
|
-
height: 1.
|
|
19611
|
-
border-radius:
|
|
19647
|
+
width: 1.375rem;
|
|
19648
|
+
height: 1.375rem;
|
|
19649
|
+
border-radius: 0.3125rem;
|
|
19612
19650
|
background: var(--bg-tertiary);
|
|
19613
|
-
color: var(--text-secondary
|
|
19651
|
+
color: var(--text-secondary);
|
|
19614
19652
|
display: grid;
|
|
19615
19653
|
place-items: center;
|
|
19616
19654
|
flex-shrink: 0;
|
|
19617
19655
|
}
|
|
19618
19656
|
|
|
19619
|
-
.mint-page-selector__item-icon
|
|
19657
|
+
.mint-page-selector__item--active .mint-page-selector__item-icon {
|
|
19658
|
+
background: var(--color-primary-soft);
|
|
19659
|
+
color: var(--color-primary);
|
|
19660
|
+
}
|
|
19661
|
+
|
|
19662
|
+
.mint-page-selector__item-icon--metadata,
|
|
19663
|
+
.mint-page-selector__item--active .mint-page-selector__item-icon--metadata {
|
|
19620
19664
|
background: transparent;
|
|
19621
19665
|
color: inherit;
|
|
19622
19666
|
}
|
|
19623
19667
|
|
|
19624
19668
|
.mint-page-selector__item-icon svg {
|
|
19625
|
-
width: 0.
|
|
19626
|
-
height: 0.
|
|
19669
|
+
width: 0.8125rem;
|
|
19670
|
+
height: 0.8125rem;
|
|
19627
19671
|
}
|
|
19628
19672
|
|
|
19629
19673
|
.mint-page-selector__metadata-icon.mint-plugin-icon--sm {
|
|
19630
|
-
width: 1.
|
|
19631
|
-
height: 1.
|
|
19632
|
-
border-radius:
|
|
19674
|
+
width: 1.375rem;
|
|
19675
|
+
height: 1.375rem;
|
|
19676
|
+
border-radius: 0.3125rem;
|
|
19633
19677
|
}
|
|
19634
19678
|
|
|
19635
19679
|
.mint-page-selector__item-label {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morscherlab/mint-sdk",
|
|
3
|
-
"version": "1.3.0
|
|
3
|
+
"version": "1.3.0",
|
|
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",
|
|
@@ -154,23 +154,23 @@ describe('AppTopBarPageSelectorInternal', () => {
|
|
|
154
154
|
expect(wrapper.get('.mint-plugin-icon__img').attributes('src')).toBe(httpsIcon)
|
|
155
155
|
})
|
|
156
156
|
|
|
157
|
-
it('should render the menu
|
|
157
|
+
it('should render the menu as its own panel, not the shared popover, when opened', async () => {
|
|
158
158
|
const wrapper = mount(AppTopBarPageSelectorInternal, {
|
|
159
159
|
props: { currentPageId: 'Workspace', pages: ['Workspace', 'Results'] },
|
|
160
160
|
})
|
|
161
161
|
|
|
162
162
|
await wrapper.get('.mint-page-selector__trigger').trigger('click')
|
|
163
163
|
|
|
164
|
-
expect(wrapper.get('.mint-page-selector__menu').classes()).toContain('mint-popover')
|
|
164
|
+
expect(wrapper.get('.mint-page-selector__menu').classes()).not.toContain('mint-popover')
|
|
165
165
|
})
|
|
166
166
|
|
|
167
|
-
it('should mark the current page as
|
|
167
|
+
it('should mark the current page as the active item when opened', async () => {
|
|
168
168
|
const wrapper = mount(AppTopBarPageSelectorInternal, {
|
|
169
169
|
props: { currentPageId: 'Workspace', pages: ['Workspace', 'Results'] },
|
|
170
170
|
})
|
|
171
171
|
|
|
172
172
|
await wrapper.get('.mint-page-selector__trigger').trigger('click')
|
|
173
173
|
|
|
174
|
-
expect(wrapper.findAll('.mint-page-selector__item')[0].classes()).toContain('mint-
|
|
174
|
+
expect(wrapper.findAll('.mint-page-selector__item')[0].classes()).toContain('mint-page-selector__item--active')
|
|
175
175
|
})
|
|
176
176
|
})
|
|
@@ -89,7 +89,7 @@ function handleSelect(page: PageSelectorItem) {
|
|
|
89
89
|
</span>
|
|
90
90
|
</button>
|
|
91
91
|
|
|
92
|
-
<div v-if="isOpen" class="mint-
|
|
92
|
+
<div v-if="isOpen" class="mint-page-selector__menu" role="menu">
|
|
93
93
|
<div class="mint-page-selector__menu-title">Go to</div>
|
|
94
94
|
<ActionItemInternal
|
|
95
95
|
v-for="page in normalizedPages"
|
|
@@ -98,8 +98,8 @@ function handleSelect(page: PageSelectorItem) {
|
|
|
98
98
|
:to="page.to"
|
|
99
99
|
:disabled="page.disabled"
|
|
100
100
|
:class="[
|
|
101
|
-
'mint-
|
|
102
|
-
{ 'mint-
|
|
101
|
+
'mint-page-selector__item',
|
|
102
|
+
{ 'mint-page-selector__item--active': page.id === current?.id },
|
|
103
103
|
{ 'mint-page-selector__item--disabled': page.disabled },
|
|
104
104
|
]"
|
|
105
105
|
role="menuitem"
|
|
@@ -121,9 +121,6 @@ function handleSelect(page: PageSelectorItem) {
|
|
|
121
121
|
</slot>
|
|
122
122
|
</span>
|
|
123
123
|
<span class="mint-page-selector__item-label">{{ page.label }}</span>
|
|
124
|
-
<svg class="mint-menu-item__check" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
125
|
-
<path d="M3.5 8.5l3 3 6-7" />
|
|
126
|
-
</svg>
|
|
127
124
|
</ActionItemInternal>
|
|
128
125
|
</div>
|
|
129
126
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* AppTopBar page selector — left-side route/page dropdown.
|
|
2
2
|
Trigger speaks the field language (5a): 36px (the identity tile height), hover changes the background
|
|
3
|
-
only, open = field focus, inline 12px chevron.
|
|
4
|
-
|
|
3
|
+
only, open = field focus, inline 12px chevron. The menu keeps the 1.2 panel
|
|
4
|
+
(own card, tinted active row) rather than .mint-popover + .mint-menu-item. */
|
|
5
5
|
|
|
6
6
|
.mint-page-selector {
|
|
7
7
|
position: relative;
|
|
@@ -101,44 +101,88 @@
|
|
|
101
101
|
|
|
102
102
|
.mint-page-selector__menu {
|
|
103
103
|
position: absolute;
|
|
104
|
-
top: calc(100% + 0.
|
|
104
|
+
top: calc(100% + 0.375rem);
|
|
105
105
|
left: 0;
|
|
106
106
|
width: 16.25rem;
|
|
107
|
+
background: var(--bg-card);
|
|
108
|
+
border: 1px solid var(--border-color);
|
|
109
|
+
border-radius: var(--radius-lg);
|
|
110
|
+
box-shadow: var(--shadow-md);
|
|
111
|
+
padding: 0.375rem;
|
|
107
112
|
z-index: 50;
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
.mint-page-selector__menu-title {
|
|
111
|
-
padding: 0.
|
|
116
|
+
padding: 0.375rem 0.625rem 0.5rem;
|
|
112
117
|
font-size: 0.75rem;
|
|
113
118
|
font-weight: 500;
|
|
114
119
|
color: var(--text-secondary);
|
|
115
120
|
}
|
|
116
121
|
|
|
122
|
+
.mint-page-selector__item {
|
|
123
|
+
display: flex;
|
|
124
|
+
align-items: center;
|
|
125
|
+
gap: 0.625rem;
|
|
126
|
+
width: 100%;
|
|
127
|
+
padding: 0.5rem 0.625rem;
|
|
128
|
+
border: 0;
|
|
129
|
+
background: transparent;
|
|
130
|
+
border-radius: 0.4375rem;
|
|
131
|
+
color: var(--text-primary);
|
|
132
|
+
font-size: 0.8125rem;
|
|
133
|
+
font-weight: 500;
|
|
134
|
+
font-family: inherit;
|
|
135
|
+
text-align: left;
|
|
136
|
+
text-decoration: none;
|
|
137
|
+
cursor: pointer;
|
|
138
|
+
transition: background-color var(--mint-transition);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.mint-page-selector__item:hover:not(.mint-page-selector__item--disabled) {
|
|
142
|
+
background: var(--bg-hover);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.mint-page-selector__item--active {
|
|
146
|
+
background: var(--bg-tertiary);
|
|
147
|
+
font-weight: 600;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.mint-page-selector__item--disabled {
|
|
151
|
+
opacity: var(--mint-disabled-opacity);
|
|
152
|
+
cursor: not-allowed;
|
|
153
|
+
}
|
|
154
|
+
|
|
117
155
|
.mint-page-selector__item-icon {
|
|
118
|
-
width: 1.
|
|
119
|
-
height: 1.
|
|
120
|
-
border-radius:
|
|
156
|
+
width: 1.375rem;
|
|
157
|
+
height: 1.375rem;
|
|
158
|
+
border-radius: 0.3125rem;
|
|
121
159
|
background: var(--bg-tertiary);
|
|
122
|
-
color: var(--text-secondary
|
|
160
|
+
color: var(--text-secondary);
|
|
123
161
|
display: grid;
|
|
124
162
|
place-items: center;
|
|
125
163
|
flex-shrink: 0;
|
|
126
164
|
}
|
|
127
165
|
|
|
128
|
-
.mint-page-selector__item-icon
|
|
166
|
+
.mint-page-selector__item--active .mint-page-selector__item-icon {
|
|
167
|
+
background: var(--color-primary-soft);
|
|
168
|
+
color: var(--color-primary);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.mint-page-selector__item-icon--metadata,
|
|
172
|
+
.mint-page-selector__item--active .mint-page-selector__item-icon--metadata {
|
|
129
173
|
background: transparent;
|
|
130
174
|
color: inherit;
|
|
131
175
|
}
|
|
132
176
|
|
|
133
177
|
.mint-page-selector__item-icon svg {
|
|
134
|
-
width: 0.
|
|
135
|
-
height: 0.
|
|
178
|
+
width: 0.8125rem;
|
|
179
|
+
height: 0.8125rem;
|
|
136
180
|
}
|
|
137
181
|
|
|
138
182
|
.mint-page-selector__metadata-icon.mint-plugin-icon--sm {
|
|
139
|
-
width: 1.
|
|
140
|
-
height: 1.
|
|
141
|
-
border-radius:
|
|
183
|
+
width: 1.375rem;
|
|
184
|
+
height: 1.375rem;
|
|
185
|
+
border-radius: 0.3125rem;
|
|
142
186
|
}
|
|
143
187
|
|
|
144
188
|
.mint-page-selector__item-label {
|