@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.
Files changed (261) 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-mvm--GxN.js} +161 -110
  4. package/dist/AppSidebar-mvm--GxN.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-DO3IZ7qz.js} +9 -9
  14. package/dist/SettingsModal-DO3IZ7qz.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/pluginWorkspaceModel.d.ts +2 -2
  37. package/dist/composables/useAppExperiment.d.ts +8 -0
  38. package/dist/composables/useCalendarGrid.d.ts +1 -1
  39. package/dist/composables/useExperimentSelector.d.ts +6 -2
  40. package/dist/composables/usePlatform.d.ts +1 -0
  41. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
  42. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
  43. package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
  44. package/dist/data-CgILxDLW.js.map +1 -0
  45. package/dist/data.js +8 -8
  46. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
  47. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
  48. package/dist/index.js +19 -19
  49. package/dist/{install-DAID6c2-.js → install-CsPFJSx3.js} +15 -14
  50. package/dist/{install-DAID6c2-.js.map → install-CsPFJSx3.js.map} +1 -1
  51. package/dist/install.js +1 -1
  52. package/dist/{lab-DLwRl_Ql.js → lab-MHzp-_J8.js} +128 -147
  53. package/dist/lab-MHzp-_J8.js.map +1 -0
  54. package/dist/lab.js +4 -3
  55. package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
  56. package/dist/records-B6gpM_3e.js.map +1 -0
  57. package/dist/{runtime-D6gVat6r.js → runtime-8bs8EogX.js} +27 -31
  58. package/dist/runtime-8bs8EogX.js.map +1 -0
  59. package/dist/runtime.js +6 -6
  60. package/dist/{shell-5ju97nOS.js → shell-CywENwBT.js} +5 -5
  61. package/dist/{shell-5ju97nOS.js.map → shell-CywENwBT.js.map} +1 -1
  62. package/dist/shell.js +5 -5
  63. package/dist/styles.css +1606 -1666
  64. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  65. package/dist/types/generated/platformContext.d.ts +1 -0
  66. package/dist/types/generated-ui.d.ts +4 -0
  67. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
  68. package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
  69. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
  70. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
  71. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
  72. package/dist/useListReorder-BitdUhxn.js.map +1 -0
  73. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-DiwCt77M.js} +71 -57
  74. package/dist/useRackEditor-DiwCt77M.js.map +1 -0
  75. package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
  76. package/dist/useRealtime-C3iy9QkU.js.map +1 -0
  77. package/dist/useRequest-D506eHi8.js +244 -0
  78. package/dist/useRequest-D506eHi8.js.map +1 -0
  79. package/dist/utils/time.d.ts +7 -0
  80. package/package.json +1 -1
  81. package/src/__tests__/components/AppTopBar.test.ts +51 -2
  82. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  83. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  84. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  85. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  86. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  87. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  88. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  89. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  90. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  91. package/src/__tests__/components/DatePicker.test.ts +21 -0
  92. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  93. package/src/__tests__/components/EmptyState.test.ts +1 -1
  94. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  95. package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
  96. package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
  97. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  98. package/src/__tests__/components/PluginWorkspaceView.test.ts +7 -0
  99. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  100. package/src/__tests__/components/SampleSelector.test.ts +13 -8
  101. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  102. package/src/__tests__/components/StepWizard.test.ts +11 -0
  103. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  104. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  105. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  106. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  107. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  108. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  109. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  110. package/src/__tests__/styles/cssTokens.test.ts +2 -2
  111. package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
  112. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  113. package/src/__tests__/utils/time.test.ts +18 -1
  114. package/src/components/AdductText.story.vue +7 -0
  115. package/src/components/AdductText.vue +1 -1
  116. package/src/components/AlertBox.story.vue +2 -2
  117. package/src/components/AlertBox.vue +18 -16
  118. package/src/components/AppSidebar.story.vue +0 -28
  119. package/src/components/AppTopBar.story.vue +47 -12
  120. package/src/components/AppTopBar.vue +118 -114
  121. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  122. package/src/components/ArtifactSaveDialog.vue +102 -12
  123. package/src/components/AuditTrail.story.vue +2 -1
  124. package/src/components/AuditTrail.vue +2 -21
  125. package/src/components/Avatar.vue +10 -14
  126. package/src/components/BaseSelect.multiple.story.vue +13 -2
  127. package/src/components/BaseSelect.vue +4 -3
  128. package/src/components/BatchProgressList.vue +35 -25
  129. package/src/components/ChartContainer.story.vue +2 -1
  130. package/src/components/ChartContainer.vue +8 -6
  131. package/src/components/ConfirmDialog.story.vue +1 -1
  132. package/src/components/EmptyState.vue +1 -1
  133. package/src/components/ExperimentPopover.story.vue +165 -53
  134. package/src/components/ExperimentPopover.vue +169 -187
  135. package/src/components/ExperimentSelectorModal.story.vue +40 -36
  136. package/src/components/ExperimentSelectorModal.vue +124 -110
  137. package/src/components/FormField.story.vue +8 -48
  138. package/src/components/GeneratedPluginView.vue +7 -1
  139. package/src/components/InstrumentStateBadge.vue +1 -1
  140. package/src/components/JobsStatusTray.vue +1 -1
  141. package/src/components/LoadingSpinner.vue +1 -1
  142. package/src/components/NumberInput.vue +3 -6
  143. package/src/components/PluginIcon.story.vue +2 -10
  144. package/src/components/PluginIcon.vue +2 -2
  145. package/src/components/PluginWorkspaceView.story.vue +1 -1
  146. package/src/components/RuntimeUpdateNotice.vue +1 -1
  147. package/src/components/SampleSelector.story.vue +1 -1
  148. package/src/components/SampleSelector.vue +27 -37
  149. package/src/components/SampleSelectorGroupNode.vue +1 -1
  150. package/src/components/SectionCard.story.vue +2 -2
  151. package/src/components/SequenceProgressBar.story.vue +9 -0
  152. package/src/components/SequenceProgressBar.vue +6 -1
  153. package/src/components/SettingsModal.schema.ts +1 -1
  154. package/src/components/SettingsModal.vue +2 -2
  155. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  156. package/src/components/SmartGroupManual.story.vue +1 -1
  157. package/src/components/StepWizard.story.vue +33 -0
  158. package/src/components/StepWizard.vue +8 -1
  159. package/src/components/WellPlate.story.vue +3 -1
  160. package/src/components/WellPlate.vue +7 -0
  161. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  162. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  163. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  164. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  165. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  166. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  167. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  168. package/src/composables/createClient.ts +2 -0
  169. package/src/composables/index.ts +1 -0
  170. package/src/composables/pluginIdentity.ts +31 -0
  171. package/src/composables/pluginWorkspaceModel.ts +2 -2
  172. package/src/composables/useAppExperiment.ts +20 -0
  173. package/src/composables/useCalendarGrid.ts +4 -3
  174. package/src/composables/useExperimentSelector.ts +77 -31
  175. package/src/composables/usePluginWorkspace.ts +1 -1
  176. package/src/styles/components/adduct-text.css +13 -5
  177. package/src/styles/components/alert-box.css +39 -58
  178. package/src/styles/components/app-layout.css +6 -5
  179. package/src/styles/components/app-page-selector.css +3 -1
  180. package/src/styles/components/app-pill-nav.css +11 -12
  181. package/src/styles/components/app-sidebar.css +9 -18
  182. package/src/styles/components/app-top-bar.css +57 -55
  183. package/src/styles/components/artifact-save-dialog.css +153 -2
  184. package/src/styles/components/audit-trail.css +16 -19
  185. package/src/styles/components/avatar.css +6 -4
  186. package/src/styles/components/batch-progress-list.css +38 -36
  187. package/src/styles/components/button.css +28 -59
  188. package/src/styles/components/calendar.css +12 -12
  189. package/src/styles/components/chart-container.css +34 -23
  190. package/src/styles/components/checkbox.css +2 -12
  191. package/src/styles/components/collapsible-card.css +27 -29
  192. package/src/styles/components/confirm-dialog.css +13 -14
  193. package/src/styles/components/dataframe.css +12 -4
  194. package/src/styles/components/date-picker.css +80 -92
  195. package/src/styles/components/datetime-picker.css +31 -43
  196. package/src/styles/components/divider.css +20 -20
  197. package/src/styles/components/dose-calculator.css +3 -3
  198. package/src/styles/components/empty-state.css +20 -17
  199. package/src/styles/components/experiment-code-badge.css +2 -0
  200. package/src/styles/components/experiment-popover.css +174 -329
  201. package/src/styles/components/experiment-selector-modal.css +75 -56
  202. package/src/styles/components/file-picker.css +3 -3
  203. package/src/styles/components/file-uploader.css +38 -49
  204. package/src/styles/components/form-builder.css +3 -3
  205. package/src/styles/components/formula-input.css +1 -1
  206. package/src/styles/components/icon-button.css +18 -24
  207. package/src/styles/components/input.css +5 -4
  208. package/src/styles/components/instrument-monitor.css +13 -15
  209. package/src/styles/components/jobs-status-tray.css +31 -25
  210. package/src/styles/components/modal.css +2 -4
  211. package/src/styles/components/molecule-input.css +2 -2
  212. package/src/styles/components/multi-select.css +65 -117
  213. package/src/styles/components/number-input.css +26 -19
  214. package/src/styles/components/pill.css +3 -2
  215. package/src/styles/components/plate-editor.css +0 -1
  216. package/src/styles/components/plugin-icon.css +26 -23
  217. package/src/styles/components/popover.css +2 -2
  218. package/src/styles/components/presence-avatars.css +1 -1
  219. package/src/styles/components/protocol-step-editor.css +1 -3
  220. package/src/styles/components/resource-card.css +2 -2
  221. package/src/styles/components/resource-picker-list.css +6 -57
  222. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  223. package/src/styles/components/sample-selector.css +95 -79
  224. package/src/styles/components/schedule-calendar.css +8 -8
  225. package/src/styles/components/searchable-select.css +12 -12
  226. package/src/styles/components/section-card.css +28 -47
  227. package/src/styles/components/segmented-control.css +18 -15
  228. package/src/styles/components/select.css +3 -3
  229. package/src/styles/components/sequence-input.css +2 -2
  230. package/src/styles/components/sequence-progress-bar.css +17 -8
  231. package/src/styles/components/smart-group.css +18 -18
  232. package/src/styles/components/step-wizard.css +52 -16
  233. package/src/styles/components/tabs.css +2 -2
  234. package/src/styles/components/textarea.css +3 -3
  235. package/src/styles/components/time-picker.css +36 -21
  236. package/src/styles/components/toast.css +12 -10
  237. package/src/styles/components/toggle.css +1 -11
  238. package/src/styles/components/tooltip.css +10 -9
  239. package/src/styles/components/unit-input.css +8 -7
  240. package/src/styles/components/well-plate.css +9 -2
  241. package/src/styles/variables.css +106 -75
  242. package/src/types/componentWorkflowTypes.ts +2 -0
  243. package/src/types/generated/platformContext.ts +1 -0
  244. package/src/types/generated-ui.ts +4 -0
  245. package/src/utils/time.ts +21 -0
  246. package/dist/ActionMenu-CScINahU.js.map +0 -1
  247. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  248. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  249. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  250. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  251. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  252. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  253. package/dist/data-C2PwI_dn.js.map +0 -1
  254. package/dist/lab-DLwRl_Ql.js.map +0 -1
  255. package/dist/records-BzTcxekG.js.map +0 -1
  256. package/dist/runtime-D6gVat6r.js.map +0 -1
  257. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  258. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  259. package/dist/useRealtime-PalKue84.js.map +0 -1
  260. package/dist/useRequest-D5JDfsgZ.js +0 -76
  261. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -11,21 +11,28 @@
