@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/README.md CHANGED
@@ -299,7 +299,6 @@ template presets such as `createWellPlateScreenCollection()`,
299
299
  ### Feedback Components
300
300
  - `AlertBox` - Alert messages (success, error, warning, info)
301
301
  - `AppToastContainer` - Toast notification container for the global `useToast()` queue
302
- - `ToastNotification` - Deprecated compatibility alias; use `AppToastContainer`
303
302
 
304
303
  ### Action Components
305
304
  - `IconButton` - Icon-only button with accessibility
@@ -321,9 +320,17 @@ template presets such as `createWellPlateScreenCollection()`,
321
320
  ### Sample Management Components
322
321
  - `SampleSelector` - Hierarchical sample grouping with auto-group and CSV metadata import
323
322
  - `AutoGroupModal` - Smart sample grouping wizard for names and design metadata
324
- - `GroupingModal` - Deprecated compatibility modal; use `AutoGroupModal`
325
323
  - `GroupAssigner` - Drag-and-drop group assignment for comparisons (e.g., Control vs Treatment)
326
324
 
325
+ ### Removed Compatibility APIs
326
+
327
+ The public SDK no longer exports `ToastNotification`, `GroupingModal`,
328
+ `SettingsButton`, `FormSection`, `FormFieldRenderer`, or `usePluginApi()`.
329
+ Use `AppToastContainer`, `AutoGroupModal`, `AppTopBar` settings or
330
+ `SettingsModal`, `FormBuilder`, and generated `useGeneratedPluginClient()`
331
+ helpers instead. `mint doctor` still detects old imports and reports the
332
+ replacement path.
333
+
327
334
  ## Composables
328
335
 
329
336
  ### `useApi(options?)`
@@ -0,0 +1 @@
1
+ export {};
@@ -16,8 +16,8 @@ declare function __VLS_template(): {
16
16
  };
17
17
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
18
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
- scrollable: boolean;
20
19
  gap: string;
20
+ scrollable: boolean;
21
21
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
22
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
23
23
  export default _default;
@@ -5,6 +5,16 @@ interface Props {
5
5
  sidebarWidth?: string;
6
6
  /** When true, topbar/sidebar/main render as floating cards with gaps */
7
7
  floating?: boolean;
8
+ /** Convert the sidebar into a mobile overlay with built-in toggle and backdrop below 1024px. */
9
+ responsiveSidebar?: boolean;
10
+ /** Controlled mobile sidebar open state. Desktop sidebar remains visible. */
11
+ sidebarOpen?: boolean;
12
+ /** Initial mobile sidebar open state when sidebarOpen is uncontrolled. */
13
+ defaultSidebarOpen?: boolean;
14
+ /** Accessible label for the mobile sidebar toggle. */
15
+ sidebarToggleLabel?: string;
16
+ /** Accessible label used when the mobile sidebar is open. */
17
+ sidebarCloseLabel?: string;
8
18
  }
9
19
  declare function __VLS_template(): {
10
20
  attrs: Partial<{}>;
@@ -17,10 +27,19 @@ declare function __VLS_template(): {
17
27
  rootEl: HTMLDivElement;
18
28
  };
19
29
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
- declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
30
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
31
+ "update:sidebarOpen": (value: boolean) => any;
32
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
33
+ "onUpdate:sidebarOpen"?: ((value: boolean) => any) | undefined;
34
+ }>, {
21
35
  floating: boolean;
22
36
  sidebarPosition: "left" | "right";
23
37
  sidebarWidth: string;
38
+ responsiveSidebar: boolean;
39
+ sidebarOpen: boolean;
40
+ defaultSidebarOpen: boolean;
41
+ sidebarToggleLabel: string;
42
+ sidebarCloseLabel: string;
24
43
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
25
44
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
45
  export default _default;
@@ -2,15 +2,23 @@ import { PillNavItem, SidebarToolSection } from '../types';
2
2
  import { FormEnhancements, FormSchema } from '../types/form-builder';
3
3
  import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions } from '../composables/useControlSchema';
