Files
stack/packages/ui/src/components/Card.tsx
Jason Woltje f47dd8bc92 feat: add domains, ideas, layouts, widgets API modules
- 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
2026-01-29 13:47:03 -06:00

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>
);
}