@morscherlab/mint-sdk 1.4.0-beta.1 → 1.4.0-beta.10
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/{ActionMenu-CScINahU.js → AlertBox-B2Bgr3ei.js} +40 -209
- package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
- package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-mvm--GxN.js} +161 -110
- package/dist/AppSidebar-mvm--GxN.js.map +1 -0
- package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-nbJj51is.js} +2 -2
- package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-nbJj51is.js.map} +1 -1
- package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
- package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
- package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-65peG4Up.js} +198 -181
- package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
- package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-BtnnjWzs.js} +2 -2
- package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-BtnnjWzs.js.map} +1 -1
- package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-DO3IZ7qz.js} +9 -9
- package/dist/SettingsModal-DO3IZ7qz.js.map +1 -0
- package/dist/components/AppSidebar.vue.d.ts +1 -1
- package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
- package/dist/components/AuditTrail.vue.d.ts +1 -1
- package/dist/components/BaseSelect.vue.d.ts +2 -2
- package/dist/components/ChartContainer.vue.d.ts +2 -0
- package/dist/components/DatePicker.vue.d.ts +1 -1
- package/dist/components/ExperimentPopover.vue.d.ts +18 -0
- package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
- package/dist/components/FilePicker.vue.d.ts +1 -1
- package/dist/components/FileUploader.vue.d.ts +2 -2
- package/dist/components/PluginIcon.vue.d.ts +2 -2
- package/dist/components/SampleSelector.vue.d.ts +6 -6
- package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
- package/dist/components/StepWizard.vue.d.ts +3 -0
- package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
- package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
- package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
- package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
- package/dist/composables/createClient.d.ts +2 -0
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/pluginIdentity.d.ts +24 -0
- package/dist/composables/pluginWorkspaceModel.d.ts +2 -2
- package/dist/composables/useAppExperiment.d.ts +8 -0
- package/dist/composables/useCalendarGrid.d.ts +1 -1
- package/dist/composables/useExperimentSelector.d.ts +6 -2
- package/dist/composables/usePlatform.d.ts +1 -0
- package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
- package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
- package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
- package/dist/data-CgILxDLW.js.map +1 -0
- package/dist/data.js +8 -8
- package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
- package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
- package/dist/index.js +19 -19
- package/dist/{install-DAID6c2-.js → install-CsPFJSx3.js} +15 -14
- package/dist/{install-DAID6c2-.js.map → install-CsPFJSx3.js.map} +1 -1
- package/dist/install.js +1 -1
- package/dist/{lab-DLwRl_Ql.js → lab-MHzp-_J8.js} +128 -147
- package/dist/lab-MHzp-_J8.js.map +1 -0
- package/dist/lab.js +4 -3
- package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
- package/dist/records-B6gpM_3e.js.map +1 -0
- package/dist/{runtime-D6gVat6r.js → runtime-8bs8EogX.js} +27 -31
- package/dist/runtime-8bs8EogX.js.map +1 -0
- package/dist/runtime.js +6 -6
- package/dist/{shell-5ju97nOS.js → shell-CywENwBT.js} +5 -5
- package/dist/{shell-5ju97nOS.js.map → shell-CywENwBT.js.map} +1 -1
- package/dist/shell.js +5 -5
- package/dist/styles.css +1606 -1666
- package/dist/types/componentWorkflowTypes.d.ts +2 -0
- package/dist/types/generated/platformContext.d.ts +1 -0
- package/dist/types/generated-ui.d.ts +4 -0
- package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
- package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
- package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
- package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
- package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
- package/dist/useListReorder-BitdUhxn.js.map +1 -0
- package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-DiwCt77M.js} +71 -57
- package/dist/useRackEditor-DiwCt77M.js.map +1 -0
- package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
- package/dist/useRealtime-C3iy9QkU.js.map +1 -0
- package/dist/useRequest-D506eHi8.js +244 -0
- package/dist/useRequest-D506eHi8.js.map +1 -0
- package/dist/utils/time.d.ts +7 -0
- package/package.json +1 -1
- package/src/__tests__/components/AppTopBar.test.ts +51 -2
- package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
- package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
- package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
- package/src/__tests__/components/BaseSelect.test.ts +2 -1
- package/src/__tests__/components/BatchProgressList.test.ts +16 -0
- package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
- package/src/__tests__/components/ChartContainer.test.ts +11 -0
- package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
- package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
- package/src/__tests__/components/DatePicker.test.ts +21 -0
- package/src/__tests__/components/DatePicker.time.test.ts +2 -2
- package/src/__tests__/components/EmptyState.test.ts +1 -1
- package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
- package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
- package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
- package/src/__tests__/components/PluginWorkspaceView.test.ts +7 -0
- package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
- package/src/__tests__/components/SampleSelector.test.ts +13 -8
- package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
- package/src/__tests__/components/StepWizard.test.ts +11 -0
- package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
- package/src/__tests__/components/deprecationTags.test.ts +1 -1
- package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
- package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
- package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
- package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
- package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
- package/src/__tests__/styles/cssTokens.test.ts +2 -2
- package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
- package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
- package/src/__tests__/utils/time.test.ts +18 -1
- package/src/components/AdductText.story.vue +7 -0
- package/src/components/AdductText.vue +1 -1
- package/src/components/AlertBox.story.vue +2 -2
- package/src/components/AlertBox.vue +18 -16
- package/src/components/AppSidebar.story.vue +0 -28
- package/src/components/AppTopBar.story.vue +47 -12
- package/src/components/AppTopBar.vue +118 -114
- package/src/components/ArtifactSaveDialog.story.vue +23 -0
- package/src/components/ArtifactSaveDialog.vue +102 -12
- package/src/components/AuditTrail.story.vue +2 -1
- package/src/components/AuditTrail.vue +2 -21
- package/src/components/Avatar.vue +10 -14
- package/src/components/BaseSelect.multiple.story.vue +13 -2
- package/src/components/BaseSelect.vue +4 -3
- package/src/components/BatchProgressList.vue +35 -25
- package/src/components/ChartContainer.story.vue +2 -1
- package/src/components/ChartContainer.vue +8 -6
- package/src/components/ConfirmDialog.story.vue +1 -1
- package/src/components/EmptyState.vue +1 -1
- package/src/components/ExperimentPopover.story.vue +165 -53
- package/src/components/ExperimentPopover.vue +169 -187
- package/src/components/ExperimentSelectorModal.story.vue +40 -36
- package/src/components/ExperimentSelectorModal.vue +124 -110
- package/src/components/FormField.story.vue +8 -48
- package/src/components/GeneratedPluginView.vue +7 -1
- package/src/components/InstrumentStateBadge.vue +1 -1
- package/src/components/JobsStatusTray.vue +1 -1
- package/src/components/LoadingSpinner.vue +1 -1
- package/src/components/NumberInput.vue +3 -6
- package/src/components/PluginIcon.story.vue +2 -10
- package/src/components/PluginIcon.vue +2 -2
- package/src/components/PluginWorkspaceView.story.vue +1 -1
- package/src/components/RuntimeUpdateNotice.vue +1 -1
- package/src/components/SampleSelector.story.vue +1 -1
- package/src/components/SampleSelector.vue +27 -37
- package/src/components/SampleSelectorGroupNode.vue +1 -1
- package/src/components/SectionCard.story.vue +2 -2
- package/src/components/SequenceProgressBar.story.vue +9 -0
- package/src/components/SequenceProgressBar.vue +6 -1
- package/src/components/SettingsModal.schema.ts +1 -1
- package/src/components/SettingsModal.vue +2 -2
- package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
- package/src/components/SmartGroupManual.story.vue +1 -1
- package/src/components/StepWizard.story.vue +33 -0
- package/src/components/StepWizard.vue +8 -1
- package/src/components/WellPlate.story.vue +3 -1
- package/src/components/WellPlate.vue +7 -0
- package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
- package/src/components/internal/DatePickerDateInternal.vue +16 -40
- package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
- package/src/components/internal/DatePickerTimeInternal.vue +5 -8
- package/src/components/internal/ResourcePickerListInternal.vue +45 -85
- package/src/components/internal/SelectMultipleInternal.vue +182 -65
- package/src/components/internal/SelectSearchableInternal.vue +2 -3
- package/src/composables/createClient.ts +2 -0
- package/src/composables/index.ts +1 -0
- package/src/composables/pluginIdentity.ts +31 -0
- package/src/composables/pluginWorkspaceModel.ts +2 -2
- package/src/composables/useAppExperiment.ts +20 -0
- package/src/composables/useCalendarGrid.ts +4 -3
- package/src/composables/useExperimentSelector.ts +77 -31
- package/src/composables/usePluginWorkspace.ts +1 -1
- package/src/styles/components/adduct-text.css +13 -5
- package/src/styles/components/alert-box.css +39 -58
- package/src/styles/components/app-layout.css +6 -5
- package/src/styles/components/app-page-selector.css +3 -1
- package/src/styles/components/app-pill-nav.css +11 -12
- package/src/styles/components/app-sidebar.css +9 -18
- package/src/styles/components/app-top-bar.css +57 -55
- package/src/styles/components/artifact-save-dialog.css +153 -2
- package/src/styles/components/audit-trail.css +16 -19
- package/src/styles/components/avatar.css +6 -4
- package/src/styles/components/batch-progress-list.css +38 -36
- package/src/styles/components/button.css +28 -59
- package/src/styles/components/calendar.css +12 -12
- package/src/styles/components/chart-container.css +34 -23
- package/src/styles/components/checkbox.css +2 -12
- package/src/styles/components/collapsible-card.css +27 -29
- package/src/styles/components/confirm-dialog.css +13 -14
- package/src/styles/components/dataframe.css +12 -4
- package/src/styles/components/date-picker.css +80 -92
- package/src/styles/components/datetime-picker.css +31 -43
- package/src/styles/components/divider.css +20 -20
- package/src/styles/components/dose-calculator.css +3 -3
- package/src/styles/components/empty-state.css +20 -17
- package/src/styles/components/experiment-code-badge.css +2 -0
- package/src/styles/components/experiment-popover.css +174 -329
- package/src/styles/components/experiment-selector-modal.css +75 -56
- package/src/styles/components/file-picker.css +3 -3
- package/src/styles/components/file-uploader.css +38 -49
- package/src/styles/components/form-builder.css +3 -3
- package/src/styles/components/formula-input.css +1 -1
- package/src/styles/components/icon-button.css +18 -24
- package/src/styles/components/input.css +5 -4
- package/src/styles/components/instrument-monitor.css +13 -15
- package/src/styles/components/jobs-status-tray.css +31 -25
- package/src/styles/components/modal.css +2 -4
- package/src/styles/components/molecule-input.css +2 -2
- package/src/styles/components/multi-select.css +65 -117
- package/src/styles/components/number-input.css +26 -19
- package/src/styles/components/pill.css +3 -2
- package/src/styles/components/plate-editor.css +0 -1
- package/src/styles/components/plugin-icon.css +26 -23
- package/src/styles/components/popover.css +2 -2
- package/src/styles/components/presence-avatars.css +1 -1
- package/src/styles/components/protocol-step-editor.css +1 -3
- package/src/styles/components/resource-card.css +2 -2
- package/src/styles/components/resource-picker-list.css +6 -57
- package/src/styles/components/sample-hierarchy-tree.css +4 -4
- package/src/styles/components/sample-selector.css +95 -79
- package/src/styles/components/schedule-calendar.css +8 -8
- package/src/styles/components/searchable-select.css +12 -12
- package/src/styles/components/section-card.css +28 -47
- package/src/styles/components/segmented-control.css +18 -15
- package/src/styles/components/select.css +3 -3
- package/src/styles/components/sequence-input.css +2 -2
- package/src/styles/components/sequence-progress-bar.css +17 -8
- package/src/styles/components/smart-group.css +18 -18
- package/src/styles/components/step-wizard.css +52 -16
- package/src/styles/components/tabs.css +2 -2
- package/src/styles/components/textarea.css +3 -3
- package/src/styles/components/time-picker.css +36 -21
- package/src/styles/components/toast.css +12 -10
- package/src/styles/components/toggle.css +1 -11
- package/src/styles/components/tooltip.css +10 -9
- package/src/styles/components/unit-input.css +8 -7
- package/src/styles/components/well-plate.css +9 -2
- package/src/styles/variables.css +106 -75
- package/src/types/componentWorkflowTypes.ts +2 -0
- package/src/types/generated/platformContext.ts +1 -0
- package/src/types/generated-ui.ts +4 -0
- package/src/utils/time.ts +21 -0
- package/dist/ActionMenu-CScINahU.js.map +0 -1
- package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
- package/dist/BaseModal-DfRIuVoj.js.map +0 -1
- package/dist/ExperimentPopover-C4sGw-is.js +0 -359
- package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
- package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
- package/dist/SettingsModal-CSLE31yg.js.map +0 -1
- package/dist/data-C2PwI_dn.js.map +0 -1
- package/dist/lab-DLwRl_Ql.js.map +0 -1
- package/dist/records-BzTcxekG.js.map +0 -1
- package/dist/runtime-D6gVat6r.js.map +0 -1
- package/dist/useListReorder-CcbEYxX-.js.map +0 -1
- package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
- package/dist/useRealtime-PalKue84.js.map +0 -1
- package/dist/useRequest-D5JDfsgZ.js +0 -76
- package/dist/useRequest-D5JDfsgZ.js.map +0 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
position: relative;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/* Trigger follows the field rules (1e) + clock icon; value in mono tabular. */
|
|
14
|
+
/* Trigger follows the field rules (1e) + leading clock icon; value in mono tabular. */
|
|
15
15
|
.mint-time-picker__input {
|
|
16
16
|
width: 100%;
|
|
17
17
|
border-radius: var(--radius-md);
|
|
@@ -20,10 +20,12 @@
|
|
|
20
20
|
color: var(--text-primary);
|
|
21
21
|
font-family: var(--font-mono);
|
|
22
22
|
font-variant-numeric: tabular-nums;
|
|
23
|
-
transition: border-color
|
|
23
|
+
transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
|
|
24
24
|
cursor: pointer;
|
|
25
|
-
padding-
|
|
25
|
+
padding-left: 1.875rem;
|
|
26
|
+
padding-right: 2rem;
|
|
26
27
|
box-sizing: border-box;
|
|
28
|
+
line-height: 1.25;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
.mint-time-picker__input::placeholder {
|
|
@@ -42,18 +44,24 @@
|
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
.mint-time-picker__input--sm {
|
|
45
|
-
padding: 0.
|
|
46
|
-
|
|
47
|
+
padding-top: 0.25rem;
|
|
48
|
+
padding-bottom: 0.25rem;
|
|
49
|
+
font-size: 0.75rem;
|
|
50
|
+
min-height: var(--form-height-sm);
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
.mint-time-picker__input--md {
|
|
50
|
-
padding: 0.
|
|
51
|
-
|
|
54
|
+
padding-top: 0.375rem;
|
|
55
|
+
padding-bottom: 0.375rem;
|
|
56
|
+
font-size: 0.75rem;
|
|
57
|
+
min-height: var(--form-height-md);
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
.mint-time-picker__input--lg {
|
|
55
|
-
padding: 0.
|
|
61
|
+
padding-top: 0.5rem;
|
|
62
|
+
padding-bottom: 0.5rem;
|
|
56
63
|
font-size: 1rem;
|
|
64
|
+
min-height: var(--form-height-lg);
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
.mint-time-picker__input--error,
|
|
@@ -78,17 +86,17 @@
|
|
|
78
86
|
position: absolute;
|
|
79
87
|
top: 0;
|
|
80
88
|
bottom: 0;
|
|
81
|
-
|
|
89
|
+
left: 0;
|
|
82
90
|
display: flex;
|
|
83
91
|
align-items: center;
|
|
84
|
-
padding-
|
|
92
|
+
padding-left: 0.625rem;
|
|
85
93
|
pointer-events: none;
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
.mint-time-picker__icon svg {
|
|
89
97
|
width: 0.875rem;
|
|
90
98
|
height: 0.875rem;
|
|
91
|
-
color: var(--text-
|
|
99
|
+
color: var(--text-muted);
|
|
92
100
|
}
|
|
93
101
|
|
|
94
102
|
/* Clear button */
|
|
@@ -96,7 +104,7 @@
|
|
|
96
104
|
position: absolute;
|
|
97
105
|
top: 0;
|
|
98
106
|
bottom: 0;
|
|
99
|
-
right:
|
|
107
|
+
right: 0.375rem;
|
|
100
108
|
display: flex;
|
|
101
109
|
align-items: center;
|
|
102
110
|
padding: 0 0.25rem;
|
|
@@ -104,7 +112,7 @@
|
|
|
104
112
|
border: none;
|
|
105
113
|
cursor: pointer;
|
|
106
114
|
color: var(--text-secondary);
|
|
107
|
-
transition: color
|
|
115
|
+
transition: color var(--mint-transition);
|
|
108
116
|
}
|
|
109
117
|
|
|
110
118
|
.mint-time-picker__clear-btn:hover {
|
|
@@ -116,18 +124,21 @@
|
|
|
116
124
|
height: 0.875rem;
|
|
117
125
|
}
|
|
118
126
|
|
|
119
|
-
/* Dropdown — placement only; the look is .mint-popover. */
|
|
127
|
+
/* Dropdown — placement only; the look is .mint-popover. Spans the field width. */
|
|
120
128
|
.mint-time-picker__dropdown {
|
|
121
129
|
position: absolute;
|
|
122
130
|
z-index: 50;
|
|
123
131
|
margin-top: 0.25rem;
|
|
124
132
|
width: 100%;
|
|
125
|
-
min-width:
|
|
133
|
+
min-width: 100%;
|
|
126
134
|
overflow: hidden;
|
|
127
135
|
}
|
|
128
136
|
|
|
129
|
-
/* Slot list */
|
|
137
|
+
/* Slot list — one column that fills the dropdown. */
|
|
130
138
|
.mint-time-picker__list {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
flex: 1;
|
|
131
142
|
max-height: 16rem;
|
|
132
143
|
overflow-y: auto;
|
|
133
144
|
padding: 0;
|
|
@@ -135,8 +146,11 @@
|
|
|
135
146
|
list-style: none;
|
|
136
147
|
}
|
|
137
148
|
|
|
138
|
-
/* Slot = menu item; the time is mono tabular. Selected =
|
|
149
|
+
/* Slot = 26px menu item; the time is mono tabular. Selected = soft primary fill + primary ink, no check. */
|
|
139
150
|
.mint-time-picker__slot {
|
|
151
|
+
width: 100%;
|
|
152
|
+
min-height: 26px;
|
|
153
|
+
flex-shrink: 0;
|
|
140
154
|
white-space: nowrap;
|
|
141
155
|
}
|
|
142
156
|
|
|
@@ -146,12 +160,13 @@
|
|
|
146
160
|
font-variant-numeric: tabular-nums;
|
|
147
161
|
}
|
|
148
162
|
|
|
149
|
-
|
|
150
|
-
|
|
163
|
+
/* 0,3,0 so the fill also wins over the menu-item hover / highlight (popover.css loads first). */
|
|
164
|
+
.mint-time-picker__list .mint-time-picker__slot--active.mint-menu-item {
|
|
165
|
+
background: var(--color-primary-soft);
|
|
151
166
|
}
|
|
152
167
|
|
|
153
|
-
.mint-time-picker__slot .mint-
|
|
154
|
-
|
|
168
|
+
.mint-time-picker__slot--active .mint-time-picker__slot-time {
|
|
169
|
+
font-weight: 500;
|
|
155
170
|
}
|
|
156
171
|
|
|
157
172
|
/* Unavailable slots stay readable (no opacity). */
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
border-radius: var(--radius-md);
|
|
24
24
|
background-color: var(--bg-card);
|
|
25
25
|
border: 1px solid var(--border-color);
|
|
26
|
-
box-shadow: var(--
|
|
26
|
+
box-shadow: var(--mint-shadow-pop);
|
|
27
27
|
pointer-events: auto;
|
|
28
28
|
cursor: pointer;
|
|
29
29
|
overflow: hidden;
|
|
@@ -45,7 +45,7 @@ html.dark .mint-toast__item {
|
|
|
45
45
|
box-shadow:
|
|
46
46
|
0 3px 0 -1px var(--bg-card),
|
|
47
47
|
0 3px 0 0 var(--border-color),
|
|
48
|
-
var(--
|
|
48
|
+
var(--mint-shadow-pop);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
.mint-toast__icon {
|
|
@@ -123,7 +123,7 @@ html.dark .mint-toast__item {
|
|
|
123
123
|
.mint-toast__action--primary {
|
|
124
124
|
background: var(--color-primary);
|
|
125
125
|
border-color: var(--color-primary);
|
|
126
|
-
color:
|
|
126
|
+
color: var(--text-on-accent);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
.mint-toast__action--primary:hover {
|
|
@@ -139,15 +139,16 @@ html.dark .mint-toast__item {
|
|
|
139
139
|
|
|
140
140
|
.mint-toast__close {
|
|
141
141
|
position: absolute;
|
|
142
|
-
top: 0.
|
|
143
|
-
right: 0.
|
|
142
|
+
top: 0.5rem;
|
|
143
|
+
right: 0.5rem;
|
|
144
144
|
display: flex;
|
|
145
145
|
align-items: center;
|
|
146
146
|
justify-content: center;
|
|
147
|
-
width: 1.
|
|
148
|
-
height: 1.
|
|
147
|
+
width: 1.375rem;
|
|
148
|
+
height: 1.375rem;
|
|
149
|
+
padding: 0;
|
|
149
150
|
border: 0;
|
|
150
|
-
border-radius: var(--radius
|
|
151
|
+
border-radius: var(--radius);
|
|
151
152
|
background: transparent;
|
|
152
153
|
color: var(--text-muted);
|
|
153
154
|
cursor: pointer;
|
|
@@ -160,8 +161,9 @@ html.dark .mint-toast__item {
|
|
|
160
161
|
}
|
|
161
162
|
|
|
162
163
|
.mint-toast__close svg {
|
|
163
|
-
width: 0.
|
|
164
|
-
height: 0.
|
|
164
|
+
width: 0.875rem;
|
|
165
|
+
height: 0.875rem;
|
|
166
|
+
flex-shrink: 0;
|
|
165
167
|
}
|
|
166
168
|
|
|
167
169
|
/* TTL progress bar — shrinks 100% → 0 over duration */
|
|
@@ -61,13 +61,7 @@
|
|
|
61
61
|
width: 0.875rem;
|
|
62
62
|
height: 0.875rem;
|
|
63
63
|
flex-shrink: 0;
|
|
64
|
-
transition:
|
|
65
|
-
color 0.15s ease,
|
|
66
|
-
transform 0.15s ease;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.mint-toggle--row:hover .mint-toggle__row-icon {
|
|
70
|
-
transform: scale(1.04);
|
|
64
|
+
transition: color 0.15s ease;
|
|
71
65
|
}
|
|
72
66
|
|
|
73
67
|
.mint-toggle__row-svg {
|
|
@@ -209,8 +203,4 @@
|
|
|
209
203
|
.mint-toggle__knob {
|
|
210
204
|
transition: none;
|
|
211
205
|
}
|
|
212
|
-
|
|
213
|
-
.mint-toggle--row:hover .mint-toggle__row-icon {
|
|
214
|
-
transform: none;
|
|
215
|
-
}
|
|
216
206
|
}
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
display: inline-flex;
|
|
11
11
|
align-items: center;
|
|
12
12
|
gap: 0.5rem;
|
|
13
|
-
padding: 0.
|
|
13
|
+
padding: 0.25rem 0.5rem;
|
|
14
14
|
font-size: 0.75rem;
|
|
15
|
-
line-height: 1.
|
|
15
|
+
line-height: 1.35;
|
|
16
16
|
color: var(--bg-card);
|
|
17
17
|
background: var(--text-primary);
|
|
18
|
-
border-radius: var(--radius
|
|
18
|
+
border-radius: var(--radius);
|
|
19
19
|
white-space: nowrap;
|
|
20
20
|
pointer-events: none;
|
|
21
|
-
box-shadow: var(--shadow-
|
|
21
|
+
box-shadow: var(--mint-shadow-pop);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/* Multi-line opt-in via maxWidth prop */
|
|
@@ -35,13 +35,14 @@
|
|
|
35
35
|
.mint-tooltip__shortcut {
|
|
36
36
|
display: inline-flex;
|
|
37
37
|
align-items: center;
|
|
38
|
-
padding: 0
|
|
38
|
+
padding: 0 0.25rem;
|
|
39
39
|
font-family: var(--font-mono);
|
|
40
40
|
font-size: 0.6875rem;
|
|
41
|
-
background:
|
|
42
|
-
border: 1px solid color-mix(in srgb, var(--bg-card)
|
|
43
|
-
border-radius:
|
|
44
|
-
line-height:
|
|
41
|
+
background: transparent;
|
|
42
|
+
border: 1px solid color-mix(in srgb, var(--bg-card) 22%, transparent);
|
|
43
|
+
border-radius: var(--radius-sm);
|
|
44
|
+
line-height: 1rem;
|
|
45
|
+
opacity: 0.85;
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
/* Arrow — same color as the tooltip bg */
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
background-color: var(--bg-secondary);
|
|
15
15
|
border: 1px solid var(--border-color);
|
|
16
16
|
border-radius: var(--radius-md);
|
|
17
|
-
transition: border-color
|
|
17
|
+
transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
|
|
18
18
|
overflow: hidden;
|
|
19
|
+
box-sizing: border-box;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
.mint-unit-input__controls--sm { min-height: var(--form-height-sm); }
|
|
@@ -49,7 +50,7 @@
|
|
|
49
50
|
color: var(--text-muted);
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
/* ---------- Value input —
|
|
53
|
+
/* ---------- Value input — mono, left-aligned ---------- */
|
|
53
54
|
|
|
54
55
|
.mint-unit-input__value {
|
|
55
56
|
flex: 1;
|
|
@@ -76,9 +77,9 @@
|
|
|
76
77
|
|
|
77
78
|
/* Horizontal padding matches BaseInput canonical scale (10/12/16) so FormField's
|
|
78
79
|
12px label indent aligns with the value text across all input types. */
|
|
79
|
-
.mint-unit-input__value--sm { padding: 0.
|
|
80
|
-
.mint-unit-input__value--md { padding: 0.
|
|
81
|
-
.mint-unit-input__value--lg { padding: 0.
|
|
80
|
+
.mint-unit-input__value--sm { padding: 0.25rem 0.625rem; font-size: 0.875rem; }
|
|
81
|
+
.mint-unit-input__value--md { padding: 0.375rem 0.75rem; font-size: 0.75rem; }
|
|
82
|
+
.mint-unit-input__value--lg { padding: 0.5rem 1rem; font-size: 1rem; }
|
|
82
83
|
|
|
83
84
|
/* ---------- Unit segment = BaseInput #suffix look (1e / 4b) ---------- */
|
|
84
85
|
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
font-size: 0.75rem;
|
|
101
102
|
line-height: 1;
|
|
102
103
|
white-space: nowrap;
|
|
103
|
-
transition: background-color
|
|
104
|
+
transition: background-color var(--mint-transition);
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
button.mint-unit-input__unit {
|
|
@@ -128,7 +129,7 @@ button.mint-unit-input__unit:focus-visible {
|
|
|
128
129
|
height: 12px;
|
|
129
130
|
flex-shrink: 0;
|
|
130
131
|
color: var(--text-secondary);
|
|
131
|
-
transition: transform
|
|
132
|
+
transition: transform var(--mint-transition);
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
.mint-unit-input__unit--open .mint-unit-input__chevron {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
justify-content: center;
|
|
82
82
|
font-weight: 500;
|
|
83
83
|
cursor: pointer;
|
|
84
|
-
transition: background-color
|
|
84
|
+
transition: background-color var(--mint-transition), border-color var(--mint-transition), box-shadow var(--mint-transition), opacity var(--mint-transition);
|
|
85
85
|
background-color: var(--bg-tertiary);
|
|
86
86
|
border: 1px dashed var(--border-color);
|
|
87
87
|
}
|
|
@@ -164,6 +164,13 @@
|
|
|
164
164
|
color: var(--text-primary);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
/* QC / iQC marker glyph */
|
|
168
|
+
.mint-well-plate__indicator {
|
|
169
|
+
font-family: var(--font-mono);
|
|
170
|
+
pointer-events: none;
|
|
171
|
+
color: var(--text-primary);
|
|
172
|
+
}
|
|
173
|
+
|
|
167
174
|
/* Condition header - drug label row */
|
|
168
175
|
.mint-well-plate__condition-label {
|
|
169
176
|
font-weight: 600;
|
|
@@ -184,7 +191,7 @@
|
|
|
184
191
|
height: 100%;
|
|
185
192
|
border-radius: 4px;
|
|
186
193
|
font-weight: 600;
|
|
187
|
-
transition: background-color
|
|
194
|
+
transition: background-color var(--mint-transition);
|
|
188
195
|
}
|
|
189
196
|
|
|
190
197
|
/* Row condition label cell (rotated text) */
|
package/src/styles/variables.css
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @import '@morscherlab/mint-sdk/styles';
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
@import url('https://fonts.googleapis.com/css2?family=
|
|
6
|
+
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap');
|
|
7
7
|
|
|
8
8
|
/* ==========================================================================
|
|
9
9
|
CSS Variables - Light Mode
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
/* Strong control border — unchecked checkbox/radio, toggle off track, dashed outlines (~3.2:1 light, ~4.2:1 dark). */
|
|
22
22
|
--_control-border-strong: color-mix(in srgb, var(--text-secondary) 75%, var(--border-color));
|
|
23
23
|
/* Field border on hover. */
|
|
24
|
-
--_field-border-hover:
|
|
25
|
-
/* Ink: primary / error text on card and tinted surfaces.
|
|
26
|
-
|
|
24
|
+
--_field-border-hover: var(--border-strong);
|
|
25
|
+
/* Ink: primary / error text on card and tinted surfaces. html.dark lifts
|
|
26
|
+
these toward --text-primary. */
|
|
27
27
|
--_ink-primary: var(--color-primary-hover);
|
|
28
28
|
--_ink-error: var(--mint-error-hover);
|
|
29
29
|
|
|
@@ -33,11 +33,12 @@
|
|
|
33
33
|
--bg-tertiary: #F1F5F9;
|
|
34
34
|
--bg-card: #FFFFFF;
|
|
35
35
|
--bg-hover: #F1F5F9;
|
|
36
|
-
--border-color: #
|
|
37
|
-
--border-light: #
|
|
36
|
+
--border-color: #E2E8F0;
|
|
37
|
+
--border-light: #F1F5F9;
|
|
38
|
+
--border-strong: #CBD5E1;
|
|
38
39
|
|
|
39
40
|
/* Text colors */
|
|
40
|
-
--text-primary: #
|
|
41
|
+
--text-primary: #0F172A;
|
|
41
42
|
--text-secondary: #64748B;
|
|
42
43
|
--text-muted: #94A3B8;
|
|
43
44
|
/* De-emphasized label for low-emphasis interactive controls (secondary/ghost
|
|
@@ -46,25 +47,36 @@
|
|
|
46
47
|
where --text-secondary would drop to ~4.35:1. */
|
|
47
48
|
--text-secondary-strong: #475569;
|
|
48
49
|
|
|
49
|
-
/* Brand colors
|
|
50
|
-
|
|
50
|
+
/* Brand colors — one teal accent: teal-600 fills, teal-700 hover + ink,
|
|
51
|
+
teal-800 pressed. White on #0D9488 is 3.74:1, a known AA exception. */
|
|
52
|
+
--color-primary: #0D9488;
|
|
51
53
|
--color-primary-hover: #0F766E;
|
|
52
|
-
--color-primary-
|
|
53
|
-
--color-
|
|
54
|
-
--color-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
--
|
|
61
|
-
|
|
62
|
-
--
|
|
63
|
-
|
|
64
|
-
--color-
|
|
65
|
-
--color-
|
|
66
|
-
--color-
|
|
67
|
-
|
|
54
|
+
--color-primary-pressed: #115E59;
|
|
55
|
+
--color-primary-soft: rgba(13, 148, 136, 0.10);
|
|
56
|
+
--color-primary-border: #99F6E4;
|
|
57
|
+
/* Fixed teal scale, the same in both themes. */
|
|
58
|
+
--color-primary-50: #F0FDFA;
|
|
59
|
+
--color-primary-100: #CCFBF1;
|
|
60
|
+
--color-primary-500: #14B8A6;
|
|
61
|
+
--color-primary-600: #0D9488;
|
|
62
|
+
--mint-primary: var(--color-primary);
|
|
63
|
+
/* Text and icons on an accent fill (filled buttons, Save). */
|
|
64
|
+
--text-on-accent: #FFFFFF;
|
|
65
|
+
/* Retired hues, aliased to the accent until 1.5 (mint doctor warns on use). */
|
|
66
|
+
--color-cta: var(--color-primary);
|
|
67
|
+
--color-cta-hover: var(--color-primary-hover);
|
|
68
|
+
--color-purple: var(--color-primary);
|
|
69
|
+
|
|
70
|
+
/* Entity colors — retired hues, aliased to slate until 1.5. Entities are told
|
|
71
|
+
apart by icon and label, not by hue. Only -hover has no neutral token. */
|
|
72
|
+
--color-experiment: var(--text-secondary-strong);
|
|
73
|
+
--color-experiment-hover: #334155;
|
|
74
|
+
--color-experiment-soft: var(--bg-tertiary);
|
|
75
|
+
--color-experiment-border: var(--border-strong);
|
|
76
|
+
--color-project: var(--color-experiment);
|
|
77
|
+
--color-project-hover: var(--color-experiment-hover);
|
|
78
|
+
--color-project-soft: var(--color-experiment-soft);
|
|
79
|
+
--color-project-border: var(--color-experiment-border);
|
|
68
80
|
|
|
69
81
|
/* MINT brand mark — used for browser theme-color, marketing chrome, app icon background */
|
|
70
82
|
--mint-brand: #7BD0B5;
|
|
@@ -76,13 +88,14 @@
|
|
|
76
88
|
--scrollbar-thumb: #D1D5DB;
|
|
77
89
|
--scrollbar-hover: #9CA3AF;
|
|
78
90
|
|
|
79
|
-
/* Shadows
|
|
80
|
-
|
|
81
|
-
--shadow:
|
|
82
|
-
--shadow
|
|
83
|
-
--shadow
|
|
84
|
-
|
|
85
|
-
--
|
|
91
|
+
/* Shadows — flat by default (borders, not shadows); only floating layers
|
|
92
|
+
(popovers, menus, dialogs) get one. */
|
|
93
|
+
--shadow-sm: none;
|
|
94
|
+
--shadow: none;
|
|
95
|
+
--card-shadow: none;
|
|
96
|
+
--shadow-md: 0 4px 12px -2px rgba(15, 23, 42, 0.10), 0 1px 3px rgba(15, 23, 42, 0.06);
|
|
97
|
+
--shadow-lg: 0 16px 40px -8px rgba(15, 23, 42, 0.18), 0 2px 6px rgba(15, 23, 42, 0.06);
|
|
98
|
+
--mint-shadow-pop: 0 4px 12px -2px rgba(15, 23, 42, 0.10), 0 1px 3px rgba(15, 23, 42, 0.06);
|
|
86
99
|
|
|
87
100
|
/* Categorical sample scale — mirrored by SAMPLE_COLOR_SCALE in
|
|
88
101
|
src/utils/color.ts. The JS constant carries the same hexes as a
|
|
@@ -106,20 +119,22 @@
|
|
|
106
119
|
/* Motion — the SDK's standard easing curve. */
|
|
107
120
|
--mint-ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
|
|
108
121
|
|
|
109
|
-
/* Typography —
|
|
110
|
-
--font-sans: '
|
|
111
|
-
--font-mono: '
|
|
122
|
+
/* Typography — Geist for UI text, Geist Mono for codes, m/z, RT, counts and timestamps. */
|
|
123
|
+
--font-sans: 'Geist', system-ui, -apple-system, sans-serif;
|
|
124
|
+
--font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
112
125
|
|
|
113
|
-
/* Border radius */
|
|
114
|
-
--radius-sm:
|
|
115
|
-
--radius:
|
|
116
|
-
--radius-md:
|
|
117
|
-
--radius-lg:
|
|
126
|
+
/* Border radius — code badges, tags, buttons/inputs, cards/dialogs. */
|
|
127
|
+
--radius-sm: 3px;
|
|
128
|
+
--radius: 4px;
|
|
129
|
+
--radius-md: 6px;
|
|
130
|
+
--radius-lg: 8px;
|
|
118
131
|
|
|
119
|
-
/* Form element heights
|
|
120
|
-
|
|
121
|
-
--form-height-
|
|
122
|
-
--form-height-
|
|
132
|
+
/* Form element heights and page gutter — compact (normal and compact
|
|
133
|
+
density); [data-density="comfortable"] below restores the larger set. */
|
|
134
|
+
--form-height-sm: 1.75rem;
|
|
135
|
+
--form-height-md: 2rem;
|
|
136
|
+
--form-height-lg: 2.5rem;
|
|
137
|
+
--mint-gutter: 0.5rem;
|
|
123
138
|
|
|
124
139
|
/* Semantic colors */
|
|
125
140
|
--mint-success: #10B981;
|
|
@@ -141,20 +156,20 @@
|
|
|
141
156
|
--mint-info-border: rgba(59, 130, 246, 0.3);
|
|
142
157
|
|
|
143
158
|
/* Extended brand tokens */
|
|
144
|
-
--color-primary-light: #
|
|
159
|
+
--color-primary-light: #5EEAD4;
|
|
145
160
|
|
|
146
161
|
/* Shared component tokens */
|
|
147
162
|
--mint-disabled-opacity: 0.6;
|
|
148
163
|
|
|
149
164
|
/* Focus ring tokens */
|
|
150
165
|
--focus-ring: 0 0 0 2px var(--color-primary);
|
|
151
|
-
--focus-ring-offset: 0 0 0 2px
|
|
166
|
+
--focus-ring-offset: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--color-primary);
|
|
152
167
|
--focus-ring-error: 0 0 0 2px var(--mint-error);
|
|
153
168
|
|
|
154
169
|
/* Soft focus rings — 3px translucent. Used by all form primitives
|
|
155
170
|
post-0.16 visual refresh. Solid variants above kept for legacy
|
|
156
171
|
components that haven't migrated yet. */
|
|
157
|
-
--focus-ring-soft: 0 0 0 3px rgba(
|
|
172
|
+
--focus-ring-soft: 0 0 0 3px rgba(13, 148, 136, 0.18);
|
|
158
173
|
/* Red is perceptually brighter than teal at equal alpha; drop 2pp to keep visual weight matched. */
|
|
159
174
|
--focus-ring-soft-error: 0 0 0 3px rgba(239, 68, 68, 0.18);
|
|
160
175
|
|
|
@@ -174,7 +189,8 @@
|
|
|
174
189
|
--mint-text-inverse: #FFFFFF;
|
|
175
190
|
--mint-border: var(--border-color);
|
|
176
191
|
--mint-border-focus: var(--color-primary);
|
|
177
|
-
|
|
192
|
+
/* Colour-only transitions; no lift, bounce or glow. */
|
|
193
|
+
--mint-transition: 120ms ease;
|
|
178
194
|
}
|
|
179
195
|
|
|
180
196
|
/* ==========================================================================
|
|
@@ -182,24 +198,35 @@
|
|
|
182
198
|
========================================================================== */
|
|
183
199
|
html.dark {
|
|
184
200
|
/* Background colors */
|
|
185
|
-
--bg-primary: #
|
|
186
|
-
--bg-secondary: #
|
|
187
|
-
--bg-tertiary: #
|
|
188
|
-
--bg-card: #
|
|
189
|
-
--bg-hover: #
|
|
190
|
-
--border-color: #
|
|
191
|
-
--border-light: #
|
|
201
|
+
--bg-primary: #0B1120;
|
|
202
|
+
--bg-secondary: #111827;
|
|
203
|
+
--bg-tertiary: #1E293B;
|
|
204
|
+
--bg-card: #111827;
|
|
205
|
+
--bg-hover: #1E293B;
|
|
206
|
+
--border-color: #1F2937;
|
|
207
|
+
--border-light: #172033;
|
|
208
|
+
--border-strong: #334155;
|
|
209
|
+
|
|
210
|
+
/* Brand colors - Dark mode (CTA, purple and entity aliases follow) */
|
|
211
|
+
--color-primary: #2DD4BF;
|
|
212
|
+
--color-primary-hover: #5EEAD4;
|
|
213
|
+
--color-primary-pressed: #99F6E4;
|
|
214
|
+
--color-primary-soft: rgba(45, 212, 191, 0.12);
|
|
215
|
+
--color-primary-border: rgba(45, 212, 191, 0.35);
|
|
216
|
+
/* Dark ink on the light accent fill (10.1:1 on #2DD4BF). */
|
|
217
|
+
--text-on-accent: #0B1120;
|
|
218
|
+
--color-experiment-hover: #E2E8F0;
|
|
192
219
|
|
|
193
220
|
/* Ink aliases (see :root): ~7:1 on --bg-card, tints included. */
|
|
194
221
|
--_ink-primary: color-mix(in srgb, var(--color-primary) 50%, var(--text-primary));
|
|
195
222
|
--_ink-error: color-mix(in srgb, var(--mint-error) 50%, var(--text-primary));
|
|
196
223
|
|
|
197
224
|
/* Text colors */
|
|
198
|
-
--text-primary: #
|
|
225
|
+
--text-primary: #F1F5F9;
|
|
199
226
|
--text-secondary: #94A3B8;
|
|
200
227
|
--text-muted: #64748B;
|
|
201
|
-
/* Dark-mode analog: soft light-gray instead of near-white, AA-safe (
|
|
202
|
-
on the dark secondary hover surface (--bg-tertiary #
|
|
228
|
+
/* Dark-mode analog: soft light-gray instead of near-white, AA-safe (9.9:1)
|
|
229
|
+
on the dark secondary hover surface (--bg-tertiary #1E293B). */
|
|
203
230
|
--text-secondary-strong: #CBD5E1;
|
|
204
231
|
|
|
205
232
|
/* Scrollbar */
|
|
@@ -207,22 +234,10 @@ html.dark {
|
|
|
207
234
|
--scrollbar-thumb: #475569;
|
|
208
235
|
--scrollbar-hover: #64748B;
|
|
209
236
|
|
|
210
|
-
/* Shadows - Dark mode */
|
|
211
|
-
--shadow-
|
|
212
|
-
--shadow: 0
|
|
213
|
-
--shadow-
|
|
214
|
-
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.3), 0 4px 6px -4px rgb(0 0 0 / 0.2);
|
|
215
|
-
--card-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.24), 0 1px 3px 0 rgb(0 0 0 / 0.32);
|
|
216
|
-
|
|
217
|
-
/* Entity accent colors - Dark mode */
|
|
218
|
-
--color-experiment: #22D3EE;
|
|
219
|
-
--color-experiment-hover: #67E8F9;
|
|
220
|
-
--color-experiment-soft: rgba(34, 211, 238, 0.16);
|
|
221
|
-
--color-experiment-border: rgba(34, 211, 238, 0.36);
|
|
222
|
-
--color-project: #38BDF8;
|
|
223
|
-
--color-project-hover: #7DD3FC;
|
|
224
|
-
--color-project-soft: rgba(56, 189, 248, 0.16);
|
|
225
|
-
--color-project-border: rgba(56, 189, 248, 0.38);
|
|
237
|
+
/* Shadows - Dark mode (floating layers only; --shadow-sm/--shadow/--card-shadow stay none) */
|
|
238
|
+
--shadow-md: 0 6px 16px -4px rgba(0, 0, 0, 0.6);
|
|
239
|
+
--shadow-lg: 0 16px 40px -8px rgba(0, 0, 0, 0.7);
|
|
240
|
+
--mint-shadow-pop: 0 6px 16px -4px rgba(0, 0, 0, 0.6);
|
|
226
241
|
|
|
227
242
|
/* Semantic colors - Dark mode */
|
|
228
243
|
--mint-success-bg: rgba(16, 185, 129, 0.15);
|
|
@@ -233,7 +248,7 @@ html.dark {
|
|
|
233
248
|
|
|
234
249
|
/* Focus ring - dark mode offset uses bg-primary instead of white */
|
|
235
250
|
--focus-ring-offset: 0 0 0 2px var(--bg-primary), 0 0 0 4px var(--color-primary);
|
|
236
|
-
--focus-ring-soft: 0 0 0 3px rgba(
|
|
251
|
+
--focus-ring-soft: 0 0 0 3px rgba(45, 212, 191, 0.22);
|
|
237
252
|
--focus-ring-soft-error: 0 0 0 3px rgba(248, 113, 113, 0.26);
|
|
238
253
|
|
|
239
254
|
/* Legacy aliases */
|
|
@@ -243,6 +258,15 @@ html.dark {
|
|
|
243
258
|
color-scheme: dark;
|
|
244
259
|
}
|
|
245
260
|
|
|
261
|
+
/* Comfortable density (html[data-density], written by the settings store):
|
|
262
|
+
the pre-v2 control heights and a wider gutter. */
|
|
263
|
+
[data-density="comfortable"] {
|
|
264
|
+
--form-height-sm: 2rem;
|
|
265
|
+
--form-height-md: 2.25rem;
|
|
266
|
+
--form-height-lg: 3rem;
|
|
267
|
+
--mint-gutter: 0.75rem;
|
|
268
|
+
}
|
|
269
|
+
|
|
246
270
|
/* ==========================================================================
|
|
247
271
|
Base Styles
|
|
248
272
|
========================================================================== */
|
|
@@ -261,6 +285,13 @@ code, pre {
|
|
|
261
285
|
font-family: var(--font-mono);
|
|
262
286
|
}
|
|
263
287
|
|
|
288
|
+
/* Links: accent ink. In the base layer, so Tailwind utilities and component
|
|
289
|
+
rules (both win over a layered element rule) keep their own link colours. */
|
|
290
|
+
@layer base {
|
|
291
|
+
a { color: var(--color-primary-hover); }
|
|
292
|
+
a:hover { color: var(--color-primary-pressed); }
|
|
293
|
+
}
|
|
294
|
+
|
|
264
295
|
/* Native controls do not inherit the page font; Tailwind preflight covers this
|
|
265
296
|
in the platform, but SDK consumers without it render buttons and selects in
|
|
266
297
|
the UA font. */
|
|
@@ -151,7 +151,11 @@ export interface GeneratedAnalysisManifest {
|
|
|
151
151
|
}
|
|
152
152
|
ui: {
|
|
153
153
|
title: string
|
|
154
|
+
/** Second top-bar line; the top bar falls back to `description`. */
|
|
155
|
+
subtitle?: string
|
|
154
156
|
description: string
|
|
157
|
+
/** Plugin icon for the standalone top bar. */
|
|
158
|
+
icon?: string
|
|
155
159
|
}
|
|
156
160
|
jobs: GeneratedJobDefinition[]
|
|
157
161
|
}
|