/** * @monochrome-edge/ui - React components */ import React, { ReactNode, CSSProperties } from "react"; export * from "./react-interactive"; interface ThemeContextType { theme: "warm" | "cold"; mode: "light" | "dark"; setTheme: (theme: "warm" | "cold") => void; setMode: (mode: "light" | "dark") => void; toggleMode: () => void; } export declare const useTheme: () => ThemeContextType; export interface ThemeProviderProps { children: ReactNode; defaultTheme?: "warm" | "cold"; defaultMode?: "light" | "dark"; } export declare function ThemeProvider({ children, defaultTheme, defaultMode, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element; export interface ButtonProps extends React.ButtonHTMLAttributes { variant?: "primary" | "secondary" | "ghost" | "danger"; size?: "small" | "medium" | "large"; loading?: boolean; } export declare function Button({ variant, size, loading, className, disabled, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element; export interface CardProps { title?: string; children: ReactNode; className?: string; style?: CSSProperties; } export declare function Card({ title, children, className, style }: CardProps): import("react/jsx-runtime").JSX.Element; export interface LayoutProps { children: ReactNode; sidebar?: ReactNode; header?: ReactNode; className?: string; } export declare function Layout({ children, sidebar, header, className, }: LayoutProps): import("react/jsx-runtime").JSX.Element; export interface InputProps extends React.InputHTMLAttributes { label?: string; error?: string; } export declare const Input: React.ForwardRefExoticComponent>; export interface ModalProps { isOpen: boolean; onClose: () => void; title?: string; children: ReactNode; size?: "small" | "medium" | "large"; } export declare function Modal({ isOpen, onClose, title, children, size, }: ModalProps): import("react/jsx-runtime").JSX.Element | null; export interface TableProps { children: ReactNode; className?: string; } export declare function Table({ children, className }: TableProps): import("react/jsx-runtime").JSX.Element; export interface TableHeaderProps { children: ReactNode; } export declare function TableHeader({ children }: TableHeaderProps): import("react/jsx-runtime").JSX.Element; export declare function TableBody({ children }: TableHeaderProps): import("react/jsx-runtime").JSX.Element; export interface TableRowProps { children: ReactNode; onClick?: () => void; } export declare function TableRow({ children, onClick }: TableRowProps): import("react/jsx-runtime").JSX.Element; export interface TableCellProps { children: ReactNode; header?: boolean; className?: string; } export declare function TableCell({ children, header, className, }: TableCellProps): import("react/jsx-runtime").JSX.Element; export interface NavProps { children: ReactNode; className?: string; } export declare function Nav({ children, className }: NavProps): import("react/jsx-runtime").JSX.Element; export interface NavGroupProps { title?: string; children: ReactNode; } export declare function NavGroup({ title, children }: NavGroupProps): import("react/jsx-runtime").JSX.Element; export interface NavItemProps { children: ReactNode; active?: boolean; onClick?: () => void; href?: string; } export declare function NavItem({ children, active, onClick, href, }: NavItemProps): import("react/jsx-runtime").JSX.Element; export interface SelectProps extends React.SelectHTMLAttributes { label?: string; error?: string; } export declare const Select: React.ForwardRefExoticComponent>; export interface BadgeProps { children: ReactNode; variant?: "default" | "primary" | "success" | "warning" | "danger"; className?: string; } export declare function Badge({ children, variant, className, }: BadgeProps): import("react/jsx-runtime").JSX.Element; export interface TextareaProps extends React.TextareaHTMLAttributes { label?: string; error?: string; } export declare const Textarea: React.ForwardRefExoticComponent>; export interface CheckboxProps extends React.InputHTMLAttributes { label?: string; } export declare const Checkbox: React.ForwardRefExoticComponent>; export interface RadioProps extends React.InputHTMLAttributes { label?: string; } export declare const Radio: React.ForwardRefExoticComponent>; export interface FormGroupProps { children: ReactNode; className?: string; } export declare function FormGroup({ children, className }: FormGroupProps): import("react/jsx-runtime").JSX.Element; export interface LabelProps extends React.LabelHTMLAttributes { required?: boolean; } export declare function Label({ children, required, className, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element; export declare function useToast(): { success: (message: string) => void; error: (message: string) => void; info: (message: string) => void; }; export interface TocItem { href: string; text: string; isActive?: boolean; } export interface TocHoverCardProps { items: TocItem[]; title?: string; className?: string; } export declare function TocHoverCard({ items, title, className, }: TocHoverCardProps): import("react/jsx-runtime").JSX.Element; export interface TocCollapsibleProps { items: TocItem[]; title?: string; defaultOpen?: boolean; className?: string; } export declare function TocCollapsible({ items, title, defaultOpen, className, }: TocCollapsibleProps): import("react/jsx-runtime").JSX.Element; export interface TOCEntry { id: string; label: string; href: string; } export interface TOCProps { items: TOCEntry[]; activeId?: string; collapsible?: boolean; title?: string; className?: string; onItemClick?: (item: TOCEntry) => void; } export declare function TOC({ items, activeId, collapsible, title, className, onItemClick, }: TOCProps): import("react/jsx-runtime").JSX.Element; export interface ChangelogEntry { version: string; date: string; categories: { title: string; items: { commit: string; hash: string; url?: string; }[]; }[]; } export interface ChangelogProps { entries: ChangelogEntry[]; itemsPerPage?: number; className?: string; } export declare function Changelog({ entries, itemsPerPage, className, }: ChangelogProps): import("react/jsx-runtime").JSX.Element; export interface IconToggleProps { type?: "mode" | "theme" | "color" | "language"; variant?: "default" | "ghost"; disabled?: boolean; onToggle?: (state: string) => void; className?: string; } export declare function IconToggle({ type, variant, disabled, onToggle, className, }: IconToggleProps): import("react/jsx-runtime").JSX.Element; export interface BreadcrumbItem { label: string; href?: string; active?: boolean; } export interface BreadcrumbProps { items: BreadcrumbItem[]; separator?: string; variant?: "default" | "compact" | "large" | "contained"; maxItems?: number; className?: string; } export declare function Breadcrumb({ items, separator, variant, maxItems, className, }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;