import { Cuboid, Notebook, User } from 'lucide-react'; import { type RegisteredNode, type NodeCategory } from './types'; import ServiceConfig from './core/service/config'; import Service from './core/service/node'; import EventConfig from './core/event/config'; import Event from './core/event/node'; import QueryConfig from './core/query/config'; import Query from './core/query/node'; import CommandConfig from './core/command/config'; import Command from './core/command/node'; import NoteConfig from './utility/note/config'; import Note from './utility/note/node'; import TextBoxConfig from './utility/text-box/config'; import TextBox from './utility/text-box/node'; import DomainConfig from './core/domain/config'; import Domain from './core/domain/node'; import ChannelConfig from './core/channel/config'; import Channel from './core/channel/node'; import ExternalSystemConfig from './core/external-system/config'; import ExternalSystem from './core/external-system/node'; import CommentConfig from './utility/comment-thread/config'; import Comment from './utility/comment-thread/node'; import ActorConfig from './flow/actor/config'; import Actor from './flow/actor/node'; import DataConfig from './core/data/config'; import Data from './core/data/node'; import ViewConfig from './core/view/config'; import View from './core/view/node'; export const nodeCategories: NodeCategory[] = [ { type: 'core', label: 'Architecture', icon: Cuboid, }, { type: 'flow', label: 'Flow', icon: User, }, { type: 'utility', label: 'Utility', icon: Notebook, }, ] export const registeredNodeTypes: RegisteredNode[] = [ { type: 'service', category: 'core', component: Service, configuration: ServiceConfig, }, { type: 'event', category: 'core', component: Event, configuration: EventConfig, }, { type: 'query', category: 'core', component: Query, configuration: QueryConfig, }, { type: 'command', category: 'core', component: Command, configuration: CommandConfig, }, { type: 'note', category: 'utility', component: Note, configuration: NoteConfig, }, { type: 'textBox', category: 'utility', component: TextBox, configuration: TextBoxConfig, }, // { // type: 'domain', // category: 'core', // component: Domain, // configuration: DomainConfig, // }, { type: 'channel', category: 'core', component: Channel, configuration: ChannelConfig, }, { type: 'comment', category: 'utility', component: Comment, configuration: CommentConfig, }, { type: 'actor', category: 'flow', component: Actor, configuration: ActorConfig, }, { type: 'external-system', category: 'core', component: ExternalSystem, configuration: ExternalSystemConfig, }, { type: 'data', category: 'core', component: Data, configuration: DataConfig, }, { type: 'view', category: 'core', component: View, configuration: ViewConfig, }, ];