11
11
  position: relative;
12
12
  }
13
13
 
14
- /* Trigger follows the field rules (1e): hover border, field focus, flat disabled. */
14
+ /* Trigger follows the field rules (1e): hover border, field focus, flat disabled.
15
+ Leading 14px calendar icon; the ISO value is mono. */
15
16
  .mint-date-picker__input {
16
17
  width: 100%;
17
18
  border-radius: var(--radius-md);
18
19
  border: 1px solid var(--border-color);
19
20
  background-color: var(--bg-secondary);
20
21
  color: var(--text-primary);
21
- transition: border-color 150ms ease, box-shadow 150ms ease;
22
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
22
23
  cursor: pointer;
23
- padding-right: 2.5rem;
24
+ padding-left: 1.875rem;
25
+ padding-right: 2rem;
24
26
  box-sizing: border-box;
25
- font-family: inherit;
27
+ font-family: var(--font-mono);
28
+ font-variant-numeric: tabular-nums;
26
29
  line-height: 1.25;
27
30
  }
28
31
 
32
+ .mint-date-picker__input::placeholder {
33
+ font-family: var(--font-sans);
34
+ }
35
+
29
36
  .mint-date-picker__input:hover:not(:disabled) {
30
37
  border-color: var(--_field-border-hover);
31
38
  }
