- Add DomainsModule with full CRUD, search, and activity logging - Add IdeasModule with quick capture endpoint - Add LayoutsModule for user dashboard layouts - Add WidgetsModule for widget definitions (read-only) - Update ActivityService with domain/idea logging methods - Register all new modules in AppModule
58 lines
1.3 KiB
TypeScript
58 lines
1.3 KiB
TypeScript
import type { ReactNode } from "react";
|
|
|
|
export interface CardProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
id?: string;
|
|
onMouseEnter?: () => void;
|
|
onMouseLeave?: () => void;
|
|
}
|
|
|
|
export interface CardHeaderProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export interface CardContentProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export interface CardFooterProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function Card({ children, className = "", id, onMouseEnter, onMouseLeave }: CardProps) {
|
|
return (
|
|
<div
|
|
id={id}
|
|
onMouseEnter={onMouseEnter}
|
|
onMouseLeave={onMouseLeave}
|
|
className={`bg-white rounded-lg shadow-md border border-gray-200 ${className}`}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function CardHeader({ children, className = "" }: CardHeaderProps) {
|
|
return (
|
|
<div className={`px-6 py-4 border-b border-gray-200 ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function CardContent({ children, className = "" }: CardContentProps) {
|
|
return <div className={`px-6 py-4 ${className}`}>{children}</div>;
|
|
}
|
|
|
|
export function CardFooter({ children, className = "" }: CardFooterProps) {
|
|
return (
|
|
<div className={`px-6 py-4 border-t border-gray-200 bg-gray-50 rounded-b-lg ${className}`}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|