@morscherlab/mint-sdk 1.4.0-beta.8 → 1.4.0-beta.9

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 (257) hide show
  1. package/dist/{ActionMenu-CScINahU.js → AlertBox-B2Bgr3ei.js} +40 -209
  2. package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
  3. package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-Dq9W1jE2.js} +160 -109
  4. package/dist/AppSidebar-Dq9W1jE2.js.map +1 -0
  5. package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-nbJj51is.js} +2 -2
  6. package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-nbJj51is.js.map} +1 -1
  7. package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
  8. package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
  9. package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-65peG4Up.js} +198 -181
  10. package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
  11. package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-BtnnjWzs.js} +2 -2
  12. package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-BtnnjWzs.js.map} +1 -1
  13. package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-483nyI6b.js} +9 -9
  14. package/dist/SettingsModal-483nyI6b.js.map +1 -0
  15. package/dist/components/AppSidebar.vue.d.ts +1 -1
  16. package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
  17. package/dist/components/AuditTrail.vue.d.ts +1 -1
  18. package/dist/components/BaseSelect.vue.d.ts +2 -2
  19. package/dist/components/ChartContainer.vue.d.ts +2 -0
  20. package/dist/components/DatePicker.vue.d.ts +1 -1
  21. package/dist/components/ExperimentPopover.vue.d.ts +18 -0
  22. package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
  23. package/dist/components/FilePicker.vue.d.ts +1 -1
  24. package/dist/components/FileUploader.vue.d.ts +2 -2
  25. package/dist/components/PluginIcon.vue.d.ts +2 -2
  26. package/dist/components/SampleSelector.vue.d.ts +6 -6
  27. package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
  28. package/dist/components/StepWizard.vue.d.ts +3 -0
  29. package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
  30. package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
  31. package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
  32. package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
  33. package/dist/composables/createClient.d.ts +2 -0
  34. package/dist/composables/index.d.ts +1 -0
  35. package/dist/composables/pluginIdentity.d.ts +24 -0
  36. package/dist/composables/useAppExperiment.d.ts +8 -0
  37. package/dist/composables/useCalendarGrid.d.ts +1 -1
  38. package/dist/composables/useExperimentSelector.d.ts +6 -2
  39. package/dist/composables/usePlatform.d.ts +1 -0
  40. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
  41. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
  42. package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
  43. package/dist/data-CgILxDLW.js.map +1 -0
  44. package/dist/data.js +8 -8
  45. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
  46. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
  47. package/dist/index.js +19 -19
  48. package/dist/{install-DAID6c2-.js → install-BtLWTk6H.js} +15 -14
  49. package/dist/{install-DAID6c2-.js.map → install-BtLWTk6H.js.map} +1 -1
  50. package/dist/install.js +1 -1
  51. package/dist/{lab-DLwRl_Ql.js → lab-MHzp-_J8.js} +128 -147
  52. package/dist/lab-MHzp-_J8.js.map +1 -0
  53. package/dist/lab.js +4 -3
  54. package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
  55. package/dist/records-B6gpM_3e.js.map +1 -0
  56. package/dist/{runtime-D6gVat6r.js → runtime-7vfl_bI3.js} +27 -31
  57. package/dist/runtime-7vfl_bI3.js.map +1 -0
  58. package/dist/runtime.js +6 -6
  59. package/dist/{shell-5ju97nOS.js → shell-Cs9OJMnm.js} +5 -5
  60. package/dist/{shell-5ju97nOS.js.map → shell-Cs9OJMnm.js.map} +1 -1
  61. package/dist/shell.js +5 -5
  62. package/dist/styles.css +1606 -1666
  63. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  64. package/dist/types/generated/platformContext.d.ts +1 -0
  65. package/dist/types/generated-ui.d.ts +4 -0
  66. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
  67. package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
  68. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
  69. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
  70. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
  71. package/dist/useListReorder-BitdUhxn.js.map +1 -0
  72. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-DiwCt77M.js} +71 -57
  73. package/dist/useRackEditor-DiwCt77M.js.map +1 -0
  74. package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
  75. package/dist/useRealtime-C3iy9QkU.js.map +1 -0
  76. package/dist/useRequest-D506eHi8.js +244 -0
  77. package/dist/useRequest-D506eHi8.js.map +1 -0
  78. package/dist/utils/time.d.ts +7 -0
  79. package/package.json +1 -1
  80. package/src/__tests__/components/AppTopBar.test.ts +51 -2
  81. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  82. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  83. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  84. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  85. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  86. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  87. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  88. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  89. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  90. package/src/__tests__/components/DatePicker.test.ts +21 -0
  91. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  92. package/src/__tests__/components/EmptyState.test.ts +1 -1
  93. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  94. package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
  95. package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
  96. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  97. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  98. package/src/__tests__/components/SampleSelector.test.ts +13 -8
  99. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  100. package/src/__tests__/components/StepWizard.test.ts +11 -0
  101. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  102. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  103. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  104. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  105. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  106. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  107. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  108. package/src/__tests__/styles/cssTokens.test.ts +2 -2
  109. package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
  110. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  111. package/src/__tests__/utils/time.test.ts +18 -1
  112. package/src/components/AdductText.story.vue +7 -0
  113. package/src/components/AdductText.vue +1 -1
  114. package/src/components/AlertBox.story.vue +2 -2
  115. package/src/components/AlertBox.vue +18 -16
  116. package/src/components/AppSidebar.story.vue +0 -28
  117. package/src/components/AppTopBar.story.vue +47 -12
  118. package/src/components/AppTopBar.vue +118 -114
  119. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  120. package/src/components/ArtifactSaveDialog.vue +102 -12
  121. package/src/components/AuditTrail.story.vue +2 -1
  122. package/src/components/AuditTrail.vue +2 -21
  123. package/src/components/Avatar.vue +10 -14
  124. package/src/components/BaseSelect.multiple.story.vue +13 -2
  125. package/src/components/BaseSelect.vue +4 -3
  126. package/src/components/BatchProgressList.vue +35 -25
  127. package/src/components/ChartContainer.story.vue +2 -1
  128. package/src/components/ChartContainer.vue +8 -6
  129. package/src/components/ConfirmDialog.story.vue +1 -1
  130. package/src/components/EmptyState.vue +1 -1
  131. package/src/components/ExperimentPopover.story.vue +165 -53
  132. package/src/components/ExperimentPopover.vue +169 -187
  133. package/src/components/ExperimentSelectorModal.story.vue +40 -36
  134. package/src/components/ExperimentSelectorModal.vue +124 -110
  135. package/src/components/FormField.story.vue +8 -48
  136. package/src/components/GeneratedPluginView.vue +7 -1
  137. package/src/components/InstrumentStateBadge.vue +1 -1
  138. package/src/components/JobsStatusTray.vue +1 -1
  139. package/src/components/LoadingSpinner.vue +1 -1
  140. package/src/components/NumberInput.vue +3 -6
  141. package/src/components/PluginIcon.story.vue +2 -10
  142. package/src/components/PluginIcon.vue +2 -2
  143. package/src/components/PluginWorkspaceView.story.vue +1 -1
  144. package/src/components/RuntimeUpdateNotice.vue +1 -1
  145. package/src/components/SampleSelector.story.vue +1 -1
  146. package/src/components/SampleSelector.vue +27 -37
  147. package/src/components/SampleSelectorGroupNode.vue +1 -1
  148. package/src/components/SectionCard.story.vue +2 -2
  149. package/src/components/SequenceProgressBar.story.vue +9 -0
  150. package/src/components/SequenceProgressBar.vue +6 -1
  151. package/src/components/SettingsModal.schema.ts +1 -1
  152. package/src/components/SettingsModal.vue +2 -2
  153. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  154. package/src/components/SmartGroupManual.story.vue +1 -1
  155. package/src/components/StepWizard.story.vue +33 -0
  156. package/src/components/StepWizard.vue +8 -1
  157. package/src/components/WellPlate.story.vue +3 -1
  158. package/src/components/WellPlate.vue +7 -0
  159. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  160. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  161. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  162. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  163. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  164. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  165. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  166. package/src/composables/createClient.ts +2 -0
  167. package/src/composables/index.ts +1 -0
  168. package/src/composables/pluginIdentity.ts +31 -0
  169. package/src/composables/useAppExperiment.ts +20 -0
  170. package/src/composables/useCalendarGrid.ts +4 -3
  171. package/src/composables/useExperimentSelector.ts +77 -31
  172. package/src/styles/components/adduct-text.css +13 -5
  173. package/src/styles/components/alert-box.css +39 -58
  174. package/src/styles/components/app-layout.css +6 -5
  175. package/src/styles/components/app-page-selector.css +3 -1
  176. package/src/styles/components/app-pill-nav.css +11 -12
  177. package/src/styles/components/app-sidebar.css +9 -18
  178. package/src/styles/components/app-top-bar.css +57 -55
  179. package/src/styles/components/artifact-save-dialog.css +153 -2
  180. package/src/styles/components/audit-trail.css +16 -19
  181. package/src/styles/components/avatar.css +6 -4
  182. package/src/styles/components/batch-progress-list.css +38 -36
  183. package/src/styles/components/button.css +28 -59
  184. package/src/styles/components/calendar.css +12 -12
  185. package/src/styles/components/chart-container.css +34 -23
  186. package/src/styles/components/checkbox.css +2 -12
  187. package/src/styles/components/collapsible-card.css +27 -29
  188. package/src/styles/components/confirm-dialog.css +13 -14
  189. package/src/styles/components/dataframe.css +12 -4
  190. package/src/styles/components/date-picker.css +80 -92
  191. package/src/styles/components/datetime-picker.css +31 -43
  192. package/src/styles/components/divider.css +20 -20
  193. package/src/styles/components/dose-calculator.css +3 -3
  194. package/src/styles/components/empty-state.css +20 -17
  195. package/src/styles/components/experiment-code-badge.css +2 -0
  196. package/src/styles/components/experiment-popover.css +174 -329
  197. package/src/styles/components/experiment-selector-modal.css +75 -56
  198. package/src/styles/components/file-picker.css +3 -3
  199. package/src/styles/components/file-uploader.css +38 -49
  200. package/src/styles/components/form-builder.css +3 -3
  201. package/src/styles/components/formula-input.css +1 -1
  202. package/src/styles/components/icon-button.css +18 -24
  203. package/src/styles/components/input.css +5 -4
  204. package/src/styles/components/instrument-monitor.css +13 -15
  205. package/src/styles/components/jobs-status-tray.css +31 -25
  206. package/src/styles/components/modal.css +2 -4
  207. package/src/styles/components/molecule-input.css +2 -2
  208. package/src/styles/components/multi-select.css +65 -117
  209. package/src/styles/components/number-input.css +26 -19
  210. package/src/styles/components/pill.css +3 -2
  211. package/src/styles/components/plate-editor.css +0 -1
  212. package/src/styles/components/plugin-icon.css +26 -23
  213. package/src/styles/components/popover.css +2 -2
  214. package/src/styles/components/presence-avatars.css +1 -1
  215. package/src/styles/components/protocol-step-editor.css +1 -3
  216. package/src/styles/components/resource-card.css +2 -2
  217. package/src/styles/components/resource-picker-list.css +6 -57
  218. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  219. package/src/styles/components/sample-selector.css +95 -79
  220. package/src/styles/components/schedule-calendar.css +8 -8
  221. package/src/styles/components/searchable-select.css +12 -12
  222. package/src/styles/components/section-card.css +28 -47
  223. package/src/styles/components/segmented-control.css +18 -15
  224. package/src/styles/components/select.css +3 -3
  225. package/src/styles/components/sequence-input.css +2 -2
  226. package/src/styles/components/sequence-progress-bar.css +17 -8
  227. package/src/styles/components/smart-group.css +18 -18
  228. package/src/styles/components/step-wizard.css +52 -16
  229. package/src/styles/components/tabs.css +2 -2
  230. package/src/styles/components/textarea.css +3 -3
  231. package/src/styles/components/time-picker.css +36 -21
  232. package/src/styles/components/toast.css +12 -10
  233. package/src/styles/components/toggle.css +1 -11
  234. package/src/styles/components/tooltip.css +10 -9
  235. package/src/styles/components/unit-input.css +8 -7
  236. package/src/styles/components/well-plate.css +9 -2
  237. package/src/styles/variables.css +106 -75
  238. package/src/types/componentWorkflowTypes.ts +2 -0
  239. package/src/types/generated/platformContext.ts +1 -0
  240. package/src/types/generated-ui.ts +4 -0
  241. package/src/utils/time.ts +21 -0
  242. package/dist/ActionMenu-CScINahU.js.map +0 -1
  243. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  244. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  245. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  246. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  247. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  248. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  249. package/dist/data-C2PwI_dn.js.map +0 -1
  250. package/dist/lab-DLwRl_Ql.js.map +0 -1
  251. package/dist/records-BzTcxekG.js.map +0 -1
  252. package/dist/runtime-D6gVat6r.js.map +0 -1
  253. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  254. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  255. package/dist/useRealtime-PalKue84.js.map +0 -1
  256. package/dist/useRequest-D5JDfsgZ.js +0 -76
  257. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -7,38 +7,17 @@