@@ -38,19 +45,22 @@
38
45
  }
39
46
 
40
47
  .mint-date-picker__input--sm {
41
- padding: 0.375rem 0.625rem;
42
- font-size: 0.8125rem;
48
+ padding-top: 0.25rem;
49
+ padding-bottom: 0.25rem;
50
+ font-size: 0.75rem;
43
51
  min-height: var(--form-height-sm);
44
52
  }
45
53
 
46
54
  .mint-date-picker__input--md {
47
- padding: 0.5rem 0.75rem;
48
- font-size: 0.875rem;
55
+ padding-top: 0.375rem;
56
+ padding-bottom: 0.375rem;
57
+ font-size: 0.75rem;
49
58
  min-height: var(--form-height-md);
50
59
  }
51
60
 
52
61
  .mint-date-picker__input--lg {
53
- padding: 0.75rem 1rem;
62
+ padding-top: 0.5rem;
63
+ padding-bottom: 0.5rem;
54
64
  font-size: 1rem;
55
65
  min-height: var(--form-height-lg);
56
66
  }
@@ -76,39 +86,71 @@
76
86
  position: absolute;
77
87
  top: 0;
78
88
  bottom: 0;
79
- right: 0;
89
+ left: 0;
80
90
  display: flex;
81
91
  align-items: center;
