import type { ComponentPropsWithRef, HTMLAttributes, ReactNode, Ref, TdHTMLAttributes, ThHTMLAttributes } from "react";
import { createContext, isValidElement, useContext } from "react";
import { ArrowDown, ChevronSelectorVertical, Copy01, Edit01, HelpCircle, Trash01 } from "@untitledui/icons";
import type {
CellProps as AriaCellProps,
ColumnProps as AriaColumnProps,
RowProps as AriaRowProps,
TableHeaderProps as AriaTableHeaderProps,
TableProps as AriaTableProps,
} from "react-aria-components";
import {
Cell as AriaCell,
Collection as AriaCollection,
Column as AriaColumn,
Group as AriaGroup,
Row as AriaRow,
Table as AriaTable,
TableBody as AriaTableBody,
TableHeader as AriaTableHeader,
useTableOptions,
} from "react-aria-components";
import { Badge } from "@/components/base/badges/badges";
import { Checkbox } from "@/components/base/checkbox/checkbox";
import { Dropdown } from "@/components/base/dropdown/dropdown";
import { Tooltip, TooltipTrigger } from "@/components/base/tooltip/tooltip";
import { cx } from "@/utils/cx";
export const TableRowActionsDropdown = () => (
EditCopy linkDelete
);
const TableContext = createContext<{ size: "sm" | "md" }>({ size: "md" });
const TableCardRoot = ({ children, className, size = "md", ...props }: HTMLAttributes & { size?: "sm" | "md" }) => {
return (
{children}
);
};
interface TableCardHeaderProps {
/** The title of the table card header. */
title: string;
/** The badge displayed next to the title. */
badge?: ReactNode;
/** The description of the table card header. */
description?: string;
/** The content displayed after the title and badge. */
contentTrailing?: ReactNode;
/** The class name of the table card header. */
className?: string;
}
const TableCardHeader = ({ title, badge, description, contentTrailing, className }: TableCardHeaderProps) => {
const { size } = useContext(TableContext);
return (