reactaform 1.4.4 → 1.8.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.
Files changed (98) hide show
  1. package/README.md +72 -12
  2. package/dist/components/LayoutComponents.d.ts +77 -0
  3. package/dist/components/PopupOptionMenu.d.ts +16 -0
  4. package/dist/components/ReactaForm.d.ts +4 -0
  5. package/dist/components/ReactaFormProvider.d.ts +3 -0
  6. package/dist/components/ReactaFormRenderer.d.ts +10 -0
  7. package/dist/components/Tooltip.d.ts +8 -0
  8. package/dist/components/fields/CheckboxInput.d.ts +5 -0
  9. package/dist/components/fields/ColorInput.d.ts +16 -0
  10. package/dist/components/fields/DateInput.d.ts +11 -0
  11. package/dist/components/fields/DropdownInput.d.ts +16 -0
  12. package/dist/components/fields/EmailInput.d.ts +6 -0
  13. package/dist/components/fields/FileInput.d.ts +5 -0
  14. package/dist/components/fields/FloatArrayInput.d.ts +8 -0
  15. package/dist/components/fields/FloatInput.d.ts +9 -0
  16. package/dist/components/fields/ImageDisplay.d.ts +18 -0
  17. package/dist/components/fields/IntegerArrayInput.d.ts +9 -0
  18. package/dist/components/fields/IntegerInput.d.ts +6 -0
  19. package/dist/components/fields/MultiSelection.d.ts +9 -0
  20. package/dist/components/fields/MultilineTextInput.d.ts +6 -0
  21. package/dist/components/fields/NumericStepperInput.d.ts +6 -0
  22. package/dist/components/fields/PasswordInput.d.ts +6 -0
  23. package/dist/components/fields/PhoneInput.d.ts +6 -0
  24. package/dist/components/fields/RadioInput.d.ts +8 -0
  25. package/dist/components/fields/RatingInput.d.ts +9 -0
  26. package/dist/components/fields/Separator.d.ts +21 -0
  27. package/dist/components/fields/SliderInput.d.ts +5 -0
  28. package/dist/components/fields/SpinInput.d.ts +5 -0
  29. package/dist/components/fields/SwitchInput.d.ts +13 -0
  30. package/dist/components/fields/TextInput.d.ts +6 -0
  31. package/dist/components/fields/TimeInput.d.ts +6 -0
  32. package/dist/components/fields/UnitValueInput.d.ts +8 -0
  33. package/dist/components/fields/UrlInput.d.ts +21 -0
  34. package/dist/components/renderFields.d.ts +3 -0
  35. package/dist/core/baseRegistry.d.ts +15 -0
  36. package/dist/core/componentRegistry.d.ts +8 -0
  37. package/dist/core/debounceConfig.d.ts +6 -0
  38. package/dist/core/debounceEnv.d.ts +1 -0
  39. package/dist/core/fieldVisibility.d.ts +25 -0
  40. package/dist/core/index.d.ts +23 -0
  41. package/dist/core/pluginRegistry.d.ts +44 -0
  42. package/dist/core/reactaFormModel.d.ts +31 -0
  43. package/dist/core/reactaFormTypes.d.ts +141 -0
  44. package/dist/core/submissionHandlerRegistry.d.ts +7 -0
  45. package/dist/core/submitForm.d.ts +9 -0
  46. package/dist/hooks/useDebouncedCallback.d.ts +27 -0
  47. package/dist/hooks/useDropdownPosition.d.ts +6 -0
  48. package/dist/hooks/useReactaFormContext.d.ts +4 -0
  49. package/dist/hooks/useUncontrolledValidatedInput.d.ts +18 -0
  50. package/dist/hooks/useUnitValueField.d.ts +13 -0
  51. package/dist/index.d.ts +9 -6
  52. package/dist/reactaform.cjs.js +18 -5
  53. package/dist/reactaform.css +1 -1
  54. package/dist/reactaform.es.js +2771 -2738
  55. package/dist/themes/ant-design-dark.css +31 -0
  56. package/dist/themes/ant-design.css +42 -0
  57. package/dist/themes/blueprint-dark.css +31 -0
  58. package/dist/themes/blueprint.css +43 -0
  59. package/dist/themes/compact-variant.css +8 -0
  60. package/dist/themes/fluent.css +40 -0
  61. package/dist/themes/glass-morphism.css +25 -0
  62. package/dist/themes/high-contrast-accessible.css +22 -0
  63. package/dist/themes/ios-mobile.css +32 -0
  64. package/dist/themes/macos-native.css +32 -0
  65. package/dist/themes/material-dark.css +27 -0
  66. package/dist/themes/material.css +46 -0
  67. package/dist/themes/midnight-dark.css +24 -0
  68. package/dist/themes/modern-light.css +23 -0
  69. package/dist/themes/neon-cyber-dark.css +24 -0
  70. package/dist/themes/shadcn.css +40 -0
  71. package/dist/themes/soft-pastel.css +24 -0
  72. package/dist/themes/spacious-variant.css +9 -0
  73. package/dist/themes/tailwind-dark.css +30 -0
  74. package/dist/themes/tailwind.css +50 -0
  75. package/dist/utils/cssClasses.d.ts +14 -0
  76. package/dist/utils/definitionSerializers.d.ts +62 -0
  77. package/dist/utils/groupingHelpers.d.ts +24 -0
  78. package/dist/utils/index.d.ts +11 -0
  79. package/dist/utils/themeUtils.d.ts +31 -0
  80. package/dist/utils/translationCache.d.ts +43 -0
  81. package/dist/utils/unitValueMapper.d.ts +14 -0
  82. package/dist/validation/index.d.ts +13 -0
  83. package/dist/validation/validateColorField.d.ts +2 -0
  84. package/dist/validation/validateDateField.d.ts +2 -0
  85. package/dist/validation/validateEmailField.d.ts +2 -0
  86. package/dist/validation/validateFieldPattern.d.ts +3 -0
  87. package/dist/validation/validateFloatField.d.ts +3 -0
  88. package/dist/validation/validateIntegerField.d.ts +3 -0
  89. package/dist/validation/validatePhoneField.d.ts +2 -0
  90. package/dist/validation/validateRatingField.d.ts +2 -0
  91. package/dist/validation/validateSelectionFields.d.ts +3 -0
  92. package/dist/validation/validateTextField.d.ts +2 -0
  93. package/dist/validation/validateTimeField.d.ts +2 -0
  94. package/dist/validation/validateUnitValueField.d.ts +2 -0
  95. package/dist/validation/validateUrlField.d.ts +2 -0
  96. package/dist/validation/validation.d.ts +12 -0
  97. package/dist/validation/validationHandlerRegistry.d.ts +19 -0
  98. package/package.json +15 -13
