import React from 'react'; import type { Icon } from '@epam/uui-core'; import type { AvatarProps, BlockerProps } from '@epam/uui-components'; import type { AlertProps, LinkButtonProps, BadgeProps, CountIndicatorProps, ButtonProps, CheckboxProps, DataTableHeaderRowProps, DataTableHeaderCellProps, DataTableRowProps, SearchInputProps, FlexRowProps, TextProps, DatePickerProps, FiltersPanelProps, DataPickerRowProps, PickerItemProps, DataPickerFooterProps, LabeledInputProps, NumericInputProps, PickerTogglerProps, PickerTogglerTagProps, TagProps, SwitchProps, RangeDatePickerProps, RadioInputProps, RatingProps, RichTextViewProps, DataRowAddonsProps, StatusIndicatorProps, TabButtonProps, VerticalTabButtonProps, TextAreaProps, TextInputProps, PickerInputProps, MultiSwitchProps, RangeDatePickerInputProps, IconButtonProps, VirtualListProps } from './components'; type Sizes = { [size in S]: T; }; interface AccordionIcons { dropdownIcon: Icon; } interface AccordionSettings { icons: AccordionIcons; } interface AlertIcons { closeIcon: Icon; infoIcon: Icon; successIcon: Icon; warningIcon: Icon; errorIcon: Icon; } interface AlertSizes { default: AlertProps['size']; actionMap: Sizes; } interface AlertSettings { icons: AlertIcons; sizes: AlertSizes; } interface BadgeIcons { dropdownIcon: Icon; } interface BadgeSizes { default: BadgeProps['size']; countIndicatorMap: Sizes; } interface BadgeSettings { icons: BadgeIcons; sizes: BadgeSizes; } interface ButtonIcons { clearIcon: Icon; dropdownIcon: Icon; } interface ButtonSizes { default: ButtonProps['size']; } interface ButtonSettings { icons: ButtonIcons; sizes: ButtonSizes; } interface CheckboxIcons { checkIcon: Icon; indeterminateIcon: Icon; } interface CheckboxSizes { default: CheckboxProps['size']; } interface CheckboxSettings { icons: CheckboxIcons; sizes: CheckboxSizes; } interface CountIndicatorSizes { default: CountIndicatorProps['size']; } interface CountIndicatorSettings { sizes: CountIndicatorSizes; } interface DataTableIcons { emptyTable: Icon; header: { configIcon: Icon; ascSortIcon: Icon; descSortIcon: Icon; defaultSortIcon: Icon; filterIcon: Icon; dropdownIcon: Icon; openedDropdownIcon: Icon; foldIcon: Icon; unfoldIcon: Icon; }; body: { foldingIcon: Icon; }; columnsConfigurationModal: { dragIndicator: Icon; lockIcon: Icon; pinLeftIcon: Icon; pinRightIcon: Icon; menuIcon: Icon; resetIcon: Icon; expandedIcon: Icon; collapsedIcon: Icon; }; } interface DataTableSizes { columnsConfigurationModal: { columnRow: FlexRowProps['size']; countIndicator: CountIndicatorProps['size']; menuButton: ButtonProps['size']; searchInput: SearchInputProps['size']; }; header: { row: DataTableHeaderRowProps['size']; iconMap: Sizes['size'], string>; }; body: { row: DataTableRowProps['size']; checkboxMap: Sizes['size'], CheckboxProps['size']>; iconMap: Sizes['size'], number | string>; indentUnitMap: Sizes['size'], number>; indentWidthMap: Sizes['size'], number>; }; } interface DataTableSettings { icons: DataTableIcons; sizes: DataTableSizes; renderPlaceholder?: (props: { rowSize: DataTableRowProps['size']; }) => React.ReactNode; } interface DropdownMenuIcons { acceptIcon: Icon; dropdownIcon: Icon; } interface DropdownMenuSettings { icons: DropdownMenuIcons; } interface DatePickerIcons { body: { prevIcon: Icon; nextIcon: Icon; }; input: { calendarIcon: Icon; }; } interface DatePickerSizes { input: DatePickerProps['size']; body: DatePickerProps['size']; } interface DatePickerSettings { icons: DatePickerIcons; sizes: DatePickerSizes; } interface FileCardIcons { docIcon: Icon; exelIcon: Icon; pdfIcon: Icon; imgIcon: Icon; videoIcon: Icon; tableIcon: Icon; textIcon: Icon; mailIcon: Icon; fileIcon: Icon; closeIcon: Icon; errorIcon: Icon; } interface FileCardSettings { icons: FileCardIcons; } interface FlexRowSizes { default: FlexRowProps['size']; } interface FlexRowSettings { sizes: FlexRowSizes; } interface FiltersPanelIcons { addFilterIcon: Icon; itemDropdownIcon: Icon; pickerBodyRemoveIcon: Icon; } interface FiltersPanelSizes { default: FiltersPanelProps['size']; footerLinkButton: LinkButtonProps['size']; mobileFooterLinkButton: LinkButtonProps['size']; pickerBodyMultiSwitch: MultiSwitchProps['size']; pickerBodyLinkButton: LinkButtonProps['size']; pickerBodyMinWidth: number; rangeDatePickerInput: RangeDatePickerInputProps['size']; } interface FiltersPanelSettings { icons: FiltersPanelIcons; sizes: FiltersPanelSizes; renderPlaceholder: () => React.ReactNode; } interface IconButtonSettings { icons: { dropdownIcon: Icon; }; } interface LabeledInputIcons { infoIcon: Icon; fillInfoIcon: Icon; } interface LabeledInputSizes { default: LabeledInputProps['size']; } interface LabeledInputSettings { icons: LabeledInputIcons; sizes: LabeledInputSizes; } interface LinkButtonIcons { dropdownIcon: Icon; } interface LinkButtonSizes { default: LinkButtonProps['size']; } interface LinkButtonSettings { icons: LinkButtonIcons; sizes: LinkButtonSizes; weight: LinkButtonProps['weight']; } interface ModalIcons { closeIcon: Icon; } interface ModalSettings { icons: ModalIcons; } interface NotificationCardIcons { closeIcon: Icon; hintIcon: Icon; successIcon: Icon; warningIcon: Icon; errorIcon: Icon; } interface NotificationCardSizes { action: LinkButtonProps['size']; icon: number; } interface NotificationCardSettings { icons: NotificationCardIcons; sizes: NotificationCardSizes; } interface NumericInputIcons { arrowIcon: Icon; } interface NumericInputSizes { default: NumericInputProps['size']; } interface NumericInputSettings { icons: NumericInputIcons; sizes: NumericInputSizes; } interface PaginatorIcons { leftArrowIcon: Icon; rightArrowIcon: Icon; } interface PaginatorSizes { default: ButtonProps['size']; } interface PaginatorSettings { icons: PaginatorIcons; sizes: PaginatorSizes; } type SelectIconType = Icon | ((size: DataPickerRowProps['size']) => Icon); interface PickerInputIcons { toggler: { clearIcon: Icon; dropdownIcon: Icon; }; body: { selectIcon: SelectIconType; pickerBodyMobileHeaderCloseIcon: Icon; modalNotFoundSearchIcon: Icon; }; } interface PickerInputSizes { toggler: { default: PickerTogglerProps['size']; tag: PickerTogglerTagProps['size']; tagMap: Sizes['size'], TagProps['size']>; }; body: { maxHeight: number; minWidth: number; row: DataPickerRowProps['size']; itemAvatarMap: Sizes['size'], AvatarProps['size']>; itemAvatarMultilineMap: Sizes['size'], AvatarProps['size']>; itemVerticalPaddingMap: Sizes['size'], string>; selectIconMap: Sizes['size'], string>; footerSwitchMap: Sizes['size'], SwitchProps['size']>; mobileFooterLinkButton: LinkButtonProps['size']; mobileRow: DataPickerRowProps['size']; getSearchSize: (props: { pickerSize: PickerInputProps['size']; }) => SearchInputProps['size']; mobileSearchInput: SearchInputProps['size']; }; } interface PickerInputSettings { icons: PickerInputIcons; sizes: PickerInputSizes; renderPlaceholder?: (props: { rowSize: DataPickerRowProps['size']; }) => React.ReactNode; renderBlocker?: VirtualListProps['renderBlocker']; } interface PresetPanelIcons { addIcon: Icon; copyIcon: Icon; copyLinkIcon: Icon; deleteIcon: Icon; discardChangesIcon: Icon; renameIcon: Icon; menuIcon: Icon; saveAsNewIcon: Icon; saveInCurrentIcon: Icon; } interface PresetPanelSizes { tabButton: TabButtonProps['size']; dropdownTargetIconButton: IconButtonProps['size']; } interface PresetsPanelSettings { icons: PresetPanelIcons; sizes: PresetPanelSizes; } interface RadioInputIcons { dotIcon: Icon; } interface RadioInputSizes { default: RadioInputProps['size']; } interface RadioInputSettings { icons: RadioInputIcons; sizes: RadioInputSizes; } interface RangeDatePickerIcons { input: { calendarIcon: Icon; }; } interface RangeDatePickerSizes { default: RangeDatePickerProps['size']; preset: LinkButtonProps['size']; } interface RangeDatePickerSettings { icons: RangeDatePickerIcons; sizes: RangeDatePickerSizes; } interface RatingIcons { filledRatingIcon: Icon; emptyRatingIcon: Icon; } interface RatingSizes { default: RatingProps['size']; } interface RatingSettings { icons: RatingIcons; sizes: RatingSizes; } interface RichTextViewSizes { default: RichTextViewProps['size']; } interface RichTextViewSettings { sizes: RichTextViewSizes; } interface StatusIndicatorSizes { default: StatusIndicatorProps['size']; } interface StatusIndicatorSettings { sizes: StatusIndicatorSizes; } interface SwitchSizes { default: SwitchProps['size']; } interface SwitchSettings { sizes: SwitchSizes; } interface TabButtonIcons { clearIcon: Icon; dropdownIcon: Icon; } interface TabButtonSizes { default: TabButtonProps['size']; countIndicatorMap: Sizes; } interface TabButtonSettings { icons: TabButtonIcons; sizes: TabButtonSizes; } interface VerticalTabButtonIcons { clearIcon: Icon; foldingIcon: Icon; dropdownIcon: Icon; } interface VerticalTabButtonSizes { default: VerticalTabButtonProps['size']; countIndicatorMap: Sizes['size'], CountIndicatorProps['size']>; } interface VerticalTabButtonSettings { icons: VerticalTabButtonIcons; sizes: VerticalTabButtonSizes; weight: VerticalTabButtonProps['weight']; } interface TagIcons { clearIcon: Icon; dropdownIcon: Icon; } interface TagSizes { default: TagProps['size']; countIndicatorMap: Sizes; } interface TagSettings { icons: TagIcons; sizes: TagSizes; } interface TextSettings { sizes: { default: TextProps['size']; }; } interface TextAreaSizes { default: TextAreaProps['size']; } interface TextAreaSettings { sizes: TextAreaSizes; } interface TextInputIcons { acceptIcon: Icon; clearIcon: Icon; dropdownIcon: Icon; searchIcon: Icon; } interface TextInputSizes { default: TextInputProps['size']; } interface TextInputSettings { icons: TextInputIcons; sizes: TextInputSizes; } interface BlockerSettings { renderSpinner?: BlockerProps['renderSpinner']; } export declare const settings: { accordion: AccordionSettings; alert: AlertSettings; badge: BadgeSettings; button: ButtonSettings; blocker: BlockerSettings; checkbox: CheckboxSettings; countIndicator: CountIndicatorSettings; dataTable: DataTableSettings; datePicker: DatePickerSettings; dropdownMenu: DropdownMenuSettings; flexRow: FlexRowSettings; fileCard: FileCardSettings; filtersPanel: FiltersPanelSettings; iconButton: IconButtonSettings; labeledInput: LabeledInputSettings; linkButton: LinkButtonSettings; modal: ModalSettings; notificationCard: NotificationCardSettings; numericInput: NumericInputSettings; paginator: PaginatorSettings; pickerInput: PickerInputSettings; presetsPanel: PresetsPanelSettings; radioInput: RadioInputSettings; rangeDatePicker: RangeDatePickerSettings; rating: RatingSettings; richTextView: RichTextViewSettings; statusIndicator: StatusIndicatorSettings; switch: SwitchSettings; tabButton: TabButtonSettings; verticalTabButton: VerticalTabButtonSettings; tag: TagSettings; text: TextSettings; textArea: TextAreaSettings; textInput: TextInputSettings; }; export type Settings = typeof settings; type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; export type PartialSettings = DeepPartial; export {}; //# sourceMappingURL=settings.d.ts.map