@form-engine-ts/mui 4.4.0 → 4.6.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
@@ -2,8 +2,9 @@ import { BuilderActionIconType, FieldPropertyControlMode, QuestionType, FieldEdi
2
2
  import * as react from 'react';
3
3
  import { ReactNode, ComponentType, ReactElement } from 'react';
4
4
  import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
5
+ import { FormSchema, DisplayRule, TranslationAdapter, AsyncTranslationAdapter } from '@form-engine-ts/core';
5
6
 
6
- type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
7
+ type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization" | "submissionSettings";
7
8
  type MuiButtonVariant = "contained" | "outlined" | "text";
8
9
  type MuiComponentSlotProps<T> = Partial<T> & {
9
10
  readonly [key: `data-${string}`]: string | number | boolean | undefined;
@@ -28,6 +29,10 @@ interface MuiLocalizationOptions {
28
29
  readonly noWrapActions?: boolean;
29
30
  readonly autoFocusNewTab?: boolean;
30
31
  }
32
+ interface MuiSubmissionSettingsOptions {
33
+ readonly enabled: boolean;
34
+ readonly placement?: "beforeQuestions" | "afterQuestions" | "bottom";
35
+ }
31
36
  /**
32
37
  * MUI's field editor controls mirror `FieldEditorControlsConfig` while keeping
33
38
  * the original interface members directly declared for semver/reporting compatibility.
@@ -165,11 +170,21 @@ interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "dis
165
170
  readonly muiOptions?: MuiAdapterOptions;
166
171
  readonly layoutOptions?: MuiLayoutOptions;
167
172
  readonly localizationOptions?: MuiLocalizationOptions;
173
+ readonly submissionSettingsOptions?: MuiSubmissionSettingsOptions;
168
174
  readonly muiSlotProps?: MuiBuilderSlotProps;
169
175
  readonly components?: Partial<FormBuilderComponents>;
170
176
  readonly slots?: Partial<FormBuilderSlots>;
171
177
  }
172
- declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
178
+ declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, submissionSettingsOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
179
+
180
+ interface ConditionEditorProps {
181
+ readonly schema: FormSchema;
182
+ readonly fieldId: string;
183
+ readonly value?: DisplayRule;
184
+ readonly onChange: (rule: DisplayRule | undefined) => void;
185
+ readonly readOnly?: boolean;
186
+ }
187
+ declare function ConditionEditor({ schema, fieldId, value, onChange, readOnly }: ConditionEditorProps): react.JSX.Element;
173
188
 
174
189
  declare function createMuiFieldEditorSlot(options?: MuiAdapterOptions): ComponentType<BuilderFieldEditorSlotProps>;
175
190
  declare const MuiFieldEditorSlot: NonNullable<FormBuilderSlots["fieldEditor"]>;
@@ -188,4 +203,14 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
188
203
  declare const muiBuilderSlots: FormBuilderSlots;
189
204
  declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
190
205
 
191
- 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, MuiChoiceGroupSlot, 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 };
206
+ interface TranslationWorkspaceProps {
207
+ readonly schema: FormSchema;
208
+ readonly onChange?: (schema: FormSchema) => void;
209
+ readonly sourceLocale?: string;
210
+ readonly targetLocale?: string;
211
+ readonly translationAdapter?: TranslationAdapter | AsyncTranslationAdapter;
212
+ readonly readOnly?: boolean;
213
+ }
214
+ declare function TranslationWorkspace({ schema, onChange, sourceLocale, targetLocale, translationAdapter, readOnly }: TranslationWorkspaceProps): react.JSX.Element;
215
+
216
+ export { type BuilderSectionName, ConditionEditor, type ConditionEditorProps, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiChoiceGroupSlot, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, type MuiSubmissionSettingsOptions, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, TranslationWorkspace, type TranslationWorkspaceProps, 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
@@ -2,8 +2,9 @@ import { BuilderActionIconType, FieldPropertyControlMode, QuestionType, FieldEdi
2
2
  import * as react from 'react';
3
3
  import { ReactNode, ComponentType, ReactElement } from 'react';
4
4
  import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
5
+ import { FormSchema, DisplayRule, TranslationAdapter, AsyncTranslationAdapter } from '@form-engine-ts/core';
5
6
 
6
- type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
7
+ type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization" | "submissionSettings";
7
8
  type MuiButtonVariant = "contained" | "outlined" | "text";
8
9
  type MuiComponentSlotProps<T> = Partial<T> & {
9
10
  readonly [key: `data-${string}`]: string | number | boolean | undefined;
@@ -28,6 +29,10 @@ interface MuiLocalizationOptions {
28
29
  readonly noWrapActions?: boolean;
29
30
  readonly autoFocusNewTab?: boolean;
30
31
  }
32
+ interface MuiSubmissionSettingsOptions {
33
+ readonly enabled: boolean;
34
+ readonly placement?: "beforeQuestions" | "afterQuestions" | "bottom";
35
+ }
31
36
  /**
32
37
  * MUI's field editor controls mirror `FieldEditorControlsConfig` while keeping
33
38
  * the original interface members directly declared for semver/reporting compatibility.
@@ -165,11 +170,21 @@ interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "dis
165
170
  readonly muiOptions?: MuiAdapterOptions;
166
171
  readonly layoutOptions?: MuiLayoutOptions;
167
172
  readonly localizationOptions?: MuiLocalizationOptions;
173
+ readonly submissionSettingsOptions?: MuiSubmissionSettingsOptions;
168
174
  readonly muiSlotProps?: MuiBuilderSlotProps;
169
175
  readonly components?: Partial<FormBuilderComponents>;
170
176
  readonly slots?: Partial<FormBuilderSlots>;
171
177
  }
172
- declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
178
+ declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, submissionSettingsOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
179
+
180
+ interface ConditionEditorProps {
181
+ readonly schema: FormSchema;
182
+ readonly fieldId: string;
183
+ readonly value?: DisplayRule;
184
+ readonly onChange: (rule: DisplayRule | undefined) => void;
185
+ readonly readOnly?: boolean;
186
+ }
187
+ declare function ConditionEditor({ schema, fieldId, value, onChange, readOnly }: ConditionEditorProps): react.JSX.Element;
173
188
 
174
189
  declare function createMuiFieldEditorSlot(options?: MuiAdapterOptions): ComponentType<BuilderFieldEditorSlotProps>;
175
190
  declare const MuiFieldEditorSlot: NonNullable<FormBuilderSlots["fieldEditor"]>;
@@ -188,4 +203,14 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
188
203
  declare const muiBuilderSlots: FormBuilderSlots;
189
204
  declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
190
205
 
191
- 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, MuiChoiceGroupSlot, 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 };
206
+ interface TranslationWorkspaceProps {
207
+ readonly schema: FormSchema;
208
+ readonly onChange?: (schema: FormSchema) => void;
209
+ readonly sourceLocale?: string;
210
+ readonly targetLocale?: string;
211
+ readonly translationAdapter?: TranslationAdapter | AsyncTranslationAdapter;
212
+ readonly readOnly?: boolean;
213
+ }
214
+ declare function TranslationWorkspace({ schema, onChange, sourceLocale, targetLocale, translationAdapter, readOnly }: TranslationWorkspaceProps): react.JSX.Element;
215
+
216
+ export { type BuilderSectionName, ConditionEditor, type ConditionEditorProps, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiChoiceGroupSlot, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, type MuiSubmissionSettingsOptions, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, TranslationWorkspace, type TranslationWorkspaceProps, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultFieldTypeIcon, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };