@morscherlab/mint-sdk 1.0.0-beta.2 → 1.0.0-beta.4

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 (427) hide show
  1. package/README.md +225 -6
  2. package/dist/__tests__/components/ActionItem.test.d.ts +1 -0
  3. package/dist/__tests__/components/AppAvatarMenu.test.d.ts +1 -0
  4. package/dist/__tests__/components/AppPageSelector.test.d.ts +1 -0
  5. package/dist/__tests__/components/AppPillNav.test.d.ts +1 -0
  6. package/dist/__tests__/components/AppPluginSwitcher.test.d.ts +1 -0
  7. package/dist/__tests__/components/AppToastContainer.test.d.ts +1 -0
  8. package/dist/__tests__/components/BaseRadioGroup.test.d.ts +1 -0
  9. package/dist/__tests__/components/BaseSelect.test.d.ts +1 -0
  10. package/dist/__tests__/components/BaseTabs.test.d.ts +1 -0
  11. package/dist/__tests__/components/BatchProgressList.test.d.ts +1 -0
  12. package/dist/__tests__/components/BioTemplateExperimentWorkspaceView.test.d.ts +1 -0
  13. package/dist/__tests__/components/BioTemplatePackWorkspaceView.test.d.ts +1 -0
  14. package/dist/__tests__/components/BioTemplatePresetWorkspaceView.test.d.ts +1 -0
  15. package/dist/__tests__/components/BioTemplateRenderer.test.d.ts +1 -0
  16. package/dist/__tests__/components/Breadcrumb.test.d.ts +1 -0
  17. package/dist/__tests__/components/CalendarGridPanel.test.d.ts +1 -0
  18. package/dist/__tests__/components/ComponentBindingRenderer.test.d.ts +1 -0
  19. package/dist/__tests__/components/ConcentrationInput.test.d.ts +1 -0
  20. package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
  21. package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
  22. package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
  23. package/dist/__tests__/components/DoseDesignWorkspaceView.test.d.ts +1 -0
  24. package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
  25. package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
  26. package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
  27. package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
  28. package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
  29. package/dist/__tests__/components/PluginWorkspaceView.test.d.ts +1 -0
  30. package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
  31. package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
  32. package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
  33. package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
  34. package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
  35. package/dist/__tests__/components/SettingsModal.test.d.ts +1 -0
  36. package/dist/__tests__/components/TagsInput.test.d.ts +1 -0
  37. package/dist/__tests__/components/ThemeToggle.test.d.ts +1 -0
  38. package/dist/__tests__/components/TimePicker.test.d.ts +1 -0
  39. package/dist/__tests__/composables/experiment-utils.test.d.ts +1 -0
  40. package/dist/__tests__/composables/useApi.test.d.ts +1 -0
  41. package/dist/__tests__/composables/useBioTemplatePackWorkspace.test.d.ts +1 -0
  42. package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
  43. package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
  44. package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
  45. package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
  46. package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
  47. package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
  48. package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
  49. package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
  50. package/dist/__tests__/composables/useExperimentData.test.d.ts +1 -0
  51. package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
  52. package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
  53. package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
  54. package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
  55. package/dist/__tests__/composables/usePluginConfig.test.d.ts +1 -0
  56. package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
  57. package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
  58. package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
  59. package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
  60. package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
  61. package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
  62. package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
  63. package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
  64. package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
  65. package/dist/__tests__/templates/templates.test.d.ts +1 -0
  66. package/dist/{auth-DsI0rQ7_.js → auth-QQj2kkze.js} +12 -5
  67. package/dist/auth-QQj2kkze.js.map +1 -0
  68. package/dist/components/AppAvatarMenu.vue.d.ts +2 -7
  69. package/dist/components/AppContainer.vue.d.ts +1 -1
  70. package/dist/components/AppLayout.vue.d.ts +20 -1
  71. package/dist/components/AppSidebar.vue.d.ts +111 -6
  72. package/dist/components/AppTopBar.vue.d.ts +35 -22
  73. package/dist/components/BaseButton.vue.d.ts +1 -1
  74. package/dist/components/BaseCheckbox.vue.d.ts +1 -1
  75. package/dist/components/BaseInput.vue.d.ts +2 -2
  76. package/dist/components/BasePill.vue.d.ts +2 -2
  77. package/dist/components/BaseRadioGroup.vue.d.ts +3 -3
  78. package/dist/components/BaseSelect.vue.d.ts +3 -3
  79. package/dist/components/BaseTabs.vue.d.ts +2 -2
  80. package/dist/components/BaseTextarea.vue.d.ts +1 -1
  81. package/dist/components/BaseToggle.vue.d.ts +1 -1
  82. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +119 -0
  83. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +93 -0
  84. package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +87 -0
  85. package/dist/components/BioTemplateRenderer.vue.d.ts +29 -0
  86. package/dist/components/Breadcrumb.vue.d.ts +2 -2
  87. package/dist/components/Calendar.vue.d.ts +1 -1
  88. package/dist/components/CollapsibleCard.vue.d.ts +1 -1
  89. package/dist/components/ComponentBindingRenderer.vue.d.ts +44 -0
  90. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  91. package/dist/components/ConfirmDialog.vue.d.ts +2 -2
  92. package/dist/components/ControlWorkspaceView.vue.d.ts +147 -0
  93. package/dist/components/DatePicker.vue.d.ts +1 -1
  94. package/dist/components/DateTimePicker.vue.d.ts +3 -3
  95. package/dist/components/Divider.vue.d.ts +1 -1
  96. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +149 -0
  97. package/dist/components/DropdownButton.vue.d.ts +3 -3
  98. package/dist/components/EmptyState.vue.d.ts +1 -2
  99. package/dist/components/ExperimentDataViewer.vue.d.ts +1 -1
  100. package/dist/components/ExperimentTimeline.vue.d.ts +2 -2
  101. package/dist/components/FileUploader.vue.d.ts +1 -1
  102. package/dist/components/FitPanel.vue.d.ts +1 -1
  103. package/dist/components/FormActions.vue.d.ts +4 -4
  104. package/dist/components/FormBuilder.vue.d.ts +31 -17
  105. package/dist/components/FormulaInput.vue.d.ts +2 -2
  106. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  107. package/dist/components/MultiSelect.vue.d.ts +3 -3
  108. package/dist/components/NumberInput.vue.d.ts +1 -1
  109. package/dist/components/PlateMapEditor.vue.d.ts +1 -1
  110. package/dist/components/PluginWorkspaceView.vue.d.ts +310 -0
  111. package/dist/components/ProgressBar.vue.d.ts +1 -1
  112. package/dist/components/ProtocolStepEditor.vue.d.ts +3 -1
  113. package/dist/components/RackEditor.vue.d.ts +2 -2
  114. package/dist/components/SampleLegend.vue.d.ts +2 -2
  115. package/dist/components/ScheduleCalendar.vue.d.ts +2 -2
  116. package/dist/components/SegmentedControl.vue.d.ts +2 -2
  117. package/dist/components/SequenceInput.vue.d.ts +3 -3
  118. package/dist/components/SettingsModal.vue.d.ts +14 -6
  119. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  120. package/dist/components/TagsInput.vue.d.ts +3 -2
  121. package/dist/components/TimePicker.vue.d.ts +3 -3
  122. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  123. package/dist/components/UnitInput.vue.d.ts +2 -2
  124. package/dist/components/WellPlate.vue.d.ts +6 -6
  125. package/dist/components/index.d.ts +9 -8
  126. package/dist/components/index.js +3 -3
  127. package/dist/components/{SettingsButton.vue.d.ts → internal/ActionItemInternal.vue.d.ts} +11 -9
  128. package/dist/components/{AppPageSelector.vue.d.ts → internal/AppPageSelectorInternal.vue.d.ts} +3 -6
  129. package/dist/components/{AppPillNav.vue.d.ts → internal/AppPillNavInternal.vue.d.ts} +4 -2
  130. package/dist/components/internal/CalendarGridPanelInternal.vue.d.ts +25 -0
  131. package/dist/components/{FormFieldRenderer.vue.d.ts → internal/FormFieldRendererInternal.vue.d.ts} +2 -2
  132. package/dist/components/{FormSection.vue.d.ts → internal/FormSectionRenderer.vue.d.ts} +7 -7
  133. package/dist/components/{WellEditPopup.vue.d.ts → internal/WellEditPopupInternal.vue.d.ts} +1 -1
  134. package/dist/{components-_XqPEhP9.js → components-BkGF4B4y.js} +9760 -8471
  135. package/dist/components-BkGF4B4y.js.map +1 -0
  136. package/dist/composables/experiment-utils.d.ts +8 -0
  137. package/dist/composables/index.d.ts +22 -5
  138. package/dist/composables/index.js +4 -3
  139. package/dist/composables/platformContextHelpers.d.ts +14 -0
  140. package/dist/composables/useAppExperiment.d.ts +31 -2
  141. package/dist/composables/useBioTemplateComponents.d.ts +22 -0
  142. package/dist/composables/useBioTemplateControls.d.ts +6 -0
  143. package/dist/composables/useBioTemplatePackWorkspace.d.ts +46 -0
  144. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +75 -0
  145. package/dist/composables/useBioTemplateWorkspace.d.ts +51 -0
  146. package/dist/composables/useCalendarGrid.d.ts +26 -0
  147. package/dist/composables/useControlSchema.d.ts +343 -0
  148. package/dist/composables/useDebouncedWatch.d.ts +20 -0
  149. package/dist/composables/useDropdownState.d.ts +19 -0
  150. package/dist/composables/useEventListener.d.ts +13 -0
  151. package/dist/composables/useExpansionSet.d.ts +21 -0
  152. package/dist/composables/useExperimentData.d.ts +10 -0
  153. package/dist/composables/useExperimentSave.d.ts +31 -2
  154. package/dist/composables/useExperimentSelector.d.ts +20 -0
  155. package/dist/composables/useForm.d.ts +2 -0
  156. package/dist/composables/useGroupAssignment.d.ts +31 -0
  157. package/dist/composables/useListSelection.d.ts +35 -0
  158. package/dist/composables/usePlatformContext.d.ts +21 -3
  159. package/dist/composables/usePluginClient.d.ts +112 -0
  160. package/dist/composables/usePluginConfig.d.ts +12 -0
  161. package/dist/composables/useRequestSyncState.d.ts +34 -0
  162. package/dist/composables/useSampleGroups.d.ts +32 -0
  163. package/dist/composables/useSelectionLimit.d.ts +17 -0
  164. package/dist/composables/useSortedItems.d.ts +32 -0
  165. package/dist/composables/useTemplateCollection.d.ts +58 -0
  166. package/dist/composables/useTextSearch.d.ts +18 -0
  167. package/dist/composables/useTimeUtils.d.ts +8 -0
  168. package/dist/{composables-tiZqLu1M.js → composables-CHsME9H1.js} +240 -146
  169. package/dist/composables-CHsME9H1.js.map +1 -0
  170. package/dist/index.d.ts +6 -4
  171. package/dist/index.js +6 -5
  172. package/dist/install.d.ts +7 -2
  173. package/dist/install.js +2 -2
  174. package/dist/install.js.map +1 -1
  175. package/dist/stores/index.js +1 -1
  176. package/dist/stores/settings.d.ts +4 -1
  177. package/dist/styles.css +4746 -5514
  178. package/dist/templates/adapters.d.ts +43 -0
  179. package/dist/templates/builders.d.ts +63 -0
  180. package/dist/templates/catalog.d.ts +188 -0
  181. package/dist/templates/componentBindings.d.ts +71 -0
  182. package/dist/templates/controlSchemas.d.ts +25 -0
  183. package/dist/templates/index.d.ts +15 -0
  184. package/dist/templates/index.js +2 -0
  185. package/dist/templates/lookup.d.ts +4 -0
  186. package/dist/templates/packs.d.ts +18 -0
  187. package/dist/templates/presets.d.ts +90 -0
  188. package/dist/templates/types.d.ts +531 -0
  189. package/dist/templates-B5jmTWuk.js +9388 -0
  190. package/dist/templates-B5jmTWuk.js.map +1 -0
  191. package/dist/types/components.d.ts +26 -23
  192. package/dist/types/form-builder.d.ts +6 -8
  193. package/dist/types/index.d.ts +2 -2
  194. package/dist/types/platform.d.ts +7 -1
  195. package/dist/useScheduleDrag-BgzpQT53.js +4414 -0
  196. package/dist/useScheduleDrag-BgzpQT53.js.map +1 -0
  197. package/dist/utils/formModelSync.d.ts +5 -0
  198. package/dist/utils/items.d.ts +8 -0
  199. package/dist/utils/options.d.ts +6 -0
  200. package/dist/utils/pluginIcon.d.ts +9 -0
  201. package/package.json +7 -2
  202. package/src/__tests__/components/ActionItem.test.ts +99 -0
  203. package/src/__tests__/components/AppAvatarMenu.test.ts +27 -0
  204. package/src/__tests__/components/AppLayout.test.ts +44 -0
  205. package/src/__tests__/components/AppPageSelector.test.ts +134 -0
  206. package/src/__tests__/components/AppPillNav.test.ts +125 -0
  207. package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
  208. package/src/__tests__/components/AppSidebar.test.ts +496 -0
  209. package/src/__tests__/components/AppToastContainer.test.ts +37 -0
  210. package/src/__tests__/components/AppTopBar.test.ts +455 -9
  211. package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
  212. package/src/__tests__/components/BaseSelect.test.ts +21 -0
  213. package/src/__tests__/components/BaseTabs.test.ts +25 -0
  214. package/src/__tests__/components/BatchProgressList.test.ts +52 -0
  215. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +159 -0
  216. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +175 -0
  217. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +306 -0
  218. package/src/__tests__/components/BioTemplateRenderer.test.ts +71 -0
  219. package/src/__tests__/components/Breadcrumb.test.ts +23 -0
  220. package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
  221. package/src/__tests__/components/ComponentBindingRenderer.test.ts +161 -0
  222. package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
  223. package/src/__tests__/components/ControlWorkspaceView.test.ts +1102 -0
  224. package/src/__tests__/components/DataFrame.test.ts +11 -0
  225. package/src/__tests__/components/DatePicker.test.ts +45 -0
  226. package/src/__tests__/components/DateTimePicker.test.ts +48 -0
  227. package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +185 -0
  228. package/src/__tests__/components/DropdownButton.test.ts +23 -0
  229. package/src/__tests__/components/EmptyState.test.ts +23 -0
  230. package/src/__tests__/components/ExperimentPopover.test.ts +56 -0
  231. package/src/__tests__/components/FormBuilder.test.ts +296 -0
  232. package/src/__tests__/components/GroupAssigner.test.ts +30 -0
  233. package/src/__tests__/components/MultiSelect.test.ts +48 -0
  234. package/src/__tests__/components/PluginWorkspaceView.test.ts +548 -0
  235. package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
  236. package/src/__tests__/components/ReagentList.test.ts +82 -0
  237. package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
  238. package/src/__tests__/components/SampleSelector.test.ts +60 -0
  239. package/src/__tests__/components/SegmentedControl.test.ts +24 -0
  240. package/src/__tests__/components/SettingsModal.test.ts +296 -0
  241. package/src/__tests__/components/TagsInput.test.ts +75 -0
  242. package/src/__tests__/components/ThemeToggle.test.ts +47 -0
  243. package/src/__tests__/components/TimePicker.test.ts +38 -0
  244. package/src/__tests__/composables/experiment-utils.test.ts +30 -0
  245. package/src/__tests__/composables/useApi.test.ts +30 -0
  246. package/src/__tests__/composables/useAppExperiment.test.ts +100 -1
  247. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +125 -0
  248. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
  249. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +104 -0
  250. package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
  251. package/src/__tests__/composables/useControlSchema.test.ts +1033 -0
  252. package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
  253. package/src/__tests__/composables/useDropdownState.test.ts +95 -0
  254. package/src/__tests__/composables/useEventListener.test.ts +116 -0
  255. package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
  256. package/src/__tests__/composables/useExperimentData.test.ts +4 -0
  257. package/src/__tests__/composables/useExperimentSave.test.ts +203 -8
  258. package/src/__tests__/composables/useExperimentSelector.test.ts +164 -0
  259. package/src/__tests__/composables/useForm.test.ts +58 -0
  260. package/src/__tests__/composables/useFormBuilder.test.ts +77 -0
  261. package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
  262. package/src/__tests__/composables/useListSelection.test.ts +66 -0
  263. package/src/__tests__/composables/usePluginClient.test.ts +541 -0
  264. package/src/__tests__/composables/usePluginConfig.test.ts +5 -0
  265. package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
  266. package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
  267. package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
  268. package/src/__tests__/composables/useSortedItems.test.ts +87 -0
  269. package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
  270. package/src/__tests__/composables/useTextSearch.test.ts +55 -0
  271. package/src/__tests__/composables/useTheme.test.ts +91 -0
  272. package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
  273. package/src/__tests__/docs/frontendDocsCatalog.test.ts +324 -0
  274. package/src/__tests__/fixtures/templates/dose-response.json +81 -0
  275. package/src/__tests__/fixtures/templates/plate-map.json +54 -0
  276. package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
  277. package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
  278. package/src/__tests__/templates/templates.test.ts +1055 -0
  279. package/src/components/AppAvatarMenu.vue +15 -69
  280. package/src/components/AppLayout.story.vue +64 -25
  281. package/src/components/AppLayout.vue +83 -2
  282. package/src/components/AppPluginSwitcher.vue +41 -145
  283. package/src/components/AppSidebar.story.vue +203 -1
  284. package/src/components/AppSidebar.vue +320 -25
  285. package/src/components/{ToastNotification.story.vue → AppToastContainer.story.vue} +6 -6
  286. package/src/components/{ToastNotification.vue → AppToastContainer.vue} +1 -1
  287. package/src/components/AppTopBar.story.vue +7 -33
  288. package/src/components/AppTopBar.vue +104 -300
  289. package/src/components/BaseModal.vue +3 -5
  290. package/src/components/BaseRadioGroup.vue +7 -3
  291. package/src/components/BaseSelect.vue +11 -7
  292. package/src/components/BaseTabs.vue +6 -4
  293. package/src/components/BatchProgressList.vue +5 -8
  294. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
  295. package/src/components/BioTemplateExperimentWorkspaceView.vue +343 -0
  296. package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
  297. package/src/components/BioTemplatePackWorkspaceView.vue +177 -0
  298. package/src/components/BioTemplatePresetWorkspaceView.story.vue +163 -0
  299. package/src/components/BioTemplatePresetWorkspaceView.vue +401 -0
  300. package/src/components/BioTemplateRenderer.story.vue +57 -0
  301. package/src/components/BioTemplateRenderer.vue +57 -0
  302. package/src/components/Breadcrumb.vue +14 -8
  303. package/src/components/ComponentBindingRenderer.story.vue +57 -0
  304. package/src/components/ComponentBindingRenderer.vue +308 -0
  305. package/src/components/ConcentrationInput.vue +27 -64
  306. package/src/components/ControlWorkspaceView.story.vue +347 -0
  307. package/src/components/ControlWorkspaceView.vue +378 -0
  308. package/src/components/DataFrame.vue +34 -50
  309. package/src/components/DatePicker.vue +59 -192
  310. package/src/components/DateTimePicker.vue +50 -171
  311. package/src/components/DoseDesignWorkspaceView.story.vue +77 -0
  312. package/src/components/DoseDesignWorkspaceView.vue +255 -0
  313. package/src/components/DropdownButton.vue +14 -32
  314. package/src/components/EmptyState.vue +4 -2
  315. package/src/components/ExperimentPopover.vue +7 -28
  316. package/src/components/ExperimentSelectorModal.vue +6 -5
  317. package/src/components/FormBuilder.story.vue +190 -0
  318. package/src/components/FormBuilder.vue +124 -27
  319. package/src/components/GroupAssigner.vue +24 -56
  320. package/src/components/MultiSelect.vue +17 -12
  321. package/src/components/PlateMapEditor.vue +3 -8
  322. package/src/components/PluginIcon.vue +2 -22
  323. package/src/components/PluginWorkspaceView.story.vue +334 -0
  324. package/src/components/PluginWorkspaceView.vue +708 -0
  325. package/src/components/ProtocolStepEditor.vue +13 -22
  326. package/src/components/ReagentList.vue +25 -33
  327. package/src/components/SampleHierarchyTree.vue +12 -23
  328. package/src/components/SampleSelector.vue +42 -122
  329. package/src/components/SegmentedControl.vue +7 -3
  330. package/src/components/SettingsModal.story.vue +88 -1
  331. package/src/components/SettingsModal.vue +120 -29
  332. package/src/components/TagsInput.vue +29 -14
  333. package/src/components/ThemeToggle.vue +9 -7
  334. package/src/components/TimePicker.vue +19 -41
  335. package/src/components/Tooltip.vue +7 -12
  336. package/src/components/WellPlate.vue +6 -12
  337. package/src/components/index.ts +9 -8
  338. package/src/components/internal/ActionItemInternal.vue +82 -0
  339. package/src/components/internal/AppPageSelectorInternal.vue +128 -0
  340. package/src/components/internal/AppPillNavInternal.vue +194 -0
  341. package/src/components/internal/CalendarGridPanelInternal.vue +120 -0
  342. package/src/components/{FormFieldRenderer.vue → internal/FormFieldRendererInternal.vue} +4 -12
  343. package/src/components/{FormSection.vue → internal/FormSectionRenderer.vue} +6 -18
  344. package/src/components/{WellEditPopup.vue → internal/WellEditPopupInternal.vue} +5 -10
  345. package/src/composables/experiment-utils.ts +26 -0
  346. package/src/composables/index.ts +229 -3
  347. package/src/composables/platformContextHelpers.ts +74 -0
  348. package/src/composables/useApi.ts +9 -2
  349. package/src/composables/useAppExperiment.ts +85 -13
  350. package/src/composables/useBioTemplateComponents.ts +105 -0
  351. package/src/composables/useBioTemplateControls.ts +41 -0
  352. package/src/composables/useBioTemplatePackWorkspace.ts +185 -0
  353. package/src/composables/useBioTemplatePresetWorkspace.ts +326 -0
  354. package/src/composables/useBioTemplateWorkspace.ts +141 -0
  355. package/src/composables/useCalendarGrid.ts +140 -0
  356. package/src/composables/useControlSchema.ts +1362 -0
  357. package/src/composables/useDebouncedWatch.ts +119 -0
  358. package/src/composables/useDropdownState.ts +83 -0
  359. package/src/composables/useEventListener.ts +111 -0
  360. package/src/composables/useExpansionSet.ts +117 -0
  361. package/src/composables/useExperimentData.ts +20 -11
  362. package/src/composables/useExperimentSave.ts +202 -50
  363. package/src/composables/useExperimentSelector.ts +86 -72
  364. package/src/composables/useForm.ts +49 -4
  365. package/src/composables/useFormBuilder.ts +93 -42
  366. package/src/composables/useGroupAssignment.ts +148 -0
  367. package/src/composables/useListSelection.ts +158 -0
  368. package/src/composables/usePluginClient.ts +466 -0
  369. package/src/composables/usePluginConfig.ts +34 -13
  370. package/src/composables/useRequestSyncState.ts +126 -0
  371. package/src/composables/useSampleGroups.ts +126 -0
  372. package/src/composables/useSelectionLimit.ts +57 -0
  373. package/src/composables/useSortedItems.ts +118 -0
  374. package/src/composables/useTemplateCollection.ts +229 -0
  375. package/src/composables/useTextSearch.ts +60 -0
  376. package/src/composables/useTheme.ts +2 -28
  377. package/src/composables/useTimeUtils.ts +26 -2
  378. package/src/composables/useWellPlateEditor.ts +13 -9
  379. package/src/index.ts +11 -348
  380. package/src/install.ts +11 -4
  381. package/src/stores/settings.ts +13 -9
  382. package/src/styles/components/app-layout.css +82 -0
  383. package/src/styles/components/app-page-selector.css +23 -0
  384. package/src/styles/components/app-pill-nav.css +77 -0
  385. package/src/styles/components/app-sidebar.css +119 -0
  386. package/src/styles/components/app-top-bar.css +0 -201
  387. package/src/styles/components/concentration-input.css +3 -142
  388. package/src/styles/components/empty-state.css +0 -16
  389. package/src/styles/components/theme-toggle.css +3 -66
  390. package/src/styles/index.css +0 -2
  391. package/src/templates/adapters.ts +785 -0
  392. package/src/templates/builders.ts +2149 -0
  393. package/src/templates/catalog.ts +245 -0
  394. package/src/templates/componentBindings.ts +653 -0
  395. package/src/templates/controlSchemas.ts +718 -0
  396. package/src/templates/index.ts +318 -0
  397. package/src/templates/lookup.ts +18 -0
  398. package/src/templates/packs.ts +156 -0
  399. package/src/templates/presets.ts +146 -0
  400. package/src/templates/types.ts +668 -0
  401. package/src/types/components.ts +39 -27
  402. package/src/types/form-builder.ts +7 -2
  403. package/src/types/index.ts +13 -3
  404. package/src/types/platform.ts +7 -1
  405. package/src/utils/formModelSync.ts +52 -0
  406. package/src/utils/items.ts +28 -0
  407. package/src/utils/options.ts +23 -0
  408. package/src/utils/pluginIcon.ts +30 -0
  409. package/dist/__tests__/composables/usePluginApi.test.d.ts +0 -13
  410. package/dist/auth-DsI0rQ7_.js.map +0 -1
  411. package/dist/components/GroupingModal.vue.d.ts +0 -12
  412. package/dist/components-_XqPEhP9.js.map +0 -1
  413. package/dist/composables/usePluginApi.d.ts +0 -29
  414. package/dist/composables-tiZqLu1M.js.map +0 -1
  415. package/dist/useScheduleDrag-CA9sGNJG.js +0 -7181
  416. package/dist/useScheduleDrag-CA9sGNJG.js.map +0 -1
  417. package/src/__tests__/composables/usePluginApi.test.ts +0 -81
  418. package/src/components/AppPageSelector.vue +0 -159
  419. package/src/components/AppPillNav.vue +0 -66
  420. package/src/components/GroupingModal.story.vue +0 -52
  421. package/src/components/GroupingModal.vue +0 -422
  422. package/src/components/SettingsButton.story.vue +0 -58
  423. package/src/components/SettingsButton.vue +0 -76
  424. package/src/composables/usePluginApi.ts +0 -39
  425. package/src/styles/components/grouping-modal.css +0 -323
  426. package/src/styles/components/settings-button.css +0 -94
  427. /package/dist/components/{ToastNotification.vue.d.ts → AppToastContainer.vue.d.ts} +0 -0
@@ -9,9 +9,15 @@
9
9
  flex-shrink: 0;
10
10
  }
11
11
 
12
+ .mint-pill-nav__item-wrap {
13
+ position: relative;
14
+ display: inline-flex;
15
+ }
16
+
12
17
  .mint-pill-nav__item {
13
18
  display: inline-flex;
14
19
  align-items: center;
20
+ gap: 0.375rem;
15
21
  border: 0;
16
22
  padding: 0.375rem 0.875rem;
17
23
  border-radius: 9999px;
@@ -54,3 +60,74 @@
54
60
  outline: none;
55
61
  box-shadow: var(--focus-ring);
56
62
  }
63
+
64
+ .mint-pill-nav__icon {
65
+ width: 0.875rem;
66
+ height: 0.875rem;
67
+ flex-shrink: 0;
68
+ }
69
+
70
+ .mint-pill-nav__chevron {
71
+ width: 0.8125rem;
72
+ height: 0.8125rem;
73
+ flex-shrink: 0;
74
+ transition: transform 160ms ease;
75
+ }
76
+
77
+ .mint-pill-nav__chevron--open {
78
+ transform: rotate(180deg);
79
+ }
80
+
81
+ .mint-pill-nav__dropdown {
82
+ position: absolute;
83
+ top: calc(100% + 0.5rem);
84
+ left: 50%;
85
+ z-index: 45;
86
+ min-width: 18rem;
87
+ padding: 0.375rem;
88
+ border-radius: 0.75rem;
89
+ border: 1px solid var(--border-light);
90
+ background: var(--bg-card);
91
+ box-shadow: var(--shadow-lg);
92
+ transform: translateX(-50%);
93
+ }
94
+
95
+ .mint-pill-nav__dropdown-item {
96
+ display: flex;
97
+ align-items: baseline;
98
+ gap: 0.75rem;
99
+ width: 100%;
100
+ padding: 0.5rem 0.625rem;
101
+ border-radius: 0.5rem;
102
+ color: var(--text-secondary);
103
+ font-size: 0.8125rem;
104
+ text-decoration: none;
105
+ white-space: nowrap;
106
+ }
107
+
108
+ .mint-pill-nav__dropdown-item:hover:not(.mint-pill-nav__dropdown-item--disabled) {
109
+ color: var(--text-primary);
110
+ background: var(--bg-secondary);
111
+ }
112
+
113
+ .mint-pill-nav__dropdown-item--active {
114
+ color: var(--text-primary);
115
+ background: var(--bg-secondary);
116
+ font-weight: 600;
117
+ }
118
+
119
+ .mint-pill-nav__dropdown-item--disabled {
120
+ opacity: var(--mint-disabled-opacity);
121
+ cursor: not-allowed;
122
+ }
123
+
124
+ .mint-pill-nav__dropdown-label {
125
+ flex-shrink: 0;
126
+ }
127
+
128
+ .mint-pill-nav__dropdown-description {
129
+ margin-left: auto;
130
+ color: var(--text-muted);
131
+ font-size: 0.75rem;
132
+ font-weight: 400;
133
+ }
@@ -6,6 +6,7 @@
6
6
  height: 100%;
7
7
  overflow: hidden;
8
8
  background-color: var(--bg-secondary);
9
+ transition: width 180ms ease;
9
10
  }
10
11
 
11
12
  .mint-sidebar--hidden {
@@ -40,10 +41,118 @@
40
41
  border-right: 1px solid var(--border-color);
41
42
  }
42
43
 
44
+ .mint-sidebar--analysis {
45
+ background-color: var(--bg-secondary);
46
+ }
47
+
48
+ .mint-sidebar--analysis .mint-sidebar__header {
49
+ padding: 1rem;
50
+ }
51
+
52
+ .mint-sidebar--analysis .mint-sidebar__sections {
53
+ padding: 0.75rem;
54
+ gap: 0.75rem;
55
+ }
56
+
43
57
  /* Header / Footer slots */
44
58
  .mint-sidebar__header {
45
59
  padding: 0.75rem;
46
60
  flex-shrink: 0;
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ gap: 0.5rem;
65
+ border-bottom: 1px solid var(--border-color);
66
+ }
67
+
68
+ .mint-sidebar__heading {
69
+ min-width: 0;
70
+ display: flex;
71
+ flex: 1;
72
+ align-items: center;
73
+ gap: 0.5rem;
74
+ }
75
+
76
+ .mint-sidebar__heading-copy {
77
+ min-width: 0;
78
+ flex: 1;
79
+ }
80
+
81
+ .mint-sidebar__title {
82
+ margin: 0;
83
+ overflow: hidden;
84
+ color: var(--text-primary);
85
+ font-size: 0.9375rem;
86
+ font-weight: 650;
87
+ line-height: 1.25;
88
+ text-overflow: ellipsis;
89
+ white-space: nowrap;
90
+ }
91
+
92
+ .mint-sidebar__subtitle {
93
+ margin: 0.125rem 0 0;
94
+ overflow: hidden;
95
+ color: var(--text-muted);
96
+ font-size: 0.75rem;
97
+ line-height: 1.25;
98
+ text-overflow: ellipsis;
99
+ white-space: nowrap;
100
+ }
101
+
102
+ .mint-sidebar__badge {
103
+ flex-shrink: 0;
104
+ min-width: 1.375rem;
105
+ padding: 0.125rem 0.375rem;
106
+ border-radius: 9999px;
107
+ background: color-mix(in srgb, var(--color-cta) 14%, transparent);
108
+ color: var(--color-cta);
109
+ font-size: 0.6875rem;
110
+ font-weight: 700;
111
+ line-height: 1.1;
112
+ text-align: center;
113
+ font-variant-numeric: tabular-nums;
114
+ }
115
+
116
+ .mint-sidebar__collapse-button {
117
+ display: inline-flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ flex-shrink: 0;
121
+ width: 1.875rem;
122
+ height: 1.875rem;
123
+ border: 0;
124
+ border-radius: var(--radius-md);
125
+ color: var(--text-secondary);
126
+ background: transparent;
127
+ cursor: pointer;
128
+ transition:
129
+ color 160ms ease,
130
+ background-color 160ms ease;
131
+ }
132
+
133
+ .mint-sidebar__collapse-button:hover {
134
+ color: var(--text-primary);
135
+ background: var(--bg-tertiary);
136
+ }
137
+
138
+ .mint-sidebar__collapse-button:focus-visible {
139
+ outline: none;
140
+ box-shadow: var(--focus-ring);
141
+ }
142
+
143
+ .mint-sidebar__collapse-icon {
144
+ width: 1rem;
145
+ height: 1rem;
146
+ transition: transform 160ms ease;
147
+ }
148
+
149
+ .mint-sidebar__collapse-icon--collapsed {
150
+ transform: rotate(180deg);
151
+ }
152
+
153
+ .mint-sidebar--collapsed .mint-sidebar__header {
154
+ justify-content: center;
155
+ padding-inline: 0.5rem;
47
156
  }
