@form-engine-ts/mui 2.9.6 → 3.1.0

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.
package/dist/index.d.cts CHANGED
@@ -1,28 +1,59 @@
1
- import { BuilderActionIconType, BuilderButtonProps, BuilderCheckboxProps, BuilderErrorMessageProps, BuilderFieldsetProps, BuilderIconButtonProps, BuilderSectionProps, BuilderSelectProps, BuilderTextAreaProps, BuilderTextInputProps, FormBuilderComponents, FormBuilderSlots, FormBuilderProps, BuilderFieldEditorSlotProps, BuilderLocalizationSlotProps, BuilderOptionEditorSlotProps, BuilderToolbarSlotProps } from '@form-engine-ts/react';
1
+ import { BuilderActionIconType, LocalizationSummaryContext, BuilderButtonProps, BuilderCheckboxProps, BuilderErrorMessageProps, BuilderFieldsetProps, BuilderIconButtonProps, BuilderSectionProps, BuilderSelectProps, BuilderTextAreaProps, BuilderTextInputProps, FormBuilderComponents, FormBuilderSlots, FormBuilderProps, QuestionType, BuilderFieldEditorSlotProps, BuilderLocalizationSlotProps, BuilderOptionEditorSlotProps, BuilderToolbarSlotProps } from '@form-engine-ts/react';
2
2
  import * as react from 'react';
3
- import { ComponentType, ReactNode } from 'react';
4
- import { CardProps, PaperProps, StackProps, AccordionProps } from '@mui/material';
3
+ import { ReactNode, ComponentType } from 'react';
4
+ import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
5
5
 
6
6
  type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
7
7
  type MuiButtonVariant = "contained" | "outlined" | "text";
8
+ type MuiComponentSlotProps<T> = Partial<T> & {
9
+ readonly [key: `data-${string}`]: string | number | boolean | undefined;
10
+ };
11
+ interface LocaleOptionItem {
12
+ readonly value: string;
13
+ readonly label: string;
14
+ }
15
+ type LocalizationSectionPlacement = "top" | "beforeQuestions" | "afterQuestions" | "bottom";
8
16
  interface MuiLayoutOptions {
9
17
  readonly sectionOrder?: readonly BuilderSectionName[];
10
18
  }
11
19
  interface MuiLocalizationOptions {
20
+ readonly availableLocales?: readonly (LocaleOptionItem | string)[];
21
+ readonly placement?: LocalizationSectionPlacement;
12
22
  readonly collapsible?: boolean;
13
23
  readonly defaultExpanded?: boolean | "when-configured" | "always";
14
24
  readonly showSummary?: boolean;
25
+ readonly renderSummary?: (context: LocalizationSummaryContext) => ReactNode;
15
26
  readonly emptyStateMessage?: string;
16
27
  readonly defaultLocaleControl?: "editable" | "readOnly" | "hidden";
28
+ readonly noWrapActions?: boolean;
29
+ readonly autoFocusNewTab?: boolean;
17
30
  }
18
31
  interface MuiFieldEditorOptions {
19
32
  readonly description?: "editable" | "readOnly" | "hidden";
20
33
  }
