@morscherlab/mint-sdk 1.0.0-beta.3 → 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 (165) hide show
  1. package/README.md +9 -2
  2. package/dist/__tests__/composables/experiment-utils.test.d.ts +1 -0
  3. package/dist/__tests__/composables/useApi.test.d.ts +1 -0
  4. package/dist/components/AppContainer.vue.d.ts +1 -1
  5. package/dist/components/AppLayout.vue.d.ts +20 -1
  6. package/dist/components/AppSidebar.vue.d.ts +56 -4
  7. package/dist/components/AppTopBar.vue.d.ts +7 -25
  8. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +3 -1
  9. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -0
  10. package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +5 -0
  11. package/dist/components/ComponentBindingRenderer.vue.d.ts +44 -0
  12. package/dist/components/ControlWorkspaceView.vue.d.ts +24 -7
  13. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +149 -0
  14. package/dist/components/ExperimentTimeline.vue.d.ts +1 -1
  15. package/dist/components/FormBuilder.vue.d.ts +9 -9
  16. package/dist/components/PlateMapEditor.vue.d.ts +1 -1
  17. package/dist/components/PluginWorkspaceView.vue.d.ts +310 -0
  18. package/dist/components/SettingsModal.vue.d.ts +1 -1
  19. package/dist/components/WellPlate.vue.d.ts +2 -2
  20. package/dist/components/index.d.ts +3 -12
  21. package/dist/components/index.js +3 -3
  22. package/dist/components/{AppPageSelector.vue.d.ts → internal/AppPageSelectorInternal.vue.d.ts} +1 -1
  23. package/dist/components/{AppPillNav.vue.d.ts → internal/AppPillNavInternal.vue.d.ts} +3 -1
  24. package/dist/components/{CalendarGridPanel.vue.d.ts → internal/CalendarGridPanelInternal.vue.d.ts} +1 -1
  25. package/dist/components/internal/FormSectionRenderer.vue.d.ts +4 -4
  26. package/dist/components/{WellEditPopup.vue.d.ts → internal/WellEditPopupInternal.vue.d.ts} +1 -1
  27. package/dist/{components-D_Sr0adg.js → components-BkGF4B4y.js} +4484 -3967
  28. package/dist/components-BkGF4B4y.js.map +1 -0
  29. package/dist/composables/experiment-utils.d.ts +8 -0
  30. package/dist/composables/index.d.ts +5 -7
  31. package/dist/composables/index.js +4 -4
  32. package/dist/composables/useAppExperiment.d.ts +31 -2
  33. package/dist/composables/useBioTemplateComponents.d.ts +5 -3
  34. package/dist/composables/useBioTemplatePackWorkspace.d.ts +3 -2
  35. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +6 -5
  36. package/dist/composables/useBioTemplateWorkspace.d.ts +5 -4
  37. package/dist/composables/useControlSchema.d.ts +43 -21
  38. package/dist/composables/usePluginClient.d.ts +5 -2
  39. package/dist/{composables-C3dpXQN5.js → composables-CHsME9H1.js} +40 -28
  40. package/dist/composables-CHsME9H1.js.map +1 -0
  41. package/dist/index.d.ts +5 -12
  42. package/dist/index.js +5 -5
  43. package/dist/install.js +2 -2
  44. package/dist/styles.css +3625 -3651
  45. package/dist/templates/componentBindings.d.ts +13 -0
  46. package/dist/templates/index.d.ts +3 -3
  47. package/dist/templates/index.js +2 -2
  48. package/dist/{templates-50NPjaxL.js → templates-B5jmTWuk.js} +111 -56
  49. package/dist/templates-B5jmTWuk.js.map +1 -0
  50. package/dist/types/components.d.ts +6 -25
  51. package/dist/types/index.d.ts +1 -1
  52. package/dist/{useScheduleDrag-D4oWdh41.js → useScheduleDrag-BgzpQT53.js} +160 -117
  53. package/dist/useScheduleDrag-BgzpQT53.js.map +1 -0
  54. package/package.json +1 -1
  55. package/src/__tests__/components/ActionItem.test.ts +6 -6
  56. package/src/__tests__/components/AppLayout.test.ts +44 -0
  57. package/src/__tests__/components/AppPageSelector.test.ts +8 -8
  58. package/src/__tests__/components/AppPillNav.test.ts +53 -6
  59. package/src/__tests__/components/AppSidebar.test.ts +126 -0
  60. package/src/__tests__/components/AppToastContainer.test.ts +0 -11
  61. package/src/__tests__/components/AppTopBar.test.ts +182 -119
  62. package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +7 -1
  63. package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +15 -1
  64. package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +26 -1
  65. package/src/__tests__/components/CalendarGridPanel.test.ts +3 -3
  66. package/src/__tests__/components/ComponentBindingRenderer.test.ts +161 -0
  67. package/src/__tests__/components/ControlWorkspaceView.test.ts +134 -63
  68. package/src/__tests__/components/DateTimePicker.test.ts +2 -2
  69. package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +185 -0
  70. package/src/__tests__/components/PluginWorkspaceView.test.ts +548 -0
  71. package/src/__tests__/composables/experiment-utils.test.ts +30 -0
  72. package/src/__tests__/composables/useApi.test.ts +30 -0
  73. package/src/__tests__/composables/useAppExperiment.test.ts +100 -1
  74. package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +6 -3
  75. package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +6 -6
  76. package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +6 -1
  77. package/src/__tests__/composables/useControlSchema.test.ts +150 -36
  78. package/src/__tests__/composables/usePluginClient.test.ts +99 -2
  79. package/src/__tests__/docs/frontendDocsCatalog.test.ts +120 -25
  80. package/src/__tests__/templates/templates.test.ts +12 -0
  81. package/src/components/AppAvatarMenu.vue +3 -3
  82. package/src/components/AppLayout.story.vue +39 -0
  83. package/src/components/AppLayout.vue +83 -2
  84. package/src/components/AppPluginSwitcher.vue +5 -5
  85. package/src/components/AppSidebar.story.vue +113 -5
  86. package/src/components/AppSidebar.vue +144 -24
  87. package/src/components/AppTopBar.story.vue +2 -5
  88. package/src/components/AppTopBar.vue +35 -425
  89. package/src/components/BioTemplateExperimentWorkspaceView.story.vue +2 -2
  90. package/src/components/BioTemplateExperimentWorkspaceView.vue +6 -0
  91. package/src/components/BioTemplatePackWorkspaceView.story.vue +4 -4
  92. package/src/components/BioTemplatePackWorkspaceView.vue +1 -0
  93. package/src/components/BioTemplatePresetWorkspaceView.story.vue +14 -2
  94. package/src/components/BioTemplatePresetWorkspaceView.vue +11 -2
  95. package/src/components/BioTemplateRenderer.vue +15 -227
  96. package/src/components/ComponentBindingRenderer.story.vue +57 -0
  97. package/src/components/ComponentBindingRenderer.vue +308 -0
  98. package/src/components/ControlWorkspaceView.story.vue +20 -9
  99. package/src/components/ControlWorkspaceView.vue +43 -12
  100. package/src/components/DatePicker.vue +2 -2
  101. package/src/components/DateTimePicker.vue +2 -2
  102. package/src/components/DoseDesignWorkspaceView.story.vue +77 -0
  103. package/src/components/DoseDesignWorkspaceView.vue +255 -0
  104. package/src/components/ExperimentPopover.vue +2 -6
  105. package/src/components/ExperimentSelectorModal.vue +6 -5
  106. package/src/components/FormBuilder.story.vue +190 -0
  107. package/src/components/PluginWorkspaceView.story.vue +334 -0
  108. package/src/components/PluginWorkspaceView.vue +708 -0
  109. package/src/components/SettingsModal.story.vue +87 -0
  110. package/src/components/WellPlate.vue +2 -2
  111. package/src/components/index.ts +3 -12
  112. package/src/components/{AppPageSelector.vue → internal/AppPageSelectorInternal.vue} +9 -9
  113. package/src/components/internal/AppPillNavInternal.vue +194 -0
  114. package/src/components/{CalendarGridPanel.vue → internal/CalendarGridPanelInternal.vue} +1 -1
  115. package/src/components/{WellEditPopup.vue → internal/WellEditPopupInternal.vue} +3 -3
  116. package/src/composables/experiment-utils.ts +26 -0
  117. package/src/composables/index.ts +21 -7
  118. package/src/composables/useApi.ts +9 -2
  119. package/src/composables/useAppExperiment.ts +85 -13
  120. package/src/composables/useBioTemplateComponents.ts +12 -0
  121. package/src/composables/useBioTemplatePackWorkspace.ts +6 -2
  122. package/src/composables/useBioTemplatePresetWorkspace.ts +10 -21
  123. package/src/composables/useBioTemplateWorkspace.ts +6 -4
  124. package/src/composables/useControlSchema.ts +157 -69
  125. package/src/composables/usePluginClient.ts +50 -9
  126. package/src/index.ts +6 -563
  127. package/src/styles/components/app-layout.css +82 -0
  128. package/src/styles/components/app-pill-nav.css +70 -0
  129. package/src/styles/components/app-sidebar.css +119 -0
  130. package/src/styles/components/app-top-bar.css +0 -235
  131. package/src/styles/index.css +0 -1
  132. package/src/templates/componentBindings.ts +38 -0
  133. package/src/templates/index.ts +4 -0
  134. package/src/types/components.ts +6 -31
  135. package/src/types/index.ts +2 -6
  136. package/dist/__tests__/composables/usePluginApi.test.d.ts +0 -13
  137. package/dist/components/FormFieldRenderer.vue.d.ts +0 -28
  138. package/dist/components/FormSection.vue.d.ts +0 -30
  139. package/dist/components/GroupingModal.vue.d.ts +0 -12
  140. package/dist/components/SettingsButton.vue.d.ts +0 -30
  141. package/dist/components/ToastNotification.vue.d.ts +0 -2
  142. package/dist/components-D_Sr0adg.js.map +0 -1
  143. package/dist/composables/usePluginApi.d.ts +0 -22
  144. package/dist/composables-C3dpXQN5.js.map +0 -1
  145. package/dist/templates-50NPjaxL.js.map +0 -1
  146. package/dist/useScheduleDrag-D4oWdh41.js.map +0 -1
  147. package/src/__tests__/components/FormCompatibility.test.ts +0 -94
  148. package/src/__tests__/components/GroupingModal.test.ts +0 -73
  149. package/src/__tests__/components/SettingsButton.test.ts +0 -44
  150. package/src/__tests__/composables/usePluginApi.test.ts +0 -81
  151. package/src/components/AppPillNav.vue +0 -71
  152. package/src/components/FormFieldRenderer.vue +0 -35
  153. package/src/components/FormSection.vue +0 -37
  154. package/src/components/GroupingModal.story.vue +0 -52
  155. package/src/components/GroupingModal.vue +0 -61
  156. package/src/components/SettingsButton.story.vue +0 -58
  157. package/src/components/SettingsButton.vue +0 -64
  158. package/src/components/ToastNotification.vue +0 -9
  159. package/src/composables/usePluginApi.ts +0 -32
  160. package/src/styles/components/settings-button.css +0 -31
  161. /package/dist/__tests__/components/{FormCompatibility.test.d.ts → ComponentBindingRenderer.test.d.ts} +0 -0
  162. /package/dist/__tests__/components/{GroupingModal.test.d.ts → DoseDesignWorkspaceView.test.d.ts} +0 -0
  163. /package/dist/__tests__/components/{SettingsButton.test.d.ts → PluginWorkspaceView.test.d.ts} +0 -0
  164. /package/dist/components/{ActionItem.vue.d.ts → internal/ActionItemInternal.vue.d.ts} +0 -0
  165. /package/src/components/{ActionItem.vue → internal/ActionItemInternal.vue} +0 -0
