/* Copyright 2026 Marimo. All rights reserved. */
import { LoaderCircle, XIcon } from "lucide-react";
import type { CSSProperties } from "react";
import { TreeChevron } from "@/components/editor/file-tree/tree-actions";
import type { DataType } from "@/core/kernel/messages";
import { cn } from "@/utils/cn";
import { DATA_TYPE_ICON, getDataTypeColor } from "../datasets/icons";
export const RotatingChevron: React.FC<{ isExpanded: boolean }> = ({
isExpanded,
}) => ;
export const DatasourceLabel: React.FC<{
children: React.ReactNode;
className?: string;
}> = ({ children, className }) => {
return (
{children}
);
};
export const EmptyState: React.FC<{ content: string; className?: string }> = ({
content,
className,
}) => {
return (
{content}
);
};
export const ErrorState: React.FC<{
error: Error;
style?: CSSProperties;
className?: string;
showIcon?: boolean;
}> = ({ error, style, className, showIcon = true }) => {
return (
{showIcon && }
{error.message}
);
};
export const LoadingState: React.FC<{
message: string;
className?: string;
}> = ({ message, className }) => {
return (
{message}
);
};
export const ColumnPreviewContainer: React.FC<{
children: React.ReactNode;
className?: string;
}> = ({ children, className }) => {
return (
{children}
);
};
export const ColumnName = ({
columnName,
dataType,
}: {
columnName: React.ReactNode;
dataType: DataType;
}) => {
const Icon = DATA_TYPE_ICON[dataType];
const color = getDataTypeColor(dataType);
return (
{columnName}
);
};