///
import { GenesysDevIcons } from 'genesys-dev-icons';
import DxAccordion from './dxaccordion/DxAccordion';
import DxAccordionGroup from './dxaccordion/DxAccordionGroup';
import DxButton from './dxbutton/DxButton';
import DxItemGroup from './dxitemgroup/DxItemGroup';
import DxCheckbox from './dxitemgroup/DxCheckbox';
import DxLabel from './dxlabel/DxLabel';
import DxTabbedContent from './dxtabbedcontent/DxTabbedContent';
import DxTabPanel from './dxtabbedcontent/DxTabPanel';
import DxTextbox from './dxtextbox/DxTextbox';
import DxToggle from './dxtoggle/DxToggle';
import AlertBlock from './alertblock/AlertBlock';
import LoadingPlaceholder from './loadingplaceholder/LoadingPlaceholder';
import Tooltip from './tooltip/Tooltip';
import CopyButton from './copybutton/CopyButton';
import DataTable from './datatable/DataTable';
import CodeFence from './codefence/CodeFence';
import LoadingSpinner from './loadingspinner/LoadingSpinner';
export { DxAccordion, DxAccordionGroup, DxButton, DxItemGroup, DxCheckbox, DxLabel, DxTabbedContent, DxTabPanel, DxTextbox, DxToggle, Tooltip, CopyButton, LoadingPlaceholder, AlertBlock, CodeFence, DataTable, LoadingSpinner, };
export interface StringChangedCallback {
(value: string): void;
}
export interface BooleanChangedCallback {
(value?: boolean): void;
}
export interface CheckedChangedCallback {
(checked: boolean): void;
}
export interface VoidEventCallback {
(): void;
}
export interface BaseComponentProps {
id?: string;
}
export interface DxItemGroupItem {
label: string;
value: string;
disabled?: boolean;
isSelected?: boolean;
}
export interface DxItemGroupItemValue {
item: DxItemGroupItem;
isSelected: boolean;
}
export interface ItemChangedCallback {
(item: DxItemGroupItem, isSelected: boolean): void;
}
export interface ItemGroupChangedCallback {
(items: DxItemGroupItemValue[]): void;
}
export interface DxToggleProps extends BaseComponentProps {
isTriState?: boolean;
initialValue?: boolean;
value?: boolean;
label?: string;
description?: string;
trueIcon?: GenesysDevIcons;
falseIcon?: GenesysDevIcons;
disabled?: boolean;
onChange?: BooleanChangedCallback;
className?: string;
}
export type DxTextboxType = 'text' | 'textarea' | 'password' | 'email' | 'date' | 'datetime-local' | 'time' | 'integer' | 'decimal';
export interface DxTextboxProps extends BaseComponentProps {
initialValue?: string;
value?: string;
inputType?: DxTextboxType;
label?: string;
description?: string;
placeholder?: string;
icon?: GenesysDevIcons;
clearButton?: boolean;
clearOnEscape?: boolean;
onChange?: StringChangedCallback;
changeDebounceMs?: number;
inputRef?: React.RefObject;
onFocus?: VoidEventCallback;
onBlur?: VoidEventCallback;
disabled?: boolean;
className?: string;
autoFocus?: boolean;
onKeyboardEvent?: {
(event: KeyboardEvent): void;
};
}
export interface DxAccordionProps extends BaseComponentProps {
containerId?: string;
title: React.ReactNode;
children: React.ReactNode;
showOpen?: boolean;
className?: string;
expandTrigger?: any;
showOpenTrigger?: any;
headingIcon?: any;
headingColor?: string;
}
export interface DxItemGroupProps extends BaseComponentProps {
title?: string;
description?: string;
format: DxItemGroupFormat;
items: DxItemGroupItem[];
disabled?: boolean;
className?: string;
onItemChanged?: ItemChangedCallback;
onItemsChanged?: ItemGroupChangedCallback;
}
export type DxItemGroupFormat = 'checkbox' | 'radio' | 'dropdown' | 'multiselect';
export interface DxTabbedContentProps extends BaseComponentProps {
children: React.ReactNode;
initialTabId?: number;
className?: string;
}
export interface DxTabPanelProps extends BaseComponentProps {
title: React.ReactNode;
children: React.ReactNode;
className?: string;
}
export interface DataTableRow {
cells: DataTableCell[];
className?: string;
}
export interface DataTableCell {
renderedContent?: React.ReactNode;
content: string;
parsedContent?: string | number | Date;
align?: 'left' | 'center' | 'right';
copyButton?: boolean;
className?: string;
}