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

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 (399) hide show
  1. package/README.md +218 -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/ConcentrationInput.test.d.ts +1 -0
  19. package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
  20. package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
  21. package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
  22. package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
  23. package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
  24. package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
  25. package/dist/__tests__/components/FormCompatibility.test.d.ts +1 -0
  26. package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
  27. package/dist/__tests__/components/GroupingModal.test.d.ts +1 -0
  28. package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
  29. package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
  30. package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
  31. package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
  32. package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
  33. package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
  34. package/dist/__tests__/components/SettingsButton.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/useBioTemplatePackWorkspace.test.d.ts +1 -0
  40. package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
  41. package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
  42. package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
  43. package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
  44. package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
  45. package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
  46. package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
  47. package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
  48. package/dist/__tests__/composables/useExperimentData.test.d.ts +1 -0
  49. package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
  50. package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
  51. package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
  52. package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
  53. package/dist/__tests__/composables/usePluginConfig.test.d.ts +1 -0
  54. package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
  55. package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
  56. package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
  57. package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
  58. package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
  59. package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
  60. package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
  61. package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
  62. package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
  63. package/dist/__tests__/templates/templates.test.d.ts +1 -0
  64. package/dist/{auth-DsI0rQ7_.js → auth-QQj2kkze.js} +12 -5
  65. package/dist/auth-QQj2kkze.js.map +1 -0
  66. package/dist/components/ActionItem.vue.d.ts +32 -0
  67. package/dist/components/AppAvatarMenu.vue.d.ts +2 -7
  68. package/dist/components/AppPageSelector.vue.d.ts +3 -6
  69. package/dist/components/AppPillNav.vue.d.ts +2 -2
  70. package/dist/components/AppSidebar.vue.d.ts +56 -3
  71. package/dist/components/AppToastContainer.vue.d.ts +2 -0
  72. package/dist/components/AppTopBar.vue.d.ts +41 -10
  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 +117 -0
  83. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +92 -0
  84. package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +82 -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/CalendarGridPanel.vue.d.ts +25 -0
  89. package/dist/components/CollapsibleCard.vue.d.ts +1 -1
  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 +130 -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/DropdownButton.vue.d.ts +3 -3
  97. package/dist/components/EmptyState.vue.d.ts +1 -2
  98. package/dist/components/ExperimentDataViewer.vue.d.ts +1 -1
  99. package/dist/components/ExperimentTimeline.vue.d.ts +2 -2
  100. package/dist/components/FileUploader.vue.d.ts +1 -1
  101. package/dist/components/FitPanel.vue.d.ts +1 -1
  102. package/dist/components/FormActions.vue.d.ts +4 -4
  103. package/dist/components/FormBuilder.vue.d.ts +22 -8
  104. package/dist/components/FormFieldRenderer.vue.d.ts +7 -10
  105. package/dist/components/FormSection.vue.d.ts +11 -24
  106. package/dist/components/FormulaInput.vue.d.ts +2 -2
  107. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  108. package/dist/components/MultiSelect.vue.d.ts +3 -3
  109. package/dist/components/NumberInput.vue.d.ts +1 -1
  110. package/dist/components/ProgressBar.vue.d.ts +1 -1
  111. package/dist/components/ProtocolStepEditor.vue.d.ts +3 -1
  112. package/dist/components/RackEditor.vue.d.ts +2 -2
  113. package/dist/components/SampleLegend.vue.d.ts +2 -2
  114. package/dist/components/ScheduleCalendar.vue.d.ts +2 -2
  115. package/dist/components/SegmentedControl.vue.d.ts +2 -2
  116. package/dist/components/SequenceInput.vue.d.ts +3 -3
  117. package/dist/components/SettingsButton.vue.d.ts +2 -2
  118. package/dist/components/SettingsModal.vue.d.ts +13 -5
  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 +8 -8
  125. package/dist/components/index.d.ts +11 -1
  126. package/dist/components/index.js +3 -3
  127. package/dist/components/internal/FormFieldRendererInternal.vue.d.ts +31 -0
  128. package/dist/components/internal/FormSectionRenderer.vue.d.ts +43 -0
  129. package/dist/{components-_XqPEhP9.js → components-D_Sr0adg.js} +7290 -6518
  130. package/dist/components-D_Sr0adg.js.map +1 -0
  131. package/dist/composables/index.d.ts +21 -2
  132. package/dist/composables/index.js +4 -3
  133. package/dist/composables/platformContextHelpers.d.ts +14 -0
  134. package/dist/composables/useBioTemplateComponents.d.ts +20 -0
  135. package/dist/composables/useBioTemplateControls.d.ts +6 -0
  136. package/dist/composables/useBioTemplatePackWorkspace.d.ts +45 -0
  137. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +74 -0
  138. package/dist/composables/useBioTemplateWorkspace.d.ts +50 -0
  139. package/dist/composables/useCalendarGrid.d.ts +26 -0
  140. package/dist/composables/useControlSchema.d.ts +321 -0
  141. package/dist/composables/useDebouncedWatch.d.ts +20 -0
  142. package/dist/composables/useDropdownState.d.ts +19 -0
  143. package/dist/composables/useEventListener.d.ts +13 -0
  144. package/dist/composables/useExpansionSet.d.ts +21 -0
  145. package/dist/composables/useExperimentData.d.ts +10 -0
  146. package/dist/composables/useExperimentSave.d.ts +31 -2
  147. package/dist/composables/useExperimentSelector.d.ts +20 -0
  148. package/dist/composables/useForm.d.ts +2 -0
  149. package/dist/composables/useGroupAssignment.d.ts +31 -0
  150. package/dist/composables/useListSelection.d.ts +35 -0
  151. package/dist/composables/usePlatformContext.d.ts +21 -3
  152. package/dist/composables/usePluginApi.d.ts +7 -14
  153. package/dist/composables/usePluginClient.d.ts +109 -0
  154. package/dist/composables/usePluginConfig.d.ts +12 -0
  155. package/dist/composables/useRequestSyncState.d.ts +34 -0
  156. package/dist/composables/useSampleGroups.d.ts +32 -0
  157. package/dist/composables/useSelectionLimit.d.ts +17 -0
  158. package/dist/composables/useSortedItems.d.ts +32 -0
  159. package/dist/composables/useTemplateCollection.d.ts +58 -0
  160. package/dist/composables/useTextSearch.d.ts +18 -0
  161. package/dist/composables/useTimeUtils.d.ts +8 -0
  162. package/dist/{composables-tiZqLu1M.js → composables-C3dpXQN5.js} +228 -146
  163. package/dist/composables-C3dpXQN5.js.map +1 -0
  164. package/dist/index.d.ts +12 -3
  165. package/dist/index.js +6 -5
  166. package/dist/install.d.ts +7 -2
  167. package/dist/install.js +2 -2
  168. package/dist/install.js.map +1 -1
  169. package/dist/stores/index.js +1 -1
  170. package/dist/stores/settings.d.ts +4 -1
  171. package/dist/styles.css +5235 -5977
  172. package/dist/templates/adapters.d.ts +43 -0
  173. package/dist/templates/builders.d.ts +63 -0
  174. package/dist/templates/catalog.d.ts +188 -0
  175. package/dist/templates/componentBindings.d.ts +58 -0
  176. package/dist/templates/controlSchemas.d.ts +25 -0
  177. package/dist/templates/index.d.ts +15 -0
  178. package/dist/templates/index.js +2 -0
  179. package/dist/templates/lookup.d.ts +4 -0
  180. package/dist/templates/packs.d.ts +18 -0
  181. package/dist/templates/presets.d.ts +90 -0
  182. package/dist/templates/types.d.ts +531 -0
  183. package/dist/templates-50NPjaxL.js +9333 -0
  184. package/dist/templates-50NPjaxL.js.map +1 -0
  185. package/dist/types/components.d.ts +26 -4
  186. package/dist/types/form-builder.d.ts +6 -8
  187. package/dist/types/index.d.ts +2 -2
  188. package/dist/types/platform.d.ts +7 -1
  189. package/dist/useScheduleDrag-D4oWdh41.js +4371 -0
  190. package/dist/useScheduleDrag-D4oWdh41.js.map +1 -0
  191. package/dist/utils/formModelSync.d.ts +5 -0
  192. package/dist/utils/items.d.ts +8 -0
  193. package/dist/utils/options.d.ts +6 -0
  194. package/dist/utils/pluginIcon.d.ts +9 -0
  195. package/package.json +7 -2
  196. package/src/__tests__/components/ActionItem.test.ts +99 -0
  197. package/src/__tests__/components/AppAvatarMenu.test.ts +27 -0
  198. package/src/__tests__/components/AppPageSelector.test.ts +134 -0
  199. package/src/__tests__/components/AppPillNav.test.ts +78 -0
  200. package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
  201. package/src/__tests__/components/AppSidebar.test.ts +370 -0
  202. package/src/__tests__/components/AppToastContainer.test.ts +48 -0
  203. package/src/__tests__/components/AppTopBar.test.ts +383 -0
  204. package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
  205. package/src/__tests__/components/BaseSelect.test.ts +21 -0
  206. package/src/__tests__/components/BaseTabs.test.ts +25 -0
  207. package/src/__tests__/components/BatchProgressList.test.ts +52 -0
  208. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +153 -0
  209. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +161 -0
  210. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +281 -0
  211. package/src/__tests__/components/BioTemplateRenderer.test.ts +71 -0
  212. package/src/__tests__/components/Breadcrumb.test.ts +23 -0
  213. package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
  214. package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
  215. package/src/__tests__/components/ControlWorkspaceView.test.ts +1031 -0
  216. package/src/__tests__/components/DataFrame.test.ts +11 -0
  217. package/src/__tests__/components/DatePicker.test.ts +45 -0
  218. package/src/__tests__/components/DateTimePicker.test.ts +48 -0
  219. package/src/__tests__/components/DropdownButton.test.ts +23 -0
  220. package/src/__tests__/components/EmptyState.test.ts +23 -0
  221. package/src/__tests__/components/ExperimentPopover.test.ts +56 -0
  222. package/src/__tests__/components/FormBuilder.test.ts +296 -0
  223. package/src/__tests__/components/FormCompatibility.test.ts +94 -0
  224. package/src/__tests__/components/GroupAssigner.test.ts +30 -0
  225. package/src/__tests__/components/GroupingModal.test.ts +73 -0
  226. package/src/__tests__/components/MultiSelect.test.ts +48 -0
  227. package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
  228. package/src/__tests__/components/ReagentList.test.ts +82 -0
  229. package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
  230. package/src/__tests__/components/SampleSelector.test.ts +60 -0
  231. package/src/__tests__/components/SegmentedControl.test.ts +24 -0
  232. package/src/__tests__/components/SettingsButton.test.ts +44 -0
  233. package/src/__tests__/components/SettingsModal.test.ts +296 -0
  234. package/src/__tests__/components/TagsInput.test.ts +75 -0
  235. package/src/__tests__/components/ThemeToggle.test.ts +47 -0
  236. package/src/__tests__/components/TimePicker.test.ts +38 -0
  237. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +122 -0
  238. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
  239. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +99 -0
  240. package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
  241. package/src/__tests__/composables/useControlSchema.test.ts +919 -0
  242. package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
  243. package/src/__tests__/composables/useDropdownState.test.ts +95 -0
  244. package/src/__tests__/composables/useEventListener.test.ts +116 -0
  245. package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
  246. package/src/__tests__/composables/useExperimentData.test.ts +4 -0
  247. package/src/__tests__/composables/useExperimentSave.test.ts +203 -8
  248. package/src/__tests__/composables/useExperimentSelector.test.ts +164 -0
  249. package/src/__tests__/composables/useForm.test.ts +58 -0
  250. package/src/__tests__/composables/useFormBuilder.test.ts +77 -0
  251. package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
  252. package/src/__tests__/composables/useListSelection.test.ts +66 -0
  253. package/src/__tests__/composables/usePluginClient.test.ts +444 -0
  254. package/src/__tests__/composables/usePluginConfig.test.ts +5 -0
  255. package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
  256. package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
  257. package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
  258. package/src/__tests__/composables/useSortedItems.test.ts +87 -0
  259. package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
  260. package/src/__tests__/composables/useTextSearch.test.ts +55 -0
  261. package/src/__tests__/composables/useTheme.test.ts +91 -0
  262. package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
  263. package/src/__tests__/docs/frontendDocsCatalog.test.ts +229 -0
  264. package/src/__tests__/fixtures/templates/dose-response.json +81 -0
  265. package/src/__tests__/fixtures/templates/plate-map.json +54 -0
  266. package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
  267. package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
  268. package/src/__tests__/templates/templates.test.ts +1043 -0
  269. package/src/components/ActionItem.vue +82 -0
  270. package/src/components/AppAvatarMenu.vue +15 -69
  271. package/src/components/AppLayout.story.vue +25 -25
  272. package/src/components/AppPageSelector.vue +63 -94
  273. package/src/components/AppPillNav.vue +44 -39
  274. package/src/components/AppPluginSwitcher.vue +41 -145
  275. package/src/components/AppSidebar.story.vue +94 -0
  276. package/src/components/AppSidebar.vue +187 -12
  277. package/src/components/{ToastNotification.story.vue → AppToastContainer.story.vue} +6 -6
  278. package/src/components/AppToastContainer.vue +62 -0
  279. package/src/components/AppTopBar.story.vue +7 -30
  280. package/src/components/AppTopBar.vue +251 -57
  281. package/src/components/BaseModal.vue +3 -5
  282. package/src/components/BaseRadioGroup.vue +7 -3
  283. package/src/components/BaseSelect.vue +11 -7
  284. package/src/components/BaseTabs.vue +6 -4
  285. package/src/components/BatchProgressList.vue +5 -8
  286. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
  287. package/src/components/BioTemplateExperimentWorkspaceView.vue +337 -0
  288. package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
  289. package/src/components/BioTemplatePackWorkspaceView.vue +176 -0
  290. package/src/components/BioTemplatePresetWorkspaceView.story.vue +151 -0
  291. package/src/components/BioTemplatePresetWorkspaceView.vue +392 -0
  292. package/src/components/BioTemplateRenderer.story.vue +57 -0
  293. package/src/components/BioTemplateRenderer.vue +269 -0
  294. package/src/components/Breadcrumb.vue +14 -8
  295. package/src/components/CalendarGridPanel.vue +120 -0
  296. package/src/components/ConcentrationInput.vue +27 -64
  297. package/src/components/ControlWorkspaceView.story.vue +336 -0
  298. package/src/components/ControlWorkspaceView.vue +347 -0
  299. package/src/components/DataFrame.vue +34 -50
  300. package/src/components/DatePicker.vue +59 -192
  301. package/src/components/DateTimePicker.vue +50 -171
  302. package/src/components/DropdownButton.vue +14 -32
  303. package/src/components/EmptyState.vue +4 -2
  304. package/src/components/ExperimentPopover.vue +5 -22
  305. package/src/components/FormBuilder.vue +124 -27
  306. package/src/components/FormFieldRenderer.vue +15 -38
  307. package/src/components/FormSection.vue +20 -73
  308. package/src/components/GroupAssigner.vue +24 -56
  309. package/src/components/GroupingModal.story.vue +3 -3
  310. package/src/components/GroupingModal.vue +30 -391
  311. package/src/components/MultiSelect.vue +17 -12
  312. package/src/components/PlateMapEditor.vue +3 -8
  313. package/src/components/PluginIcon.vue +2 -22
  314. package/src/components/ProtocolStepEditor.vue +13 -22
  315. package/src/components/ReagentList.vue +25 -33
  316. package/src/components/SampleHierarchyTree.vue +12 -23
  317. package/src/components/SampleSelector.vue +42 -122
  318. package/src/components/SegmentedControl.vue +7 -3
  319. package/src/components/SettingsButton.story.vue +1 -1
  320. package/src/components/SettingsButton.vue +15 -27
  321. package/src/components/SettingsModal.story.vue +1 -1
  322. package/src/components/SettingsModal.vue +120 -29
  323. package/src/components/TagsInput.vue +29 -14
  324. package/src/components/ThemeToggle.vue +9 -7
  325. package/src/components/TimePicker.vue +19 -41
  326. package/src/components/ToastNotification.vue +4 -57
  327. package/src/components/Tooltip.vue +7 -12
  328. package/src/components/WellEditPopup.vue +3 -8
  329. package/src/components/WellPlate.vue +4 -10
  330. package/src/components/index.ts +11 -1
  331. package/src/components/internal/FormFieldRendererInternal.vue +50 -0
  332. package/src/components/internal/FormSectionRenderer.vue +78 -0
  333. package/src/composables/index.ts +212 -0
  334. package/src/composables/platformContextHelpers.ts +74 -0
  335. package/src/composables/useBioTemplateComponents.ts +93 -0
  336. package/src/composables/useBioTemplateControls.ts +41 -0
  337. package/src/composables/useBioTemplatePackWorkspace.ts +181 -0
  338. package/src/composables/useBioTemplatePresetWorkspace.ts +337 -0
  339. package/src/composables/useBioTemplateWorkspace.ts +139 -0
  340. package/src/composables/useCalendarGrid.ts +140 -0
  341. package/src/composables/useControlSchema.ts +1274 -0
  342. package/src/composables/useDebouncedWatch.ts +119 -0
  343. package/src/composables/useDropdownState.ts +83 -0
  344. package/src/composables/useEventListener.ts +111 -0
  345. package/src/composables/useExpansionSet.ts +117 -0
  346. package/src/composables/useExperimentData.ts +20 -11
  347. package/src/composables/useExperimentSave.ts +202 -50
  348. package/src/composables/useExperimentSelector.ts +86 -72
  349. package/src/composables/useForm.ts +49 -4
  350. package/src/composables/useFormBuilder.ts +93 -42
  351. package/src/composables/useGroupAssignment.ts +148 -0
  352. package/src/composables/useListSelection.ts +158 -0
  353. package/src/composables/usePluginApi.ts +7 -14
  354. package/src/composables/usePluginClient.ts +425 -0
  355. package/src/composables/usePluginConfig.ts +34 -13
  356. package/src/composables/useRequestSyncState.ts +126 -0
  357. package/src/composables/useSampleGroups.ts +126 -0
  358. package/src/composables/useSelectionLimit.ts +57 -0
  359. package/src/composables/useSortedItems.ts +118 -0
  360. package/src/composables/useTemplateCollection.ts +229 -0
  361. package/src/composables/useTextSearch.ts +60 -0
  362. package/src/composables/useTheme.ts +2 -28
  363. package/src/composables/useTimeUtils.ts +26 -2
  364. package/src/composables/useWellPlateEditor.ts +13 -9
  365. package/src/index.ts +224 -4
  366. package/src/install.ts +11 -4
  367. package/src/stores/settings.ts +13 -9
  368. package/src/styles/components/app-page-selector.css +23 -0
  369. package/src/styles/components/app-pill-nav.css +7 -0
  370. package/src/styles/components/app-top-bar.css +34 -0
  371. package/src/styles/components/concentration-input.css +3 -142
  372. package/src/styles/components/empty-state.css +0 -16
  373. package/src/styles/components/settings-button.css +3 -66
  374. package/src/styles/components/theme-toggle.css +3 -66
  375. package/src/styles/index.css +0 -1
  376. package/src/templates/adapters.ts +785 -0
  377. package/src/templates/builders.ts +2149 -0
  378. package/src/templates/catalog.ts +245 -0
  379. package/src/templates/componentBindings.ts +615 -0
  380. package/src/templates/controlSchemas.ts +718 -0
  381. package/src/templates/index.ts +314 -0
  382. package/src/templates/lookup.ts +18 -0
  383. package/src/templates/packs.ts +156 -0
  384. package/src/templates/presets.ts +146 -0
  385. package/src/templates/types.ts +668 -0
  386. package/src/types/components.ts +41 -4
  387. package/src/types/form-builder.ts +7 -2
  388. package/src/types/index.ts +14 -0
  389. package/src/types/platform.ts +7 -1
  390. package/src/utils/formModelSync.ts +52 -0
  391. package/src/utils/items.ts +28 -0
  392. package/src/utils/options.ts +23 -0
  393. package/src/utils/pluginIcon.ts +30 -0
  394. package/dist/auth-DsI0rQ7_.js.map +0 -1
  395. package/dist/components-_XqPEhP9.js.map +0 -1
  396. package/dist/composables-tiZqLu1M.js.map +0 -1
  397. package/dist/useScheduleDrag-CA9sGNJG.js +0 -7181
  398. package/dist/useScheduleDrag-CA9sGNJG.js.map +0 -1
  399. package/src/styles/components/grouping-modal.css +0 -323