48
157
 
49
158
  .mint-sidebar__footer {
@@ -63,6 +172,16 @@
63
172
  gap: 0.5rem;
64
173
  }
65
174
 
175
+ .mint-sidebar__collapsed {
176
+ flex: 1 1 0;
177
+ min-height: 0;
178
+ padding: 0.5rem;
179
+ display: flex;
180
+ flex-direction: column;
181
+ align-items: center;
182
+ gap: 0.5rem;
183
+ }
184
+
66
185
  /* Dense sidebar variant — compact sections */
67
186
  .mint-sidebar--dense .mint-sidebar__sections {
68
187
  padding: 0.5rem;
@@ -48,15 +48,6 @@
48
48
  pointer-events: auto;
49
49
  }
50
50
 
51
- /* Left content cluster */
52
- .mint-topbar__left {
53
- display: flex;
54
- align-items: center;
55
- gap: 0.75rem;
56
- flex: 1;
57
- min-width: 0;
58
- }
59
-
60
51
  .mint-topbar__right {
61
52
  display: flex;
62
53
  align-items: center;
@@ -67,19 +58,6 @@
67
58
  margin-left: auto;
68
59
  }
69
60
 
70
- /* Tabs render with the same pill-nav visual language as
71
- AppPillNav — container pill with inset items that gain white background +
72
- shadow when active. See app-pill-nav.css for the canonical treatment. */
73
- .mint-topbar__tabs {
74
- display: inline-flex;
75
- align-items: center;
76
- padding: 0.1875rem;
77
- border-radius: 9999px;
78
- background: var(--bg-tertiary);
79
- border: 1px solid var(--border-light);
80
- flex-shrink: 0;
81
- }
82
-
83
61
  /* Logo styles */