82
- padding-right: 0.75rem;
92
+ padding-left: 0.625rem;
83
93
  pointer-events: none;
84
94
  }
85
95
 
86
96
  .mint-date-picker__icon svg {
87
97
  width: 0.875rem;
88
98
  height: 0.875rem;
89
- color: var(--text-secondary);
99
+ color: var(--text-muted);
100
+ }
101
+
102
+ /* Clear button (clearable + value) — trailing, inside the field. */
103
+ .mint-date-picker__clear-btn {
104
+ position: absolute;
105
+ top: 0;
106
+ bottom: 0;
107
+ right: 0.375rem;
108
+ display: flex;
109
+ align-items: center;
110
+ padding: 0 0.25rem;
111
+ background: transparent;
112
+ border: none;
113
+ border-radius: var(--radius-sm);
114
+ cursor: pointer;
115
+ color: var(--text-muted);
116
+ transition: color var(--mint-transition);
117
+ }
118
+
119
+ .mint-date-picker__clear-btn:hover {
120
+ color: var(--text-primary);
121
+ }
122
+
123
+ .mint-date-picker__clear-btn:focus-visible {
124
+ outline: none;
125
+ box-shadow: var(--focus-ring-offset);
126
+ }
127
+
128
+ .mint-date-picker__clear-btn svg {
129
+ width: 0.875rem;
130
+ height: 0.875rem;
90
131
  }
91
132
 
92
133
  /* Calendar dropdown (teleported to body, positioned via JS). */
93
134
  .mint-date-picker__dropdown {
94
135
  position: fixed;
95
136
  z-index: 9999;
96
- width: 16.5rem;
97
- padding: 0.625rem;
137
+ width: 252px;
138
+ padding: 0.5rem;
98
139
  }
99
140
 
100
- /* Calendar header — month label left, 28px ghost nav right. */
141
+ /* Calendar header — prev chevron | centred month label | next chevron. */
101
142
  .mint-date-picker__header {
102
143
  display: flex;
103
144
  align-items: center;
145
+ justify-content: space-between;
104
146
  gap: 0.25rem;
105
- margin-bottom: 0.5rem;
147
+ margin-bottom: 0.375rem;
106
148
  padding: 0 0.125rem;
107
149
  }
108
150
 
109
151
  .mint-date-picker__month-year {
110
- order: -1;
111
152
  flex: 1;
153
+ text-align: center;
112
154
  font-size: 0.8125rem;
113
155
  font-weight: 600;
114
156
  color: var(--text-primary);
@@ -118,15 +160,15 @@
118
160
  display: inline-flex;
119
161
  align-items: center;
120
162
  justify-content: center;
121
- width: 1.75rem;
122
- height: 1.75rem;
163
+ width: 1.5rem;
164
+ height: 1.5rem;
123
165
  padding: 0;
124
166
  border-radius: var(--radius);
125
167
  background: transparent;
126
168
  border: none;
127
169
  cursor: pointer;
128
170
  color: var(--text-secondary);
129
- transition: background-color 150ms ease, color 150ms ease;
171
+ transition: background-color var(--mint-transition), color var(--mint-transition);
130
172
  }
131
173
 
132
174
  .mint-date-picker__nav-btn:hover {
@@ -152,13 +194,16 @@
152
194
  }
153
195
 
154
196
  .mint-date-picker__weekday {
155
- text-align: center;
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: center;
200
+ height: 24px;
156
201
  font-size: 0.6875rem;
157
- color: var(--text-secondary);
158
- padding: 0.25rem 0;
202
+ font-weight: 600;
203
+ color: var(--text-muted);
159
204
  }
160
205
 
161
- /* Calendar grid — 32px days, mono tabular numbers. */
206
+ /* Calendar grid — 30px days, tabular numbers. */
162
207
  .mint-date-picker__grid {
163
208
  display: grid;
164
209
  grid-template-columns: repeat(7, 1fr);
@@ -167,24 +212,24 @@
167
212
 
168
213
  .mint-date-picker__day {
169
214
  position: relative;
170
- height: 2rem;
215
+ height: 30px;
171
216
  padding: 0;
172
217
  border-radius: var(--radius);
173
218
  border: none;
174
219
  background: transparent;
175
220
  cursor: pointer;
176
- transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
221
+ transition: background-color var(--mint-transition), color var(--mint-transition), box-shadow var(--mint-transition);
177
222
  display: flex;
178
223
  align-items: center;
179
224
  justify-content: center;
180
- font-family: var(--font-mono);
181
- font-size: 0.75rem;
225
+ font-family: inherit;
226
+ font-size: 0.8125rem;
182
227
  font-variant-numeric: tabular-nums;
183
228
  color: var(--text-primary);
184
229
  }
185
230
 
186
- .mint-date-picker__day:hover:not(:disabled, :focus-visible, .mint-date-picker__day--selected) {
187
- box-shadow: inset 0 0 0 1px var(--border-color);
231
+ .mint-date-picker__day:hover:not(:disabled, .mint-date-picker__day--selected) {
232
+ background-color: var(--bg-hover);
188
233
  }
189
234
 
190
235
  .mint-date-picker__day:focus-visible {
@@ -201,77 +246,20 @@
201
246
  cursor: not-allowed;
202
247
  }
203
248
 
204
- /* Today = primary number + 4px dot; selected = filled. The two never share a shape. */
205
- .mint-date-picker__day--today {
206
- color: var(--_ink-primary);
207
- font-weight: 600;
208
- }
209
-
210
- .mint-date-picker__day--today::after {
211
- content: '';
212
- position: absolute;
213
- bottom: 4px;
214
- left: 50%;
215
- width: 4px;
216
- height: 4px;
217
- margin-left: -2px;
218
- border-radius: 9999px;
219
- background: currentColor;
249
+ /* Today = hairline ring; selected = filled. The two never share a shape. */
250
+ .mint-date-picker__day--today:not(:focus-visible) {
251
+ box-shadow: inset 0 0 0 1px var(--border-strong);
220
252
  }
221
253
 
222
254
  .mint-date-picker__day--selected {
223
255
  background-color: var(--color-primary);
224
- color: white;
225
- font-weight: 600;
256
+ color: var(--text-on-accent);
226
257
  }
227
258
 
228
259
  .mint-date-picker__day--selected:hover:not(:disabled) {
229
260
  background-color: var(--color-primary-hover);
230
261
  }
231
262
 
232
- /* Footer */
233
- .mint-date-picker__footer {
234
- display: flex;
235
- align-items: center;
236
- justify-content: space-between;
237
- margin-top: 0.5rem;
238
- padding-top: 0.5rem;
239
- border-top: 1px solid var(--border-light);
240
- }
241
-
242
- .mint-date-picker__footer-btn {
243
- padding: 0;
244
- font-family: inherit;
245
- font-size: 0.75rem;
246
- background: transparent;
247
- border: none;
248
- border-radius: var(--radius-sm);
249
- cursor: pointer;
250
- transition: color 150ms ease;
251
- }
252
-
253
- .mint-date-picker__footer-btn:focus-visible {
254
- outline: none;
255
- box-shadow: var(--focus-ring-offset);
256
- }
257
-
258
- .mint-date-picker__today-btn {
259
- color: var(--color-primary);
260
- font-weight: 500;
261
- }
262
-
263
- .mint-date-picker__today-btn:hover {
264
- color: var(--_ink-primary);
265
- }
266
-
267
- .mint-date-picker__clear-btn {
268
- color: var(--text-secondary);
269
- }
270
-
271
- .mint-date-picker__clear-btn:hover {
272
- color: var(--text-primary);
273
- }
274
-
275
263
  /* Transition classes */
276
264
  .mint-date-picker__dropdown-enter-active {
277
265
  transition: opacity 0.1s ease-out, transform 0.1s ease-out;
@@ -297,7 +285,7 @@
297
285
  .mint-date-picker__input,
298
286
  .mint-date-picker__nav-btn,
299
287
  .mint-date-picker__day,
300
- .mint-date-picker__footer-btn,
288
+ .mint-date-picker__clear-btn,
301
289
  .mint-date-picker__dropdown-enter-active,
302
290
  .mint-date-picker__dropdown-leave-active {
303
291
  transition: none;
@@ -10,19 +10,25 @@
10
10
  position: relative;
11
11
  }
12
12
 
13
- /* Trigger follows the field rules (1e). */
13
+ /* Trigger follows the field rules (1e): leading calendar icon, ISO value in mono. */
14
14
  .mint-datetime-picker__input {
15
15
  width: 100%;
16
16
  border-radius: var(--radius-md);
17
17
  border: 1px solid var(--border-color);
18
18
  background-color: var(--bg-secondary);
19
19
  color: var(--text-primary);
20
- transition: border-color 150ms ease, box-shadow 150ms ease;
20
+ transition: border-color var(--mint-transition), box-shadow var(--mint-transition);
21
21
  cursor: pointer;
22
- padding-left: 2.5rem;
23
- padding-right: 2.5rem;
22
+ padding-left: 1.875rem;
23
+ padding-right: 0.75rem;
24
24
  box-sizing: border-box;
25
- font-family: inherit;
25
+ font-family: var(--font-mono);
26
+ font-variant-numeric: tabular-nums;
27
+ line-height: 1.25;
28
+ }
29
+
30
+ .mint-datetime-picker__input::placeholder {
31
+ font-family: var(--font-sans);
26
32
  }
27
33
 
28
34
  .mint-datetime-picker__input:hover:not(:disabled) {
@@ -37,21 +43,24 @@
37
43
  }
38
44
 
39
45
  .mint-datetime-picker__input--sm {
40
- padding-top: 0.375rem;
41
- padding-bottom: 0.375rem;
42
- font-size: 0.8125rem;
46
+ padding-top: 0.25rem;
47
+ padding-bottom: 0.25rem;
48
+ font-size: 0.75rem;
49
+ min-height: var(--form-height-sm);
43
50
  }
44
51
 
45
52
  .mint-datetime-picker__input--md {
46
- padding-top: 0.5rem;
47
- padding-bottom: 0.5rem;
48
- font-size: 0.875rem;
53
+ padding-top: 0.375rem;
54
+ padding-bottom: 0.375rem;
55
+ font-size: 0.75rem;
56
+ min-height: var(--form-height-md);
49
57
  }
50
58
 
51
59
  .mint-datetime-picker__input--lg {
52
- padding-top: 0.75rem;
53
- padding-bottom: 0.75rem;
60
+ padding-top: 0.5rem;
61
+ padding-bottom: 0.5rem;
54
62
  font-size: 1rem;
63
+ min-height: var(--form-height-lg);
55
64
  }
56
65
 
57
66
  .mint-datetime-picker__input--error,
@@ -78,31 +87,14 @@
78
87
  left: 0;
79
88
  display: flex;
80
89
  align-items: center;
81
- padding-left: 0.75rem;
90
+ padding-left: 0.625rem;
82
91
  pointer-events: none;
83
92
  }
84
93
 
85
94
  .mint-datetime-picker__icon-calendar svg {
86
95
  width: 0.875rem;
87
96
  height: 0.875rem;
88
- color: var(--text-secondary);
89
- }
90
-
91
- .mint-datetime-picker__icon-clock {
92
- position: absolute;
93
- top: 0;
94
- bottom: 0;
95
- right: 0;
96
- display: flex;
97
- align-items: center;
98
- padding-right: 0.75rem;
99
- pointer-events: none;
100
- }
101
-
102
- .mint-datetime-picker__icon-clock svg {
103
- width: 0.875rem;
104
- height: 0.875rem;
105
- color: var(--text-secondary);
97
+ color: var(--text-muted);
106
98
  }
107
99
 
108
100
  /* Dropdown — placement only; the look is .mint-popover. */
@@ -146,9 +138,9 @@
146
138
  overflow-y: auto;
147
139
  }
148
140
 
149
- /* Time chips share the day cell language: mono tabular, --radius, filled when selected. */
141
+ /* Time chips = time-picker slots: 26px, mono tabular, --radius, soft primary fill when selected. */
150
142
  .mint-datetime-picker__time-chip {
151
- height: 1.75rem;
143
+ height: 26px;
152
144
  padding: 0 0.25rem;
153
145
  font-family: var(--font-mono);
154
146
  font-size: 0.75rem;
@@ -159,7 +151,7 @@
159
151
  color: var(--text-primary);
160
152
  cursor: pointer;
161
153
  text-align: center;
162
- transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
154
+ transition: background-color var(--mint-transition), color var(--mint-transition), box-shadow var(--mint-transition);
163
155
  }
164
156
 
165
157
  .mint-datetime-picker__time-chip:hover:not(:disabled, :focus-visible, .mint-datetime-picker__time-chip--active) {
@@ -172,13 +164,9 @@
172
164
  }
173
165
 
174
166
  .mint-datetime-picker__time-chip--active {
175
- background-color: var(--color-primary);
176
- color: white;
177
- font-weight: 600;
178
- }
179
-
180
- .mint-datetime-picker__time-chip--active:hover {
181
- background-color: var(--color-primary-hover);
167
+ background-color: var(--color-primary-soft);
168
+ color: var(--_ink-primary);
169
+ font-weight: 500;
182
170
  }
183
171
 
184
172
  .mint-datetime-picker__time-chip--disabled {
@@ -205,7 +193,7 @@
205
193
  border: none;
206
194
  border-radius: var(--radius-sm);
207
195
  cursor: pointer;
208
- transition: color 150ms ease;
196
+ transition: color var(--mint-transition);
209
197
  color: var(--color-primary);
210
198
  }
211
199
 
@@ -1,4 +1,4 @@
1
- /* Divider Component Styles */
1
+ /* Divider Component Styles — a hairline; with a label it is a section heading */
2
2
 
3
3
  .mint-divider {
4
4
  display: flex;
@@ -18,44 +18,44 @@
18
18
  background-color: var(--border-color);
19
19
  }
20
20
 
21
- /* ---------- Center-aligned label ---------- */
21
+ .mint-divider--labeled {
22
+ gap: 0.625rem;
23
+ }
24
+
25
+ /* ---------- Center-aligned label: sentence case, muted ---------- */
22
26
  .mint-divider--center .mint-divider__label {
23
- padding: 0 0.75rem;
24
27
  font-size: 0.75rem;
25
- font-weight: 500;
26
- color: var(--text-secondary);
28
+ font-weight: 400;
29
+ color: var(--text-muted);
27
30
  white-space: nowrap;
28
31
  }
29
32
 
30
- /* ---------- Left-aligned label ---------- */
31
- .mint-divider--left {
32
- gap: 0.75rem;
33
- }
34
-
33
+ /* ---------- Left-aligned label: caption, then the rule. Sentence case, not
34
+ v2's uppercase: the SDK bans uppercase text (2a). ---------- */
35
35
  .mint-divider--left .mint-divider__label {
36
- font-size: 0.8125rem;
37
- font-weight: 500;
38
- color: var(--text-primary);
36
+ font-size: 0.6875rem;
37
+ font-weight: 600;
38
+ color: var(--text-secondary);
39
39
  white-space: nowrap;
40
40
  flex-shrink: 0;
41
41
  }
42
42
 
43
- /* Vertical */
43
+ /* Vertical — one text line tall */
44
44
  .mint-divider--vertical {
45
45
  display: inline-block;
46
46
  width: 1px;
47
- height: auto;
48
- align-self: stretch;
47
+ height: 1em;
48
+ align-self: center;
49
49
  background-color: var(--border-color);
50
50
  border: none;
51
51
  }
52
52
 
53
53
  /* Horizontal spacing */
54
54
  .mint-divider--sm:not(.mint-divider--vertical) { margin: 0.5rem 0; }
55
- .mint-divider--md:not(.mint-divider--vertical) { margin: 1rem 0; }
56
- .mint-divider--lg:not(.mint-divider--vertical) { margin: 1.5rem 0; }
55
+ .mint-divider--md:not(.mint-divider--vertical) { margin: 0.875rem 0; }
56
+ .mint-divider--lg:not(.mint-divider--vertical) { margin: 1.375rem 0; }
57
57
 
58
58
  /* Vertical spacing */
59
59
  .mint-divider--vertical.mint-divider--sm { margin: 0 0.5rem; }
60
- .mint-divider--vertical.mint-divider--md { margin: 0 1rem; }
61
- .mint-divider--vertical.mint-divider--lg { margin: 0 1.5rem; }
60
+ .mint-divider--vertical.mint-divider--md { margin: 0 0.875rem; }
61
+ .mint-divider--vertical.mint-divider--lg { margin: 0 1.375rem; }
@@ -29,7 +29,7 @@
29
29
  border: none;
30
30
  border-bottom: 2px solid transparent;
31
31
  cursor: pointer;
32
- transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
32
+ transition: color var(--mint-transition), border-color var(--mint-transition), background-color var(--mint-transition);
33
33
  }
34
34
 
35
35
  .mint-dose-calculator__tab:hover:not(.mint-dose-calculator__tab--active) {
@@ -102,7 +102,7 @@
102
102
  font-size: 0.875rem;
103
103
  font-weight: 600;
104
104
  color: var(--text-primary);
105
- font-family: 'Fira Code', monospace;
105
+ font-family: var(--font-mono);
106
106
  }
107
107
 
108
108
  /* Error state */
@@ -149,7 +149,7 @@
149
149
  }
