import { ComponentPropsWithoutRef } from 'react';
import { LayoutUtilProps } from '../../types';
/**
* The current state of the edit card.
*/
export type EditCardState = "not started" | "in progress" | "error" | "complete";
/**
* The type of state change that can occur.
*/
export type EditCardChange = "edit" | "save" | "cancel";
/**
* Props for the EditCard component
* @extends ComponentPropsWithoutRef<"div">
* @extends LayoutUtilProps
*/
export type EditCardProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
/**
* The header text to display. Can be a string or an object mapping states to different text.
*/
headerText: string | {
"not started": string;
"in progress": string;
error: string;
complete: string;
};
/**
* The current state of the edit card.
*/
state: EditCardState;
/**
* Text to display on the save button.
* @default "Save"
*/
saveButtonText?: string;
/**
* Text to display on the edit button.
* @default "Edit"
*/
editButtonText?: string;
/**
* Whether to disable the edit button.
* @default false
*/
disableEdit?: boolean;
/**
* Whether to disable the save button.
* @default false
*/
disableSave?: boolean;
/**
* Callback function called when the state changes.
*/
onStateChange?: (changeType: EditCardChange) => void;
};
/**
* EditCard component for managing editable content with different states and actions.
*
* Features:
* - Four distinct states: not started, in progress, error, and complete
* - Visual indicators for each state with appropriate icons
* - Dynamic header text that can change based on state
* - Edit and save buttons with customizable text
* - Optional button disabling for different states
* - State change callbacks for handling user interactions
* - Built on Card component with consistent styling
* - Supports layout utilities for positioning and spacing
* - Accessible with proper ARIA attributes
* - Visual state indicators with color-coded borders
*
* @example
* console.log(change)}
* >
* Profile information goes here
*
*/
export declare const EditCard: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
/**
* The header text to display. Can be a string or an object mapping states to different text.
*/
headerText: string | {
"not started": string;
"in progress": string;
error: string;
complete: string;
};
/**
* The current state of the edit card.
*/
state: EditCardState;
/**
* Text to display on the save button.
* @default "Save"
*/
saveButtonText?: string;
/**
* Text to display on the edit button.
* @default "Edit"
*/
editButtonText?: string;
/**
* Whether to disable the edit button.
* @default false
*/
disableEdit?: boolean;
/**
* Whether to disable the save button.
* @default false
*/
disableSave?: boolean;
/**
* Callback function called when the state changes.
*/
onStateChange?: (changeType: EditCardChange) => void;
} & import('react').RefAttributes>;