84
62
  .mint-topbar__logo {
85
63
  display: flex;
@@ -159,185 +137,6 @@
159
137
  line-height: 1.25;
160
138
  }
161
139
 
162
- .mint-topbar-breadcrumb {
163
- display: flex;
164
- align-items: center;
165
- gap: 0.5rem;
166
- position: relative;
167
- }
168
-
169
- .mint-topbar-plugin-name {
170
- display: flex;
171
- align-items: center;
172
- gap: 0.25rem;
173
- padding: 0.25rem 0.5rem;
174
- border: none;
175
- background: transparent;
176
- border-radius: var(--radius-sm);
177
- color: var(--text-secondary);
178
- font-weight: 500;
179
- font-size: inherit;
180
- cursor: pointer;
181
- transition: all 0.15s ease;
182
- }
183
-
184
- .mint-topbar-plugin-name:hover {
185
- background: var(--bg-hover);
186
- color: var(--text-primary);
187
- }
188
-
189
- .mint-topbar-plugin-name--static {
190
- padding: 0.25rem 0.5rem;
191
- color: var(--text-secondary);
192
- font-weight: 500;
193
- }
194
-
195
- .mint-topbar-chevron {
196
- transition: transform 0.15s ease;
197
- }
198
-
199
- .mint-topbar-chevron--open {
200
- transform: rotate(180deg);
201
- }
202
-
203
- .mint-topbar-separator {
204
- width: 1rem;
205
- height: 1rem;
206
- color: var(--text-muted);
207
- flex-shrink: 0;
208
- }
209
-
210
- .mint-topbar-current-page {
211
- font-weight: 600;
212
- color: var(--text-primary);
213
- }
214
-
215
- .mint-topbar-dropdown {
216
- position: absolute;
217
- top: calc(100% + 0.5rem);
218
- left: 0;
219
- min-width: 200px;
220
- background: var(--bg-card);
221
- border: 1px solid var(--border-color);
222
- border-radius: var(--radius);
223
- box-shadow: var(--shadow-md);
224
- z-index: 50;
225
- overflow: hidden;
226
- }
227
-
228
- .mint-topbar-dropdown-item {
229
- display: flex;
230
- flex-direction: column;
231
- align-items: flex-start;
232
- width: 100%;
233
- padding: 0.75rem 1rem;
234
- text-decoration: none;
235
- color: inherit;
236
- background: none;
237
- border: none;
238
- font: inherit;
239
- text-align: left;
240
- transition: background-color 0.15s ease;
241
- cursor: pointer;
242
- }
243
-
244
- .mint-topbar-dropdown-item:hover:not(.mint-topbar-dropdown-item--disabled) {
245
- background: var(--bg-hover);
246
- }
247
-
248
- .mint-topbar-dropdown-item--active {
249
- background: var(--color-primary-soft);
250
- color: var(--color-primary);
251
- }
252
-
253
- .mint-topbar-dropdown-item--disabled {
254
- opacity: var(--mint-disabled-opacity);
255
- cursor: not-allowed;
256
- }
257
-
258
- .mint-topbar-dropdown-item__label {
259
- font-weight: 500;
260
- }
261
-
262
- .mint-topbar-dropdown-item__description {
263
- font-size: 0.75rem;
264
- color: var(--text-muted);
265
- margin-top: 0.125rem;
266
- }
267
-
268
- .mint-topbar-dropdown-item--active .mint-topbar-dropdown-item__description {
269
- color: var(--color-primary);
270
- opacity: 0.8;
271
- }
272
-
273
- .mint-topbar-tab-wrapper {
274
- position: relative;
275
- }
276
-
277
- .mint-topbar-tab {
278
- display: inline-flex;
279
- align-items: center;
280
- gap: 0.25rem;
281
- padding: 0.375rem 0.875rem;
282
- border: 0;
283
- background: transparent;
284
- border-radius: 9999px;
285
- color: var(--text-secondary);
286
- font-weight: 500;
287
- font-size: 0.8125rem;
288
- font-family: inherit;
289
- text-decoration: none;
290
- cursor: pointer;
291
- transition:
292
- color 220ms var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
293
- background-color 220ms var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
294
- box-shadow 220ms var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1));
295
- }
296
-
297
- .mint-topbar-tab:hover:not(.mint-topbar-tab--disabled):not(.mint-topbar-tab--active) {
298
- color: var(--text-primary);
299
- }
300
-
301
- .mint-topbar-tab--active {
302
- color: var(--text-primary);
303
- background: var(--bg-card);
304
- box-shadow: var(--shadow-sm);
305
- font-weight: 600;
306
- }
307
-
308
- @media (prefers-reduced-motion: reduce) {
309
- .mint-topbar-tab {
310
- transition: none;
311
- }
312
- }
313
-
314
- .mint-topbar-tab--disabled {
315
- opacity: var(--mint-disabled-opacity);
316
- cursor: not-allowed;
317
- }
318
-
319
- .mint-topbar-tab-chevron {
320
- transition: transform 0.15s ease;
321
- }
322
-
323
- .mint-topbar-tab-chevron--open {
324
- transform: rotate(180deg);
325
- }
326
-
327
- .mint-topbar-tab-dropdown {
328
- position: absolute;
329
- top: calc(100% + 0.5rem);
330
- left: 50%;
331
- transform: translateX(-50%);
332
- min-width: 180px;
333
- background: var(--bg-card);
334
- border: 1px solid var(--border-color);
335
- border-radius: var(--radius);
336
- box-shadow: var(--shadow-md);
337
- z-index: 50;
338
- overflow: hidden;
339
- }
340
-
341
140
  /* New: generic icon button (notifications, etc.) */