7
7
  gap: 0.5rem;
8
8
  border-radius: var(--radius-md);
9
9
  font-weight: 500;
10
- /* Tactile physicality: 150ms ease-out-quart for rising states (default → hover).
11
- Dimension comes from a soft colored shadow (added per-variant below) plus a
12
- 1px translateY lift on hover — no gradient overlay. Press is snapped to 50ms
13
- via the :active override so the down-stroke feels instantaneous. */
10
+ /* Flat surface: hover is one surface step or a darker fill, press a darker
11
+ fill still. No lift, no coloured shadow; colour transitions only. */
14
12
  transition:
15
- color 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
16
- background-color 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
17
- border-color 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
18
- box-shadow 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
19
- transform 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1));
13
+ color var(--mint-transition),
14
+ background-color var(--mint-transition),
15
+ border-color var(--mint-transition);
20
16
  line-height: 1.25;
21
17
  white-space: nowrap;
22
18
  cursor: pointer;
23
19
  border: none;
24
20
  box-sizing: border-box;
25
- /* Pre-stage transform so initial paint and active state share the same
26
- transform layer — prevents a 1px flicker on first press. */
27
- transform: translateY(0);
28
- }
29
-
30
- /* Hover: gentle lift. Per-variant shadows deepen on hover below. */
31
- .mint-button:hover:not(.mint-button--disabled) {
32
- transform: translateY(-1px);
33
- }
34
-
35
- /* Press: 50ms snap back to baseline, shadow off.
36
- The asymmetry between 50ms press and 150ms rise creates the spring-release
37
- sensation users recognize from mechanical keyboards. */
38
- .mint-button:active:not(.mint-button--disabled) {
39
- transform: translateY(0);
40
- box-shadow: none;
41
- transition-duration: 0.05s;
42
21
  }
43
22
 
44
23
  .mint-button:focus-visible {
@@ -67,61 +46,60 @@
67
46
  /* Variants */
68
47
  .mint-button--primary {
69
48
  background-color: var(--color-primary);
70
- color: white;
71
- box-shadow: 0 1px 2px rgba(20, 184, 166, 0.20);
49
+ color: var(--text-on-accent);
72
50
  }
73
51
 
74
52
  .mint-button--primary:hover:not(.mint-button--disabled) {
75
53
  background-color: var(--color-primary-hover);
76
- box-shadow: 0 2px 5px rgba(20, 184, 166, 0.28);
77
54
  }
78
55
 
79
56
  .mint-button--secondary {
80
57
  background-color: var(--bg-secondary);
81
- color: var(--text-secondary-strong);
58
+ color: var(--text-primary);
82
59
  border: 1px solid var(--border-color);
83
- /* Secondary is lower-emphasis through surface, border, and shadow, but keeps
60
+ /* Secondary is lower-emphasis through surface and border, but keeps
84
61
  medium label weight so it still reads as an actionable button. */
85
62
  font-weight: 500;
86
- box-shadow: 0 1px 1px rgba(15, 23, 42, 0.03);
87
63
  }
88
64
 
89
65
  .mint-button--secondary:hover:not(.mint-button--disabled) {
90
66
  background-color: var(--bg-tertiary);
91
- box-shadow: 0 2px 4px rgba(15, 23, 42, 0.06);
67
+ border-color: var(--border-strong);
92
68
  }
93
69
 
94
70
  .mint-button--cta {
95
71
  background-color: var(--color-cta);
96
- color: white;
97
- box-shadow: 0 1px 2px rgba(249, 115, 22, 0.20);
72
+ color: var(--text-on-accent);
98
73
  }
99
74
 
100
75
  .mint-button--cta:hover:not(.mint-button--disabled) {
101
76
  background-color: var(--color-cta-hover);
102
- box-shadow: 0 2px 5px rgba(249, 115, 22, 0.28);
103
77
  }
104
78
 
105
79
  .mint-button--danger {
106
80
  background-color: var(--mint-error);
107
81
  color: white;
108
- box-shadow: 0 1px 2px rgba(239, 68, 68, 0.20);
109
82
  }
110
83
 
111
84
  .mint-button--danger:hover:not(.mint-button--disabled) {
112
85
  background-color: var(--mint-error-hover);
113
- box-shadow: 0 2px 5px rgba(239, 68, 68, 0.28);
114
86
  }
115
87
 
88
+ /* Success shares the accent fill (one accent). */
116
89
  .mint-button--success {
117
- background-color: var(--mint-success);
118
- color: white;
119
- box-shadow: 0 1px 2px rgba(16, 185, 129, 0.20);
90
+ background-color: var(--color-primary);
91
+ color: var(--text-on-accent);
120
92
  }
121
93
 
122
94
  .mint-button--success:hover:not(.mint-button--disabled) {
123
- background-color: var(--mint-success-hover);
124
- box-shadow: 0 2px 5px rgba(16, 185, 129, 0.28);
95
+ background-color: var(--color-primary-hover);
96
+ }
97
+
98
+ /* Pressed: one step darker than hover. */
99
+ .mint-button--primary:active:not(.mint-button--disabled),
100
+ .mint-button--cta:active:not(.mint-button--disabled),
101
+ .mint-button--success:active:not(.mint-button--disabled) {
102
+ background-color: var(--color-primary-pressed);
125
103
  }
126
104
 
127
105
  .mint-button--ghost {
@@ -135,10 +113,11 @@
135
113
  background-color: var(--bg-tertiary);
136
114
  }
137
115
 
138
- /* Sizes */
116
+ /* Sizes — the vertical padding stays under --form-height-*, so the
117
+ density token sets the height (28/32/40px, comfortable 32/36/48px). */
139
118
  .mint-button--sm {
140
- padding: 0.375rem 0.75rem;
141
- font-size: 0.875rem;
119
+ padding: 0.25rem 0.75rem;
120
+ font-size: 0.8125rem;
142
121
  font-weight: 500;
143
122
  min-height: var(--form-height-sm);
144
123
  }
@@ -148,13 +127,13 @@
148
127
  }
149
128
 
150
129
  .mint-button--md {
151
- padding: 0.5rem 1rem;
130
+ padding: 0.375rem 1rem;
152
131
  font-size: 0.875rem;
153
132
  min-height: var(--form-height-md);
154
133
  }
155
134
 
156
135
  .mint-button--lg {
157
- padding: 0.75rem 1.5rem;
136
+ padding: 0.5rem 1.5rem;
158
137
  font-size: 1rem;
159
138
  min-height: var(--form-height-lg);
160
139
  }
@@ -187,18 +166,8 @@
187
166
  }
188
167
  }
189
168
 
190
- /* Respect motion preferences: disable lift/press but keep color/shadow
191
- transitions (those don't trigger vestibular responses). */
192
169
  @media (prefers-reduced-motion: reduce) {
193
170
  .mint-button {
194
- transition:
195
- color 0.15s ease,
196
- background-color 0.15s ease,
197
- border-color 0.15s ease,
198
- box-shadow 0.15s ease;
199
- }
200
- .mint-button:hover:not(.mint-button--disabled),
201
- .mint-button:active:not(.mint-button--disabled) {
202
- transform: none;
171
+ transition: none;
203
172
  }
204
173
  }
@@ -4,8 +4,8 @@
4
4
  display: inline-block;
