@morscherlab/mint-sdk 1.0.0-beta.1 → 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.
- package/README.md +218 -6
- package/dist/__tests__/components/ActionItem.test.d.ts +1 -0
- package/dist/__tests__/components/AppAvatarMenu.test.d.ts +1 -0
- package/dist/__tests__/components/AppPageSelector.test.d.ts +1 -0
- package/dist/__tests__/components/AppPillNav.test.d.ts +1 -0
- package/dist/__tests__/components/AppPluginSwitcher.test.d.ts +1 -0
- package/dist/__tests__/components/AppToastContainer.test.d.ts +1 -0
- package/dist/__tests__/components/BaseRadioGroup.test.d.ts +1 -0
- package/dist/__tests__/components/BaseSelect.test.d.ts +1 -0
- package/dist/__tests__/components/BaseTabs.test.d.ts +1 -0
- package/dist/__tests__/components/BatchProgressList.test.d.ts +1 -0
- package/dist/__tests__/components/BioTemplateExperimentWorkspaceView.test.d.ts +1 -0
- package/dist/__tests__/components/BioTemplatePackWorkspaceView.test.d.ts +1 -0
- package/dist/__tests__/components/BioTemplatePresetWorkspaceView.test.d.ts +1 -0
- package/dist/__tests__/components/BioTemplateRenderer.test.d.ts +1 -0
- package/dist/__tests__/components/Breadcrumb.test.d.ts +1 -0
- package/dist/__tests__/components/CalendarGridPanel.test.d.ts +1 -0
- package/dist/__tests__/components/ConcentrationInput.test.d.ts +1 -0
- package/dist/__tests__/components/ControlWorkspaceView.test.d.ts +1 -0
- package/dist/__tests__/components/DatePicker.test.d.ts +1 -0
- package/dist/__tests__/components/DateTimePicker.test.d.ts +1 -0
- package/dist/__tests__/components/EmptyState.test.d.ts +1 -0
- package/dist/__tests__/components/ExperimentPopover.test.d.ts +1 -0
- package/dist/__tests__/components/FormBuilder.test.d.ts +1 -0
- package/dist/__tests__/components/FormCompatibility.test.d.ts +1 -0
- package/dist/__tests__/components/GroupAssigner.test.d.ts +1 -0
- package/dist/__tests__/components/GroupingModal.test.d.ts +1 -0
- package/dist/__tests__/components/MultiSelect.test.d.ts +1 -0
- package/dist/__tests__/components/PluginIcon.test.d.ts +1 -0
- package/dist/__tests__/components/ProtocolStepEditor.test.d.ts +1 -0
- package/dist/__tests__/components/ReagentList.test.d.ts +1 -0
- package/dist/__tests__/components/SampleHierarchyTree.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelector.test.d.ts +1 -0
- package/dist/__tests__/components/SegmentedControl.test.d.ts +1 -0
- package/dist/__tests__/components/SettingsButton.test.d.ts +1 -0
- package/dist/__tests__/components/SettingsModal.test.d.ts +1 -0
- package/dist/__tests__/components/TagsInput.test.d.ts +1 -0
- package/dist/__tests__/components/ThemeToggle.test.d.ts +1 -0
- package/dist/__tests__/components/TimePicker.test.d.ts +1 -0
- package/dist/__tests__/composables/useBioTemplatePackWorkspace.test.d.ts +1 -0
- package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +1 -0
- package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +1 -0
- package/dist/__tests__/composables/useCalendarGrid.test.d.ts +1 -0
- package/dist/__tests__/composables/useControlSchema.test.d.ts +1 -0
- package/dist/__tests__/composables/useDebouncedWatch.test.d.ts +1 -0
- package/dist/__tests__/composables/useDropdownState.test.d.ts +1 -0
- package/dist/__tests__/composables/useEventListener.test.d.ts +1 -0
- package/dist/__tests__/composables/useExpansionSet.test.d.ts +1 -0
- package/dist/__tests__/composables/useExperimentData.test.d.ts +1 -0
- package/dist/__tests__/composables/useExperimentSelector.test.d.ts +1 -0
- package/dist/__tests__/composables/useGroupAssignment.test.d.ts +1 -0
- package/dist/__tests__/composables/useListSelection.test.d.ts +1 -0
- package/dist/__tests__/composables/usePluginClient.test.d.ts +1 -0
- package/dist/__tests__/composables/usePluginConfig.test.d.ts +1 -0
- package/dist/__tests__/composables/useRequestSyncState.test.d.ts +1 -0
- package/dist/__tests__/composables/useSampleGroups.test.d.ts +1 -0
- package/dist/__tests__/composables/useSelectionLimit.test.d.ts +1 -0
- package/dist/__tests__/composables/useSortedItems.test.d.ts +1 -0
- package/dist/__tests__/composables/useTemplateCollection.test.d.ts +1 -0
- package/dist/__tests__/composables/useTextSearch.test.d.ts +1 -0
- package/dist/__tests__/composables/useTheme.test.d.ts +1 -0
- package/dist/__tests__/composables/useTimeUtils.test.d.ts +1 -0
- package/dist/__tests__/docs/frontendDocsCatalog.test.d.ts +1 -0
- package/dist/__tests__/templates/templates.test.d.ts +1 -0
- package/dist/{auth-DsI0rQ7_.js → auth-QQj2kkze.js} +12 -5
- package/dist/auth-QQj2kkze.js.map +1 -0
- package/dist/components/ActionItem.vue.d.ts +32 -0
- package/dist/components/AppAvatarMenu.vue.d.ts +2 -7
- package/dist/components/AppPageSelector.vue.d.ts +3 -6
- package/dist/components/AppPillNav.vue.d.ts +2 -2
- package/dist/components/AppSidebar.vue.d.ts +56 -3
- package/dist/components/AppToastContainer.vue.d.ts +2 -0
- package/dist/components/AppTopBar.vue.d.ts +43 -10
- package/dist/components/BaseButton.vue.d.ts +2 -2
- package/dist/components/BaseCheckbox.vue.d.ts +1 -1
- package/dist/components/BaseInput.vue.d.ts +2 -2
- package/dist/components/BasePill.vue.d.ts +3 -3
- package/dist/components/BaseRadioGroup.vue.d.ts +4 -4
- package/dist/components/BaseSelect.vue.d.ts +4 -4
- package/dist/components/BaseSlider.vue.d.ts +1 -1
- package/dist/components/BaseTabs.vue.d.ts +2 -2
- package/dist/components/BaseTextarea.vue.d.ts +2 -2
- package/dist/components/BaseToggle.vue.d.ts +1 -1
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +117 -0
- package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +92 -0
- package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +82 -0
- package/dist/components/BioTemplateRenderer.vue.d.ts +29 -0
- package/dist/components/Breadcrumb.vue.d.ts +2 -2
- package/dist/components/Calendar.vue.d.ts +1 -1
- package/dist/components/CalendarGridPanel.vue.d.ts +25 -0
- package/dist/components/CollapsibleCard.vue.d.ts +1 -1
- package/dist/components/ColorSlider.vue.d.ts +1 -1
- package/dist/components/ConcentrationInput.vue.d.ts +2 -2
- package/dist/components/ConfirmDialog.vue.d.ts +2 -2
- package/dist/components/ControlWorkspaceView.vue.d.ts +130 -0
- package/dist/components/DatePicker.vue.d.ts +2 -2
- package/dist/components/DateTimePicker.vue.d.ts +3 -3
- package/dist/components/DropdownButton.vue.d.ts +4 -4
- package/dist/components/EmptyState.vue.d.ts +1 -2
- package/dist/components/ExperimentDataViewer.vue.d.ts +1 -1
- package/dist/components/ExperimentTimeline.vue.d.ts +2 -2
- package/dist/components/FileUploader.vue.d.ts +2 -2
- package/dist/components/FitPanel.vue.d.ts +1 -1
- package/dist/components/FormActions.vue.d.ts +4 -4
- package/dist/components/FormBuilder.vue.d.ts +22 -8
- package/dist/components/FormFieldRenderer.vue.d.ts +7 -10
- package/dist/components/FormSection.vue.d.ts +11 -24
- package/dist/components/FormulaInput.vue.d.ts +2 -2
- package/dist/components/IconButton.vue.d.ts +1 -1
- package/dist/components/LoadingSpinner.vue.d.ts +1 -1
- package/dist/components/MoleculeInput.vue.d.ts +2 -2
- package/dist/components/MultiSelect.vue.d.ts +3 -3
- package/dist/components/NumberInput.vue.d.ts +2 -2
- package/dist/components/PluginIcon.vue.d.ts +11 -0
- package/dist/components/ProgressBar.vue.d.ts +2 -2
- package/dist/components/ProtocolStepEditor.vue.d.ts +3 -1
- package/dist/components/RackEditor.vue.d.ts +2 -2
- package/dist/components/ReagentEditor.vue.d.ts +1 -1
- package/dist/components/ResourceCard.vue.d.ts +1 -1
- package/dist/components/SampleLegend.vue.d.ts +2 -2
- package/dist/components/SampleSelector.vue.d.ts +1 -1
- package/dist/components/ScheduleCalendar.vue.d.ts +2 -2
- package/dist/components/ScientificNumber.vue.d.ts +1 -1
- package/dist/components/SegmentedControl.vue.d.ts +3 -3
- package/dist/components/SequenceInput.vue.d.ts +3 -3
- package/dist/components/SettingsButton.vue.d.ts +2 -2
- package/dist/components/SettingsModal.vue.d.ts +32 -4
- package/dist/components/StatusIndicator.vue.d.ts +1 -1
- package/dist/components/TagsInput.vue.d.ts +3 -2
- package/dist/components/TimePicker.vue.d.ts +3 -3
- package/dist/components/TimeRangeInput.vue.d.ts +2 -2
- package/dist/components/UnitInput.vue.d.ts +2 -2
- package/dist/components/WellPlate.vue.d.ts +8 -8
- package/dist/components/index.d.ts +12 -1
- package/dist/components/index.js +3 -3
- package/dist/components/internal/FormFieldRendererInternal.vue.d.ts +31 -0
- package/dist/components/internal/FormSectionRenderer.vue.d.ts +43 -0
- package/dist/{components-CzbQQPCb.js → components-D_Sr0adg.js} +9629 -8647
- package/dist/components-D_Sr0adg.js.map +1 -0
- package/dist/composables/index.d.ts +21 -2
- package/dist/composables/index.js +4 -3
- package/dist/composables/platformContextHelpers.d.ts +14 -0
- package/dist/composables/useBioTemplateComponents.d.ts +20 -0
- package/dist/composables/useBioTemplateControls.d.ts +6 -0
- package/dist/composables/useBioTemplatePackWorkspace.d.ts +45 -0
- package/dist/composables/useBioTemplatePresetWorkspace.d.ts +74 -0
- package/dist/composables/useBioTemplateWorkspace.d.ts +50 -0
- package/dist/composables/useCalendarGrid.d.ts +26 -0
- package/dist/composables/useControlSchema.d.ts +321 -0
- package/dist/composables/useDebouncedWatch.d.ts +20 -0
- package/dist/composables/useDropdownState.d.ts +19 -0
- package/dist/composables/useEventListener.d.ts +13 -0
- package/dist/composables/useExpansionSet.d.ts +21 -0
- package/dist/composables/useExperimentData.d.ts +10 -0
- package/dist/composables/useExperimentSave.d.ts +31 -2
- package/dist/composables/useExperimentSelector.d.ts +20 -0
- package/dist/composables/useForm.d.ts +2 -0
- package/dist/composables/useGroupAssignment.d.ts +31 -0
- package/dist/composables/useListSelection.d.ts +35 -0
- package/dist/composables/usePlatformContext.d.ts +24 -3
- package/dist/composables/usePluginApi.d.ts +7 -14
- package/dist/composables/usePluginClient.d.ts +109 -0
- package/dist/composables/usePluginConfig.d.ts +12 -0
- package/dist/composables/useRequestSyncState.d.ts +34 -0
- package/dist/composables/useSampleGroups.d.ts +32 -0
- package/dist/composables/useSelectionLimit.d.ts +17 -0
- package/dist/composables/useSortedItems.d.ts +32 -0
- package/dist/composables/useTemplateCollection.d.ts +58 -0
- package/dist/composables/useTextSearch.d.ts +18 -0
- package/dist/composables/useTimeUtils.d.ts +8 -0
- package/dist/{composables-BXklV5ii.js → composables-C3dpXQN5.js} +228 -146
- package/dist/composables-C3dpXQN5.js.map +1 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.js +6 -5
- package/dist/install.d.ts +7 -2
- package/dist/install.js +2 -2
- package/dist/install.js.map +1 -1
- package/dist/stores/auth.d.ts +1 -1
- package/dist/stores/index.js +1 -1
- package/dist/stores/settings.d.ts +4 -1
- package/dist/styles.css +5255 -5654
- package/dist/templates/adapters.d.ts +43 -0
- package/dist/templates/builders.d.ts +63 -0
- package/dist/templates/catalog.d.ts +188 -0
- package/dist/templates/componentBindings.d.ts +58 -0
- package/dist/templates/controlSchemas.d.ts +25 -0
- package/dist/templates/index.d.ts +15 -0
- package/dist/templates/index.js +2 -0
- package/dist/templates/lookup.d.ts +4 -0
- package/dist/templates/packs.d.ts +18 -0
- package/dist/templates/presets.d.ts +90 -0
- package/dist/templates/types.d.ts +531 -0
- package/dist/templates-50NPjaxL.js +9333 -0
- package/dist/templates-50NPjaxL.js.map +1 -0
- package/dist/types/components.d.ts +62 -1
- package/dist/types/form-builder.d.ts +6 -8
- package/dist/types/index.d.ts +2 -2
- package/dist/types/platform.d.ts +8 -1
- package/dist/useScheduleDrag-D4oWdh41.js +4371 -0
- package/dist/useScheduleDrag-D4oWdh41.js.map +1 -0
- package/dist/utils/formModelSync.d.ts +5 -0
- package/dist/utils/items.d.ts +8 -0
- package/dist/utils/options.d.ts +6 -0
- package/dist/utils/pluginIcon.d.ts +9 -0
- package/package.json +7 -2
- package/src/__tests__/components/ActionItem.test.ts +99 -0
- package/src/__tests__/components/AppAvatarMenu.test.ts +27 -0
- package/src/__tests__/components/AppPageSelector.test.ts +134 -0
- package/src/__tests__/components/AppPillNav.test.ts +78 -0
- package/src/__tests__/components/AppPluginSwitcher.test.ts +44 -0
- package/src/__tests__/components/AppSidebar.test.ts +370 -0
- package/src/__tests__/components/AppToastContainer.test.ts +48 -0
- package/src/__tests__/components/AppTopBar.test.ts +414 -13
- package/src/__tests__/components/BaseRadioGroup.test.ts +25 -0
- package/src/__tests__/components/BaseSelect.test.ts +21 -0
- package/src/__tests__/components/BaseTabs.test.ts +25 -0
- package/src/__tests__/components/BatchProgressList.test.ts +52 -0
- package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +153 -0
- package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +161 -0
- package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +281 -0
- package/src/__tests__/components/BioTemplateRenderer.test.ts +71 -0
- package/src/__tests__/components/Breadcrumb.test.ts +23 -0
- package/src/__tests__/components/CalendarGridPanel.test.ts +36 -0
- package/src/__tests__/components/ConcentrationInput.test.ts +45 -0
- package/src/__tests__/components/ControlWorkspaceView.test.ts +1031 -0
- package/src/__tests__/components/DataFrame.test.ts +11 -0
- package/src/__tests__/components/DatePicker.test.ts +45 -0
- package/src/__tests__/components/DateTimePicker.test.ts +48 -0
- package/src/__tests__/components/DropdownButton.test.ts +23 -0
- package/src/__tests__/components/EmptyState.test.ts +23 -0
- package/src/__tests__/components/ExperimentPopover.test.ts +56 -0
- package/src/__tests__/components/FormBuilder.test.ts +296 -0
- package/src/__tests__/components/FormCompatibility.test.ts +94 -0
- package/src/__tests__/components/GroupAssigner.test.ts +30 -0
- package/src/__tests__/components/GroupingModal.test.ts +73 -0
- package/src/__tests__/components/MultiSelect.test.ts +48 -0
- package/src/__tests__/components/PluginIcon.test.ts +119 -0
- package/src/__tests__/components/ProtocolStepEditor.test.ts +33 -0
- package/src/__tests__/components/ReagentList.test.ts +82 -0
- package/src/__tests__/components/SampleHierarchyTree.test.ts +53 -0
- package/src/__tests__/components/SampleSelector.test.ts +60 -0
- package/src/__tests__/components/SegmentedControl.test.ts +24 -0
- package/src/__tests__/components/SettingsButton.test.ts +44 -0
- package/src/__tests__/components/SettingsModal.test.ts +296 -0
- package/src/__tests__/components/TagsInput.test.ts +75 -0
- package/src/__tests__/components/ThemeToggle.test.ts +47 -0
- package/src/__tests__/components/TimePicker.test.ts +38 -0
- package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +122 -0
- package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +199 -0
- package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +99 -0
- package/src/__tests__/composables/useCalendarGrid.test.ts +38 -0
- package/src/__tests__/composables/useControlSchema.test.ts +919 -0
- package/src/__tests__/composables/useDebouncedWatch.test.ts +93 -0
- package/src/__tests__/composables/useDropdownState.test.ts +95 -0
- package/src/__tests__/composables/useEventListener.test.ts +116 -0
- package/src/__tests__/composables/useExpansionSet.test.ts +62 -0
- package/src/__tests__/composables/useExperimentData.test.ts +4 -0
- package/src/__tests__/composables/useExperimentSave.test.ts +203 -8
- package/src/__tests__/composables/useExperimentSelector.test.ts +164 -0
- package/src/__tests__/composables/useForm.test.ts +58 -0
- package/src/__tests__/composables/useFormBuilder.test.ts +77 -0
- package/src/__tests__/composables/useGroupAssignment.test.ts +73 -0
- package/src/__tests__/composables/useListSelection.test.ts +66 -0
- package/src/__tests__/composables/usePluginClient.test.ts +444 -0
- package/src/__tests__/composables/usePluginConfig.test.ts +5 -0
- package/src/__tests__/composables/useRequestSyncState.test.ts +92 -0
- package/src/__tests__/composables/useSampleGroups.test.ts +66 -0
- package/src/__tests__/composables/useSelectionLimit.test.ts +41 -0
- package/src/__tests__/composables/useSortedItems.test.ts +87 -0
- package/src/__tests__/composables/useTemplateCollection.test.ts +147 -0
- package/src/__tests__/composables/useTextSearch.test.ts +55 -0
- package/src/__tests__/composables/useTheme.test.ts +91 -0
- package/src/__tests__/composables/useTimeUtils.test.ts +35 -0
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +229 -0
- package/src/__tests__/fixtures/templates/dose-response.json +81 -0
- package/src/__tests__/fixtures/templates/plate-map.json +54 -0
- package/src/__tests__/fixtures/templates/qpcr-plate.json +96 -0
- package/src/__tests__/fixtures/templates/sample-sheet.json +71 -0
- package/src/__tests__/templates/templates.test.ts +1043 -0
- package/src/components/ActionItem.vue +82 -0
- package/src/components/AppAvatarMenu.vue +15 -69
- package/src/components/AppLayout.story.vue +25 -25
- package/src/components/AppPageSelector.vue +63 -94
- package/src/components/AppPillNav.vue +44 -39
- package/src/components/AppPluginSwitcher.vue +41 -145
- package/src/components/AppSidebar.story.vue +94 -0
- package/src/components/AppSidebar.vue +187 -12
- package/src/components/{ToastNotification.story.vue → AppToastContainer.story.vue} +6 -6
- package/src/components/AppToastContainer.vue +62 -0
- package/src/components/AppTopBar.story.vue +7 -30
- package/src/components/AppTopBar.vue +283 -84
- package/src/components/BaseModal.vue +3 -5
- package/src/components/BaseRadioGroup.vue +7 -3
- package/src/components/BaseSelect.vue +11 -7
- package/src/components/BaseTabs.vue +6 -4
- package/src/components/BatchProgressList.vue +5 -8
- package/src/components/BioTemplateExperimentWorkspaceView.story.vue +123 -0
- package/src/components/BioTemplateExperimentWorkspaceView.vue +337 -0
- package/src/components/BioTemplatePackWorkspaceView.story.vue +107 -0
- package/src/components/BioTemplatePackWorkspaceView.vue +176 -0
- package/src/components/BioTemplatePresetWorkspaceView.story.vue +151 -0
- package/src/components/BioTemplatePresetWorkspaceView.vue +392 -0
- package/src/components/BioTemplateRenderer.story.vue +57 -0
- package/src/components/BioTemplateRenderer.vue +269 -0
- package/src/components/Breadcrumb.vue +14 -8
- package/src/components/CalendarGridPanel.vue +120 -0
- package/src/components/ConcentrationInput.vue +27 -64
- package/src/components/ControlWorkspaceView.story.vue +336 -0
- package/src/components/ControlWorkspaceView.vue +347 -0
- package/src/components/DataFrame.vue +34 -50
- package/src/components/DatePicker.vue +59 -192
- package/src/components/DateTimePicker.vue +50 -171
- package/src/components/DropdownButton.vue +14 -32
- package/src/components/EmptyState.vue +4 -2
- package/src/components/ExperimentPopover.vue +5 -22
- package/src/components/FormBuilder.vue +124 -27
- package/src/components/FormFieldRenderer.vue +15 -38
- package/src/components/FormSection.vue +20 -73
- package/src/components/GroupAssigner.vue +24 -56
- package/src/components/GroupingModal.story.vue +3 -3
- package/src/components/GroupingModal.vue +30 -391
- package/src/components/MultiSelect.vue +17 -12
- package/src/components/PlateMapEditor.vue +3 -8
- package/src/components/PluginIcon.story.vue +71 -0
- package/src/components/PluginIcon.vue +68 -0
- package/src/components/ProtocolStepEditor.vue +13 -22
- package/src/components/ReagentList.vue +25 -33
- package/src/components/SampleHierarchyTree.vue +12 -23
- package/src/components/SampleSelector.vue +42 -122
- package/src/components/SegmentedControl.vue +7 -3
- package/src/components/SettingsButton.story.vue +1 -1
- package/src/components/SettingsButton.vue +15 -27
- package/src/components/SettingsModal.story.vue +337 -45
- package/src/components/SettingsModal.vue +344 -66
- package/src/components/TagsInput.vue +29 -14
- package/src/components/ThemeToggle.vue +9 -7
- package/src/components/TimePicker.vue +19 -41
- package/src/components/ToastNotification.vue +4 -57
- package/src/components/Tooltip.vue +7 -12
- package/src/components/WellEditPopup.vue +3 -8
- package/src/components/WellPlate.vue +4 -10
- package/src/components/index.ts +12 -1
- package/src/components/internal/FormFieldRendererInternal.vue +50 -0
- package/src/components/internal/FormSectionRenderer.vue +78 -0
- package/src/composables/index.ts +212 -0
- package/src/composables/platformContextHelpers.ts +74 -0
- package/src/composables/useBioTemplateComponents.ts +93 -0
- package/src/composables/useBioTemplateControls.ts +41 -0
- package/src/composables/useBioTemplatePackWorkspace.ts +181 -0
- package/src/composables/useBioTemplatePresetWorkspace.ts +337 -0
- package/src/composables/useBioTemplateWorkspace.ts +139 -0
- package/src/composables/useCalendarGrid.ts +140 -0
- package/src/composables/useControlSchema.ts +1274 -0
- package/src/composables/useDebouncedWatch.ts +119 -0
- package/src/composables/useDropdownState.ts +83 -0
- package/src/composables/useEventListener.ts +111 -0
- package/src/composables/useExpansionSet.ts +117 -0
- package/src/composables/useExperimentData.ts +20 -11
- package/src/composables/useExperimentSave.ts +202 -50
- package/src/composables/useExperimentSelector.ts +86 -72
- package/src/composables/useForm.ts +49 -4
- package/src/composables/useFormBuilder.ts +93 -42
- package/src/composables/useGroupAssignment.ts +148 -0
- package/src/composables/useListSelection.ts +158 -0
- package/src/composables/usePluginApi.ts +7 -14
- package/src/composables/usePluginClient.ts +425 -0
- package/src/composables/usePluginConfig.ts +34 -13
- package/src/composables/useRequestSyncState.ts +126 -0
- package/src/composables/useSampleGroups.ts +126 -0
- package/src/composables/useSelectionLimit.ts +57 -0
- package/src/composables/useSortedItems.ts +118 -0
- package/src/composables/useTemplateCollection.ts +229 -0
- package/src/composables/useTextSearch.ts +60 -0
- package/src/composables/useTheme.ts +2 -28
- package/src/composables/useTimeUtils.ts +26 -2
- package/src/composables/useWellPlateEditor.ts +13 -9
- package/src/index.ts +228 -4
- package/src/install.ts +11 -4
- package/src/stores/settings.ts +13 -9
- package/src/styles/components/app-page-selector.css +23 -0
- package/src/styles/components/app-pill-nav.css +8 -2
- package/src/styles/components/app-top-bar.css +35 -2
- package/src/styles/components/button.css +3 -7
- package/src/styles/components/concentration-input.css +3 -142
- package/src/styles/components/dropdown-button.css +4 -4
- package/src/styles/components/empty-state.css +0 -16
- package/src/styles/components/input.css +4 -5
- package/src/styles/components/number-input.css +3 -3
- package/src/styles/components/plugin-icon.css +38 -0
- package/src/styles/components/segmented-control.css +4 -7
- package/src/styles/components/settings-button.css +3 -66
- package/src/styles/components/settings-modal.css +184 -0
- package/src/styles/components/tabs.css +1 -2
- package/src/styles/components/textarea.css +4 -5
- package/src/styles/components/theme-toggle.css +3 -66
- package/src/styles/components/unit-input.css +3 -3
- package/src/styles/index.css +0 -1
- package/src/templates/adapters.ts +785 -0
- package/src/templates/builders.ts +2149 -0
- package/src/templates/catalog.ts +245 -0
- package/src/templates/componentBindings.ts +615 -0
- package/src/templates/controlSchemas.ts +718 -0
- package/src/templates/index.ts +314 -0
- package/src/templates/lookup.ts +18 -0
- package/src/templates/packs.ts +156 -0
- package/src/templates/presets.ts +146 -0
- package/src/templates/types.ts +668 -0
- package/src/types/components.ts +80 -1
- package/src/types/form-builder.ts +7 -2
- package/src/types/index.ts +17 -0
- package/src/types/platform.ts +8 -1
- package/src/utils/formModelSync.ts +52 -0
- package/src/utils/items.ts +28 -0
- package/src/utils/options.ts +23 -0
- package/src/utils/pluginIcon.ts +30 -0
- package/dist/auth-DsI0rQ7_.js.map +0 -1
- package/dist/components-CzbQQPCb.js.map +0 -1
- package/dist/composables-BXklV5ii.js.map +0 -1
- package/dist/useScheduleDrag-CxBeqYcu.js +0 -7181
- package/dist/useScheduleDrag-CxBeqYcu.js.map +0 -1
- 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:
|
|
111
|
-
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 =
|
|
259
|
-
internalState.value.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 =
|
|
275
|
-
internalState.value.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 =
|
|
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 =
|
|
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,7 +36,9 @@ export {
|
|
|
37
36
|
AppPluginSwitcher,
|
|
38
37
|
AppSidebar,
|
|
39
38
|
AppLayout,
|
|
39
|
+
ControlWorkspaceView,
|
|
40
40
|
AppContainer,
|
|
41
|
+
PluginIcon,
|
|
41
42
|
Skeleton,
|
|
42
43
|
// Biological experiment components
|
|
43
44
|
WellPlate,
|
|
@@ -47,7 +48,6 @@ export {
|
|
|
47
48
|
ExperimentTimeline,
|
|
48
49
|
// Sample management components
|
|
49
50
|
SampleSelector,
|
|
50
|
-
GroupingModal,
|
|
51
51
|
AutoGroupModal,
|
|
52
52
|
GroupAssigner,
|
|
53
53
|
// Lab/Experiment components
|
|
@@ -100,8 +100,21 @@ export {
|
|
|
100
100
|
ExperimentSelectorModal,
|
|
101
101
|
ExperimentPopover,
|
|
102
102
|
FitPanel,
|
|
103
|
+
BioTemplateRenderer,
|
|
104
|
+
BioTemplateExperimentWorkspaceView,
|
|
105
|
+
BioTemplatePackWorkspaceView,
|
|
106
|
+
BioTemplatePresetWorkspaceView,
|
|
103
107
|
} from './components'
|
|
104
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
|
+
|
|
105
118
|
// Composables
|
|
106
119
|
export {
|
|
107
120
|
useApi,
|
|
@@ -127,6 +140,14 @@ export {
|
|
|
127
140
|
type ConcentrationUnit,
|
|
128
141
|
type VolumeValue,
|
|
129
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,
|
|
130
151
|
type StepTemplate,
|
|
131
152
|
type FormulaParseResult,
|
|
132
153
|
type FormulaPart,
|
|
@@ -146,6 +167,16 @@ export {
|
|
|
146
167
|
compareTime,
|
|
147
168
|
// Schedule drag
|
|
148
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,
|
|
149
180
|
// Plugin config
|
|
150
181
|
usePluginConfig,
|
|
151
182
|
type UsePluginConfigReturn,
|
|
@@ -177,7 +208,169 @@ export {
|
|
|
177
208
|
useExperimentSave,
|
|
178
209
|
type UseExperimentSaveOptions,
|
|
179
210
|
type UseExperimentSaveReturn,
|
|
180
|
-
//
|
|
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 {
|
|
181
374
|
usePluginApi,
|
|
182
375
|
type UsePluginApiOptions,
|
|
183
376
|
} from './composables'
|
|
@@ -198,6 +391,9 @@ export {
|
|
|
198
391
|
type Hsl,
|
|
199
392
|
} from './utils/color'
|
|
200
393
|
|
|
394
|
+
// Biology data templates
|
|
395
|
+
export * from './templates'
|
|
396
|
+
|
|
201
397
|
// Types
|
|
202
398
|
export type {
|
|
203
399
|
// Component types
|
|
@@ -209,18 +405,27 @@ export type {
|
|
|
209
405
|
AlertType,
|
|
210
406
|
Toast,
|
|
211
407
|
TabItem,
|
|
408
|
+
TabItemInput,
|
|
409
|
+
OptionPrimitive,
|
|
212
410
|
SelectOption,
|
|
411
|
+
SelectOptionInput,
|
|
213
412
|
RadioOption,
|
|
413
|
+
RadioOptionInput,
|
|
214
414
|
FormFieldProps,
|
|
215
415
|
SidebarToolSection,
|
|
216
416
|
CollapsibleState,
|
|
217
417
|
TopBarVariant,
|
|
218
418
|
TopBarPage,
|
|
419
|
+
TopBarPageInput,
|
|
219
420
|
TopBarTab,
|
|
421
|
+
TopBarTabInput,
|
|
220
422
|
TopBarTabOption,
|
|
423
|
+
TopBarTabOptionInput,
|
|
221
424
|
TopBarSettingsConfig,
|
|
222
425
|
PillNavItem,
|
|
426
|
+
PillNavItemInput,
|
|
223
427
|
PageSelectorItem,
|
|
428
|
+
PageSelectorItemInput,
|
|
224
429
|
PluginSwitcherPlugin,
|
|
225
430
|
PluginSwitcherInfo,
|
|
226
431
|
AccountMenuItem,
|
|
@@ -261,10 +466,12 @@ export type {
|
|
|
261
466
|
FileUploaderMode,
|
|
262
467
|
// SegmentedControl types
|
|
263
468
|
SegmentedOption,
|
|
469
|
+
SegmentedOptionInput,
|
|
264
470
|
SegmentedControlVariant,
|
|
265
471
|
SegmentedControlSize,
|
|
266
472
|
// MultiSelect types
|
|
267
473
|
MultiSelectOption,
|
|
474
|
+
MultiSelectOptionInput,
|
|
268
475
|
MultiSelectSize,
|
|
269
476
|
// Pill types
|
|
270
477
|
PillVariant,
|
|
@@ -295,12 +502,29 @@ export type {
|
|
|
295
502
|
EmptyStateSize,
|
|
296
503
|
// Breadcrumb types
|
|
297
504
|
BreadcrumbItem,
|
|
505
|
+
BreadcrumbItemInput,
|
|
298
506
|
// Tooltip types
|
|
299
507
|
TooltipPosition,
|
|
300
508
|
// ConfirmDialog types
|
|
301
509
|
ConfirmVariant,
|
|
302
510
|
// SettingsModal types
|
|
303
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,
|
|
304
528
|
// ScientificNumber types
|
|
305
529
|
NumberNotation,
|
|
306
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:
|
|
18
|
-
install(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
|
|
33
|
+
app.component(name, component)
|
|
27
34
|
}
|
|
28
35
|
}
|
|
29
36
|
},
|
package/src/stores/settings.ts
CHANGED
|
@@ -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
|
-
|
|
143
|
-
|
|
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
|
-
|
|
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,9 +12,9 @@
|
|
|
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.3125rem 0.875rem 0.4375rem;
|
|
17
|
+
padding: 0.375rem 0.875rem;
|
|
18
18
|
border-radius: 9999px;
|
|
19
19
|
font-size: 0.8125rem;
|
|
20
20
|
font-weight: 500;
|
|
@@ -55,3 +55,9 @@
|
|
|
55
55
|
outline: none;
|
|
56
56
|
box-shadow: var(--focus-ring);
|
|
57
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
|
}
|
|
@@ -278,8 +306,7 @@
|
|
|
278
306
|
display: inline-flex;
|
|
279
307
|
align-items: center;
|
|
280
308
|
gap: 0.25rem;
|
|
281
|
-
|
|
282
|
-
padding: 0.3125rem 0.875rem 0.4375rem;
|
|
309
|
+
padding: 0.375rem 0.875rem;
|
|
283
310
|
border: 0;
|
|
284
311
|
background: transparent;
|
|
285
312
|
border-radius: 9999px;
|
|
@@ -321,6 +348,12 @@
|
|
|
321
348
|
transition: transform 0.15s ease;
|
|
322
349
|
}
|
|
323
350
|
|
|
351
|
+
.mint-topbar-tab-icon {
|
|
352
|
+
width: 0.875rem;
|
|
353
|
+
height: 0.875rem;
|
|
354
|
+
flex-shrink: 0;
|
|
355
|
+
}
|
|
356
|
+
|
|
324
357
|
.mint-topbar-tab-chevron--open {
|
|
325
358
|
transform: rotate(180deg);
|
|
326
359
|
}
|
|
@@ -133,24 +133,20 @@
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
/* Sizes */
|
|
136
|
-
/* Optical centering: Fira Sans' cap-letter midpoint sits above the em-box center.
|
|
137
|
-
Old rule (pre-0.16) compensated with a 2px upward shift; user testing showed
|
|
138
|
-
that read as "too high" across sizes. New rule: 1px upward shift universally.
|
|
139
|
-
See CLAUDE.md § Optical Centering. */
|
|
140
136
|
.mint-button--sm {
|
|
141
|
-
padding: 0.
|
|
137
|
+
padding: 0.375rem 0.75rem;
|
|
142
138
|
font-size: 0.875rem;
|
|
143
139
|
min-height: var(--form-height-sm);
|
|
144
140
|
}
|
|
145
141
|
|
|
146
142
|
.mint-button--md {
|
|
147
|
-
padding: 0.
|
|
143
|
+
padding: 0.5rem 1rem;
|
|
148
144
|
font-size: 0.875rem;
|
|
149
145
|
min-height: var(--form-height-md);
|
|
150
146
|
}
|
|
151
147
|
|
|
152
148
|
.mint-button--lg {
|
|
153
|
-
padding: 0.
|
|
149
|
+
padding: 0.75rem 1.5rem;
|
|
154
150
|
font-size: 1rem;
|
|
155
151
|
min-height: var(--form-height-lg);
|
|
156
152
|
}
|