import * as React from "react"; import { Label } from "@/components/ui/label"; import { cn } from "@/lib/utils"; export interface FieldMetaProps { label?: React.ReactNode; description?: React.ReactNode; errorMessage?: React.ReactNode; isInvalid?: boolean; isRequired?: boolean; } interface FieldContainerProps extends FieldMetaProps { className?: string; id?: string; children: React.ReactNode; } export function FieldContainer({ children, className, description, errorMessage, id, isInvalid, isRequired, label, }: FieldContainerProps) { return (
{label ? ( ) : null} {children} {description ? (

{description}

) : null} {isInvalid && errorMessage ? (

{errorMessage}

) : null}
); } export function extractText(content: React.ReactNode): string { if ( content === null || content === undefined || typeof content === "boolean" ) { return ""; } if (typeof content === "string" || typeof content === "number") { return String(content); } if (Array.isArray(content)) { return content .map((item) => extractText(item)) .join("") .trim(); } if (React.isValidElement(content)) { return extractText(content.props.children); } return ""; }