react-crud-mui 0.2.40 → 0.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/dist/components/detail-page/components/DetailPageCommands.d.ts +32 -66
  2. package/dist/components/detail-page/components/DetailPageDrawerCommands.d.ts +2 -2
  3. package/dist/components/detail-page/components/DetailPageProvider.d.ts +10 -0
  4. package/dist/components/detail-page/components/DetailPageStepForm.d.ts +13 -0
  5. package/dist/components/detail-page/components/DetailPageStepsHeader.d.ts +21 -0
  6. package/dist/components/detail-page/hooks/useDetailPage.d.ts +1 -7
  7. package/dist/components/detail-page/hooks/useDetailPageModal.d.ts +6 -5
  8. package/dist/components/detail-page/hooks/useDetailPageStates.d.ts +21 -8
  9. package/dist/components/detail-page/pages/DetailPage.d.ts +4 -2
  10. package/dist/components/detail-page/pages/DetailPageContent.d.ts +26 -7
  11. package/dist/components/detail-page/pages/DetailPageData.d.ts +0 -1
  12. package/dist/components/detail-page/pages/DetailPageForm.d.ts +2 -2
  13. package/dist/components/form/components/FormCollectionProvider.d.ts +15 -0
  14. package/dist/components/form/hooks/index.d.ts +1 -0
  15. package/dist/components/form/hooks/useForm.d.ts +1 -1
  16. package/dist/components/form/hooks/useFormCollectionContext.d.ts +3 -0
  17. package/dist/components/form/hooks/useRegisterForm.d.ts +8 -0
  18. package/dist/components/page/Page.d.ts +1 -1
  19. package/dist/coreui.js +8529 -8473
  20. package/dist/index.d.ts +2 -2
  21. package/package.json +1 -1
  22. package/dist/components/detail-page/components/DetailPageStepCommands.d.ts +0 -38
  23. package/dist/components/detail-page/components/DetailPageSteps.d.ts +0 -20
@@ -1,36 +1,27 @@
1
- import { ReactNode } from 'react';
2
- import { FieldValues } from 'react-hook-form';
3
- import { LoadingButtonProps } from '@mui/lab/LoadingButton';
4
- import { MoreButtonItem } from '../../more-button/MoreButton';
5
- import { CloseReason, CommandsPosition } from '../../page/Page';
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
+ import { UseFormReturn } from '../../form/hooks/useForm';
3
+ import { CloseReason } from '../../page/Page';
4
+ import { DetailPageCommandsFlag } from '../hooks/useDetailPageStates';
6
5
  import { SaveMode } from '../pages/DetailPageData';
