import { TooltipProps } from '@bigbinary/neetoui';
type Element = {
label: string;
value: string;
icon: React.ReactNode;
};
type ElementSection = {
title: string;
elements: Element[];
key: string;
isCreatable: (element: Element) => boolean;
disabledElementTooltip?: (label: string) => string;
};
type SelectedElementAction = {
label: string;
key: string;
onClick: (element: Element) => void;
isVisible?: boolean;
};
type SelectedElement = {
id: string;
kind: string;
position: number;
label: string;
icon: React.ReactNode;
isPending: boolean;
actions: SelectedElementAction[] | ((element: Element) => SelectedElementAction[]);
};
/**
*
* @example
*
* import Container from "@bigbinary/neeto-molecules/Container";
* import {
* ElementsPanel,
* PropertiesPanel,
* } from "@bigbinary/neeto-molecules/Builder";
* import Configure from "./Configure";
*
* const Component = () => (
*
*
*
alert("Clicked", JSON.stringify(element)),
* },
* {
* label: "Delete",
* key: "delete",
* onClick: element => alert("Clicked", JSON.stringify(element)),
* },
* ]}
* />
* alert("The panel is closed :", id)}
* id={selectedRecord.id}
* >
* {selectedRecord.id ? : }
*
*
*
* );
* @endexample
*/
declare const ElementsPanel: React.FC<{
elementSections: ElementSection[];
addNewElementLabel?: string;
addNewElement?: () => void;
selectedElements: SelectedElement[];
handleAddElement: (element: Element) => void;
isElementVisible: (element: Element) => boolean;
fixedFirstElement?: SelectedElement[] | SelectedElement;
fixedLastElement?: SelectedElement;
anchoredElementIds?: string[];
isReorderDisabled?: boolean;
isDragElementsDisabled?: boolean;
isSelectedElementActionsDisabled?: boolean;
handleSelectElement: (index: number) => void;
selectedElementId: string;
selectedElementActions: SelectedElementAction[] | ((element: Element) => SelectedElementAction[]);
addAllElements: () => void;
isAddingAllElements?: boolean;
showElementsFillButton?: boolean;
isAddingNewElement?: boolean;
selectedElementActionsTooltipProps?: Partial;
renderElementsCount?: (count: number) => React.ReactNode;
}>;
declare const PropertiesPanel: React.FC<{
children: React.ReactNode;
id: string;
onClose?: (id: string) => void;
}>;
export { ElementsPanel, PropertiesPanel };