150
150
 
151
151
  .mint-dose-calculator__preview-step-conc {
152
- font-family: 'Fira Code', monospace;
152
+ font-family: var(--font-mono);
153
153
  color: var(--text-primary);
154
154
  }
155
155
 
@@ -9,13 +9,14 @@
9
9
  flex-direction: column;
10
10
  align-items: center;
11
11
  justify-content: center;
12
+ gap: 0.25rem;
12
13
  text-align: center;
13
14
  }
14
15
 
15
16
  .mint-empty-state--inline {
16
17
  display: flex;
17
18
  align-items: center;
18
- gap: 1rem;
19
+ gap: 0.75rem;
19
20
  padding: 1rem 1.25rem;
20
21
  border: 1px dashed var(--border-color);
21
22
  border-radius: var(--radius-md);
@@ -23,9 +24,9 @@
23
24
  text-align: left;
24
25
  }
25
26
 
26
- /* Sizes (illustrated only — inline is single size) */
27
- .mint-empty-state--sm { padding: 1rem; }
28
- .mint-empty-state--md { padding: 2rem; }
27
+ /* Sizes (illustrated only — inline is single size). Quiet and compact. */
28
+ .mint-empty-state--sm { padding: 1.125rem 1rem; }
29
+ .mint-empty-state--md { padding: 1.75rem 1.25rem; }
29
30
  .mint-empty-state--lg { padding: 3rem; }
30
31
 
31
32
  /* Inline overrides size-based padding to keep it compact */
@@ -35,12 +36,12 @@
35
36
  padding: 1rem 1.25rem;
36
37
  }
37
38
 
38
- /* Icon wrapper — illustrated: 40px neutral tile (2g). Semantic color survives
39
- only in the warning / error variants. */
39
+ /* Icon wrapper — illustrated: 36px neutral tile with a hairline (2g). Semantic
40
+ color survives only in the warning / error variants. */
40
41
  .mint-empty-state--illustrated .mint-empty-state__icon-wrapper {
41
- width: 40px;
42
- height: 40px;
43
- margin-bottom: 0.625rem;
42
+ width: 36px;
43
+ height: 36px;
44
+ margin-bottom: 0.5rem;
44
45
  border-radius: var(--radius-md);
45
46
  display: flex;
46
47
  align-items: center;
@@ -53,16 +54,17 @@
53
54
  .mint-empty-state__icon-wrapper--success,
54
55
  .mint-empty-state__icon-wrapper--info,
55
56
  .mint-empty-state__icon-wrapper--neutral {
56
- background: var(--bg-tertiary);
57
+ background: var(--bg-primary);
58
+ box-shadow: inset 0 0 0 1px var(--border-color);
57
59
  }
58
60
 
59
61
  .mint-empty-state__icon-wrapper--warning { background: var(--mint-warning-bg); }
60
62
  .mint-empty-state__icon-wrapper--error { background: var(--mint-error-bg); }
61
63
 
62
- /* Inline: 44x44 icon box (left-aligned) */
64
+ /* Inline: 36x36 icon box (left-aligned) */
63
65
  .mint-empty-state--inline .mint-empty-state__icon-wrapper {
64
- width: 44px;
65
- height: 44px;
66
+ width: 36px;
67
+ height: 36px;
66
68
  border-radius: var(--radius-md);
67
69
  display: flex;
68
70
  align-items: center;
@@ -71,14 +73,14 @@
71
73
  }
72
74
 
73
75
  /* Icon sizes */
74
- .mint-empty-state__icon { width: 20px; height: 20px; stroke-width: 1.7; }
76
+ .mint-empty-state__icon { width: 18px; height: 18px; stroke-width: 1.7; }
75
77
 
76
78
  /* Icon colors */
77
79
  .mint-empty-state__icon--primary,
78
80
  .mint-empty-state__icon--cta,
79
81
  .mint-empty-state__icon--success,
80
82
  .mint-empty-state__icon--info,
81
- .mint-empty-state__icon--neutral { color: var(--text-secondary); }
83
+ .mint-empty-state__icon--neutral { color: var(--text-muted); }
82
84
  .mint-empty-state__icon--warning { color: var(--mint-warning); }
83
85
  .mint-empty-state__icon--error { color: var(--mint-error); }
84
86
 
@@ -106,8 +108,9 @@
106
108
  .mint-empty-state__description {
107
109
  font-size: 0.8125rem;
108
110
  color: var(--text-secondary);
109
- max-width: 28rem;
111
+ max-width: 40ch;
110
112
  line-height: 1.5;
113
+ text-wrap: pretty;
111
114
  margin: 0 !important;
112
115
  padding: 0 !important;
113
116
  }
@@ -120,7 +123,7 @@
120
123
  /* Action — slotted content sits in a block so a child's own larger top margin collapses into this one. */
121
124
  .mint-empty-state--illustrated .mint-empty-state__action,
122
125
  .mint-empty-state--illustrated .mint-empty-state__content {
123
- margin-top: 0.625rem;
126
+ margin-top: 0.75rem;
124
127
  }
125
128
 
126
129
  .mint-empty-state--inline .mint-empty-state__action {
@@ -7,6 +7,8 @@
7
7
  color: var(--text-secondary);
8
8
  border-radius: var(--radius-sm);
9
9
  letter-spacing: 0.02em;
10
+ flex-shrink: 0;
11
+ white-space: nowrap;
10
12
  transition: background-color 0.15s ease, color 0.15s ease;
11
13
  }
12
14
  .mint-exp-code--sm { padding: 1px 6px; font-size: 11px; }