21
- interface MuiBuilderSlotProps {
34
+ interface MuiSlotProps {
22
35
  readonly card?: Partial<CardProps>;
23
36
  readonly paper?: Partial<PaperProps>;
37
+ readonly accordion?: Partial<AccordionProps>;
24
38
  readonly stack?: Partial<StackProps>;
39
+ readonly textField?: MuiComponentSlotProps<TextFieldProps>;
40
+ readonly select?: MuiComponentSlotProps<SelectProps>;
41
+ readonly selectMenu?: Partial<MenuProps>;
42
+ readonly checkbox?: MuiComponentSlotProps<CheckboxProps>;
43
+ readonly button?: MuiComponentSlotProps<ButtonProps>;
44
+ readonly iconButton?: MuiComponentSlotProps<IconButtonProps>;
45
+ }
46
+ interface MuiBuilderSlotProps {
47
+ readonly card?: Partial<CardProps>;
48
+ readonly paper?: Partial<PaperProps>;
25
49
  readonly accordion?: Partial<AccordionProps>;
50
+ readonly stack?: Partial<StackProps>;
51
+ readonly textField?: MuiComponentSlotProps<TextFieldProps>;
52
+ readonly select?: MuiComponentSlotProps<SelectProps>;
53
+ readonly selectMenu?: Partial<MenuProps>;
54
+ readonly checkbox?: MuiComponentSlotProps<CheckboxProps>;
55
+ readonly button?: MuiComponentSlotProps<ButtonProps>;
56
+ readonly iconButton?: MuiComponentSlotProps<IconButtonProps>;
26
57
  }
27
58
  interface MuiAdapterOptions {
28
59
  readonly size?: "small" | "medium";
@@ -65,6 +96,7 @@ interface ResolvedMuiAdapterOptions {
65
96
  readonly muiSlotProps?: MuiBuilderSlotProps;
66
97
  }
67
98
  declare const DEFAULT_MUI_SECTION_ORDER: readonly BuilderSectionName[];
99
+ declare const MUI_LOCALIZATION_SECTION_ORDERS: Readonly<Record<LocalizationSectionPlacement, readonly BuilderSectionName[]>>;
68
100
  declare function resolveMuiAdapterOptions(options?: MuiAdapterOptions): ResolvedMuiAdapterOptions;
69
101
 
70
102
  declare function createMuiButtonAdapter(options?: MuiAdapterOptions): ComponentType<BuilderButtonProps>;
@@ -112,6 +144,7 @@ declare function mergeMuiAdapterOptions(base?: MuiAdapterOptions, overrides?: Mu
112
144
  declare function useResolvedMuiAdapterOptions(overrides?: MuiAdapterOptions): ResolvedMuiAdapterOptions;
113
145
 
114
146
  declare function muiDefaultIconResolver(actionType: BuilderActionIconType): ReactNode;
147
+ declare function muiDefaultFieldTypeIcon(type: QuestionType): ReactNode;
115
148
 
116
149
  interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "disableDefaultStyles" | "slots" | "unstyled"> {
117
150
  readonly muiOptions?: MuiAdapterOptions;
@@ -138,4 +171,4 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
138
171
  declare const muiBuilderSlots: FormBuilderSlots;
139
172
  declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
140
173
 
141
- export { type BuilderSectionName, DEFAULT_MUI_SECTION_ORDER, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };
174
+ export { type BuilderSectionName, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultFieldTypeIcon, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };
package/dist/index.d.ts CHANGED
@@ -1,28 +1,59 @@
1
- import { BuilderActionIconType, BuilderButtonProps, BuilderCheckboxProps, BuilderErrorMessageProps, BuilderFieldsetProps, BuilderIconButtonProps, BuilderSectionProps, BuilderSelectProps, BuilderTextAreaProps, BuilderTextInputProps, FormBuilderComponents, FormBuilderSlots, FormBuilderProps, BuilderFieldEditorSlotProps, BuilderLocalizationSlotProps, BuilderOptionEditorSlotProps, BuilderToolbarSlotProps } from '@form-engine-ts/react';
1
+ import { BuilderActionIconType, LocalizationSummaryContext, BuilderButtonProps, BuilderCheckboxProps, BuilderErrorMessageProps, BuilderFieldsetProps, BuilderIconButtonProps, BuilderSectionProps, BuilderSelectProps, BuilderTextAreaProps, BuilderTextInputProps, FormBuilderComponents, FormBuilderSlots, FormBuilderProps, QuestionType, BuilderFieldEditorSlotProps, BuilderLocalizationSlotProps, BuilderOptionEditorSlotProps, BuilderToolbarSlotProps } from '@form-engine-ts/react';
2
2
  import * as react from 'react';
3
- import { ComponentType, ReactNode } from 'react';
4
- import { CardProps, PaperProps, StackProps, AccordionProps } from '@mui/material';
3
+ import { ReactNode, ComponentType } from 'react';
4
+ import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
5
5
 
6
6
  type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
7
7
  type MuiButtonVariant = "contained" | "outlined" | "text";
8
+ type MuiComponentSlotProps<T> = Partial<T> & {
9
+ readonly [key: `data-${string}`]: string | number | boolean | undefined;
10
+ };
11
+ interface LocaleOptionItem {
12
+ readonly value: string;
13
+ readonly label: string;
14
+ }
15
+ type LocalizationSectionPlacement = "top" | "beforeQuestions" | "afterQuestions" | "bottom";
8
16
  interface MuiLayoutOptions {
9
17
  readonly sectionOrder?: readonly BuilderSectionName[];
10
18
  }
11
19
  interface MuiLocalizationOptions {
20
+ readonly availableLocales?: readonly (LocaleOptionItem | string)[];
21
+ readonly placement?: LocalizationSectionPlacement;
12
22
  readonly collapsible?: boolean;
13
23
  readonly defaultExpanded?: boolean | "when-configured" | "always";
14
24
  readonly showSummary?: boolean;
25
+ readonly renderSummary?: (context: LocalizationSummaryContext) => ReactNode;
15
26
  readonly emptyStateMessage?: string;
16
27
  readonly defaultLocaleControl?: "editable" | "readOnly" | "hidden";
28
+ readonly noWrapActions?: boolean;
29
+ readonly autoFocusNewTab?: boolean;
17
30
  }
18
31
  interface MuiFieldEditorOptions {
19
32
  readonly description?: "editable" | "readOnly" | "hidden";
20
33
  }
21
- interface MuiBuilderSlotProps {
34
+ interface MuiSlotProps {
22
35
  readonly card?: Partial<CardProps>;
23
36
  readonly paper?: Partial<PaperProps>;
37
+ readonly accordion?: Partial<AccordionProps>;
24
38
  readonly stack?: Partial<StackProps>;
39
+ readonly textField?: MuiComponentSlotProps<TextFieldProps>;
40
+ readonly select?: MuiComponentSlotProps<SelectProps>;
41
+ readonly selectMenu?: Partial<MenuProps>;
42
+ readonly checkbox?: MuiComponentSlotProps<CheckboxProps>;
43
+ readonly button?: MuiComponentSlotProps<ButtonProps>;
44
+ readonly iconButton?: MuiComponentSlotProps<IconButtonProps>;
45
+ }
46
+ interface MuiBuilderSlotProps {
47
+ readonly card?: Partial<CardProps>;
48
+ readonly paper?: Partial<PaperProps>;
25
49
  readonly accordion?: Partial<AccordionProps>;
50
+ readonly stack?: Partial<StackProps>;
51
+ readonly textField?: MuiComponentSlotProps<TextFieldProps>;
52
+ readonly select?: MuiComponentSlotProps<SelectProps>;
53
+ readonly selectMenu?: Partial<MenuProps>;
54
+ readonly checkbox?: MuiComponentSlotProps<CheckboxProps>;
55
+ readonly button?: MuiComponentSlotProps<ButtonProps>;
56
+ readonly iconButton?: MuiComponentSlotProps<IconButtonProps>;
26
57
  }
27
58
  interface MuiAdapterOptions {
28
59
  readonly size?: "small" | "medium";
@@ -65,6 +96,7 @@ interface ResolvedMuiAdapterOptions {
65
96
  readonly muiSlotProps?: MuiBuilderSlotProps;
66
97
  }
67
98
  declare const DEFAULT_MUI_SECTION_ORDER: readonly BuilderSectionName[];
99
+ declare const MUI_LOCALIZATION_SECTION_ORDERS: Readonly<Record<LocalizationSectionPlacement, readonly BuilderSectionName[]>>;
68
100
  declare function resolveMuiAdapterOptions(options?: MuiAdapterOptions): ResolvedMuiAdapterOptions;
69
101
 
70
102
  declare function createMuiButtonAdapter(options?: MuiAdapterOptions): ComponentType<BuilderButtonProps>;
@@ -112,6 +144,7 @@ declare function mergeMuiAdapterOptions(base?: MuiAdapterOptions, overrides?: Mu
112
144
  declare function useResolvedMuiAdapterOptions(overrides?: MuiAdapterOptions): ResolvedMuiAdapterOptions;
113
145
 
114
146
  declare function muiDefaultIconResolver(actionType: BuilderActionIconType): ReactNode;
147
+ declare function muiDefaultFieldTypeIcon(type: QuestionType): ReactNode;
115
148
 
116
149
  interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "disableDefaultStyles" | "slots" | "unstyled"> {
117
150
  readonly muiOptions?: MuiAdapterOptions;
@@ -138,4 +171,4 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
138
171
  declare const muiBuilderSlots: FormBuilderSlots;
139
172
  declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
140
173
 
141
- export { type BuilderSectionName, DEFAULT_MUI_SECTION_ORDER, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };
174
+ export { type BuilderSectionName, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultFieldTypeIcon, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };