import Filter from '@components/theme/filter/Filter'; import FilterGroup from '@components/theme/filter/FilterGroup'; import FilterMenu from '@components/theme/filter/FilterMenu'; import FilterInputSearch from '@components/theme/filter/inputsearch/FilterInputSearch'; import InputPassword from '@components/theme/form/fields/InputPassword'; import List from '@components/theme/list/List'; import ListHead from '@components/theme/list/ListHead'; import ListItem from '@components/theme/list/ListItem'; import ConfirmationPopIn from '@components/theme/popin/ConfirmationPopIn'; import { ActionButtonProps, ActionContainerProps, ActionLinkProps, } from '@lib/plume-admin-theme/action/ActionProps'; import { FormFieldProps } from '@lib/plume-admin-theme/form/FormFieldProps'; import { InputPasswordProps, InputSelectProps, InputTextProps, } from '@lib/plume-admin-theme/form/FormInputProps'; import { FormContainerProps } from '@lib/plume-admin-theme/form/FormProps'; import { ListHeadProps, ListItemProps, ListProps } from '@lib/plume-admin-theme/list/ListProps'; import { PanelContentElementColumnProps, PanelContentElementProps, PanelProps, PanelTitleProps, } from '@lib/plume-admin-theme/panel/PanelProps'; import PlumeAdminTheme from '@lib/plume-admin-theme/PlumeAdminTheme'; import { ConfirmationPopInProps, PopinProps } from '@lib/plume-admin-theme/popin/PopinProps'; import { FilterContainerProps, FilterGroupProps, FilterInputSearchProps, FilterMenuProps, } from '@lib/plume-search/filters/FilterTypes'; import { SortSelectProps } from '@lib/plume-search/sorts/SortTypes'; import { ReactNode } from 'react'; import { FieldValues } from 'react-hook-form'; import { ActionButton, ActionLink, ActionsContainer } from './action/Actions'; import FormField from './form/fields/FormField'; import InputSelect from './form/fields/InputSelect'; import InputText from './form/fields/InputText'; import FormContainer from './form/FormContainer'; import { Panel, PanelContent, PanelContentElement, PanelContentElementColumn, PanelSeparator, PanelTitle, } from './panel/Panel'; import Popin from './popin/Popin'; import SortSelect from './sort/SortSelect'; export default class AdminTheme implements PlumeAdminTheme { // actions actionsContainer: (props: ActionContainerProps) => ReactNode = ActionsContainer; actionButton: (props: ActionButtonProps) => ReactNode = ActionButton; actionLink: (props: ActionLinkProps) => ReactNode = ActionLink; // layout panel: (props: PanelProps) => ReactNode = Panel; panelSeparator: () => ReactNode = PanelSeparator; panelTitle: (props: PanelTitleProps) => ReactNode = PanelTitle; panelContent: (props: PanelProps) => ReactNode = PanelContent; panelContentElement: (props: PanelContentElementProps) => ReactNode = PanelContentElement; panelContentElementColumn: (props: PanelContentElementColumnProps) => ReactNode = PanelContentElementColumn; // lists listHead: (props: ListHeadProps) => ReactNode = ListHead; list: (props: ListProps) => ReactNode = List; listItem: (props: ListItemProps) => ReactNode = ListItem; // popin popin: (props: PopinProps) => ReactNode = Popin; confirmationPopIn: (props: ConfirmationPopInProps) => ReactNode = ConfirmationPopIn; // form formContainer: ( props: FormContainerProps, ) => ReactNode = FormContainer; formField: (props: FormFieldProps) => ReactNode = FormField; inputText: (props: InputTextProps) => ReactNode = InputText; inputSelect: (props: InputSelectProps) => ReactNode = InputSelect; inputPassword: (props: InputPasswordProps) => ReactNode = InputPassword; // filters filterMenu: (props: FilterMenuProps) => ReactNode = FilterMenu; filter: (props: FilterContainerProps) => ReactNode = Filter; filterGroup: (props: FilterGroupProps) => ReactNode = FilterGroup; filterInputSearch: (props: FilterInputSearchProps) => ReactNode = FilterInputSearch; // sort sortSelect: (props: SortSelectProps) => ReactNode = SortSelect; }