5
5
  background-color: var(--bg-secondary);
6
6
  border: 1px solid var(--border-color);
7
- border-radius: var(--radius-md);
8
- padding: 0.75rem;
7
+ border-radius: var(--radius-lg);
8
+ padding: 0.5rem;
9
9
  user-select: none;
10
10
  }
11
11
 
@@ -14,11 +14,11 @@
14
14
  display: flex;
15
15
  align-items: center;
16
16
  justify-content: space-between;
17
- margin-bottom: 0.5rem;
17
+ margin-bottom: 0.375rem;
18
18
  }
19
19
 
20
20
  .mint-calendar__title {
21
- font-size: 0.875rem;
21
+ font-size: 0.8125rem;
22
22
  font-weight: 600;
23
23
  color: var(--text-primary);
24
24
  }
@@ -30,11 +30,11 @@
30
30
  width: 1.75rem;
31
31
  height: 1.75rem;
32
32
  border: none;
33
- border-radius: var(--radius-sm);
33
+ border-radius: var(--radius);
34
34
  background: transparent;
35
35
  color: var(--text-secondary);
36
36
  cursor: pointer;
37
- transition: background-color 0.15s ease, color 0.15s ease;
37
+ transition: background-color var(--mint-transition), color var(--mint-transition);
38
38
  }
39
39
 
40
40
  .mint-calendar__nav-btn:hover {
@@ -64,7 +64,7 @@
64
64
  text-align: center;
65
65
  font-size: 0.6875rem;
66
66
  font-weight: 600;
67
- color: var(--text-secondary);
67
+ color: var(--text-muted);
68
68
  padding: 0.25rem 0;
69
69
  }
70
70
 
@@ -85,10 +85,11 @@
85
85
  width: 2.25rem;
86
86
  height: 2.25rem;
87
87
  border: none;
88
- border-radius: var(--radius-sm);
88
+ border-radius: var(--radius);
89
89
  background: transparent;
90
90
  color: var(--text-primary);
91
91
  font-size: 0.8125rem;
92
+ font-variant-numeric: tabular-nums;
92
93
  cursor: default;
93
94
  padding: 0;
94
95
  transition: background-color 0.1s ease, color 0.1s ease;
@@ -102,16 +103,15 @@
102
103
  background-color: var(--bg-hover);
103
104
  }
104
105
 
105
- /* Today */
106
+ /* Today = hairline ring; selected = filled. */
106
107
  .mint-calendar__day--today:not(.mint-calendar__day--selected) {
107
- font-weight: 700;
108
- box-shadow: inset 0 0 0 1.5px var(--color-primary);
108
+ box-shadow: inset 0 0 0 1px var(--border-strong);
109
109
  }
110
110
 
111
111
  /* Selected */
112
112
  .mint-calendar__day--selected {
113
113
  background-color: var(--color-primary);
114
- color: white;
114
+ color: var(--text-on-accent);
115
115
  font-weight: 600;
116
116
  }
117
117
 
@@ -22,14 +22,16 @@
22
22
  background: var(--bg-card);
23
23
  }
24
24
 
25
- /* One header for both variants (9a): 13px 600 title + 12px description on one line,
26
- legend items, then tools. */
25
+ /* One header for both variants (9a): a 44px strip with a 13px 600 title + 12px
26
+ description on one line, legend items, then tools. */
27
27
  .mint-chart__header {
28
28
  display: flex;
29
29
  align-items: center;
30
- gap: 0.75rem;
31
- padding: 0.625rem 0.875rem;
32
- border-bottom: 1px solid var(--border-light);
30
+ gap: 0.625rem;
31
+ min-height: 2.75rem;
32
+ padding: 0.25rem 0.5rem 0.25rem 0.75rem;
33
+ box-sizing: border-box;
34
+ border-bottom: 1px solid var(--border-color);
33
35
  flex-shrink: 0;
34
36
  }