package/src/index.ts CHANGED
@@ -5,383 +5,19 @@ import './styles/index.css'
5
5
  export { MINTSdk, default } from './install'
6
6
 
7
7
  // Components
8
- export {
9
- BaseButton,
10
- BaseInput,
11
- BaseTextarea,
12
- BaseSelect,
13
- BaseCheckbox,
14
- BaseToggle,
15
- BaseRadioGroup,
16
- BaseSlider,
17
- ColorSlider,
18
- BaseTabs,
19
- BaseModal,
20
- FormBuilder,
21
- FormField,
22
- DatePicker,
23
- TimePicker,
24
- TagsInput,
25
- NumberInput,
26
- FileUploader,
27
- AlertBox,
28
- AppToastContainer,
29
- IconButton,
30
- ThemeToggle,
31
- CollapsibleCard,
32
- AppTopBar,
33
- AppPageSelector,
34
- AppPillNav,
35
- AppAvatarMenu,
36
- AppPluginSwitcher,
37
- AppSidebar,
38
- AppLayout,
39
- ControlWorkspaceView,
40
- AppContainer,
41
- PluginIcon,
42
- Skeleton,
43
- // Biological experiment components
44
- WellPlate,
45
- RackEditor,
46
- SampleLegend,
47
- PlateMapEditor,
48
- ExperimentTimeline,
49
- // Sample management components
50
- SampleSelector,
51
- AutoGroupModal,
52
- GroupAssigner,
53
- // Lab/Experiment components
54
- MoleculeInput,
55
- ConcentrationInput,
56
- DoseCalculator,
57
- ReagentList,
58
- SampleHierarchyTree,
59
- ProtocolStepEditor,
60
- // Selection components
61
- SegmentedControl,
62
- MultiSelect,
63
- // Pill / Dropdown components
64
- BasePill,
65
- DropdownButton,
66
- Calendar,
67
- DataFrame,
68
- // Utility / UI primitives
69
- LoadingSpinner,
70
- Divider,
71
- StatusIndicator,
72
- ProgressBar,
73
- Avatar,
74
- EmptyState,
75
- Breadcrumb,
76
- Tooltip,
77
- ConfirmDialog,
78
- ChartContainer,
79
- SettingsModal,
80
- // Scientific display components
81
- ScientificNumber,
82
- ChemicalFormula,
83
- // Scientific input components
84
- FormulaInput,
85
- SequenceInput,
86
- UnitInput,
87
- // Workflow components
88
- StepWizard,
89
- AuditTrail,
90
- BatchProgressList,
91
- // Experiment data display components
92
- ExperimentDataViewer,
93
- ExperimentCodeBadge,
94
- // Scheduling / booking components
95
- DateTimePicker,
96
- TimeRangeInput,
97
- ScheduleCalendar,
98
- ResourceCard,
99
- // Experiment / analysis components
100
- ExperimentSelectorModal,
101
- ExperimentPopover,
102
- FitPanel,
103
- BioTemplateRenderer,
104
- BioTemplateExperimentWorkspaceView,
105
- BioTemplatePackWorkspaceView,
106
- BioTemplatePresetWorkspaceView,
107
- } from './components'
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'
8
+ export * from './components'
117
9
 
