UNPKG

ivt

Version:

Ivt Components Library

32 lines (29 loc) 1.49 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import React__default from 'react'; declare const styleInput = "border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-10 w-full rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm"; interface EditableOption { value: string | number | boolean; label: string; } interface EditableColumn<T> { key: keyof T; label: string; type?: "text" | "number" | "select" | "boolean"; required?: boolean; options?: EditableOption[]; render?: (value: any, row: T, rowIndex: number) => React__default.ReactNode; editable?: boolean; } interface EditableTableProps<T> { data: T[]; columns: EditableColumn<T>[]; rowKey: keyof T; isIntegrationTable?: boolean; onSave: (field: keyof T, value: any, row: T) => Promise<void> | void; onChange?: (rowId: number, field: keyof T, value: any) => void; onCancel?: (rowId: number, field: keyof T) => void; className?: string; } declare function EditableTable<T extends Record<string, any>>({ data, columns, rowKey, onSave, onChange, onCancel, className, isIntegrationTable, }: EditableTableProps<T>): react_jsx_runtime.JSX.Element; export { EditableTable, styleInput }; export type { EditableColumn };