@@ -1,4 +1,4 @@
1
- import { ref, computed, type ComputedRef } from 'vue'
1
+ import { ref, computed, toRaw, type ComputedRef } from 'vue'
2
2
  import type {
3
3
  PlateMapEditorState,
4
4
  PlateMap,
@@ -73,6 +73,10 @@ function generateSampleId(): string {
73
73
  return `sample-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
74
74
  }
75
75
 
76
+ function cloneValue<T>(value: T): T {
77
+ return structuredClone(toRaw(value))
78
+ }
79
+
76
80
  /** Manages multi-plate well-plate state with sample assignment, selection, and undo/redo history. */
77
81
  export function useWellPlateEditor(
78
82
  initialState?: Partial<PlateMapEditorState>,
@@ -107,8 +111,8 @@ export function useWellPlateEditor(
107
111
 
108
112
  function saveToHistory() {
109
113
  const entry: HistoryEntry = {
110
- plates: structuredClone(internalState.value.plates),
111
- samples: structuredClone(internalState.value.samples),
114
+ plates: cloneValue(internalState.value.plates),
115
+ samples: cloneValue(internalState.value.samples),
112
116
  }
113
117
 
114
118
  if (historyIndex.value < history.value.length - 1) {
@@ -255,8 +259,8 @@ export function useWellPlateEditor(
255
259
  const entry = history.value[historyIndex.value]
256
260
  historyIndex.value--
257
261
 
258
- internalState.value.plates = structuredClone(entry.plates)
259
- internalState.value.samples = structuredClone(entry.samples)
262
+ internalState.value.plates = cloneValue(entry.plates)
263
+ internalState.value.samples = cloneValue(entry.samples)
260
264
 
261
265
  const activePlateExists = internalState.value.plates.some(p => p.id === internalState.value.activePlateId)
262
266
  if (!activePlateExists) {
@@ -271,8 +275,8 @@ export function useWellPlateEditor(
271
275
  historyIndex.value++
272
276
  const entry = history.value[historyIndex.value]
273
277
 
274
- internalState.value.plates = structuredClone(entry.plates)
275
- internalState.value.samples = structuredClone(entry.samples)
278
+ internalState.value.plates = cloneValue(entry.plates)
279
+ internalState.value.samples = cloneValue(entry.samples)
276
280
  internalState.value.selectedWells = []
277
281
  }
278
282
 
@@ -369,11 +373,11 @@ export function useWellPlateEditor(
369
373
  function loadState(state: Partial<PlateMapEditorState>) {
370
374
  saveToHistory()
371
375
  if (state.plates && state.plates.length > 0) {
372
- internalState.value.plates = structuredClone(state.plates)
376
+ internalState.value.plates = cloneValue(state.plates)
373
377
  internalState.value.activePlateId = state.activePlateId ?? state.plates[0].id
374
378
  }
375
379
  if (state.samples) {
376
- internalState.value.samples = structuredClone(state.samples)
380
+ internalState.value.samples = cloneValue(state.samples)
377
381
  }
378
382
  internalState.value.selectedWells = state.selectedWells ?? []
379
383
  internalState.value.activeSampleId = state.activeSampleId
package/src/index.ts CHANGED
@@ -17,6 +17,7 @@ export {
17
17
  ColorSlider,
18
18
  BaseTabs,
19
19
  BaseModal,
20
+ FormBuilder,
20
21
  FormField,
21
22
  DatePicker,
22
23
  TimePicker,
@@ -24,11 +25,9 @@ export {
24
25
  NumberInput,
25
26
  FileUploader,
26
27
  AlertBox,
27
- ToastNotification,
28
28
  AppToastContainer,
29
29
  IconButton,
30
30
  ThemeToggle,
31
- SettingsButton,
32
31
  CollapsibleCard,
33
32
  AppTopBar,
34
33
  AppPageSelector,
@@ -37,6 +36,7 @@ export {
37
36
  AppPluginSwitcher,
38
37
  AppSidebar,
39
38
  AppLayout,
39
+ ControlWorkspaceView,
40
40
  AppContainer,
41
41
  PluginIcon,
42
42
  Skeleton,
@@ -48,7 +48,6 @@ export {
48
48
  ExperimentTimeline,
49
49
  // Sample management components
50
50
  SampleSelector,
51
- GroupingModal,
52
51
  AutoGroupModal,
53
52
  GroupAssigner,
54
53
  // Lab/Experiment components
@@ -101,8 +100,21 @@ export {
101
100
  ExperimentSelectorModal,
102
101
  ExperimentPopover,
103
102
  FitPanel,
103
+ BioTemplateRenderer,
104
+ BioTemplateExperimentWorkspaceView,
105
+ BioTemplatePackWorkspaceView,
106
+ BioTemplatePresetWorkspaceView,
104
107
  } from './components'
105
108
 
109
+ /** @deprecated Use AppToastContainer instead. */
110
+ export { ToastNotification } from './components'
111
+
112
+ /** @deprecated Use AppTopBar settingsConfig or SettingsModal instead. */
113
+ export { SettingsButton } from './components'
114
+
115
+ /** @deprecated Use AutoGroupModal instead. */
116
+ export { GroupingModal } from './components'
117
+
106
118
  // Composables
107
119
  export {
108
120
  useApi,
@@ -128,6 +140,14 @@ export {
128
140
  type ConcentrationUnit,
129
141
  type VolumeValue,
130
142
  type VolumeUnit,
143
+ type DilutionParams,
144
+ type DilutionResult,
145
+ type SerialDilutionParams,
146
+ type SerialDilutionStep,
147
+ type SerialDilutionResult,
148
+ type ConversionResult,
149
+ type WellConcentration,
150
+ type UseDoseCalculatorReturn,
131
151
  type StepTemplate,
132
152
  type FormulaParseResult,
133
153
  type FormulaPart,
@@ -147,6 +167,16 @@ export {
147
167
  compareTime,
148
168
  // Schedule drag
149
169
  useScheduleDrag,
170
+ // DOM events
171
+ useEventListener,
172
+ type EventListenerEnabled,
173
+ type EventFor,
174
+ type EventListenerStop,
175
+ type EventMapFor,
176
+ type EventTargetGetter,
177
+ type EventTargetLike,
178
+ type UseEventListenerObjectOptions,
179
+ type UseEventListenerOptions,
150
180
  // Plugin config
151
181
  usePluginConfig,
152
182
  type UsePluginConfigReturn,
@@ -178,7 +208,169 @@ export {
178
208
  useExperimentSave,
179
209
  type UseExperimentSaveOptions,
180
210
  type UseExperimentSaveReturn,
181
- // Plugin API (auto base URL detection)
211
+ // Template collection persistence
212
+ useTemplateCollection,
213
+ type TemplateCollectionInput,
214
+ type UseTemplateCollectionOptions,
215
+ type UseTemplateCollectionReturn,
216
+ useRequestSyncState,
217
+ type RequestSyncRunOptions,
218
+ type RequestSyncSuccessKind,
219
+ type UseRequestSyncStateReturn,
220
+ useSelectionLimit,
221
+ type SelectionLimitSource,
222
+ type UseSelectionLimitOptions,
223
+ type UseSelectionLimitReturn,
224
+ useListSelection,
225
+ type ListSelectionSource,
226
+ type ListSelectionValue,
227
+ type UseListSelectionOptions,
228
+ type UseListSelectionReturn,
229
+ type WidenListSelectionValue,
230
+ useGroupAssignment,
231
+ type GroupAssignmentSource,
232
+ type GroupAssignmentState,
233
+ type GroupAssignmentZone,
234
+ type UseGroupAssignmentOptions,
235
+ type UseGroupAssignmentReturn,
236
+ useSampleGroups,
237
+ type DisplaySampleSubGroup,
238
+ type SampleGroupSource,
239
+ type SampleMajorGroup,
240
+ type UseSampleGroupsOptions,
241
+ type UseSampleGroupsReturn,
242
+ useExpansionSet,
243
+ type ExpansionSetSource,
244
+ type UseExpansionSetOptions,
245
+ type UseExpansionSetReturn,
246
+ compareSortValues,
247
+ useSortedItems,
248
+ type CompareSortValuesOptions,
249
+ type SortComparator,
250
+ type SortComparatorContext,
251
+ type SortDescriptor,
252
+ type SortedItemsSource,
253
+ type SortOrder,
254
+ type UseSortedItemsOptions,
255
+ type UseSortedItemsReturn,
256
+ candidateMatchesSearch,
257
+ normalizeSearchQuery,
258
+ useTextSearch,
259
+ type TextSearchCandidate,
260
+ type TextSearchSource,
261
+ type UseTextSearchOptions,
262
+ type UseTextSearchReturn,
263
+ // Schema-driven controls
264
+ controlsToFormSchema,
265
+ controlsToSectionFormSchema,
266
+ controlsToSectionFormSchemas,
267
+ controlsToSidebarPanels,
268
+ controlsToSettingsSchema,
269
+ controlsToTopBarSettingsConfig,
270
+ controlsToTopBarTabs,
271
+ controlsToViewIds,
272
+ controlsToViewItems,
273
+ controlValuesToComponentProps,
274
+ defineControlModel,
275
+ defineDoseDesignControlModel,
276
+ defineDoseCalculatorControlProps,
277
+ defineControls,
278
+ defineWellPlateControlProps,
279
+ defineWellPlateDoseControlProps,
280
+ getDefaultControlView,
281
+ getControlDefaults,
282
+ useControlSchema,
283
+ useControlWorkspace,
284
+ type ControlDefinition,
285
+ type ControlWorkspaceAppTopBarPillBinding,
286
+ type ControlWorkspaceAppTopBarTabsBinding,
287
+ type ControlWorkspaceComponentBindings,
288
+ type ControlComponentPropSource,
289
+ type ControlComponentPropsByIdMap,
290
+ type ControlComponentPropsMap,
291
+ type DoseDesignControlModelOptions,
292
+ type DoseCalculatorControlPropsOptions,
293
+ type ControlFormSchema,
294
+ type ControlInput,
295
+ type ControlModel,
296
+ type ControlModelBinding,
297
+ type ControlModelSectionConfig,
298
+ type ControlModelViewConfig,
299
+ type ControlOption,
300
+ type ControlOptionValue,
301
+ type ControlPrimitive,
302
+ type ControlSchema,
303
+ type ControlSchemaOptions,
304
+ type ControlShorthand,
305
+ type ControlWorkspaceOptions,
306
+ type ControlFormBinding,
307
+ type ControlSettingsBinding,
308
+ type ControlSidebarBinding,
309
+ type ControlSectionConfig,
310
+ type ControlSidebarConfig,
311
+ type ControlTopBarSettingsBinding,
312
+ type ControlViewConfig,
313
+ type ControlValues,
314
+ type UseControlSchemaReturn,
315
+ type ControlWorkspaceFormBinding,
316
+ type ControlWorkspacePillNavBinding,
317
+ type ControlWorkspaceSidebarBinding,
318
+ type ControlWorkspaceTopBarBinding,
319
+ type ControlWorkspaceTopBarSettingsBinding,
320
+ type UseControlWorkspaceReturn,
321
+ type WellPlateControlPropsOptions,
322
+ type WellPlateDoseControlPropsOptions,
323
+ useBioTemplateControls,
324
+ getBioTemplateControlSchema,
325
+ requireBioTemplateControlSchema,
326
+ type BioTemplateControlSchema,
327
+ type BioTemplateControlTarget,
328
+ useBioTemplateComponents,
329
+ getBioTemplateComponentProps,
330
+ getBioTemplateComponentBindings,
331
+ toBioTemplateComponentProps,
332
+ toBioTemplateComponentPropsByComponent,
333
+ toBioTemplateComponentPropsById,
334
+ type BioTemplateComponentBinding,
335
+ type BioTemplateComponentPropsByComponent,
336
+ type BioTemplateComponentPropsBinding,
337
+ type BioTemplateComponentPropsById,
338
+ type BioTemplateComponentPropsLookupOptions,
339
+ type BioTemplateComponentTarget,
340
+ type UseBioTemplateComponentsReturn,
341
+ useBioTemplateWorkspace,
342
+ type BioTemplateRendererBinding,
343
+ type BioTemplateWorkspaceBindings,
344
+ type BioTemplateWorkspaceTarget,
345
+ type UseBioTemplateWorkspaceReturn,
346
+ useBioTemplatePresetWorkspace,
347
+ type BioTemplatePresetWorkspaceBindings,
348
+ type UseBioTemplatePresetWorkspaceOptions,
349
+ type UseBioTemplatePresetWorkspaceReturn,
350
+ useBioTemplatePackWorkspace,
351
+ type UseBioTemplatePackWorkspaceOptions,
352
+ type UseBioTemplatePackWorkspaceReturn,
353
+ // Generated plugin clients
354
+ buildPluginEndpointUrl,
355
+ createPluginClient,
356
+ resolvePluginBaseUrl,
357
+ usePluginClient,
358
+ usePluginSettings,
359
+ useCurrentExperiment,
360
+ type BuildPluginEndpointUrlOptions,
361
+ type PluginContract,
362
+ type PluginEndpointContract,
363
+ type PluginEndpointDefinition,
364
+ type PluginHttpMethod,
365
+ type PluginNavItemContract,
366
+ type CreatePluginClientOptions,
367
+ type UseCurrentExperimentOptions,
368
+ type UseCurrentExperimentReturn,
369
+ } from './composables'
370
+
371
+ // Legacy plugin API compatibility
372
+ /** @deprecated Use generated plugin clients from `mint sdk generate` instead. */
373
+ export {
182
374
  usePluginApi,
183
375
  type UsePluginApiOptions,
184
376
  } from './composables'
@@ -199,6 +391,9 @@ export {
199
391
  type Hsl,
200
392
  } from './utils/color'
201
393
 
394
+ // Biology data templates
395
+ export * from './templates'
396
+
202
397
  // Types
203
398
  export type {
204
399
  // Component types
@@ -210,18 +405,27 @@ export type {
210
405
  AlertType,
211
406
  Toast,
212
407
  TabItem,
408
+ TabItemInput,
409
+ OptionPrimitive,
213
410
  SelectOption,
411
+ SelectOptionInput,
214
412
  RadioOption,
413
+ RadioOptionInput,
215
414
  FormFieldProps,
216
415
  SidebarToolSection,
217
416
  CollapsibleState,
218
417
  TopBarVariant,
219
418
  TopBarPage,
419
+ TopBarPageInput,
220
420
  TopBarTab,
421
+ TopBarTabInput,
221
422
  TopBarTabOption,
423
+ TopBarTabOptionInput,
222
424
  TopBarSettingsConfig,
223
425
  PillNavItem,
426
+ PillNavItemInput,
224
427
  PageSelectorItem,
428
+ PageSelectorItemInput,
225
429
  PluginSwitcherPlugin,
226
430
  PluginSwitcherInfo,
227
431
  AccountMenuItem,
@@ -262,10 +466,12 @@ export type {
262
466
  FileUploaderMode,
263
467
  // SegmentedControl types
264
468
  SegmentedOption,
469
+ SegmentedOptionInput,
265
470
  SegmentedControlVariant,
266
471
  SegmentedControlSize,
267
472
  // MultiSelect types
268
473
  MultiSelectOption,
474
+ MultiSelectOptionInput,
269
475
  MultiSelectSize,
270
476
  // Pill types
271
477
  PillVariant,
@@ -296,15 +502,29 @@ export type {
296
502
  EmptyStateSize,
297
503
  // Breadcrumb types
298
504
  BreadcrumbItem,
505
+ BreadcrumbItemInput,
299
506
  // Tooltip types
300
507
  TooltipPosition,
301
508
  // ConfirmDialog types
302
509
  ConfirmVariant,
303
510
  // SettingsModal types
304
511
  SettingsTab,
512
+ SettingsTabInput,
305
513
  SettingsModalLayout,
306
514
  SettingsGroup,
307
515
  SettingsModalSchema,
516
+ // FormBuilder types
517
+ FormFieldType,
518
+ FieldCondition,
519
+ FieldValidation,
520
+ FormFieldSchema,
521
+ FormOptionInput,
522
+ FormSectionSchema,
523
+ FormStepSchema,
524
+ FormSchema,
525
+ FieldEnhancement,
526
+ FormEnhancements,
527
+ UseFormBuilderReturn,
308
528
  // ScientificNumber types
309
529
  NumberNotation,
310
530
  // TimePicker types
package/src/install.ts CHANGED
@@ -1,6 +1,13 @@
1
- import type { App, Plugin } from 'vue'
2
1
  import * as components from './components'
3
2
 
3
+ type ComponentRegistryApp = {
4
+ component: (name: string, component: any) => unknown
5
+ }
6
+
7
+ export interface MINTSdkPlugin {
8
+ install(app: ComponentRegistryApp): void
9
+ }
10
+
4
11
  /**
5
12
  * Vue plugin that registers all MINT SDK components globally.
6
13
  *
@@ -14,8 +21,8 @@ import * as components from './components'
14
21
  * app.use(MINTSdk)
15
22
  * ```
16
23
  */
17
- export const MINTSdk: Plugin = {
18
- install(app: App) {
24
+ export const MINTSdk: MINTSdkPlugin = {
25
+ install(app) {
19
26
  for (const [name, component] of Object.entries(components)) {
20
27
  // Check if it's a valid Vue component (has setup, render, or template)
21
28
  if (
@@ -23,7 +30,7 @@ export const MINTSdk: Plugin = {
23
30
  typeof component === 'object' &&
24
31
  ('setup' in component || 'render' in component || '__name' in component)
25
32
  ) {
26
- app.component(name, component as Parameters<typeof app.component>[1])
33
+ app.component(name, component)
27
34
  }
28
35
  }
29
36
  },
@@ -82,6 +82,11 @@ function saveSettings(settings: SettingsState): void {
82
82
  }
83
83
  }
84
84
 
85
+ function getSystemPrefersDark(): boolean {
86
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return false
87
+ return window.matchMedia('(prefers-color-scheme: dark)').matches
88
+ }
89
+
85
90
  export const useSettingsStore = defineStore('mint-settings', () => {
86
91
  // State
87
92
  const serverHost = ref(defaultSettings.serverHost)
@@ -90,6 +95,7 @@ export const useSettingsStore = defineStore('mint-settings', () => {
90
95
  const wsAutoReconnect = ref(defaultSettings.wsAutoReconnect)
91
96
  const wsReconnectInterval = ref(defaultSettings.wsReconnectInterval)
92
97
  const theme = ref<ThemeMode>(defaultSettings.theme)
98
+ const systemPrefersDark = ref(getSystemPrefersDark())
93
99
  const colorPalette = ref<ColorPalette>(defaultSettings.colorPalette)
94
100
  const tableDensity = ref<TableDensity>(defaultSettings.tableDensity)
95
101
 
@@ -139,9 +145,8 @@ export const useSettingsStore = defineStore('mint-settings', () => {
139
145
  }
140
146
 
141
147
  function applyTheme() {
142
- const dark = theme.value === 'system'
143
- ? window.matchMedia('(prefers-color-scheme: dark)').matches
144
- : theme.value === 'dark'
148
+ if (typeof document === 'undefined') return
149
+ const dark = theme.value === 'system' ? systemPrefersDark.value : theme.value === 'dark'
145
150
  document.documentElement.classList.toggle('dark', dark)
146
151
  }
147
152
 
@@ -150,8 +155,9 @@ export const useSettingsStore = defineStore('mint-settings', () => {
150
155
  persistSettings()
151
156
  })
152
157
 
153
- if (typeof window !== 'undefined') {
154
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
158
+ if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {
159
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {
160
+ systemPrefersDark.value = event.matches
155
161
  if (theme.value === 'system') {
156
162
  applyTheme()
157
163
  }
@@ -191,10 +197,7 @@ export const useSettingsStore = defineStore('mint-settings', () => {
191
197
  }
192
198
 
193
199
  function isDark(): boolean {
194
- if (theme.value === 'system') {
195
- return window.matchMedia('(prefers-color-scheme: dark)').matches
196
- }
197
- return theme.value === 'dark'
200
+ return theme.value === 'system' ? systemPrefersDark.value : theme.value === 'dark'
198
201
  }
199
202
 
200
203
  return {
@@ -204,6 +207,7 @@ export const useSettingsStore = defineStore('mint-settings', () => {
204
207
  wsAutoReconnect,
205
208
  wsReconnectInterval,
206
209
  theme,
210
+ systemPrefersDark,
207
211
  colorPalette,
208
212
  tableDensity,
209
213
  initialize,
@@ -69,6 +69,17 @@
69
69
  height: 0.875rem;
70
70
  }
71
71
 
72
+ .mint-page-selector__icon--metadata {
73
+ background: transparent;
74
+ color: inherit;
75
+ }
76
+
77
+ .mint-page-selector__trigger-metadata-icon.mint-plugin-icon--sm {
78
+ width: 1.5rem;
79
+ height: 1.5rem;
80
+ border-radius: 0.375rem;
81
+ }
82
+
72
83
  .mint-page-selector__icon-fallback {
73
84
  font-size: 0.6875rem;
74
85
  font-weight: 600;
@@ -175,11 +186,23 @@
175
186
  color: var(--color-primary);
176
187
  }
177
188
 
189
+ .mint-page-selector__item-icon--metadata,
190
+ .mint-page-selector__item--active .mint-page-selector__item-icon--metadata {
191
+ background: transparent;
192
+ color: inherit;
193
+ }
194
+
178
195
  .mint-page-selector__item-icon svg {
179
196
  width: 0.8125rem;
180
197
  height: 0.8125rem;
181
198
  }
182
199
 
200
+ .mint-page-selector__metadata-icon.mint-plugin-icon--sm {
201
+ width: 1.375rem;
202
+ height: 1.375rem;
203
+ border-radius: 0.3125rem;
204
+ }
205
+
183
206
  .mint-page-selector__item-label {
184
207
  flex: 1;
185
208
  }
@@ -12,6 +12,7 @@
12
12
  .mint-pill-nav__item {
13
13
  display: inline-flex;
14
14
  align-items: center;
15
+ gap: 0.375rem;
15
16
  border: 0;
16
17
  padding: 0.375rem 0.875rem;
17
18
  border-radius: 9999px;
@@ -54,3 +55,9 @@
54
55
  outline: none;
55
56
  box-shadow: var(--focus-ring);
56
57
  }
58
+
59
+ .mint-pill-nav__icon {
60
+ width: 0.875rem;
61
+ height: 0.875rem;
62
+ flex-shrink: 0;
63
+ }
@@ -255,6 +255,34 @@
255
255
  cursor: not-allowed;
256
256
  }
257
257
 
258
+ .mint-topbar-dropdown-item__page {
259
+ display: flex;
260
+ align-items: flex-start;
261
+ gap: 0.625rem;
262
+ width: 100%;
263
+ }
264
+
265
+ .mint-topbar-dropdown-item__icon {
266
+ width: 1rem;
267
+ height: 1rem;
268
+ flex-shrink: 0;
269
+ margin-top: 0.125rem;
270
+ }
271
+
272
+ .mint-topbar-dropdown-item__icon.mint-plugin-icon--sm {
273
+ width: 1.375rem;
274
+ height: 1.375rem;
275
+ border-radius: 0.3125rem;
276
+ margin-top: -0.0625rem;
277
+ }
278
+
279
+ .mint-topbar-dropdown-item__copy {
280
+ display: flex;
281
+ min-width: 0;
282
+ flex-direction: column;
283
+ align-items: flex-start;
284
+ }
285
+
258
286
  .mint-topbar-dropdown-item__label {
259
287
  font-weight: 500;
260
288
  }
@@ -320,6 +348,12 @@
320
348
  transition: transform 0.15s ease;
321
349
  }
322
350
 
351
+ .mint-topbar-tab-icon {
352
+ width: 0.875rem;
353
+ height: 0.875rem;
354
+ flex-shrink: 0;
355
+ }
356
+
323
357
  .mint-topbar-tab-chevron--open {
324
358
  transform: rotate(180deg);
325
359
  }