/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { Handle, Position } from '@xyflow/react' import type { ComponentProps } from 'react' import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from '@/components/ui/card' import { cn } from '@/lib/utils' export type NodeProps = ComponentProps & { handles: { target: boolean source: boolean } } export const Node = ({ handles, className, ...props }: NodeProps) => ( {handles.target && } {handles.source && } {props.children} ) export type NodeHeaderProps = ComponentProps export const NodeHeader = ({ className, ...props }: NodeHeaderProps) => ( ) export type NodeTitleProps = ComponentProps export const NodeTitle = (props: NodeTitleProps) => export type NodeDescriptionProps = ComponentProps export const NodeDescription = (props: NodeDescriptionProps) => ( ) export type NodeActionProps = ComponentProps export const NodeAction = (props: NodeActionProps) => export type NodeContentProps = ComponentProps export const NodeContent = ({ className, ...props }: NodeContentProps) => ( ) export type NodeFooterProps = ComponentProps export const NodeFooter = ({ className, ...props }: NodeFooterProps) => ( )