@cfxlabsinc/b2b-services
    Preparing search index...
    LogoUploadDialog: React.FC<
        PropsWithChildren<
            {
                accept: string[];
                description?: React.ReactNode;
                fallback: string;
                logoUrl: string
                | null;
                maxBytes: number;
                onSave: (file: File | null) => Promise<ActionOutcome>;
                preview?: "light" | "dark";
                previewShape?: "circle" | "contain";
                title: string;
            },
        >,
    > = ...

    Replace or remove a logo. The trigger is children. A file of the wrong type or size is turned away here, before onSave is called; onSave(null) removes the logo.

    The preview shows the logo whole by default, which suits wordmarks; pass previewShape="circle" where the logo is shown as a round avatar. The file is sent as chosen; the server re-encodes it.