118
10
  // Composables
11
+ export * from './composables'
12
+ // Resolve names shared by composables and templates so root exports stay unambiguous.
119
13
  export {
120
- useApi,
121
- useAuth,
122
- usePasskey,
123
- useTheme,
124
- useToast,
125
- usePlatformContext,
126
- useWellPlateEditor,
127
- useConcentrationUnits,
128
- useDoseCalculator,
129
- useProtocolTemplates,
130
- useRackEditor,
131
- useChemicalFormula,
132
- ATOMIC_WEIGHTS,
133
- useSequenceUtils,
134
- type ApiClientOptions,
135
- type UseWellPlateEditorOptions,
136
- type UseWellPlateEditorReturn,
137
- type UseRackEditorOptions,
138
- type UseRackEditorReturn,
139
- type ConcentrationValue,
140
- type ConcentrationUnit,
141
- type VolumeValue,
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,
151
- type StepTemplate,
152
- type FormulaParseResult,
153
- type FormulaPart,
154
- type SequenceType,
155
- type SequenceStats,
156
- // Time utilities
157
- parseTime,
158
- formatTime,
159
- generateTimeSlots,
160
- rangesOverlap,
161
- durationMinutes,
162
- formatDuration,
163
- isTimeInRange,
164
- findAvailableSlots,
165
- snapToSlot,
166
- addMinutes,
167
- compareTime,
168
- // Schedule drag
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,
180
- // Plugin config
181
- usePluginConfig,
182
- type UsePluginConfigReturn,
183
- // Auto-group
184
- useAutoGroup,
185
- DEFAULT_COLORS,
186
- // Experiment selector
187
- useExperimentSelector,
188
- type UseExperimentSelectorOptions,
189
- type UseExperimentSelectorReturn,
190
- // Experiment utilities
191
- formatExperimentDate,
192
- datePresetToISO,
193
- EXPERIMENT_STATUS_OPTIONS,
194
- EXPERIMENT_STATUS_VARIANT_MAP,
195
- EXPERIMENT_STATUS_LABELS,
196
- DATE_PRESET_OPTIONS,
197
- SORT_OPTIONS,
198
- // Experiment data
199
- useExperimentData,
200
- type UseExperimentDataOptions,
201
- type UseExperimentDataReturn,
202
- // App experiment (provide/inject for AppTopBar)
203
- useAppExperiment,
204
- APP_EXPERIMENT_KEY,
205
- type UseAppExperimentOptions,
206
- type UseAppExperimentReturn,
207
- // Experiment save (unified save/load for plugins)
208
- useExperimentSave,
209
- type UseExperimentSaveOptions,
210
- type UseExperimentSaveReturn,
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
14
  getBioTemplateComponentProps,
330
- getBioTemplateComponentBindings,
331
- toBioTemplateComponentProps,
332
15
  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 {
374
- usePluginApi,
375
- type UsePluginApiOptions,
16
+ type ControlDefinition,
376
17
  } from './composables'
377
18
 
378
19
  // Stores
379
- export {
380
- useAuthStore,
381
- useSettingsStore,
382
- colorPalettes,
383
- type SettingsState,
384
- } from './stores'
20
+ export * from './stores'
385
21
 
386
22
  // Utils
387
23
  export {
@@ -395,197 +31,4 @@ export {
395
31
  export * from './templates'
396
32
 
397
33
  // Types
398
- export type {
399
- // Component types
400
- ContainerDirection,
401
- ButtonVariant,
402
- ButtonSize,
403
- InputType,
404
- ModalSize,
405
- AlertType,
406
- Toast,
407
- TabItem,
408
- TabItemInput,
409
- OptionPrimitive,
410
- SelectOption,
411
- SelectOptionInput,
412
- RadioOption,
413
- RadioOptionInput,
414
- FormFieldProps,
415
- SidebarToolSection,
416
- CollapsibleState,
417
- TopBarVariant,
418
- TopBarPage,
419
- TopBarPageInput,
420
- TopBarTab,
421
- TopBarTabInput,
422
- TopBarTabOption,
423
- TopBarTabOptionInput,
424
- TopBarSettingsConfig,
425
- PillNavItem,
426
- PillNavItemInput,
427
- PageSelectorItem,
428
- PageSelectorItemInput,
429
- PluginSwitcherPlugin,
430
- PluginSwitcherInfo,
431
- AccountMenuItem,
432
- // Well Plate types
433
- WellPlateFormat,
434
- WellState,
435
- WellPlateSelectionMode,
436
- Well,
437
- HeatmapColorScale,
438
- HeatmapConfig,
439
- // Well Plate editing types
440
- SlotPosition,
441
- WellExtendedData,
442
- WellEditData,
443
- WellEditField,
444
- WellLegendItem,
445
- Rack,
446
- // Sample Legend types
447
- SampleType,
448
- // Plate Map Editor types
449
- PlateMap,
450
- PlateMapEditorState,
451
- // Experiment Timeline types
452
- ProtocolStepType,
453
- ProtocolStepStatus,
454
- ProtocolStep,
455
- // Sample management types
456
- SampleGroup,
457
- GroupItem,
458
- // Auto-group types
459
- OutlierAction,
460
- InputMode,
461
- OutlierInfo,
462
- ColumnInfo,
463
- MetadataRow,
464
- AutoGroupResult,
465
- ParsedCsvData,
466
- FileUploaderMode,
467
- // SegmentedControl types
468
- SegmentedOption,
469
- SegmentedOptionInput,
470
- SegmentedControlVariant,
471
- SegmentedControlSize,
472
- // MultiSelect types
473
- MultiSelectOption,
474
- MultiSelectOptionInput,
475
- MultiSelectSize,
476
- // Pill types
477
- PillVariant,
478
- PillSize,
479
- // Calendar types
480
- CalendarSelectionMode,
481
- CalendarMarker,
482
- CalendarDayContext,
483
- // DataFrame types
484
- SortDirection,
485
- SortState,
486
- DataFrameColumn,
487
- PaginationState,
488
- // LoadingSpinner types
489
- SpinnerSize,
490
- SpinnerVariant,
491
- // Divider types
492
- DividerSpacing,
493
- // StatusIndicator types
494
- StatusType,
495
- // ProgressBar types
496
- ProgressVariant,
497
- ProgressSize,
498
- // Avatar types
499
- AvatarSize,
500
- // EmptyState types
501
- EmptyStateColor,
502
- EmptyStateSize,
503
- // Breadcrumb types
504
- BreadcrumbItem,
505
- BreadcrumbItemInput,
506
- // Tooltip types
507
- TooltipPosition,
508
- // ConfirmDialog types
509
- ConfirmVariant,
510
- // SettingsModal types
511
- SettingsTab,
512
- SettingsTabInput,
513
- SettingsModalLayout,
514
- SettingsGroup,
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,
528
- // ScientificNumber types
529
- NumberNotation,
530
- // TimePicker types
531
- TimePickerFormat,
532
- TimeRange,
533
- // Schedule types
534
- ScheduleView,
535
- ScheduleEventStatus,
536
- ScheduleEvent,
537
- ScheduleBlockedSlot,
538
- ScheduleSlotContext,
539
- ScheduleEventCreateContext,
540
- ScheduleEventUpdateContext,
541
- // Resource types
542
- ResourceStatus,
543
- ResourceSpec,
544
- // Experiment selector types
545
- ExperimentStatus,
546
- ExperimentSummary,
547
- ExperimentListResponse,
548
- ExperimentFilters,
549
- // FitPanel types
550
- FitState,
551
- FitResultSummary,
552
- // UnitInput types
553
- UnitOption,
554
- // StepWizard types
555
- WizardStep,
556
- WizardStepState,
557
- // AuditTrail types
558
- AuditEntryType,
559
- AuditEntry,
560
- // BatchProgressList types
561
- BatchItemStatus,
562
- BatchItem,
563
- BatchSummary,
564
- // Auth types
565
- AuthConfig,
566
- UserInfo,
567
- LoginResponse,
568
- TokenVerifyResponse,
569
- RegisterRequest,
570
- UpdateProfileRequest,
571
- CredentialInfo,
572
- // Summary types
573
- SummaryData,
574
- SummarySection,
575
- SummarySectionItem,
576
- // Tree types
577
- TreeNode,
578
- TreeNodeType,
579
- // Platform types
580
- PluginInfo,
581
- PluginNavItem,
582
- PluginSettings,
583
- PluginSettingField,
584
- PlatformContext,
585
- PlatformEventType,
586
- PlatformEvent,
587
- ThemeMode,
588
- ColorPalette,
589
- TableDensity,
590
- UserSummary,
591
- } from './types'
34
+ export type * from './types'
@@ -15,6 +15,7 @@
15
15
  display: flex;
16
16
  flex: 1;
17
17
  min-height: 0;
18
+ position: relative;
18
19
  }
19
20
 
20
21
  .mint-layout--sidebar-right .mint-layout__body {
@@ -43,6 +44,11 @@
43
44
  flex-direction: column;
44
45
  }
45
46
 
47
+ .mint-layout__sidebar-toggle,
48
+ .mint-layout__sidebar-backdrop {
49
+ display: none;
50
+ }
51
+
46
52
  /* Strip topbar card variant inside layout — layout handles containment */
47
53
  .mint-layout .mint-topbar--card {
48
54
  margin: 0;
@@ -96,3 +102,79 @@
96
102
  border-radius: var(--radius-lg, 0.75rem);
97
103
  box-shadow: none;
98
104
  }
105
+
106
+ @media (max-width: 1023.98px) {
107
+ .mint-layout--responsive-sidebar .mint-layout__sidebar {
108
+ position: absolute;
109
+ top: 0;
110
+ bottom: 0;
111
+ left: 0;
112
+ z-index: 42;
113
+ width: min(20rem, calc(100vw - 3rem));
114
+ max-width: calc(100vw - 3rem);
115
+ transform: translateX(calc(-100% - 1rem));
116
+ transition: transform 180ms ease;
117
+ }
118
+
119
+ .mint-layout--responsive-sidebar.mint-layout--sidebar-right .mint-layout__sidebar {
120
+ right: 0;
121
+ left: auto;
122
+ transform: translateX(calc(100% + 1rem));
123
+ }
124
+
125
+ .mint-layout--responsive-sidebar.mint-layout--sidebar-open .mint-layout__sidebar {
126
+ transform: translateX(0);
127
+ }
128
+
129
+ .mint-layout--responsive-sidebar .mint-layout__sidebar-toggle {
130
+ position: absolute;
131
+ top: 0.75rem;
132
+ left: 0.75rem;
133
+ z-index: 43;
134
+ display: inline-flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ width: 2.75rem;
138
+ height: 2.75rem;
139
+ border: 1px solid var(--border-color, var(--mint-border, #e5e7eb));
140
+ border-radius: var(--radius-md, 0.5rem);
141
+ color: var(--text-secondary, var(--mint-text-secondary, #475569));
142
+ background: var(--bg-secondary, var(--mint-bg-secondary, #f8f9fb));
143
+ box-shadow: var(--shadow-md, 0 4px 8px rgba(0, 0, 0, 0.1));
144
+ cursor: pointer;
145
+ }
146
+
147
+ .mint-layout--responsive-sidebar.mint-layout--sidebar-right .mint-layout__sidebar-toggle {
148
+ right: 0.75rem;
149
+ left: auto;
150
+ }
151
+
152
+ .mint-layout--responsive-sidebar .mint-layout__sidebar-toggle:hover {
153
+ color: var(--text-primary, var(--mint-text-primary, #0f172a));
154
+ background: var(--bg-card, var(--mint-bg-card, #fff));
155
+ }
156
+
157
+ .mint-layout--responsive-sidebar .mint-layout__sidebar-toggle:focus-visible {
158
+ outline: none;
159
+ box-shadow: var(--focus-ring, 0 0 0 3px rgba(99, 102, 241, 0.4));
160
+ }
161
+
162
+ .mint-layout__sidebar-toggle-icon {
163
+ width: 1.125rem;
164
+ height: 1.125rem;
165
+ }
166
+
167
+ .mint-layout--responsive-sidebar .mint-layout__sidebar-backdrop {
168
+ position: absolute;
169
+ inset: 0;
170
+ z-index: 41;
171
+ display: block;
172
+ background: rgba(15, 23, 42, 0.42);
173
+ }
174
+ }
175
+
176
+ @media (prefers-reduced-motion: reduce) {
177
+ .mint-layout--responsive-sidebar .mint-layout__sidebar {
178
+ transition: none;
179
+ }
180
+ }