import * as components from './components' type ComponentRegistryApp = { component: (name: string, component: any) => unknown } export interface MINTSdkPlugin { install(app: ComponentRegistryApp): void } /** * Vue plugin that registers all MINT SDK components globally. * * @example * ```typescript * import { createApp } from 'vue' * import { MINTSdk } from '@morscherlab/mint-sdk' * import '@morscherlab/mint-sdk/styles' * * const app = createApp(App) * app.use(MINTSdk) * ``` */ export const MINTSdk: MINTSdkPlugin = { install(app) { for (const [name, component] of Object.entries(components)) { // Check if it's a valid Vue component (has setup, render, or template) if ( component && typeof component === 'object' && ('setup' in component || 'render' in component || '__name' in component) ) { app.component(name, component) } } }, } export default MINTSdk