7
- export interface DetailPageCommandsFlag {
8
- copy?: boolean;
9
- save?: boolean;
10
- savecreate?: boolean;
11
- saveclose?: boolean;
12
- discardchanges?: boolean;
13
- delete?: boolean;
14
- close?: boolean;
15
- navigate?: boolean;
16
- create?: boolean;
17
- }
18
- export interface DetailPageCommandsExtraProps {
19
- save?: LoadingButtonProps;
20
- discardchanges?: LoadingButtonProps;
21
- delete?: LoadingButtonProps;
22
- close?: LoadingButtonProps;
23
- navigate?: LoadingButtonProps;
24
- create?: LoadingButtonProps;
25
- }
26
- export interface DetailPageCommandsOptions {
27
- visible: DetailPageCommandsFlag;
28
- disabled: DetailPageCommandsFlag;
29
- loading?: boolean;
30
- isNew: boolean;
31
- isDisabled?: boolean;
32
- }
33
- export type DetailPageCommandsState = {
6
+ import { StepPane } from './DetailPageStepsHeader';
7
+ export type DetailPageStandartCommandsOptions = {
8
+ saveCommandMode?: SaveMode;
9
+ createCommandLabel?: ReactNode;
10
+ saveCommandLabel?: ReactNode;
11
+ };
12
+ export type DetailPageStepCommandsOptions = {
13
+ nextButtonTitle?: React.ReactNode;
14
+ prevButtonTitle?: React.ReactNode;
15
+ showNextButton?: boolean;
16
+ showPrevButton?: boolean;
17
+ currentKey: React.Key;
18
+ name: string;
19
+ activeStepIndex: number;
20
+ steps: StepPane[];
21
+ currentForm?: UseFormReturn;
22
+ };
23
+ export type DetailPageCommandsOptions = DetailPageStandartCommandsOptions & DetailPageStepCommandsOptions;
24
+ export type DetailPageStandartCommandsEvents = {
34
25
  onSave?: () => void;
35
26
  onSaveCreate?: () => void;
36
27
  onCreate?: () => void;
@@ -39,40 +30,15 @@ export type DetailPageCommandsState = {
39
30
  onDelete?: () => void;
40
31
  onClose?: (reason?: CloseReason) => void;
41
32
  onSaveClose?: () => void;
42
- saveCommandMode?: SaveMode;
43
- createCommandLabel?: ReactNode;
44
- commandsPosition?: CommandsPosition;
45
- };
46
- export type DetailPageCommandsLayoutContents = {
47
- save: ReactNode;
48
- create: ReactNode;
49
- discardChanges: ReactNode;
50
- delete: ReactNode;
51
- close: ReactNode;
52
- content: ReactNode;
53
- renderMoreCommand: (items: MoreButtonItem[]) => ReactNode;
54
- extra?: ReactNode;
55
33
  };
56
- export type DetailPageCommmandsSettings<TModel extends FieldValues = FieldValues> = {
57
- content: ReactNode;
58
- layout: DetailPageCommandsLayoutContents;
59
- props: DetailPageCommandsState & DetailPageCommandsOptions;
60
- data?: TModel;
34
+ export type DetailPageStepCommandsEvents = {
35
+ onNextClick?: () => void;
36
+ onPrevClick?: () => void;
61
37
  };
62
- export interface DetailPageCommandsProps<TModel extends FieldValues = FieldValues> extends DetailPageCommandsState {
63
- onCommands?: (props: DetailPageCommmandsSettings<TModel>) => ReactNode;
64
- onExtraCommands?: () => ReactNode;
65
- commandsExtraProps?: DetailPageCommandsExtraProps;
66
- data?: TModel;
67
- }
68
- export declare enum DetailPageCommandNames {
69
- SAVE = "save",
70
- CREATE = "create",
71
- COPY = "copy",
72
- DISCARD = "discard",
73
- DELETE = "delete",
74
- CLOSE = "close",
75
- NAVIGATE = "navigate"
76
- }
77
- declare function DetailPageCommands<TModel extends FieldValues = FieldValues>(props: DetailPageCommandsProps<TModel>): import("react/jsx-runtime").JSX.Element;
38
+ export type DetailPageCommandsProps = DetailPageStandartCommandsEvents & DetailPageStepCommandsEvents & {
39
+ options: DetailPageCommandsOptions;
40
+ mode: 'standard' | 'steps';
41
+ moreCommands?: Partial<Record<keyof DetailPageCommandsFlag, true>>;
42
+ } & PropsWithChildren;
43
+ declare function DetailPageCommands(props: DetailPageCommandsProps): import("react/jsx-runtime").JSX.Element;
78
44
  export default DetailPageCommands;
@@ -1,3 +1,3 @@
1
- import { DetailPageCommmandsSettings } from './DetailPageCommands';
2
- declare function DetailPageDrawerCommands({ layout, props }: DetailPageCommmandsSettings): import("react/jsx-runtime").JSX.Element;
1
+ import { DetailPageCommandsProps } from './DetailPageCommands';
2
+ declare function DetailPageDrawerCommands(props: DetailPageCommandsProps): import("react/jsx-runtime").JSX.Element;
3
3
  export default DetailPageDrawerCommands;
@@ -0,0 +1,10 @@
1
+ import { default as React, PropsWithChildren } from 'react';
2
+ import { FieldValues } from 'react-hook-form';
3
+ import { DetailPageContentProps } from '../pages/DetailPageContent';
4
+ export type DetailPageContextType<TModel extends FieldValues = FieldValues> = Pick<DetailPageContentProps<TModel>, 'loading' | 'enableClose' | 'enableCopy' | 'enableCreate' | 'enableDelete' | 'enableDiscardChanges' | 'enableSave' | 'reason' | 'disabled' | 'data' | 'activeSegmentIndex'> & {
5
+ onSave: () => void;
6
+ setActiveSegmentIndex: (index: number) => void;
7
+ };
8
+ export declare const DetailPageContext: React.Context<DetailPageContextType<FieldValues> | null>;
9
+ declare function DetailPageProvider({ children, data, reason, loading, enableCopy, enableCreate, enableClose, enableDiscardChanges, enableDelete, onSave, enableSave, disabled, activeSegmentIndex, setActiveSegmentIndex, }: PropsWithChildren & DetailPageContextType): import("react/jsx-runtime").JSX.Element;
10
+ export default DetailPageProvider;
@@ -0,0 +1,13 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { DefaultValues, FieldValues, Path } from 'react-hook-form';
3
+ import { z } from 'zod';
4
+ interface DetailPageStepContentProps<TModel extends FieldValues> {
5
+ schema?: z.ZodType<TModel>;
6
+ defaultValues?: DefaultValues<TModel>;
7
+ name: Path<TModel>;
8
+ }
9
+ /**
10
+ * This component is used to create a form for each step in the detail page.
11
+ */
12
+ declare function DetailPageStepForm<TModel extends FieldValues>({ schema, name, children, defaultValues, }: DetailPageStepContentProps<TModel> & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
13
+ export default DetailPageStepForm;
@@ -0,0 +1,21 @@
1
+ import { default as React, ReactNode } from 'react';
2
+ import { DefaultValues, FieldValues, Path, PathValue } from 'react-hook-form';
3
+ import { StepProps } from '@mui/material/Step';
4
+ import { StepLabelProps } from '@mui/material/StepLabel';
5
+ import { StepperProps } from '@mui/material/Stepper';
6
+ import { z } from 'zod';
7
+ export interface DetailPageStepsHeaderProps<TModel extends FieldValues = FieldValues> extends Omit<StepperProps, 'onChange'> {
8
+ items: StepPane<TModel>[];
9
+ status?: StepStatus;
10
+ }
11
+ export type StepPane<TModel extends FieldValues = FieldValues, TFieldStepName extends Path<TModel> = Path<TModel>> = Omit<StepProps & StepLabelProps, 'children' | 'key'> & {
12
+ name?: TFieldStepName;
13
+ key: React.Key;
14
+ schema?: z.ZodType<PathValue<TModel, TFieldStepName>>;
15
+ defaultValues?: DefaultValues<PathValue<TModel, TFieldStepName>>;
16
+ label: ReactNode;
17
+ children: ReactNode;
18
+ };
19
+ export type StepStatus = 'wait' | 'process' | 'finish' | 'error';
20
+ declare function DetailPageStepsHeader<TModel extends FieldValues = FieldValues>({ activeStep, items, ...stepperProps }: DetailPageStepsHeaderProps<TModel>): import("react/jsx-runtime").JSX.Element;
21
+ export default DetailPageStepsHeader;
@@ -1,10 +1,4 @@
1
- import { default as React } from 'react';
2
1
  import { FieldValues } from 'react-hook-form';
3
- import { DetailPageContentProps } from '../pages/DetailPageContent';
4
- export type DetailPageContextType<TModel extends FieldValues = FieldValues> = Pick<DetailPageContentProps<TModel>, 'loading' | 'enableClose' | 'enableCopy' | 'enableCreate' | 'enableDelete' | 'enableDiscardChanges' | 'enableSave' | 'reason' | 'disabled' | 'data' | 'activeSegmentIndex'> & {
5
- onSave: () => void;
6
- setActiveSegmentIndex: (index: number) => void;
7
- };
8
- export declare const DetailPageContext: React.Context<DetailPageContextType<FieldValues> | null>;
2
+ import { DetailPageContextType } from '../components/DetailPageProvider';
9
3
  declare const useDetailPage: <TModel extends FieldValues = FieldValues>() => DetailPageContextType<TModel>;
10
4
  export default useDetailPage;
@@ -455,9 +455,10 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
455
455
  readonly enableSave?: boolean;
456
456
  readonly reason?: NeedDataReason;
457
457
  readonly activeSegmentIndex?: number;
458
- readonly onCommands?: ((props: import('../components/DetailPageCommands').DetailPageCommmandsSettings<TModel>) => import('react').ReactNode) | undefined;
459
- readonly onExtraCommands?: () => import('react').ReactNode;
460
458
  readonly createCommandLabel?: import('react').ReactNode;
459
+ readonly saveCommandLabel?: import('react').ReactNode;
460
+ readonly onCommands?: (props: import('../components/DetailPageCommands').DetailPageCommandsProps) => import('react').ReactNode;
461
+ readonly onExtraCommands?: () => import('react').ReactNode;
461
462
  readonly alerts?: import('../../page/hooks/useNormalizeMessages').Message[];
462
463
  readonly onSegmentChanged?: (index: number) => void;
463
464
  readonly hotkeyScopes?: string;
@@ -467,9 +468,9 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
467
468
  readonly onContentLayout?: (props: import('../components/DetailPageDefaultLayout').DetailPageLayoutProps) => React.ReactNode;
468
469
  readonly onWrapperLayout?: (props: import('../pages/DetailPageContent').DetailPageWrapperLayoutProps) => React.ReactNode;
469
470
  readonly defaultSaveMode?: import('../pages/DetailPageData').SaveMode;
470
- readonly steps?: import('../components/DetailPageSteps').StepPane[];
471
- readonly customSteps?: React.ComponentType<import('../components/DetailPageSteps').DetailPageStepsProps>;
472
- readonly stepsProps?: Partial<import('../components/DetailPageSteps').DetailPageStepsProps>;
471
+ readonly steps?: import('../components/DetailPageStepsHeader').StepPane<TModel>[] | undefined;
472
+ readonly customSteps?: React.ComponentType<import('../components/DetailPageStepsHeader').DetailPageStepsHeaderProps>;
473
+ readonly stepsProps?: Partial<import('../components/DetailPageStepsHeader').DetailPageStepsHeaderProps>;
473
474
  readonly showSuccessMessages?: boolean;
474
475
  readonly onAfterSave?: ((result: void | Awaited<TModel> | undefined, variables: import('../pages/DetailPageData').SavePayload<TModel>, form: import('../../form/hooks/useForm').UseFormReturn<TModel>) => void) | undefined;
475
476
  readonly onAfterDelete?: ((variables: import('../pages/DetailPageData').DeletePayload<TModel>, form: import('../../form/hooks/useForm').UseFormReturn<TModel>) => void) | undefined;
@@ -1,13 +1,26 @@
1
+ export interface DetailPageCommandsFlag {
2
+ copy?: boolean;
3
+ save?: boolean;
4
+ savecreate?: boolean;
5
+ saveclose?: boolean;
6
+ discardchanges?: boolean;
7
+ delete?: boolean;
8
+ close?: boolean;
9
+ navigate?: boolean;
10
+ create?: boolean;
11
+ prev?: boolean;
12
+ next?: boolean;
13
+ }
14
+ export interface DetailPageCommandsOptions {
15
+ visible: DetailPageCommandsFlag;
16
+ disabled: DetailPageCommandsFlag;
17
+ loading?: boolean;
18
+ isNew: boolean;
19
+ isDisabled?: boolean;
20
+ }
1
21
  /**
2
22
  * Returns buttons props depending on validation,loading etc
3
23
  * Beware of rerender when state of form changes
4
24
  */
5
- declare function useDetailPageStates(): {
6
- formStates: import('react-hook-form').UseFormStateReturn<import('react-hook-form').FieldValues>;
7
- visible: import('../components/DetailPageCommands').DetailPageCommandsFlag;
8
- disabled: import('../components/DetailPageCommands').DetailPageCommandsFlag;
9
- loading?: boolean;
10
- isNew: boolean;
11
- isDisabled?: boolean;
12
- };
25
+ declare function useDetailPageStates(): DetailPageCommandsOptions;
13
26
  export default useDetailPageStates;
@@ -1,7 +1,8 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
+ import { default as DetailPageCommands } from '../components/DetailPageCommands';
2
3
  import { default as DetailPageDefaultLayout } from '../components/DetailPageDefaultLayout';
3
4
  import { default as DetailPageHeader } from '../components/DetailPageHeader';
4
- import { default as DetailPageSteps } from '../components/DetailPageSteps';
5
+ import { default as DetailPageStepsHeader } from '../components/DetailPageStepsHeader';
5
6
  import { NeedDataReason } from './DetailPageContent';
6
7
  import { default as DetailPageDrawer } from './DetailPageDrawer';
7
8
  import { DetailPageFormProps } from './DetailPageForm';
@@ -22,6 +23,7 @@ declare namespace DetailPage {
22
23
  var Drawer: typeof DetailPageDrawer;
23
24
  var Route: typeof DetailPageRoute;
24
25
  var Layout: typeof DetailPageDefaultLayout;
25
- var Steps: typeof DetailPageSteps;
26
+ var Steps: typeof DetailPageStepsHeader;
27
+ var Commands: typeof DetailPageCommands;
26
28
  }
27
29
  export default DetailPage;
@@ -1,13 +1,14 @@
1
1
  import { default as React, ReactNode } from 'react';
2
2
  import { FieldValues } from 'react-hook-form';
3
+ import { UseFormReturn } from '../../form/hooks/useForm';
3
4
  import { Message } from '../../page/hooks/useNormalizeMessages';
4
5
  import { PageProps } from '../../page/Page';
5
6
  import { ServerError } from '../../utils';
6
7
  import { AutoSaveOptions } from '../components/AutoSave';
7
- import { DetailPageCommandsProps } from '../components/DetailPageCommands';
8
+ import { DetailPageCommandsProps, DetailPageStandartCommandsOptions } from '../components/DetailPageCommands';
8
9
  import { DetailPageLayoutProps } from '../components/DetailPageDefaultLayout';
9
10
  import { DetailPageHeaderProps } from '../components/DetailPageHeader';
10
- import { DetailPageStepsProps, StepPane } from '../components/DetailPageSteps';
11
+ import { DetailPageStepsHeaderProps, StepPane } from '../components/DetailPageStepsHeader';
11
12
  import { SaveMode } from './DetailPageData';
12
13
  export type NeedDataReason = 'create' | 'fetch' | 'copy' | 'view';
13
14
  export type DetailPageWrapperLayoutProps = {
@@ -16,7 +17,19 @@ export type DetailPageWrapperLayoutProps = {
16
17
  commandsContent: ReactNode;
17
18
  alertsContent: ReactNode;
18
19
  };
19
- export interface DetailPageContentProps<TModel extends FieldValues> extends Omit<PageProps, 'commandsContent' | 'alertsContent' | 'autoSave' | 'onHeader' | 'tabExtraContent'>, Pick<DetailPageCommandsProps<TModel>, 'onCommands' | 'onExtraCommands' | 'createCommandLabel'> {
20
+ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit<PageProps, 'commandsContent' | 'alertsContent' | 'autoSave' | 'onHeader' | 'tabExtraContent'>, Pick<DetailPageStandartCommandsOptions, 'createCommandLabel' | 'saveCommandLabel'> {
21
+ /**
22
+ * Custom commands node
23
+ */
24
+ onCommands?: (props: DetailPageCommandsProps) => ReactNode;
25
+ /**
26
+ * Extra commands positioned left side in commands section
27
+ */
28
+ onExtraCommands?: () => ReactNode;
29
+ /**
30
+ * Main rhf instance of page
31
+ */
32
+ form: UseFormReturn<TModel>;
20
33
  data?: TModel;
21
34
  /**
22
35
  * External error indicator
@@ -106,22 +119,28 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
106
119
  * Having called "onSave" once changing form values
107
120
  */
108
121
  autoSave?: boolean | AutoSaveOptions;
122
+ /**
123
+ * Custom content layout
124
+ */
109
125
  onContentLayout?: (props: DetailPageLayoutProps) => React.ReactNode;
110
126
  onWrapperLayout?: (props: DetailPageWrapperLayoutProps) => React.ReactNode;
127
+ /**
128
+ *Default save mode (save,saveclose,savecreate) default is 'save'
129
+ */
111
130
  defaultSaveMode?: SaveMode;
112
131
  /**
113
132
  * Steps definitons
114
133
  */
115
- steps?: StepPane[];
134
+ steps?: StepPane<TModel>[];
116
135
  /**
117
136
  * Custom steps component
118
137
  */
119
- customSteps?: React.ComponentType<DetailPageStepsProps>;
138
+ customSteps?: React.ComponentType<DetailPageStepsHeaderProps>;
120
139
  /**
121
140
  * Optional steps props
122
141
  */
123
- stepsProps?: Partial<DetailPageStepsProps>;
142
+ stepsProps?: Partial<DetailPageStepsHeaderProps>;
124
143
  tabExtraContent?: ReactNode | ((data?: TModel) => ReactNode);
125
144
  }
126
- declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onWrapperLayout, reason, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
145
+ declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, form, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onWrapperLayout, reason, saveCommandLabel, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
127
146
  export default DetailPageContent;
@@ -19,7 +19,6 @@ export interface DeletePayload<TModel extends FieldValues = FieldValues> extends
19
19
  data?: TModel;
20
20
  }
21
21
  export interface DetailPageDataProps<TModel extends FieldValues> extends Omit<DetailPageContentProps<TModel>, 'onSave' | 'onDelete' | 'onDiscardChanges' | 'onCopy' | 'onSaveCreate' | 'onSaveClose'> {
22
- form: UseFormReturn<TModel>;
23
22
  /**
24
23
  * Save event
25
24
  * @returns if returns data,either in promise or object will bind to form data
@@ -5,7 +5,7 @@ import { DeepNullable } from '../../utils';
5
5
  import { NeedDataReason } from './DetailPageContent';
6
6
  import { DetailPageDataProps } from './DetailPageData';
7
7
  export type DefaultDataFn<TModel extends FieldValues> = (reason: NeedDataReason, data?: TModel) => DeepNullable<TModel> | Promise<DeepNullable<TModel>>;
8
- export type DefaultData<TModel extends FieldValues> = DeepNullable<TModel> | DefaultDataFn<TModel>;
8
+ export type DefaultData<TModel extends FieldValues = FieldValues> = DeepNullable<TModel> | DefaultDataFn<TModel>;
9
9
  export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<DetailPageDataProps<TModel>, 'form'> {
10
10
  form?: UseFormReturn<TModel>;
11
11
  schema?: z.ZodType<TModel>;
@@ -13,5 +13,5 @@ export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<De
13
13
  defaultValues?: DefaultData<TModel>;
14
14
  formProps?: Partial<UseFormProps<TModel>>;
15
15
  }
16
- declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, schema, defaultValues, validationOptions, data, reason, formProps, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
16
+ declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, data, defaultValues, formProps, reason, schema, validationOptions, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
17
17
  export default DetailPageForm;
@@ -0,0 +1,15 @@
1
+ import { default as React, PropsWithChildren } from 'react';
2
+ import { FieldValues } from 'react-hook-form';
3
+ import { UseFormReturn } from '../hooks/useForm';
4
+ export interface FormCollectionContextType {
5
+ forms?: Map<string, UseFormReturn>;
6
+ registerForm?: (data: FormData) => void;
7
+ unRegisterForm?: (name: string) => void;
8
+ }
9
+ export declare const FormCollectionContext: React.Context<FormCollectionContextType>;
10
+ export type FormData<TFieldValues extends FieldValues = FieldValues> = {
11
+ name: string;
12
+ form: UseFormReturn<TFieldValues>;
13
+ };
14
+ declare function FormCollectionProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
15
+ export default FormCollectionProvider;
@@ -11,4 +11,5 @@ export { default as useArrayFieldHelpers } from './useArrayFieldHelpers';
11
11
  export { default as useUniqueFieldsInArray } from './useUniqueFieldsInArray';
12
12
  export { default as useFormInitEffect } from './useFormInitEffect';
13
13
  export { default as useFieldWithContext } from './useFieldWithContext';
14
+ export { default as useFormCollectionContext } from './useFormCollectionContext';
14
15
  export { UNIQUE_IDENTIFIER_FIELD_NAME } from './useArrayFieldHelpers';
@@ -12,7 +12,7 @@ export type ValidationOptions<TFieldValues extends FieldValues = FieldValues> =
12
12
  export interface UseFormOptions<TFieldValues extends FieldValues> extends UseFormProps<TFieldValues> {
13
13
  schema?: z.ZodType<Partial<TFieldValues>>;
14
14
  }
15
- export interface UseFormReturn<TFieldValues extends FieldValues> extends ReactHookFormUseFormReturn<TFieldValues> {
15
+ export interface UseFormReturn<TFieldValues extends FieldValues = FieldValues> extends ReactHookFormUseFormReturn<TFieldValues> {
16
16
  /**
17
17
  * Shortcut method for handleSubmit()()
18
18
  * @returns Returns form model when validation successed
@@ -0,0 +1,3 @@
1
+ import { FormCollectionContextType } from '../components/FormCollectionProvider';
2
+ declare function useFormCollectionContext(): Required<FormCollectionContextType>;
3
+ export default useFormCollectionContext;
@@ -0,0 +1,8 @@
1
+ import { FieldValues, Path } from 'react-hook-form';
2
+ import { UseFormReturn } from './useForm';
3
+ interface UseRegisterFormOptions<TFieldValues extends FieldValues> {
4
+ name: Path<TFieldValues>;
5
+ form: UseFormReturn<TFieldValues>;
6
+ }
7
+ declare function useRegisterForm<TFieldValues extends FieldValues>({ name, form, }: UseRegisterFormOptions<TFieldValues>): void;
8
+ export default useRegisterForm;
@@ -11,7 +11,7 @@ import { default as PageProvider, PaddingSize } from './components/PageProvider'
11
11
  import { default as PageDrawer } from './PageDrawer';
12
12
  import { default as PageModal } from './PageModal';
13
13
  export type CloseReason = 'backdrop' | 'close-button' | 'action';
14
- export type CommandsPosition = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'bottom' | 'top';
14
+ export type CommandsPosition = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'bottom-between' | 'top-between' | 'bottom' | 'top';
15
15
  export type TabsPosition = 'in-center' | 'in-subrow';
16
16
  export interface PageProps extends HeaderProps {
17
17
  commandsContent?: ReactNode;