diff --git a/modules/core/src/web/components/index.ts b/modules/core/src/web/components/index.ts index f25110c6..5fc6d843 100644 --- a/modules/core/src/web/components/index.ts +++ b/modules/core/src/web/components/index.ts @@ -3,3 +3,4 @@ import { AllCommunityModule, ModuleRegistry } from "ag-grid-community"; ModuleRegistry.registerModules([AllCommunityModule]); export * from "./form"; +export * from "./page-header"; diff --git a/modules/core/src/web/components/page-header.tsx b/modules/core/src/web/components/page-header.tsx new file mode 100644 index 00000000..c5f848c3 --- /dev/null +++ b/modules/core/src/web/components/page-header.tsx @@ -0,0 +1,48 @@ +import { Button } from '@repo/shadcn-ui/components'; +import { cn } from '@repo/shadcn-ui/lib/utils'; +import { ChevronLeftIcon } from 'lucide-react'; +// features/common/components/page-header.tsx +import type { ReactNode } from "react"; + + +interface PageHeaderProps { + /** Icono que aparece a la izquierda del título */ + icon?: ReactNode; + /** Contenido del título (texto plano o nodo complejo) */ + title: ReactNode; + /** Descripción secundaria debajo del título */ + description?: ReactNode; + /** Estado opcional (ej. "draft", "paid") */ + status?: string; + /** Contenido del lado derecho (botones, menús, etc.) */ + rightSlot?: ReactNode; + + className?: string; +} + +export function PageHeader({ icon, title, description, status, rightSlot, className }: PageHeaderProps) { + return ( +
{description}
} +{description}
} -{t("pages.list.description")}
-{t("pages.list.description")}
+