package/README.md CHANGED
@@ -193,29 +193,89 @@ interface ReactaDefinition {
193
193
 
194
194
  ## 🎨 Theming
195
195
 
196
+ ReactaForm includes **20 pre-built themes** that you can import individually for optimal bundle size.
197
+
198
+ ### Quick Start
199
+
200
+ ```tsx
201
+ // Import a theme
202
+ import 'reactaform/themes/material.css';
203
+ import { ReactaForm } from 'reactaform';
204
+
205
+ function App() {
206
+ return <ReactaForm theme="material" definitionData={...} />;
207
+ }
208
+ ```
209
+
210
+ ### Available Themes
211
+
212
+ **Light Themes:**
213
+ - `material`, `ant-design`, `blueprint`, `fluent`, `shadcn`, `tailwind`
214
+ - `modern-light`, `macos-native`, `ios-mobile`, `soft-pastel`
215
+ - `glass-morphism`, `high-contrast-accessible`
216
+
217
+ **Dark Themes:**
218
+ - `material-dark`, `ant-design-dark`, `blueprint-dark`, `tailwind-dark`
219
+ - `midnight-dark`, `neon-cyber-dark`
220
+
221
+ **Variants:**
222
+ - `compact-variant`, `spacious-variant` (size adjustments)
223
+
224
+ ### Theme Switching
225
+
226
+ ```tsx
227
+ import 'reactaform/themes/material.css';
228
+ import 'reactaform/themes/material-dark.css';
229
+ import { ReactaForm } from 'reactaform';
230
+ import { useState } from 'react';
231
+
232
+ function App() {
233
+ const [isDark, setIsDark] = useState(false);
234
+
235
+ return (
236
+ <>
237
+ <button onClick={() => setIsDark(!isDark)}>Toggle Theme</button>
238
+ <ReactaForm
239
+ theme={isDark ? 'material-dark' : 'material'}
240
+ definitionData={...}
241
+ />
242
+ </>
243
+ );
244
+ }
245
+ ```
246
+
247
+ ### Custom Theme
248
+
196
249
  Customize with CSS variables:
197
250
 
198
251
  ```css
199
- :root {
200
- --reactaform-color-primary: #2563eb;
201
- --reactaform-color-error: #ef4444;
202
- --reactaform-font-size: 1rem;
203
- --reactaform-input-bg: #ffffff;
252
+ [data-reactaform-theme="my-custom"] {
253
+ --reactaform-primary-bg: #ffffff;
254
+ --reactaform-secondary-bg: #f9f9f9;
255
+ --reactaform-text-color: #000000;
256
+ --reactaform-border-color: #cccccc;
257
+ --reactaform-border-radius: 8px;
258
+ /* ... see theme files for all variables */
204
259
  }
260
+ ```
205
261
 
206
- /* Dark */
207
- [data-reactaform-theme="dark"] {
208
- --reactaform-bg-primary: #1a1a1a;
209
- --reactaform-text-color: #ededed;
210
- }
262
+ ```tsx
263
+ <ReactaForm theme="my-custom" definitionData={...} />
211
264
  ```
212
265
 
213
- **Enable Dark Mode:**
266
+ **Dark Theme Convention:** Include "dark" in your theme name (e.g., `my-custom-dark`) for automatic dark mode detection.
267
+
268
+ ### Detect Dark Themes
214
269
 
215
270
  ```tsx
216
- <ReactaForm darkMode={true} ... />
271
+ import { isDarkTheme } from 'reactaform';
272
+
273
+ isDarkTheme('material-dark'); // true
274
+ isDarkTheme('material'); // false
217
275
  ```
218
276
 
277
+ 📖 **Full theme documentation:** [docs/theme-integration.md](docs/theme-integration.md)
278
+
219
279
  ## 🌍 Internationalization (i18n)
220
280
 
221
281
  ```tsx
@@ -0,0 +1,77 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../core/reactaFormTypes";
3
+ /**
4
+ * ColumnFieldLayout - Vertical layout wrapper for form fields
5
+ *
6
+ * This component provides a column-based layout pattern:
7
+ * - Label on top (left-aligned or center-aligned based on labelLayout)
8
+ * - Value/input area below
9
+ * - Optional tooltip support
10
+ * - Error display area
11
+ *
12
+ * Usage:
13
+ * <ColumnFieldLayout field={field} error={error}>
14
+ * <textarea ... />
15
+ * </ColumnFieldLayout>
16
+ */
17
+ export declare const ColumnFieldLayout: React.MemoExoticComponent<({ field, error, children, showLabel, }: {
18
+ field: DefinitionPropertyField;
19
+ error?: string | null;
20
+ children: React.ReactNode;
21
+ showLabel?: boolean;
22
+ }) => import("react/jsx-runtime").JSX.Element>;
23
+ /**
24
+ * RowFieldLayout - Horizontal layout wrapper for form fields
25
+ *
26
+ * This component provides the traditional two-column layout pattern:
27
+ * - Label on the left using CSS_CLASSES.label
28
+ * - Value/input area on the right
29
+ * - Optional tooltip support
30
+ * - Error display area
31
+ *
32
+ * Usage:
33
+ * <RowFieldLayout field={field} error={error}>
34
+ * <input ... />
35
+ * </RowFieldLayout>
36
+ */
37
+ export declare const RowFieldLayout: React.MemoExoticComponent<({ field, error, children, rightAlign, }: {
38
+ field: DefinitionPropertyField;
39
+ error?: string | null;
40
+ children: React.ReactNode;
41
+ rightAlign?: boolean;
42
+ }) => import("react/jsx-runtime").JSX.Element>;
43
+ /**
44
+ * StandardFieldLayout - Smart layout wrapper that delegates to appropriate layout component
45
+ *
46
+ * This component automatically chooses between row and column layouts based on field.labelLayout:
47
+ * - Uses ColumnFieldLayout when field.labelLayout === 'column'
48
+ * - Uses RowFieldLayout for default/row layout
49
+ * - Maintains consistent API for all field components
50
+ *
51
+ * Usage:
52
+ * <StandardFieldLayout field={field} error={error}>
53
+ * <input ... />
54
+ * </StandardFieldLayout>
55
+ */
56
+ export declare const StandardFieldLayout: React.MemoExoticComponent<({ field, error, children, rightAlign, }: {
57
+ field: DefinitionPropertyField;
58
+ error?: string | null;
59
+ children: React.ReactNode;
60
+ rightAlign?: boolean;
61
+ }) => import("react/jsx-runtime").JSX.Element>;
62
+ export declare const ErrorDiv: React.MemoExoticComponent<({ children, id }: {
63
+ children: React.ReactNode;
64
+ id?: string;
65
+ }) => import("react/jsx-runtime").JSX.Element>;
66
+ /**
67
+ * InstanceName - display and edit an instance name in a compact grid row
68
+ * on top of fields list
69
+ *
70
+ * Props:
71
+ * - `name`: current instance name
72
+ * - `onChange`: callback invoked with new name when edited
73
+ */
74
+ export declare const InstanceName: React.MemoExoticComponent<({ name, onChange }: {
75
+ name: string;
76
+ onChange: (n: string) => void;
77
+ }) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ export type PopupOptionMenuPosition = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export interface PopupOption {
7
+ label: string;
8
+ }
9
+ export interface PopupOptionMenuProps<T extends PopupOption> {
10
+ pos: PopupOptionMenuPosition | null;
11
+ options: T[];
12
+ onClose: () => void;
13
+ onClickOption: (option: T) => void;
14
+ }
15
+ export declare function PopupOptionMenu<T extends PopupOption>({ pos, options, onClose, onClickOption }: PopupOptionMenuProps<T>): React.ReactPortal | null;
16
+ export default PopupOptionMenu;
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import type { ReactaFormProps } from "../core/reactaFormTypes";
3
+ declare const ReactaForm: React.FC<ReactaFormProps>;
4
+ export default ReactaForm;
@@ -0,0 +1,3 @@
1
+ import type { ReactaFormProviderProps } from '../core/reactaFormTypes';
2
+ import '../core/reactaform.css';
3
+ export declare const ReactaFormProvider: ({ children, definitionName, defaultStyle, defaultLanguage, defaultTheme, defaultLocalizeName, className, }: ReactaFormProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import type { ReactaDefinition, ReactaInstance } from "../core/reactaFormTypes";
3
+ export interface ReactaFormRendererProps {
4
+ definition: ReactaDefinition;
5
+ instance: ReactaInstance;
6
+ chunkSize?: number;
7
+ chunkDelay?: number;
8
+ }
9
+ declare const ReactaFormRenderer: React.FC<ReactaFormRendererProps>;
10
+ export default ReactaFormRenderer;
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ type TooltipProps = {
3
+ content: string;
4
+ size?: "small" | "medium" | "large";
5
+ animation?: boolean;
6
+ };
7
+ declare const Tooltip: React.FC<TooltipProps>;
8
+ export default Tooltip;
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type CheckboxInputProps = BaseInputProps<boolean, DefinitionPropertyField>;
4
+ export declare const CheckboxInput: React.FC<CheckboxInputProps>;
5
+ export default CheckboxInput;
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type ColorField = DefinitionPropertyField & {
4
+ defaultValue?: string;
5
+ };
6
+ export type ColorInputProps = BaseInputProps<string, ColorField>;
7
+ /**
8
+ * ColorInput Component
9
+ * * ---------------------
10
+ * A reusable color input field that supports a predefined list of color options
11
+ * (e.g., Red, Blue, etc.) and also allows the user to choose a custom color via
12
+ * a native HTML `<input type="color">`.
13
+ *
14
+ */
15
+ declare const ColorInput: React.FC<ColorInputProps>;
16
+ export default ColorInput;
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ type DateInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ /**
6
+ * DateInput Component
7
+ * -------------------
8
+ * Controlled date input for ReactaForm.
9
+ */
10
+ declare const DateInput: React.FC<DateInputProps>;
11
+ export default DateInput;
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type DropdownField = DefinitionPropertyField & {
4
+ options: NonNullable<DefinitionPropertyField['options']>;
5
+ };
6
+ export type DropdownInputProps = BaseInputProps<string, DropdownField>;
7
+ /**
8
+ * DropdownInput
9
+ *
10
+ * Renders a custom dropdown for selecting a single value from options.
11
+ * - Validates that the selected value is in the options list
12
+ * - Auto-corrects to first option if invalid value provided
13
+ * - Uses custom styling from fieldStyle.dropdown
14
+ */
15
+ declare const DropdownInput: React.FC<DropdownInputProps>;
16
+ export default DropdownInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField, BaseInputProps } from "../../core/reactaFormTypes";
3
+ import '../../validation';
4
+ export type EmailInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ export declare const EmailInput: React.FC<EmailInputProps>;
6
+ export default EmailInput;
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ export type FileInputProps = BaseInputProps<File | File[] | null, DefinitionPropertyField>;
4
+ declare const FileInput: React.FC<FileInputProps>;
5
+ export default FileInput;
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField, BaseInputProps } from "../../core/reactaFormTypes";
3
+ export type FloatArrayInputProps = BaseInputProps<string | number[], DefinitionPropertyField>;
4
+ /**
5
+ * FloatArrayInput component
6
+ */
7
+ declare const FloatArrayInput: React.FC<FloatArrayInputProps>;
8
+ export default FloatArrayInput;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ /**
5
+ * FloatInput component
6
+ */
7
+ export type FloatInputProps = BaseInputProps<string, DefinitionPropertyField>;
8
+ declare const FloatInput: React.FC<FloatInputProps>;
9
+ export default FloatInput;
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ export type ImageProps = BaseInputProps<string, DefinitionPropertyField>;
4
+ /**
5
+ * ImageDisplay is a React component that renders an image with optional
6
+ * localization and flexible layout/styling options.
7
+ *
8
+ * Features:
9
+ * - Localized image fallback based on current language (e.g., _fr, _zhcn suffixes).
10
+ * - Supports left, center, or right alignment.
11
+ * - Supports both row and column layout via field.labelLayout property
12
+ * - Dynamically handles width and height:
13
+ * - If both are specified, uses them directly.
14
+ * - If only one is specified, uses that and sets the other to `auto`.
15
+ * - If neither is specified, renders the image without size constraints.
16
+ */
17
+ declare const ImageDisplay: React.FC<ImageProps>;
18
+ export default ImageDisplay;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ export type IntegerArrayInputProps = BaseInputProps<string | number[], DefinitionPropertyField>;
5
+ /**
6
+ * IntegerArrayInput
7
+ */
8
+ declare const IntegerArrayInput: React.FC<IntegerArrayInputProps>;
9
+ export default IntegerArrayInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ export type IntegerInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ declare const _default: React.NamedExoticComponent<IntegerInputProps>;
6
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ export type OptionsField = DefinitionPropertyField & {
5
+ options: NonNullable<DefinitionPropertyField["options"]>;
6
+ };
7
+ type MultiSelectionProps = BaseInputProps<string[] | null, OptionsField>;
8
+ declare const MultiSelect: React.FC<MultiSelectionProps>;
9
+ export default MultiSelect;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ type TextInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ declare const MultilineTextInput: React.FC<TextInputProps>;
6
+ export default MultilineTextInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ export type NumericStepperInputProps = BaseInputProps<string | number, DefinitionPropertyField>;
5
+ declare const NumericStepperInput: React.FC<NumericStepperInputProps>;
6
+ export default NumericStepperInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ type PasswordInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ declare const PasswordInput: React.FC<PasswordInputProps>;
6
+ export default PasswordInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ export type PhoneInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ export declare const PhoneInput: React.FC<PhoneInputProps>;
6
+ export default PhoneInput;
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type RadioField = DefinitionPropertyField & {
4
+ options: NonNullable<DefinitionPropertyField["options"]>;
5
+ };
6
+ export type RadioInputProps = BaseInputProps<string, RadioField>;
7
+ declare const RadioInput: React.FC<RadioInputProps>;
8
+ export default RadioInput;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type RatingField = DefinitionPropertyField & {
4
+ max?: number;
5
+ icon?: string;
6
+ };
7
+ export type RatingInputProps = BaseInputProps<number, RatingField>;
8
+ declare const RatingInput: React.FC<RatingInputProps>;
9
+ export default RatingInput;
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ interface SeparatorProps {
3
+ color?: string;
4
+ thickness?: number;
5
+ margin?: string | number;
6
+ label?: string | null;
7
+ alignment?: "left" | "center" | "right";
8
+ }
9
+ export declare const Separator: React.FC<SeparatorProps>;
10
+ interface FieldSeparatorProps {
11
+ field: {
12
+ color?: string;
13
+ thickness?: number;
14
+ margin?: string | number;
15
+ label?: string;
16
+ alignment?: "left" | "center" | "right";
17
+ };
18
+ t: (text: string) => string;
19
+ }
20
+ declare const FieldSeparator: React.FC<FieldSeparatorProps>;
21
+ export default FieldSeparator;
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type SliderInputProps = BaseInputProps<string | number, DefinitionPropertyField>;
4
+ declare const SliderInput: React.FC<SliderInputProps>;
5
+ export default SliderInput;
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField, BaseInputProps } from "../../core/reactaFormTypes";
3
+ export type SpinInputProps = BaseInputProps<number, DefinitionPropertyField>;
4
+ declare const SpinInput: React.FC<SpinInputProps>;
5
+ export default SpinInput;
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type SwitchInputProps = BaseInputProps<boolean, DefinitionPropertyField>;
4
+ /**
5
+ * SwitchInput
6
+ *
7
+ * Renders a toggle switch UI for boolean values.
8
+ * - Clicking anywhere on the container toggles the switch.
9
+ * - Visual toggle with sliding knob and background color changes.
10
+ * - Displays label and optional tooltip.
11
+ */
12
+ export declare const SwitchInput: React.FC<SwitchInputProps>;
13
+ export default SwitchInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ type TextInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ declare const TextInput: React.FC<TextInputProps>;
6
+ export default TextInput;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ type TimeInputProps = BaseInputProps<string, DefinitionPropertyField>;
5
+ declare const TimeInput: React.FC<TimeInputProps>;
6
+ export default TimeInput;
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import type { BaseInputProps, DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ type Dimension = "length" | "area" | "volume" | "weight" | "time" | "temperature" | "angle";
4
+ type UnitValueInputProps = BaseInputProps<[string | number, string], DefinitionPropertyField & {
5
+ dimension?: Dimension;
6
+ }>;
7
+ declare const _default: React.NamedExoticComponent<UnitValueInputProps>;
8
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import type { DefinitionPropertyField } from "../../core/reactaFormTypes";
3
+ import type { BaseInputProps } from "../../core/reactaFormTypes";
4
+ /**
5
+ * UrlInput component
6
+ *
7
+ * This component provides a controlled input field for URL values.
8
+ * It validates required fields, URL format, and integrates with Reacta form context.
9
+ *
10
+ * Props:
11
+ * - field: Field metadata (name, displayName, tooltip, validation rules).
12
+ * - value: Current URL string.
13
+ * - onChange: Callback called with (value, error).
14
+ *
15
+ * Features:
16
+ * - Validates using a robust URL regex and `URL` constructor fallback.
17
+ * - Supports tooltip, localization, and inline validation errors.
18
+ */
19
+ export type UrlInputProps = BaseInputProps<string, DefinitionPropertyField>;
20
+ declare const UrlInput: React.FC<UrlInputProps>;
21
+ export default UrlInput;
@@ -0,0 +1,3 @@
1
+ import type { DefinitionPropertyField, FieldValueType, ErrorType } from "../core/reactaFormTypes";
2
+ export declare const renderFields: (fields: DefinitionPropertyField[], valuesMap: Record<string, FieldValueType>, handleChange: (fieldName: string, value: FieldValueType, error: ErrorType) => void, visibility: Record<string, boolean>, loadedCount: number, handleError?: (fieldName: string, error: ErrorType) => void) => (import("react/jsx-runtime").JSX.Element | null)[];
3
+ export declare const renderFieldsWithGroups: (groupState: Record<string, boolean>, fields: DefinitionPropertyField[], valuesMap: Record<string, FieldValueType>, t: (key: string) => string, handleChange: (fieldName: string, value: FieldValueType, error: ErrorType) => void, handleError: (fieldName: string, error: ErrorType) => void, visibility: Record<string, boolean>, loadedCount: number, toggleGroup: (groupName: string) => void) => JSX.Element[];
@@ -0,0 +1,15 @@
1
+ export declare class BaseRegistry<T> {
2
+ private map;
3
+ register(name: string, value: T): void;
4
+ get(name: string): T | undefined;
5
+ has(name: string): boolean;
6
+ list(): string[];
7
+ entries(): [string, T][];
8
+ values(): T[];
9
+ size(): number;
10
+ unregister(name: string): boolean;
11
+ clear(): void;
12
+ registerAll(entries: Record<string, T> | [string, T][]): void;
13
+ getOrDefault(name: string, defaultValue: T): T;
14
+ }
15
+ export default BaseRegistry;
@@ -0,0 +1,8 @@
1
+ import BaseRegistry from "./baseRegistry";
2
+ declare const registry: BaseRegistry<unknown>;
3
+ export declare function registerComponentInternal(type: string, component: unknown, isBaseComponent: boolean): void;
4
+ export declare function registerComponent(type: string, component: unknown): void;
5
+ export declare function getComponent(type: string): unknown;
6
+ export declare function listComponents(): string[];
7
+ export declare function registerBaseComponents(): void;
8
+ export default registry;
@@ -0,0 +1,6 @@
1
+ export type DebounceConfig = false | {
2
+ wait?: number;
3
+ leading?: boolean;
4
+ trailing?: boolean;
5
+ };
6
+ export declare const DEBOUNCE_CONFIG: Record<string, DebounceConfig>;
@@ -0,0 +1 @@
1
+ export declare const IS_TEST_ENV: boolean;
@@ -0,0 +1,25 @@
1
+ import type { DefinitionPropertyField, FieldValueType } from "./reactaFormTypes";
2
+ /**
3
+ * Initializes the visibility map for all fields by setting them to `false`.
4
+ */
5
+ export declare const initializeVisibility: (fields: DefinitionPropertyField[]) => Record<string, boolean>;
6
+ /**
7
+ * Creates a lookup map for faster field access during visibility calculations
8
+ */
9
+ export declare const createFieldMap: (fields: DefinitionPropertyField[]) => Record<string, DefinitionPropertyField>;
10
+ /**
11
+ * Updates visibility map based on current field values and parent-child relationships
12
+ */
13
+ export declare const updateVisibilityMap: (fields: DefinitionPropertyField[], values: Record<string, FieldValueType>, oldVisibility: Record<string, boolean>, fieldMapRef: Record<string, DefinitionPropertyField>) => Record<string, boolean>;
14
+ /**
15
+ * Updates visibility when a specific field value changes
16
+ */
17
+ export declare const updateVisibilityBasedOnSelection: (visibility: Record<string, boolean>, fieldMap: Record<string, DefinitionPropertyField>, valuesMap: Record<string, FieldValueType>, fieldName: string, value: FieldValueType) => Record<string, boolean>;
18
+ /**
19
+ * Checks if a field should be visible based on its parent relationships
20
+ */
21
+ export declare const isFieldVisible: (fieldName: string, fieldMap: Record<string, DefinitionPropertyField>, values: Record<string, FieldValueType>) => boolean;
22
+ /**
23
+ * Gets all visible fields efficiently
24
+ */
25
+ export declare const getVisibleFields: (fields: DefinitionPropertyField[], values: Record<string, FieldValueType>) => DefinitionPropertyField[];
@@ -0,0 +1,23 @@
1
+ export * from "./reactaFormTypes";
2
+ export * from "./submitForm";
3
+ export * from "./fieldVisibility";
4
+ export * from "./reactaFormModel";
5
+ export * from "./pluginRegistry";
6
+ export * from "./componentRegistry";
7
+ export * from "./submissionHandlerRegistry";
8
+ export * from "./baseRegistry";
9
+ import * as submitForm from "./submitForm";
10
+ import * as fieldVisibility from "./fieldVisibility";
11
+ import * as reactaFormModel from "./reactaFormModel";
12
+ import * as pluginRegistry from "./pluginRegistry";
13
+ import * as componentRegistry from "./componentRegistry";
14
+ import * as submissionRegistry from "./submissionHandlerRegistry";
15
+ declare const _default: {
16
+ submitForm: typeof submitForm;
17
+ fieldVisibility: typeof fieldVisibility;
18
+ reactaFormModel: typeof reactaFormModel;
19
+ pluginRegistry: typeof pluginRegistry;
20
+ componentRegistry: typeof componentRegistry;
21
+ submissionRegistry: typeof submissionRegistry;
22
+ };
23
+ export default _default;