4
4
  interface Props {
5
+ /** Optional chrome title rendered above generated sections. */
6
+ title?: string;
7
+ /** Optional secondary chrome copy rendered below title. */
8
+ subtitle?: string;
9
+ /** Optional compact badge/count rendered in the chrome header. */
10
+ badge?: string | number;
11
+ /** Visual preset for common plugin sidebars. `analysis` preserves the LEAF-style MINT analysis sidebar design language. */
12
+ variant?: 'default' | 'analysis';
5
13
  /** Map of view IDs to their tool sections */
6
14
  panels?: Record<string, SidebarToolSection[]>;
7
15
  /** Which view's panels to display */
8
16
  activeView?: string;
9
- /** Floating variant with absolute positioning */
17
+ /** Floating variant with absolute positioning. Defaults to false for analysis variant. */
10
18
  floating?: boolean;
11
19
  /** Compact layout: smaller headers, tighter spacing, no icon backgrounds */
12
20
  dense?: boolean;
13
- /** Width when visible */
21
+ /** Width when visible. Defaults to 20rem for analysis variant, otherwise 280px. */
14
22
  width?: string;
15
23
  /** Position sidebar on left or right side */
16
24
  side?: 'left' | 'right';
@@ -20,7 +28,7 @@ interface Props {
20
28
  forms?: Record<string, FormSchema>;
21
29
  /** Generated view IDs from useControlSchema(). Consumed for clean v-bind ergonomics. */
22
30
  viewIds?: string[];
23
- /** Generated AppPillNav-compatible view items from useControlSchema(). Consumed for clean v-bind ergonomics. */
31
+ /** Generated AppTopBar pillNav-compatible view items from useControlSchema(). Consumed for clean v-bind ergonomics. */
24
32
  viewItems?: PillNavItem[];
25
33
  /** Default view ID used when activeView is omitted. */
26
34
  defaultView?: string;
@@ -30,6 +38,10 @@ interface Props {
30
38
  controls?: ControlSchema;
31
39
  /** Options passed to compact control schema generation, including shared initialValues. */
32
40
  controlOptions?: ControlWorkspaceOptions;
41
+ /** DOM id for the scrollable content area. Use with Teleport when route/tab children own sidebar controls. */
42
+ contentId?: string;
43
+ /** Render the sidebar shell even when no panel matches the active view. Useful for default-slot or Teleport-driven sidebars. */
44
+ showWhenEmpty?: boolean;
33
45
  /** Shared values for auto-rendered section forms. Supports default v-model. */
34
46
  modelValue?: Record<string, unknown>;
35
47
  /** Shared values for auto-rendered section forms */
@@ -46,11 +58,37 @@ interface Props {
46
58
  formReadonly?: boolean;
47
59
  /** Size passed to auto-rendered section forms */
48
60
  formSize?: 'sm' | 'md' | 'lg';
61
+ /** Show a built-in collapse/expand button in the sidebar chrome. Defaults to true for analysis variant. */
62
+ collapsible?: boolean;
63
+ /** Controlled collapsed state. */
64
+ collapsed?: boolean;
65
+ /** Initial collapsed state when collapsed is uncontrolled. */
66
+ defaultCollapsed?: boolean;
67
+ /** Width when collapsed. */
68
+ collapsedWidth?: string;
69
+ /** Accessible label for the collapse action. */
70
+ collapseButtonLabel?: string;
71
+ /** Accessible label for the expand action. */
72
+ expandButtonLabel?: string;
49
73
  }
74
+ declare function toggleCollapsed(): void;
75
+ declare function expandCollapsed(): void;
50
76
  declare function __VLS_template(): {
51
77
  attrs: Partial<{}>;
52
78
  slots: Partial<Record<`section-${string}`, (_: {}) => any>> & {
53
- header?(_: {}): any;
79
+ header?(_: {
80
+ collapsed: boolean;
81
+ toggleCollapsed: typeof toggleCollapsed;
82
+ }): any;
83
+ default?(_: {
84
+ sections: SidebarToolSection[];
85
+ activeView: string;
86
+ values: Record<string, unknown>;
87
+ }): any;
88
+ collapsed?(_: {
89
+ sections: SidebarToolSection[];
90
+ expand: typeof expandCollapsed;
91
+ }): any;
54
92
  footer?(_: {}): any;
55
93
  };
56
94
  refs: {};
@@ -61,18 +99,23 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
61
99
  "update:modelValue": (values: Record<string, unknown>) => any;
62
100
  "update:values": (values: Record<string, unknown>) => any;
63
101
  "update:toggle": (sectionId: string, value: boolean) => any;
102
+ "update:collapsed": (value: boolean) => any;
64
103
  "form-submit": (sectionId: string, values: Record<string, unknown>) => any;
65
104
  "form-cancel": (sectionId: string) => any;
66
105
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
67
106
  "onUpdate:modelValue"?: ((values: Record<string, unknown>) => any) | undefined;
68
107
  "onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
69
108
  "onUpdate:toggle"?: ((sectionId: string, value: boolean) => any) | undefined;
109
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
70
110
  "onForm-submit"?: ((sectionId: string, values: Record<string, unknown>) => any) | undefined;
71
111
  "onForm-cancel"?: ((sectionId: string) => any) | undefined;
72
112
  }>, {
73
113
  values: Record<string, unknown>;
74
114
  modelValue: Record<string, unknown>;
115
+ title: string;
116
+ variant: "default" | "analysis";
75
117
  width: string;
118
+ subtitle: string;
76
119
  controlOptions: ControlWorkspaceOptions;
77
120
  model: ControlModel | ControlModelBinding;
78
121
  viewIds: string[];
@@ -82,14 +125,23 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
82
125
  panels: Record<string, SidebarToolSection[]>;
83
126
  forms: Record<string, FormSchema>;
84
127
  dense: boolean;
128
+ collapsible: boolean;
129
+ badge: string | number;
85
130
  floating: boolean;
86
131
  side: "left" | "right";
87
132
  toggleState: Record<string, boolean>;
133
+ contentId: string;
134
+ showWhenEmpty: boolean;
88
135
  showFormActions: boolean;
89
136
  formLoading: boolean;
90
137
  formDisabled: boolean;
91
138
  formReadonly: boolean;
92
139
  formSize: "sm" | "md" | "lg";
140
+ collapsed: boolean;
141
+ defaultCollapsed: boolean;
142
+ collapsedWidth: string;
143
+ collapseButtonLabel: string;
144
+ expandButtonLabel: string;
93
145
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
94
146
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
95
147
  export default _default;
@@ -1,4 +1,4 @@
1
- import { TopBarPage, TopBarPageInput, TopBarTab, TopBarTabInput, TopBarTabOption, TopBarSettingsConfig, TopBarVariant, PillNavItem, PillNavItemInput, PageSelectorItem, PageSelectorItemInput, PluginSwitcherInfo, PluginSwitcherPlugin, AccountMenuItem } from '../types/components';
1
+ import { PillNavOption, TopBarSettingsConfig, TopBarVariant, PillNavItem, PillNavItemInput, PageSelectorItem, PageSelectorItemInput, PluginSwitcherInfo, PluginSwitcherPlugin, AccountMenuItem } from '../types/components';
2
2
  interface Props {
3
3
  /** App or plugin title shown in the left title group when no page selector is present. */
4
4
  title?: string;
@@ -8,9 +8,9 @@ interface Props {
8
8
  showLogo?: boolean;
9
9
  /** Top bar visual treatment. */
10
10
  variant?: TopBarVariant;
11
- /** Home link used by classic breadcrumb layouts. */
11
+ /** Home link used by the brand icon. */
12
12
  homePath?: string;
13
- /** Preferred route-level page switch entries for plugin and platform pages. */
13
+ /** Preferred route-level page switch entries for plugin and platform pages. Integrated plugins read platform plugin.nav_items metadata automatically when pageSelector is omitted. */
14
14
  pageSelector?: PageSelectorItemInput[];
15
15
  /** Active id for the preferred page selector. */
16
16
  currentPageSelectorId?: string;
@@ -26,16 +26,6 @@ interface Props {
26
26
  showNotifications?: boolean;
27
27
  /** Draw a notification dot on the notifications icon. */
28
28
  hasNotificationDot?: boolean;
29
- /** Compatibility breadcrumb plugin name. Prefer pageSelector for route-level pages. */
30
- pluginName?: string;
31
- /** Compatibility page dropdown items. Prefer pageSelector for new route-level navigation. */
32
- pages?: TopBarPageInput[];
33
- /** Active id for the compatibility page dropdown. */
34
- currentPageId?: string;
35
- /** Compatibility center tabs. Prefer pillNav for new in-page modes. */
36
- tabs?: TopBarTabInput[];
37
- /** Active id for compatibility center tabs. */
38
- currentTabId?: string;
39
29
  /** Show the theme toggle button. */
40
30
  showThemeToggle?: boolean;
41
31
  /** Show the settings button and modal. */
@@ -85,21 +75,17 @@ declare function __VLS_template(): {
85
75
  }): any;
86
76
  'settings-appearance'?(_: {}): any;
87
77
  };
88
- refs: {
89
- dropdownRef: HTMLDivElement;
90
- };
78
+ refs: {};
91
79
  rootEl: any;
92
80
  };
93
81
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
94
82
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
95
83
  "sign-out": () => any;
96
- "page-select": (page: TopBarPage) => any;
97
- "tab-select": (tab: TopBarTab) => any;
98
- "tab-option-select": (option: TopBarTabOption, tab: TopBarTab) => any;
99
84
  "profile-click": () => any;
100
85
  "admin-click": () => any;
101
86
  "page-selector-select": (page: PageSelectorItem) => any;
102
87
  "pill-select": (item: PillNavItem) => any;
88
+ "pill-option-select": (option: PillNavOption, item: PillNavItem) => any;
103
89
  "plugin-switcher-select": (plugin: PluginSwitcherPlugin) => any;
104
90
  "plugin-switcher-install": () => any;
105
91
  "account-menu-select": (item: AccountMenuItem) => any;
@@ -107,13 +93,11 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
107
93
  "settings-values-change": (data: Record<string, unknown>) => any;
108
94
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
109
95
  "onSign-out"?: (() => any) | undefined;
110
- "onPage-select"?: ((page: TopBarPage) => any) | undefined;
111
- "onTab-select"?: ((tab: TopBarTab) => any) | undefined;
112
- "onTab-option-select"?: ((option: TopBarTabOption, tab: TopBarTab) => any) | undefined;
113
96
  "onProfile-click"?: (() => any) | undefined;
114
97
  "onAdmin-click"?: (() => any) | undefined;
115
98
  "onPage-selector-select"?: ((page: PageSelectorItem) => any) | undefined;
116
99
  "onPill-select"?: ((item: PillNavItem) => any) | undefined;
100
+ "onPill-option-select"?: ((option: PillNavOption, item: PillNavItem) => any) | undefined;
117
101
  "onPlugin-switcher-select"?: ((plugin: PluginSwitcherPlugin) => any) | undefined;
118
102
  "onPlugin-switcher-install"?: (() => any) | undefined;
119
103
  "onAccount-menu-select"?: ((item: AccountMenuItem) => any) | undefined;
@@ -132,9 +116,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
132
116
  showAdmin: boolean;
133
117
  adminPath: string;
134
118
  showProfile: boolean;
135
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
136
- dropdownRef: HTMLDivElement;
137
- }, any>;
119
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
138
120
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
139
121
  export default _default;
140
122
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1,4 +1,4 @@
1
- import { toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, BioTemplateEnvelope, BioTemplateComponentPropsLookupOptions, TemplateCollectionEnvelope } from '../templates';
1
+ import { toBioTemplateComponentBindingsById, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, BioTemplateEnvelope, BioTemplateComponentPropsLookupOptions, TemplateCollectionEnvelope } from '../templates';
2
2
  type BioTemplateWorkspaceTarget = BioTemplateEnvelope<unknown> | TemplateCollectionEnvelope;
3
3
  type WorkspaceKind = 'template' | 'collection';
4
4
  interface TemplateWorkspaceStatus {
@@ -58,6 +58,7 @@ interface BioTemplateExperimentWorkspaceBindings {
58
58
  target: BioTemplateWorkspaceTarget;
59
59
  };
60
60
  componentProps: ReturnType<typeof toBioTemplateComponentProps>;
61
+ componentBindingsById: ReturnType<typeof toBioTemplateComponentBindingsById>;
61
62
  componentPropsById: ReturnType<typeof toBioTemplateComponentPropsById>;
62
63
  componentPropsByComponent: ReturnType<typeof toBioTemplateComponentPropsByComponent>;
63
64
  getComponentProps: typeof getComponentProps;
@@ -66,6 +67,7 @@ interface BioTemplateExperimentWorkspaceSlotProps {
66
67
  target: BioTemplateWorkspaceTarget;
67
68
  bindings: BioTemplateExperimentWorkspaceBindings;
68
69
  componentProps: ReturnType<typeof toBioTemplateComponentProps>;
70
+ componentBindingsById: ReturnType<typeof toBioTemplateComponentBindingsById>;
69
71
  componentPropsById: ReturnType<typeof toBioTemplateComponentPropsById>;
70
72
  componentPropsByComponent: ReturnType<typeof toBioTemplateComponentPropsByComponent>;
71
73
  getComponentProps: typeof getComponentProps;
@@ -5,6 +5,7 @@ interface BioTemplatePackWorkspaceSlotProps {
5
5
  bindings: UseBioTemplatePackWorkspaceReturn['bindings']['value'];
6
6
  pack: UseBioTemplatePackWorkspaceReturn['pack'];
7
7
  target: BioTemplateEnvelope<unknown> | TemplateCollectionEnvelope;
8
+ componentBindingsById: UseBioTemplatePackWorkspaceReturn['componentBindingsById']['value'];
8
9
  componentProps: UseBioTemplatePackWorkspaceReturn['componentProps']['value'];
9
10
  componentPropsById: UseBioTemplatePackWorkspaceReturn['componentPropsById']['value'];
10
11
  componentPropsByComponent: UseBioTemplatePackWorkspaceReturn['componentPropsByComponent']['value'];
@@ -1,10 +1,12 @@
1
1
  import { BioTemplateControlValues, TemplatePresetId } from '../templates';
2
2
  import { UseBioTemplatePresetWorkspaceOptions, UseBioTemplatePresetWorkspaceReturn } from '../composables/useBioTemplatePresetWorkspace';
3
+ type BioTemplatePresetSidebarVariant = 'default' | 'analysis';
3
4
  interface BioTemplatePresetWorkspaceSlotProps {
4
5
  workspace: UseBioTemplatePresetWorkspaceReturn;
5
6
  bindings: UseBioTemplatePresetWorkspaceReturn['bindings'];
6
7
  collection: UseBioTemplatePresetWorkspaceReturn['collection']['value'];
7
8
  renderer: UseBioTemplatePresetWorkspaceReturn['renderer']['value'];
9
+ componentBindingsById: UseBioTemplatePresetWorkspaceReturn['componentBindingsById']['value'];
8
10
  componentProps: UseBioTemplatePresetWorkspaceReturn['componentProps']['value'];
9
11
  componentPropsById: UseBioTemplatePresetWorkspaceReturn['componentPropsById']['value'];
10
12
  componentPropsByComponent: UseBioTemplatePresetWorkspaceReturn['componentPropsByComponent']['value'];
@@ -27,6 +29,8 @@ interface Props {
27
29
  label?: string;
28
30
  /** Sidebar CSS width. */
29
31
  sidebarWidth?: string;
32
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
33
+ sidebarVariant?: BioTemplatePresetSidebarVariant;
30
34
  /** Compact sidebar and preview layout. */
31
35
  dense?: boolean;
32
36
  /** Render preview components in read-only mode. */
@@ -64,6 +68,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
64
68
  initialValues: BioTemplateControlValues;
65
69
  dense: boolean;
66
70
  sidebarWidth: string;
71
+ sidebarVariant: BioTemplatePresetSidebarVariant;
67
72
  workspace: UseBioTemplatePresetWorkspaceReturn;
68
73
  preset: TemplatePresetId;
69
74
  showStatus: boolean;
@@ -0,0 +1,44 @@
1
+ export interface ComponentBindingRendererBinding {
2
+ id?: string;
3
+ component: string;
4
+ props?: Record<string, unknown> | readonly string[];
5
+ propsObject?: Record<string, unknown>;
6
+ description?: string;
7
+ template_id?: string;
8
+ }
9
+ type ComponentBindingRendererLayout = 'grid' | 'stack';
10
+ interface Props {
11
+ /** Single generated SDK component binding to render. */
12
+ binding?: ComponentBindingRendererBinding;
13
+ /** Generated SDK component bindings to render. */
14
+ bindings?: ComponentBindingRendererBinding[];
15
+ /** Optional allow-list of component names, for example ['WellPlate', 'DataFrame']. */
16
+ include?: string[];
17
+ /** Optional deny-list of component names. */
18
+ exclude?: string[];
19
+ /** Compact child component sizing. */
20
+ dense?: boolean;
21
+ /** Prefer preview-safe props for editable components. */
22
+ readonly?: boolean;
23
+ /** Show component/template labels above each rendered component. */
24
+ showHeaders?: boolean;
25
+ /** Show binding descriptions in each header. */
26
+ showDescriptions?: boolean;
27
+ /** Grid or vertical stack layout. */
28
+ layout?: ComponentBindingRendererLayout;
29
+ /** Message shown when no binding can be rendered. */
30
+ emptyText?: string;
31
+ }
32
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
33
+ readonly: boolean;
34
+ layout: ComponentBindingRendererLayout;
35
+ binding: ComponentBindingRendererBinding;
36
+ include: string[];
37
+ exclude: string[];
38
+ emptyText: string;
39
+ dense: boolean;
40
+ bindings: ComponentBindingRendererBinding[];
41
+ showHeaders: boolean;
42
+ showDescriptions: boolean;
43
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
44
+ export default _default;
@@ -1,19 +1,21 @@
1
1
  import { TopBarVariant } from '../types';
2
2
  import { FormEnhancements } from '../types/form-builder';
3
- import { ControlComponentPropsByIdMap, ControlComponentPropsMap, ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from '../composables/useControlSchema';
4
- type ControlWorkspaceNavigation = 'tabs' | 'pill';
3
+ import { ControlComponentBindingsConfig, ControlComponentPropsByIdMap, ControlComponentPropsMap, ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from '../composables/useControlSchema';
4
+ type ControlWorkspaceSidebarVariant = 'default' | 'analysis';
5
5
  type ResolvedControlWorkspace = UseControlWorkspaceReturn<ControlSchema>;
6
6
  interface ControlWorkspaceDefaultSlotProps {
7
7
  workspace: ResolvedControlWorkspace;
8
8
  bindings: ResolvedControlWorkspace['bindings'];
9
9
  values: ResolvedControlWorkspace['values'];
10
+ componentBindings: ReturnType<ResolvedControlWorkspace['getComponentBindings']>;
11
+ componentBindingsById: ReturnType<ResolvedControlWorkspace['getComponentBindingsById']>;
10
12
  componentProps: ReturnType<ResolvedControlWorkspace['getComponentProps']>;
11
13
  componentPropsById: ReturnType<ResolvedControlWorkspace['getComponentPropsById']>;
12
14
  }
13
15
  interface ControlWorkspaceTopbarSlotProps {
14
16
  workspace: ResolvedControlWorkspace;
15
17
  bindings: ResolvedControlWorkspace['bindings'];
16
- topBar: ResolvedControlWorkspace['topBar'];
18
+ topBar: ResolvedControlWorkspace['bindings']['topBar']['value'];
17
19
  }
18
20
  interface ControlWorkspaceSidebarSlotProps {
19
21
  workspace: ResolvedControlWorkspace;
@@ -41,12 +43,20 @@ interface Props {
41
43
  subtitle?: string;
42
44
  /** AppTopBar visual variant. */
43
45
  topBarVariant?: TopBarVariant;
44
- /** AppTopBar generated navigation style. "pill" uses the preferred AppPillNav surface; "tabs" keeps the legacy prop surface. */
45
- navigation?: ControlWorkspaceNavigation;
46
46
  /** AppSidebar/AppLayout sidebar width. */
47
47
  sidebarWidth?: string;
48
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
49
+ sidebarVariant?: ControlWorkspaceSidebarVariant;
50
+ /** Convert the sidebar into an SDK-owned mobile overlay below the AppLayout breakpoint. */
51
+ responsiveSidebar?: boolean;
48
52
  /** Sidebar position in AppLayout. */
49
53
  sidebarPosition?: 'left' | 'right';
54
+ /** Optional AppSidebar chrome title for LEAF-style plugin workbenches. */
55
+ sidebarTitle?: string;
56
+ /** Optional AppSidebar chrome subtitle for active experiment/run context. */
57
+ sidebarSubtitle?: string;
58
+ /** Optional compact badge/count rendered in the AppSidebar chrome header. */
59
+ sidebarBadge?: string | number;
50
60
  /** Floating AppLayout style. */
51
61
  floating?: boolean;
52
62
  /** Compact AppSidebar density. */
@@ -57,6 +67,8 @@ interface Props {
57
67
  showFormActions?: boolean;
58
68
  /** Runtime FormBuilder enhancements passed to generated forms. */
59
69
  formEnhancements?: FormEnhancements<Record<string, unknown>>;
70
+ /** Optional SDK component bindings exposed to the default slot with resolved props. */
71
+ componentBindings?: ControlComponentBindingsConfig;
60
72
  /** Optional mapping from workspace values to component props exposed to the default slot. */
61
73
  componentProps?: ControlComponentPropsMap;
62
74
  /** Optional named mappings from workspace values to component props exposed to the default slot. */
@@ -104,11 +116,11 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
104
116
  controls: ControlSchema;
105
117
  controlOptions: ControlWorkspaceOptions;
106
118
  model: ControlModel | ControlModelBinding;
119
+ componentBindings: ControlComponentBindingsConfig;
107
120
  componentProps: ControlComponentPropsMap;
108
121
  componentPropsById: ControlComponentPropsByIdMap;
109
122
  dense: boolean;
110
123
  showSettings: boolean;
111
- navigation: ControlWorkspaceNavigation;
112
124
  floating: boolean;
113
125
  formEnhancements: FormEnhancements<Record<string, unknown>>;
114
126
  showFormActions: boolean;
@@ -118,8 +130,13 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
118
130
  formSize: "sm" | "md" | "lg";
119
131
  sidebarPosition: "left" | "right";
120
132
  sidebarWidth: string;
121
- workspace: UseControlWorkspaceReturn<ControlSchema>;
133
+ responsiveSidebar: boolean;
122
134
  topBarVariant: TopBarVariant;
135
+ sidebarTitle: string;
136
+ sidebarSubtitle: string;
137
+ sidebarBadge: string | number;
138
+ sidebarVariant: ControlWorkspaceSidebarVariant;
139
+ workspace: UseControlWorkspaceReturn<ControlSchema>;
123
140
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
124
141
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
125
142
  export default _default;
@@ -0,0 +1,149 @@
1
+ import { TopBarVariant } from '../types';
2
+ import { FormEnhancements } from '../types/form-builder';
3
+ import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, DoseDesignControlModelOptions, UseControlWorkspaceReturn } from '../composables/useControlSchema';
4
+ type DoseDesignSidebarVariant = 'default' | 'analysis';
5
+ type ComponentProps = Record<string, unknown>;
6
+ type ComponentPropsById = Record<string, ComponentProps>;
7
+ type ComponentBinding = {
8
+ id: string;
9
+ component: string;
10
+ props: ComponentProps;
11
+ };
12
+ type ComponentBindingsById = Record<string, ComponentBinding>;
13
+ type ResolvedControlWorkspace = UseControlWorkspaceReturn<ControlSchema>;
14
+ interface DoseDesignWorkspaceSlotProps {
15
+ workspace: ResolvedControlWorkspace;
16
+ bindings: ResolvedControlWorkspace['bindings'];
17
+ values: ResolvedControlWorkspace['values'];
18
+ componentBindings: ComponentBinding[];
19
+ componentBindingsById: ComponentBindingsById;
20
+ componentPropsById: ComponentPropsById;
21
+ wellPlateProps: ComponentProps;
22
+ doseCalculatorProps: ComponentProps;
23
+ }
24
+ interface Props {
25
+ /** Model returned by defineDoseDesignControlModel(), or a custom compatible ControlWorkspace model. */
26
+ model?: ControlModel | ControlModelBinding;
27
+ /** Workspace returned by useControlWorkspace(). Use for full manual control. */
28
+ workspace?: UseControlWorkspaceReturn<ControlSchema>;
29
+ /** Options used when this view creates the default dose-design model internally. */
30
+ doseDesignOptions?: DoseDesignControlModelOptions;
31
+ /** Options passed to the internally generated ControlWorkspaceView workspace. */
32
+ controlOptions?: ControlWorkspaceOptions;
33
+ /** Initial values for the internally generated workspace. */
34
+ initialValues?: Record<string, unknown>;
35
+ /** External values for the internally generated workspace. Supports default v-model. */
36
+ modelValue?: Record<string, unknown>;
37
+ /** External values for the internally generated workspace. Supports v-model:values. */
38
+ values?: Record<string, unknown>;
39
+ /** Named component props id for the generated WellPlate binding. */
40
+ plateId?: string;
41
+ /** Named component props id for the generated DoseCalculator binding. */
42
+ doseId?: string;
43
+ /** Extra props merged into the generated WellPlate binding. */
44
+ wellPlateProps?: ComponentProps;
45
+ /** Extra props merged into the generated DoseCalculator binding. */
46
+ doseCalculatorProps?: ComponentProps;
47
+ /** AppTopBar title. */
48
+ title?: string;
49
+ /** AppTopBar subtitle. */
50
+ subtitle?: string;
51
+ /** AppTopBar visual variant. */
52
+ topBarVariant?: TopBarVariant;
53
+ /** AppSidebar/AppLayout sidebar width. */
54
+ sidebarWidth?: string;
55
+ /** AppSidebar visual preset. `analysis` matches the LEAF-style MINT analysis sidebar design language. */
56
+ sidebarVariant?: DoseDesignSidebarVariant;
57
+ /** Convert the sidebar into an SDK-owned mobile overlay below the AppLayout breakpoint. */
58
+ responsiveSidebar?: boolean;
59
+ /** Sidebar position in AppLayout. */
60
+ sidebarPosition?: 'left' | 'right';
61
+ /** Optional AppSidebar chrome title for LEAF-style plugin workbenches. */
62
+ sidebarTitle?: string;
63
+ /** Optional AppSidebar chrome subtitle for active experiment/run context. */
64
+ sidebarSubtitle?: string;
65
+ /** Optional compact badge/count rendered in the AppSidebar chrome header. */
66
+ sidebarBadge?: string | number;
67
+ /** Floating AppLayout style. */
68
+ floating?: boolean;
69
+ /** Compact AppSidebar density. */
70
+ dense?: boolean;
71
+ /** Whether AppTopBar should show generated settings. */
72
+ showSettings?: boolean;
73
+ /** Render FormBuilder actions in the default generated forms. */
74
+ showFormActions?: boolean;
75
+ /** Runtime FormBuilder enhancements passed to generated forms. */
76
+ formEnhancements?: FormEnhancements<Record<string, unknown>>;
77
+ /** Loading/saving state passed to generated forms. */
78
+ formLoading?: boolean;
79
+ /** Disabled state passed to generated forms. */
80
+ formDisabled?: boolean;
81
+ /** Readonly state passed to generated forms. */
82
+ formReadonly?: boolean;
83
+ /** FormBuilder size in generated forms. */
84
+ formSize?: 'sm' | 'md' | 'lg';
85
+ }
86
+ declare function __VLS_template(): {
87
+ attrs: Partial<{}>;
88
+ slots: Readonly<{
89
+ default?: (props: DoseDesignWorkspaceSlotProps) => unknown;
90
+ plate?: (props: DoseDesignWorkspaceSlotProps) => unknown;
91
+ dose?: (props: DoseDesignWorkspaceSlotProps) => unknown;
92
+ }> & {
93
+ default?: (props: DoseDesignWorkspaceSlotProps) => unknown;
94
+ plate?: (props: DoseDesignWorkspaceSlotProps) => unknown;
95
+ dose?: (props: DoseDesignWorkspaceSlotProps) => unknown;
96
+ };
97
+ refs: {};
98
+ rootEl: HTMLDivElement;
99
+ };
100
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
101
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
102
+ "update:modelValue": (values: Record<string, unknown>) => any;
103
+ submit: (values: Record<string, unknown>) => any;
104
+ cancel: () => any;
105
+ "update:values": (values: Record<string, unknown>) => any;
106
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
107
+ "onUpdate:modelValue"?: ((values: Record<string, unknown>) => any) | undefined;
108
+ onSubmit?: ((values: Record<string, unknown>) => any) | undefined;
109
+ onCancel?: (() => any) | undefined;
110
+ "onUpdate:values"?: ((values: Record<string, unknown>) => any) | undefined;
111
+ }>, {
112
+ values: Record<string, unknown>;
113
+ modelValue: Record<string, unknown>;
114
+ title: string;
115
+ subtitle: string;
116
+ initialValues: Record<string, unknown>;
117
+ controlOptions: ControlWorkspaceOptions;
118
+ model: ControlModel | ControlModelBinding;
119
+ dense: boolean;
120
+ showSettings: boolean;
121
+ floating: boolean;
122
+ formEnhancements: FormEnhancements<Record<string, unknown>>;
123
+ showFormActions: boolean;
124
+ formLoading: boolean;
125
+ formDisabled: boolean;
126
+ formReadonly: boolean;
127
+ formSize: "sm" | "md" | "lg";
128
+ sidebarPosition: "left" | "right";
129
+ sidebarWidth: string;
130
+ responsiveSidebar: boolean;
131
+ topBarVariant: TopBarVariant;
132
+ sidebarTitle: string;
133
+ sidebarSubtitle: string;
134
+ sidebarBadge: string | number;
135
+ sidebarVariant: DoseDesignSidebarVariant;
136
+ workspace: UseControlWorkspaceReturn<ControlSchema>;
137
+ doseDesignOptions: DoseDesignControlModelOptions;
138
+ plateId: string;
139
+ doseId: string;
140
+ wellPlateProps: ComponentProps;
141
+ doseCalculatorProps: ComponentProps;
142
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
143
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
144
+ export default _default;
145
+ type __VLS_WithTemplateSlots<T, S> = T & {
146
+ new (): {
147
+ $slots: S;
148
+ };
149
+ };
@@ -34,9 +34,9 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
34
34
  modelValue: ProtocolStep[];
35
35
  collapsible: boolean;
36
36
  orientation: "horizontal" | "vertical";
37
- editable: boolean;
38
37
  showDuration: boolean;
39
38
  showTime: boolean;
39
+ editable: boolean;
40
40
  expandedStepId: string;
41
41
  colorByStatus: boolean;
42
42
  colorByType: boolean;