@formitiva/react 0.9.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/LICENSE +21 -0
- package/README.full.md +456 -0
- package/README.md +114 -0
- package/dist/components/fields/advanced/ColorInput.d.ts +5 -0
- package/dist/components/fields/advanced/EmailInput.d.ts +6 -0
- package/dist/components/fields/advanced/FileInput.d.ts +5 -0
- package/dist/components/fields/advanced/PasswordInput.d.ts +6 -0
- package/dist/components/fields/advanced/PhoneInput.d.ts +7 -0
- package/dist/components/fields/advanced/RatingInput.d.ts +9 -0
- package/dist/components/fields/advanced/SliderInput.d.ts +5 -0
- package/dist/components/fields/advanced/UnitValueInput.d.ts +5 -0
- package/dist/components/fields/advanced/UrlInput.d.ts +9 -0
- package/dist/components/fields/base/PopupOptionMenu.d.ts +16 -0
- package/dist/components/fields/base/Tooltip.d.ts +8 -0
- package/dist/components/fields/choices/CheckboxInput.d.ts +5 -0
- package/dist/components/fields/choices/DropdownInput.d.ts +8 -0
- package/dist/components/fields/choices/MultiSelection.d.ts +9 -0
- package/dist/components/fields/choices/RadioInput.d.ts +8 -0
- package/dist/components/fields/choices/SwitchInput.d.ts +5 -0
- package/dist/components/fields/date-time/DateInput.d.ts +6 -0
- package/dist/components/fields/date-time/TimeInput.d.ts +6 -0
- package/dist/components/fields/text-numeric/FloatArrayInput.d.ts +5 -0
- package/dist/components/fields/text-numeric/FloatInput.d.ts +9 -0
- package/dist/components/fields/text-numeric/IntegerArrayInput.d.ts +6 -0
- package/dist/components/fields/text-numeric/IntegerInput.d.ts +6 -0
- package/dist/components/fields/text-numeric/MultilineTextInput.d.ts +6 -0
- package/dist/components/fields/text-numeric/NumericStepperInput.d.ts +6 -0
- package/dist/components/fields/text-numeric/TextInput.d.ts +8 -0
- package/dist/components/fields/ui-elements/Button.d.ts +14 -0
- package/dist/components/fields/ui-elements/Description.d.ts +10 -0
- package/dist/components/fields/ui-elements/ImageDisplay.d.ts +5 -0
- package/dist/components/fields/ui-elements/Separator.d.ts +21 -0
- package/dist/components/form/Formitiva.d.ts +16 -0
- package/dist/components/form/FormitivaProvider.d.ts +18 -0
- package/dist/components/form/FormitivaRenderer.d.ts +20 -0
- package/dist/components/form/SubmissionButton.d.ts +8 -0
- package/dist/components/form/SubmissionMessage.d.ts +7 -0
- package/dist/components/layout/FieldGroup.d.ts +16 -0
- package/dist/components/layout/FieldRenderer.d.ts +14 -0
- package/dist/components/layout/LayoutComponents.d.ts +77 -0
- package/dist/core/env.d.ts +1 -0
- package/dist/core/fieldVisibility.d.ts +13 -0
- package/dist/core/formitivaModel.d.ts +31 -0
- package/dist/core/formitivaTypes.d.ts +128 -0
- package/dist/core/registries/baseRegistry.d.ts +15 -0
- package/dist/core/registries/buttonHandlerRegistry.d.ts +44 -0
- package/dist/core/registries/componentRegistry.d.ts +15 -0
- package/dist/core/registries/pluginRegistry.d.ts +45 -0
- package/dist/core/registries/submissionHandlerRegistry.d.ts +7 -0
- package/dist/core/registries/validationHandlerRegistry.d.ts +20 -0
- package/dist/core/submitForm.d.ts +9 -0
- package/dist/formitiva.cjs.js +404 -0
- package/dist/formitiva.es.js +5626 -0
- package/dist/hooks/useDebouncedCallback.d.ts +27 -0
- package/dist/hooks/useDropdownPosition.d.ts +6 -0
- package/dist/hooks/useFieldValidator.d.ts +3 -0
- package/dist/hooks/useFormitivaContext.d.ts +4 -0
- package/dist/hooks/useUncontrolledValidatedInput.d.ts +21 -0
- package/dist/hooks/useUnitValueField.d.ts +13 -0
- package/dist/index.d.ts +27 -0
- package/dist/react.css +1 -0
- package/dist/styles/cssClasses.d.ts +15 -0
- package/dist/styles/themeUtils.d.ts +31 -0
- package/dist/themes/ant-design-dark.css +31 -0
- package/dist/themes/ant-design.css +42 -0
- package/dist/themes/blueprint-dark.css +31 -0
- package/dist/themes/blueprint.css +43 -0
- package/dist/themes/compact-variant.css +8 -0
- package/dist/themes/fluent.css +40 -0
- package/dist/themes/glass-morphism.css +25 -0
- package/dist/themes/high-contrast-accessible.css +22 -0
- package/dist/themes/ios-mobile.css +32 -0
- package/dist/themes/macos-native.css +32 -0
- package/dist/themes/material-dark.css +27 -0
- package/dist/themes/material.css +46 -0
- package/dist/themes/midnight-dark.css +24 -0
- package/dist/themes/modern-light.css +23 -0
- package/dist/themes/neon-cyber-dark.css +24 -0
- package/dist/themes/shadcn.css +40 -0
- package/dist/themes/soft-pastel.css +24 -0
- package/dist/themes/spacious-variant.css +9 -0
- package/dist/themes/tailwind-dark.css +30 -0
- package/dist/themes/tailwind.css +50 -0
- package/dist/utils/definitionSerializers.d.ts +62 -0
- package/dist/utils/groupingHelpers.d.ts +24 -0
- package/dist/utils/translationUtils.d.ts +52 -0
- package/dist/utils/unitValueMapper.d.ts +14 -0
- package/dist/validation/registerBuiltinTypeValidators.d.ts +11 -0
- package/dist/validation/validation.d.ts +12 -0
- package/dist/validation/validators/validateColorField.d.ts +2 -0
- package/dist/validation/validators/validateDateField.d.ts +2 -0
- package/dist/validation/validators/validateEmailField.d.ts +2 -0
- package/dist/validation/validators/validateFieldPattern.d.ts +3 -0
- package/dist/validation/validators/validateFileField.d.ts +2 -0
- package/dist/validation/validators/validateFloatField.d.ts +3 -0
- package/dist/validation/validators/validateIntegerField.d.ts +3 -0
- package/dist/validation/validators/validatePhoneField.d.ts +2 -0
- package/dist/validation/validators/validateRatingField.d.ts +2 -0
- package/dist/validation/validators/validateSelectionFields.d.ts +3 -0
- package/dist/validation/validators/validateSliderField.d.ts +2 -0
- package/dist/validation/validators/validateTextField.d.ts +2 -0
- package/dist/validation/validators/validateTimeField.d.ts +2 -0
- package/dist/validation/validators/validateUnitValueField.d.ts +2 -0
- package/dist/validation/validators/validateUrlField.d.ts +2 -0
- package/package.json +92 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Plugin Registry for Formitiva
|
|
3
|
+
* Tracks installed plugins, components, validators, submission handlers
|
|
4
|
+
* Handles conflicts with customizable strategy
|
|
5
|
+
*/
|
|
6
|
+
import type { FieldCustomValidationHandler, FieldTypeValidationHandler, FormValidationHandler, FormSubmissionHandler } from '../formitivaTypes';
|
|
7
|
+
/** Conflict resolution strategies */
|
|
8
|
+
export type ConflictResolution = 'error' | 'warn' | 'override' | 'skip';
|
|
9
|
+
/** Plugin registration options */
|
|
10
|
+
export interface PluginRegistrationOptions {
|
|
11
|
+
conflictResolution?: ConflictResolution;
|
|
12
|
+
onConflict?: (conflict: PluginConflict) => boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Plugin conflict information */
|
|
15
|
+
export interface PluginConflict {
|
|
16
|
+
type: 'component' | 'fieldCustomValidator' | 'fieldTypeValidator' | 'formValidator' | 'submissionHandler' | 'plugin';
|
|
17
|
+
name: string;
|
|
18
|
+
existingPlugin: string;
|
|
19
|
+
newPlugin: string;
|
|
20
|
+
}
|
|
21
|
+
/** Formitiva plugin definition */
|
|
22
|
+
export interface FormitivaPlugin {
|
|
23
|
+
name: string;
|
|
24
|
+
version: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
components?: Record<string, React.ComponentType<unknown>>;
|
|
27
|
+
fieldCustomValidators?: Record<string, Record<string, FieldCustomValidationHandler>>;
|
|
28
|
+
fieldTypeValidators?: Record<string, FieldTypeValidationHandler>;
|
|
29
|
+
formValidators?: Record<string, FormValidationHandler>;
|
|
30
|
+
submissionHandlers?: Record<string, FormSubmissionHandler>;
|
|
31
|
+
setup?: () => void;
|
|
32
|
+
cleanup?: () => void;
|
|
33
|
+
}
|
|
34
|
+
/** Register a plugin */
|
|
35
|
+
export declare function registerPlugin(plugin: FormitivaPlugin, options?: PluginRegistrationOptions): void;
|
|
36
|
+
/** Unregister plugin */
|
|
37
|
+
export declare function unregisterPlugin(pluginName: string, removeRegistrations?: boolean): boolean;
|
|
38
|
+
/** Get a plugin by name */
|
|
39
|
+
export declare function getPlugin(pluginName: string): FormitivaPlugin | undefined;
|
|
40
|
+
/** Get all installed plugins */
|
|
41
|
+
export declare function getAllPlugins(): FormitivaPlugin[];
|
|
42
|
+
/** Check if plugin is registered */
|
|
43
|
+
export declare function hasPlugin(pluginName: string): boolean;
|
|
44
|
+
/** Helper to register multiple components at once */
|
|
45
|
+
export declare function registerComponents(components: Record<string, React.ComponentType<unknown>>): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FormSubmissionHandler } from "../formitivaTypes";
|
|
2
|
+
import BaseRegistry from "./baseRegistry";
|
|
3
|
+
declare const registry: BaseRegistry<FormSubmissionHandler>;
|
|
4
|
+
export declare function registerSubmissionHandler(submitterName: string, fn: FormSubmissionHandler): void;
|
|
5
|
+
export declare function getFormSubmissionHandler(submitterName: string): FormSubmissionHandler | undefined;
|
|
6
|
+
export declare function getSubmissionHandler(submitterName: string): FormSubmissionHandler | undefined;
|
|
7
|
+
export default registry;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FieldCustomValidationHandler, FieldTypeValidationHandler, FormValidationHandler } from "../formitivaTypes";
|
|
2
|
+
export declare function registerFormValidationHandler(name: string, fn: FormValidationHandler): void;
|
|
3
|
+
export declare function registerFieldCustomValidationHandler(category: string, name: string, fn: FieldCustomValidationHandler): void;
|
|
4
|
+
export declare function registerFieldTypeValidationHandler(name: string, fn: FieldTypeValidationHandler): void;
|
|
5
|
+
export declare function registerBuiltinFieldTypeValidationHandler(name: string, fn: FieldTypeValidationHandler): void;
|
|
6
|
+
export declare function getFieldCustomValidationHandler(category: string, name: string): FieldCustomValidationHandler | null;
|
|
7
|
+
export declare function getFormValidationHandler(name: string): FormValidationHandler | null;
|
|
8
|
+
export declare function getFieldTypeValidationHandler(name: string): FieldTypeValidationHandler | null;
|
|
9
|
+
export declare function listFieldCustomValidationHandlers(category?: string): string[];
|
|
10
|
+
export declare function listFormValidationHandlers(): string[];
|
|
11
|
+
declare const _default: {
|
|
12
|
+
registerFormValidationHandler: typeof registerFormValidationHandler;
|
|
13
|
+
registerFieldCustomValidationHandler: typeof registerFieldCustomValidationHandler;
|
|
14
|
+
registerFieldTypeValidationHandler: typeof registerFieldTypeValidationHandler;
|
|
15
|
+
getFieldCustomValidationHandler: typeof getFieldCustomValidationHandler;
|
|
16
|
+
getFormValidationHandler: typeof getFormValidationHandler;
|
|
17
|
+
listFieldCustomValidationHandlers: typeof listFieldCustomValidationHandlers;
|
|
18
|
+
listFormValidationHandlers: typeof listFormValidationHandlers;
|
|
19
|
+
};
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FormitivaDefinition, FieldValueType, FormitivaInstance, TranslationFunction, FormSubmissionHandler, FormValidationHandler } from "./formitivaTypes";
|
|
2
|
+
export interface SubmitResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
message: string;
|
|
5
|
+
data?: Record<string, unknown>;
|
|
6
|
+
errors?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function submitForm(definition: FormitivaDefinition, instance: FormitivaInstance | null, valuesMap: Record<string, FieldValueType | unknown>, t: TranslationFunction, errors?: Record<string, string>, onSubmit?: FormSubmissionHandler | undefined, onValidation?: FormValidationHandler | undefined): Promise<SubmitResult>;
|
|
9
|
+
export default submitForm;
|