import type { ComponentPropsWithRef, FC, HTMLAttributes, ReactNode, Ref, TdHTMLAttributes, ThHTMLAttributes } from "react";
import { createContext, isValidElement, useContext } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faArrowDown, faSort, faCopy, faPenToSquare, faCircleQuestion, faTrash } from "@fortawesome/pro-duotone-svg-icons";
const Edit01: FC<{ className?: string }> = ({ className }) => ;
const Copy01: FC<{ className?: string }> = ({ className }) => ;
const Trash01: FC<{ className?: string }> = ({ className }) => ;
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,
ColumnResizer as AriaColumnResizer,
Group as AriaGroup,
ResizableTableContainer as AriaResizableTableContainer,
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 (