342
141
  .mint-topbar__icon-btn {
343
142
  position: relative;
@@ -1,4 +1,4 @@
1
- /* ConcentrationInput Component Styles */
1
+ /* ConcentrationInput composes UnitInput and keeps concentration-specific hint spacing. */
2
2
 
3
3
  .mint-concentration-input {
4
4
  display: flex;
@@ -6,149 +6,10 @@
6
6
  gap: 0.25rem;
7
7
  }
8
8
 
9
- .mint-concentration-input__controls {
10
- display: flex;
11
- border-radius: var(--radius-md);
12
- border: 1px solid var(--border-color);
13
- overflow: hidden;
14
- box-sizing: border-box;
15
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
16
- }
17
-
18
- .mint-concentration-input__controls--sm {
19
- min-height: var(--form-height-sm);
20
- }
21
-
22
- .mint-concentration-input__controls--md {
23
- min-height: var(--form-height-md);
24
- }
25
-
26
- .mint-concentration-input__controls--lg {
27
- min-height: var(--form-height-lg);
28
- }
29
-
30
- .mint-concentration-input__controls:focus-within {
31
- border-color: transparent;
32
- box-shadow: var(--focus-ring);
33
- }
34
-
35
- .mint-concentration-input--error .mint-concentration-input__controls {
36
- border-color: var(--mint-error);
37
- }
38
-
39
- .mint-concentration-input--error .mint-concentration-input__controls:focus-within {
40
- box-shadow: var(--focus-ring-error);
41
- }
42
-
43
- .mint-concentration-input--disabled .mint-concentration-input__controls {
44
- opacity: var(--mint-disabled-opacity);
45
- }
46
-
47
- /* Value input */
48
- .mint-concentration-input__value {
49
- flex: 1;
50
- min-width: 0;
51
- background-color: var(--bg-secondary);
52
- color: var(--text-primary);
53
- border: none;
54
- outline: none;
55
- line-height: 1.25;
56
- -webkit-appearance: textfield;
57
- -moz-appearance: textfield;
58
- appearance: textfield;
59
- }
60
-
61
- .mint-concentration-input__value::-webkit-outer-spin-button,
62
- .mint-concentration-input__value::-webkit-inner-spin-button {
63
- -webkit-appearance: none;
64
- margin: 0;
65
- }
66
-
67
- .mint-concentration-input__value::placeholder {
68
- color: var(--text-muted);
69
- }
70
-
71
- .mint-concentration-input__value--sm {
72
- padding: 0.375rem 0.625rem;
73
- font-size: 0.875rem;
74
- }
75
-
76
- .mint-concentration-input__value--md {
77
- padding: 0.5rem 0.75rem;
78
- font-size: 0.875rem;
79
- }
80
-
81
- .mint-concentration-input__value--lg {
82
- padding: 0.75rem 1rem;
83
- font-size: 1rem;
84
- }
85
-
86
- .mint-concentration-input__value--disabled {
87
- cursor: not-allowed;
88
- background-color: var(--bg-tertiary);
89
- }
90
-
91
- /* Unit select */
92
- .mint-concentration-input__unit {
93
- position: relative;
94
- flex-shrink: 0;
95
- border-left: 1px solid var(--border-color);
96
- }
97
-
98
- .mint-concentration-input__unit-select {
99
- height: 100%;
100
- background-color: var(--bg-tertiary);
101
- color: var(--text-primary);
102
- border: none;
103
- outline: none;
104
- cursor: pointer;
105
- font-weight: 500;
106
- padding-right: 1.5rem;
107
- appearance: none;
108
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
109
- background-position: right 0.375rem center;
110
- background-repeat: no-repeat;
111
- background-size: 1rem 1rem;
112
- }
113
-
114
- .mint-concentration-input__unit-select--sm {
115
- padding: 0.375rem 1.5rem 0.375rem 0.5rem;
116
- font-size: 0.75rem;
117
- min-width: 4rem;
118
- }
119
-
120
- .mint-concentration-input__unit-select--md {
121
- padding: 0.5rem 1.75rem 0.5rem 0.625rem;
122
- font-size: 0.875rem;
123
- min-width: 4.5rem;
124
- }
125
-
126
- .mint-concentration-input__unit-select--lg {
127
- padding: 0.75rem 2rem 0.75rem 0.75rem;
128
- font-size: 0.875rem;
129
- min-width: 5rem;
130
- }
131
-
132
- .mint-concentration-input__unit-select:disabled {
133
- cursor: not-allowed;
134
- opacity: 0.7;
135
- }
136
-
137
- .mint-concentration-input__unit-select:hover:not(:disabled) {
138
- background-color: var(--bg-hover);
139
- }
140
-
141
- /* Unit option group */
142
- .mint-concentration-input__unit-group {
143
- font-weight: 600;
144
- color: var(--text-secondary);
145
- }
146
-
147
- /* Conversion hint */
148
9
  .mint-concentration-input__conversion {
149
- font-size: 0.75rem;
150
- color: var(--text-muted);
151
10
  padding-left: 0.125rem;
11
+ color: var(--text-muted);
12
+ font-size: 0.75rem;
152
13
  }
153
14
 
154
15
  .mint-concentration-input__conversion::before {
@@ -133,19 +133,3 @@
133
133
  .mint-empty-state--inline .mint-empty-state__action {
134
134
  flex-shrink: 0;
135
135
  }
136
-
137
- .mint-empty-state__button {
138
- background: var(--color-primary);
139
- color: white;
140
- padding: 0.5rem 1rem;
141
- border-radius: var(--radius-md);
142
- border: none;
143
- font-size: 0.875rem;
144
- font-weight: 500;
145
- cursor: pointer;
146
- transition: background-color 0.15s ease;
147
- }
148
-
149
- .mint-empty-state__button:hover {
150
- background: var(--color-primary-hover);
151
- }
@@ -1,69 +1,6 @@
1
1
  /* ThemeToggle Component Styles */
2
2
 
3
- .mint-theme-toggle {
4
- display: inline-flex;
5
- align-items: center;
6
- justify-content: center;
7
- border-radius: var(--radius-md);
8
- background-color: transparent;
9
- color: var(--text-secondary);
10
- border: none;
11
- cursor: pointer;
12
- transition:
13
- color 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
14
- background-color 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1)),
15
- transform 0.15s var(--mint-ease-out-quart, cubic-bezier(0.25, 1, 0.5, 1));
16
- transform: translateY(0);
17
- }
18
-
19
- .mint-theme-toggle:hover {
20
- background-color: var(--bg-tertiary);
21
- color: var(--text-primary);
22
- transform: translateY(-1px);
23
- }
24
-
25
- .mint-theme-toggle:active {
26
- transform: translateY(0);
27
- transition-duration: 0.05s;
28
- }
29
-
30
- .mint-theme-toggle:focus-visible {
31
- outline: none;
32
- box-shadow: var(--focus-ring);
33
- }
34
-
35
- @media (prefers-reduced-motion: reduce) {
36
- .mint-theme-toggle,
37
- .mint-theme-toggle:hover,
38
- .mint-theme-toggle:active {
39
- transform: none;
40
- transition: color 0.15s ease, background-color 0.15s ease;
41
- }
42
- }
43
-
44
- .mint-theme-toggle--sm {
45
- padding: 0.375rem;
46
- }
47
-
48
- .mint-theme-toggle--md {
49
- padding: 0.5rem;
50
- }
51
-
52
- .mint-theme-toggle--lg {
53
- padding: 0.75rem;
54
- }
55
-
56
- .mint-theme-toggle__icon--sm {
57
- width: 1rem;
58
- height: 1rem;
59
- }
60
-
61
- .mint-theme-toggle__icon--md {
62
- width: 1.25rem;
63
- height: 1.25rem;
64
- }
65
-
66
- .mint-theme-toggle__icon--lg {
67
- width: 1.5rem;
68
- height: 1.5rem;
3
+ .mint-theme-toggle__icon {
4
+ width: 100%;
5
+ height: 100%;
69
6
  }
@@ -27,7 +27,6 @@
27
27
  @import './components/radio-group.css';
28
28
  @import './components/sample-legend.css';
29
29
  @import './components/select.css';
30
- @import './components/settings-button.css';
31
30
  @import './components/skeleton.css';
32
31
  @import './components/slider.css';
33
32
  @import './components/tabs.css';
@@ -38,7 +37,6 @@
38
37
  @import './components/toggle.css';
39
38
  @import './components/well-plate.css';
40
39
  @import './components/sample-selector.css';
41
- @import './components/grouping-modal.css';
42
40
  @import './components/auto-group-modal.css';
43
41
  @import './components/group-assigner.css';
44
42
  @import './components/molecule-input.css';