35
37
 
@@ -85,7 +87,7 @@
85
87
  font-family: inherit;
86
88
  font-size: 0.75rem;
87
89
  cursor: pointer;
88
- transition: background-color 0.15s ease, opacity 0.15s ease;
90
+ transition: background-color var(--mint-transition), opacity var(--mint-transition);
89
91
  }
90
92
 
91
93
  .mint-chart__legend-item:hover {
@@ -105,7 +107,7 @@
105
107
  flex-shrink: 0;
106
108
  width: 0.625rem;
107
109
  height: 0.625rem;
108
- border-radius: 3px;
110
+ border-radius: var(--radius-sm);
109
111
  }
110
112
 
111
113
  .mint-chart__toolbar {
@@ -157,24 +159,24 @@
157
159
  padding: 1.5rem;
158
160
  }
159
161
 
160
- .mint-chart--frame .mint-chart__body > .mint-empty-state {
162
+ .mint-chart__empty {
161
163
  position: absolute;
162
164
  inset: 0;
163
- z-index: 10;
164
- max-width: none;
165
- padding: 1.5rem;
166
- background: var(--bg-card);
167
- }
168
-
169
- .mint-chart--frame .mint-empty-state__icon-wrapper {
170
- width: 2.5rem;
171
- height: 2.5rem;
172
- margin-bottom: 0.5rem;
173
- background: transparent;
165
+ display: flex;
166
+ flex-direction: column;
167
+ align-items: center;
168
+ justify-content: center;
169
+ gap: 4px;
170
+ padding: 1rem;
171
+ text-align: center;
172
+ color: var(--text-muted);
173
+ font-size: 0.75rem;
174
174
  }
175
175
 
176
- .mint-chart--frame .mint-empty-state__title {
176
+ .mint-chart__empty-title {
177
+ color: var(--text-primary);
177
178
  font-size: 0.8125rem;
179
+ font-weight: 600;
178
180
  }
179
181
 
180
182
  .mint-chart__legend {
@@ -185,7 +187,7 @@
185
187
  }
186
188
 
187
189
  .mint-chart__footer {
188
- padding: 0.625rem 0.875rem;
190
+ padding: 0.625rem 0.75rem;
189
191
  border-top: 1px solid var(--border-color);
190
192
  color: var(--text-secondary);
191
193
  font-size: 0.75rem;
@@ -194,11 +196,20 @@
194
196
  .mint-chart--frame .mint-chart__footer {
195
197
  display: flex;
196
198
  align-items: center;
197
- gap: 0.75rem;
198
- padding: 0.4375rem 0.875rem;
199
+ gap: 0.875rem;
200
+ min-height: 1.875rem;
201
+ padding: 0 0.75rem;
202
+ box-sizing: border-box;
203
+ overflow: hidden;
199
204
  background: var(--bg-primary);
200
205
  color: var(--text-secondary);
201
206
  font-family: var(--font-mono);
202
207
  font-size: 0.6875rem;
208
+ white-space: nowrap;
203
209
  flex-shrink: 0;
204
210
  }
211
+
212
+ .mint-chart--frame .mint-chart__footer b {
213
+ font-weight: 500;
214
+ color: var(--text-primary);
215
+ }
@@ -45,13 +45,7 @@
45
45
  width: 0.875rem;
46
46
  height: 0.875rem;
47
47
  flex-shrink: 0;
48
- transition:
49
- color 0.15s ease,
50
- transform 0.15s ease;
51
- }
52
-
53
- .mint-checkbox--row:hover .mint-checkbox__row-icon {
54
- transform: scale(1.04);
48
+ transition: color 0.15s ease;
55
49
  }
56
50
 
57
51
  .mint-checkbox__row-svg {
@@ -122,7 +116,7 @@
122
116
  .mint-checkbox__box--indeterminate {
123
117
  background-color: var(--color-primary);
124
118
  border-color: var(--color-primary);
125
- color: #FFFFFF;
119
+ color: var(--text-on-accent);
126
120
  }
127
121
 
128
122
  .mint-checkbox__native:focus-visible + .mint-checkbox__box {
@@ -205,8 +199,4 @@
205
199
  .mint-checkbox__box {
206
200
  transition: none;
207
201
  }
208
-
209
- .mint-checkbox--row:hover .mint-checkbox__row-icon {
210
- transform: none;
211
- }
212
202
  }
@@ -5,15 +5,11 @@
5
5
  border-radius: var(--radius-lg);
6
6
  overflow: hidden;
7
7
  background-color: var(--bg-card);
8
- transition:
9
- border-color 150ms ease,
10
- box-shadow 150ms ease,
11
- transform 150ms ease;
8
+ transition: border-color var(--mint-transition);
12
9
  }
13
10
 
14
11
  .mint-collapsible-card:hover {
15
12
  border-color: color-mix(in srgb, var(--color-primary) 20%, var(--border-color));
16
- box-shadow: var(--shadow-sm);
17
13
  }
18
14
 
19
15
  .mint-collapsible-card__header-shell {
@@ -34,7 +30,8 @@
34
30
  justify-content: flex-start;
35
31
  flex: 1;
36
32
  min-width: 0;
37
- padding: 0.75rem;
33
+ box-sizing: border-box;
34
+ padding: 0.375rem 0.625rem 0.375rem 0.75rem;
38
35
  text-align: left;
39
36
  background-color: transparent;
40
37
  border: none;
@@ -42,7 +39,7 @@
42
39
  transition: color 0.15s ease;
43
40
  gap: 0.75rem;
44
41
  font-family: inherit;
45
- min-height: 3rem;
42
+ min-height: 2.5rem;
46
43
  }
47
44
 
48
45
  .mint-collapsible-card__header:hover {
@@ -62,24 +59,29 @@
62
59
  .mint-collapsible-card__title-section {
63
60
  display: flex;
64
61
  align-items: center;
65
- gap: 0.75rem;
62
+ gap: 0.5rem;
66
63
  flex: 1;
67
64
  min-width: 0;
68
65
  }
69
66
 
67
+ /* Same density as SectionCard: a muted 20px icon, no tinted badge. The
68
+ `iconBg`/`iconColor` props set inline styles, hence !important. */
70
69
  .mint-collapsible-card__icon-badge {
71
70
  display: flex;
72
71
  align-items: center;
72
+ align-self: center;
73
73
  justify-content: center;
74
- width: 2rem;
75
- height: 2rem;
76
- border-radius: var(--radius-md);
74
+ width: 1.25rem;
75
+ height: 1.25rem;
76
+ margin: 0;
77
+ border-radius: var(--radius);
78
+ background: transparent !important;
77
79
  flex-shrink: 0;
78
- transition: transform 180ms ease, background-color 150ms ease;
79
80
  }
80
81
 
81
- .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge {
82
- transform: scale(1.04);
82
+ .mint-collapsible-card__icon-badge svg,
83
+ .mint-collapsible-card__icon-badge .mint-collapsible-card__icon-text {
84
+ color: var(--text-muted) !important;
83
85
  }
84
86
 
85
87
  .mint-collapsible-card__icon {
@@ -92,22 +94,23 @@
92
94
  line-height: 1;
93
95
  }
94
96
 
97
+ /* Title and subtitle on one baseline row. */
95
98
  .mint-collapsible-card__titles {
96
99
  display: flex;
97
- flex-direction: column;
98
- justify-content: center;
99
- gap: 0;
100
+ flex-direction: row;
101
+ align-items: baseline;
102
+ gap: 0.5rem;
100
103
  min-width: 0;
101
104
  padding: 0;
102
105
  }
103
106
 
104
107
  .mint-collapsible-card__title {
105
- font-size: 0.875rem;
108
+ font-size: 0.8125rem;
106
109
  font-weight: 600;
107
110
  color: var(--text-primary);
108
111
  margin: 0 !important;
109
112
  padding: 0 !important;
110
- line-height: 1.25;
113
+ line-height: 1.35;
111
114
  white-space: nowrap;
112
115
  overflow: hidden;
113
116
  text-overflow: ellipsis;
@@ -127,9 +130,10 @@
127
130
  .mint-collapsible-card__actions {
128
131
  display: flex;
129
132
  align-items: center;
130
- gap: 0.375rem;
133
+ align-self: stretch;
134
+ gap: 0.25rem;
131
135
  flex-shrink: 0;
132
- padding-right: 0.625rem;
136
+ padding-right: 0.5rem;
133
137
  }
134
138
 
135
139
  .mint-collapsible-card__badge {
@@ -139,7 +143,7 @@
139
143
  min-width: 1.25rem;
140
144
  height: 1.25rem;
141
145
  padding: 0 0.375rem;
142
- border-radius: 9999px;
146
+ border-radius: var(--radius);
143
147
  background: color-mix(in srgb, var(--mint-sidebar-badge-color) 14%, transparent);
144
148
  color: var(--mint-sidebar-badge-color);
145
149
  font-size: 0.6875rem;
@@ -260,7 +264,7 @@
260
264
  }
261
265
 
262
266
  .mint-collapsible-card__content {
263
- padding: 0.75rem;
267
+ padding: 0.5rem 0.75rem 0.625rem;
264
268
  }
265
269
 
266
270
  /* --------------------------------------------------------------------------
@@ -335,17 +339,11 @@
335
339
  }
336
340
 
337
341
  .mint-collapsible-card,
338
- .mint-collapsible-card__icon-badge,
339
342
  .mint-collapsible-card__action,
340
343
  .mint-collapsible-card__chevron-button {
341
344
  transition: none;
342
345
  }
343
346
 
344
- .mint-collapsible-card:hover,
345
- .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge {
346
- transform: none;
347
- }
348
-
349
347
  .collapse-enter-active,
350
348
  .collapse-leave-active {
351
349
  transition: none;
@@ -14,33 +14,32 @@
14
14
  /* Opt-in icon — only rendered when the #icon slot is provided. */
15
15
  .mint-confirm__icon {
16
16
  align-self: flex-start;
17
- width: 2.25rem;
18
- height: 2.25rem;
17
+ width: 2rem;
18
+ height: 2rem;
19
19
  display: grid;
20
20
  place-items: center;
21
- border-radius: 50%;
22
- padding: 0.5rem;
21
+ border-radius: var(--radius-md);
23
22
  }
24
23
 
25
24
  .mint-confirm__icon svg {
26
- width: 1.25rem;
27
- height: 1.25rem;
25
+ width: 1rem;
26
+ height: 1rem;
28
27
  }
29
28
 
30
29
  .mint-confirm__icon--error {
31
30
  background-color: var(--mint-error-bg);
32
- color: var(--mint-error);
31
+ color: var(--_ink-error);
33
32
  }
34
33
 
35
34
  .mint-confirm__icon--warning {
36
35
  background-color: var(--mint-warning-bg);
37
- color: var(--mint-warning);
36
+ color: var(--mint-warning-text);
38
37
  }
39
38
 
40
39
  .mint-confirm__icon--info,
41
40
  .mint-confirm__icon--primary {
42
41
  background-color: var(--color-primary-soft);
43
- color: var(--color-primary);
42
+ color: var(--_ink-primary);
44
43
  }
45
44
 
46
45
  .mint-confirm__icon--success {
@@ -59,17 +58,17 @@
59
58
  }
60
59
 
61
60
  .mint-confirm__message {
62
- font-size: 0.875rem;
63
- color: var(--text-primary);
61
+ font-size: 0.8125rem;
62
+ color: var(--text-secondary);
64
63
  margin-top: 0 !important;
65
64
  margin-bottom: 0 !important;
66
65
  padding: 0 !important;
67
- line-height: 1.6;
66
+ line-height: 1.5;
68
67
  }
69
68
 
70
- /* ─── Footer buttons — refresh-design tactile system ─── */
69
+ /* Footer buttons — the strip itself is BaseModal's footer. */
71
70
  .mint-confirm__footer {
72
71
  display: flex;
73
72
  justify-content: flex-end;
74
- gap: 0.625rem;
73
+ gap: 0.5rem;
75
74
  }
@@ -13,7 +13,6 @@
13
13
 
14
14
  .mint-dataframe--bordered {
15
15
  border: 1px solid var(--border-color);
16
- box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
17
16
  }
18
17
 
19
18
  /* Search header */
@@ -296,7 +295,13 @@
296
295
  text-align: center;
297
296
  }
298
297
 
299
- /* Row: hover = --bg-hover only; selected = primary 8% (2a). */
298
+ /* Inline-flex checkboxes sit on the baseline; a checked glyph changes it and the row shrinks 3px. */
299
+ .mint-dataframe__td--checkbox .mint-checkbox,
300
+ .mint-dataframe__th--checkbox .mint-checkbox {
301
+ vertical-align: middle;
302
+ }
303
+
304
+ /* Row: hover = --bg-hover only; selected = primary 8% plus a 2px accent inset (2a). */
300
305
  .mint-dataframe__row {
301
306
  transition: background-color 0.15s ease;
302
307
  }
@@ -342,6 +347,11 @@
342
347
  background-color: color-mix(in srgb, var(--color-primary) 8%, transparent) !important;
343
348
  }
344
349
 
350
+ /* On the first cell: the cell background would paint over an inset on the row. */
351
+ .mint-dataframe__row--selected > .mint-dataframe__td:first-child {
352
+ box-shadow: inset 2px 0 0 var(--color-primary);
353
+ }
354
+
345
355
  .mint-dataframe__row--selected:hover > .mint-dataframe__td {
346
356
  background-color: color-mix(in srgb, var(--color-primary) 11%, transparent) !important;
347
357
  }
@@ -367,8 +377,6 @@
367
377
  align-items: center;
368
378
  justify-content: center;
369
379
  background-color: color-mix(in srgb, var(--bg-primary) 74%, transparent);
370
- backdrop-filter: blur(2px);
371
- -webkit-backdrop-filter: blur(2px);
372
380
  z-index: 3;
373
381
  }
374
382