@digiform/wizard 0.2.18 → 0.3.1
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/core/src/types/guards.js +0 -12
- package/core/src/utils/apiBodyUtils.js +43 -75
- package/index.d.ts +2 -8
- package/index.js +2 -108
- package/package.json +1 -28
- package/styles.css +1 -1
- package/ui/src/lib/utils/templateUtils.js +11 -43
- package/wizard/src/features/form-runtime/FormWizard/FormWizard.js +36 -33
- package/wizard/src/features/form-runtime/components/FormField.js +28 -28
- package/wizard/src/features/form-runtime/components/FormFooter.js +4 -4
- package/wizard/src/features/form-runtime/components/FormSection/FormSection.js +19 -19
- package/wizard/src/features/form-runtime/components/FormStep/FormStep.js +21 -21
- package/wizard/src/features/form-runtime/components/StepProgressIndicator/StepProgressIndicator.js +1 -1
- package/wizard/src/features/form-runtime/config/configResolver.js +10 -14
- package/wizard/src/features/form-runtime/config/templateLoader.js +82 -112
- package/wizard/src/features/form-runtime/hooks/useComponentTriggers.js +42 -66
- package/wizard/src/features/form-runtime/hooks/useFieldEventHandlers.js +3 -3
- package/wizard/src/features/form-runtime/hooks/useFormFieldState.js +5 -5
- package/wizard/src/features/form-runtime/utils/errorUtils.js +31 -42
- package/wizard/src/features/form-runtime/utils/validationUX.js +14 -55
- package/wizard/src/features/state-management/machines/useFormMachine.js +3 -3
- package/wizard/src/features/trigger-action-system/components/ActionManager.js +4 -4
- package/wizard/src/features/validation-system/validation/ValidationEngine.js +24 -29
- package/FormWizard.d.ts +0 -10
- package/core/src/types/api.js +0 -12
- package/core/src/types/form-config.js +0 -60
- package/core/src/types/form-wizard-config-schema.js +0 -113
- package/core/src/types/validation.js +0 -61
- package/features/api-integration.d.ts +0 -2
- package/features/api-integration.js +0 -17
- package/features/dialog-system.d.ts +0 -2
- package/features/dialog-system.js +0 -9
- package/features/form-runtime.d.ts +0 -2
- package/features/form-runtime.js +0 -63
- package/features/index.d.ts +0 -11
- package/features/state-management.d.ts +0 -2
- package/features/state-management.js +0 -21
- package/features/trigger-action-system.d.ts +0 -2
- package/features/trigger-action-system.js +0 -12
- package/features/validation-system.d.ts +0 -2
- package/features/validation-system.js +0 -23
- package/styles/index.d.ts +0 -0
- package/ui/src/components/badge/badge.js +0 -20
- package/ui/src/components/badge/badge.module.css.js +0 -12
- package/wizard/src/features/api-integration/services/ActionExecutor.js +0 -339
- package/wizard/src/features/api-integration/services/ApiCallExecutor.js +0 -6
- package/wizard/src/features/api-integration/services/DialogExecutor.js +0 -6
- package/wizard/src/features/api-integration/services/GenericTriggerService.js +0 -284
- package/wizard/src/features/api-integration/services/NavigationExecutor.js +0 -6
- package/wizard/src/features/form-runtime/config/templateConfig.js +0 -156
- package/wizard/src/features/form-runtime/config/templateUtils.js +0 -14
- package/wizard/src/features/form-runtime/utils/validation.js +0 -100
- package/wizard/src/features/trigger-action-system/components/ActionLoadingIndicator/ActionLoadingIndicator.js +0 -46
- package/wizard/src/features/trigger-action-system/components/ActionLoadingIndicator/ActionLoadingIndicator.module.css.js +0 -30
- package/wizard/src/features/trigger-action-system/utils/GenericTriggerEngine.js +0 -376
- package/wizard/src/features/validation-system/components/ValidationDebugger.js +0 -69
- package/wizard/src/features/validation-system/validation/tanstackSchemaAdapter.js +0 -17
- package/wizard/src/features/validation-system/validation/validationService.js +0 -74
|
@@ -1,58 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { getMostRelevantError as
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
},
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
a.set(r, t);
|
|
12
|
-
}, E = (r, t = !1) => h(r, t) ? l(r.errors || []) : "", o = {
|
|
13
|
-
// Text inputs: validate on blur, show errors after touch
|
|
14
|
-
textInput: {
|
|
15
|
-
validateOn: "blur",
|
|
16
|
-
showErrorsAfter: "touch"
|
|
17
|
-
},
|
|
18
|
-
// Email: validate on blur, show errors after touch
|
|
19
|
-
email: {
|
|
20
|
-
validateOn: "blur",
|
|
21
|
-
showErrorsAfter: "touch"
|
|
22
|
-
},
|
|
23
|
-
// Numbers: validate on blur, show errors after touch
|
|
24
|
-
number: {
|
|
25
|
-
validateOn: "blur",
|
|
26
|
-
showErrorsAfter: "touch"
|
|
27
|
-
},
|
|
28
|
-
// Radio groups: validate on change, show errors after touch
|
|
29
|
-
radioGroup: {
|
|
30
|
-
validateOn: "change",
|
|
31
|
-
showErrorsAfter: "touch"
|
|
32
|
-
},
|
|
33
|
-
// Selects: validate on change, show errors after touch
|
|
34
|
-
select: {
|
|
35
|
-
validateOn: "change",
|
|
36
|
-
showErrorsAfter: "touch"
|
|
37
|
-
},
|
|
38
|
-
// Checkboxes: validate on change, show errors after touch
|
|
39
|
-
checkbox: {
|
|
40
|
-
validateOn: "change",
|
|
41
|
-
showErrorsAfter: "touch"
|
|
42
|
-
},
|
|
43
|
-
// Multi-select: validate on change, show errors after touch
|
|
44
|
-
multiselect: {
|
|
45
|
-
validateOn: "change",
|
|
46
|
-
showErrorsAfter: "touch"
|
|
47
|
-
}
|
|
48
|
-
}, v = (r) => o[r] || o.textInput;
|
|
2
|
+
import { getMostRelevantError as u } from "./errorUtils.js";
|
|
3
|
+
const t = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), d = (r) => {
|
|
4
|
+
i.add(r);
|
|
5
|
+
}, n = (r) => i.has(r), c = (r, s = !1, e) => {
|
|
6
|
+
const { errors: a, isTouched: l, isValid: f } = r;
|
|
7
|
+
return e && t.has(e) && t.get(e) ? !1 : f ? (e && t.set(e, !0), !1) : !a || a.length === 0 ? !1 : (e && t.set(e, !1), s ? !0 : e && !n(e) ? !1 : l);
|
|
8
|
+
}, g = (r, s) => {
|
|
9
|
+
t.set(r, s);
|
|
10
|
+
}, V = (r, s = !1) => c(r, s) ? u(r.errors || []) : "";
|
|
49
11
|
export {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
g as markFieldAsUserInteracted,
|
|
56
|
-
h as shouldShowValidationError,
|
|
57
|
-
A as updateValidationCache
|
|
12
|
+
V as getDisplayErrorMessage,
|
|
13
|
+
n as hasUserInteracted,
|
|
14
|
+
d as markFieldAsUserInteracted,
|
|
15
|
+
c as shouldShowValidationError,
|
|
16
|
+
g as updateValidationCache
|
|
58
17
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMachine as me } from "@xstate/react";
|
|
3
|
-
import fe, {
|
|
3
|
+
import fe, { useMemo as f, useCallback as o, createContext as Ee, useContext as Ce } from "react";
|
|
4
4
|
import { ComponentTriggerEngine as V } from "./componentTriggerEngine.js";
|
|
5
5
|
import { formMachine as he } from "./formMachine.js";
|
|
6
6
|
import { ValidationEngine as Fe } from "../../validation-system/validation/ValidationEngine.js";
|
|
@@ -387,7 +387,7 @@ const ve = ({
|
|
|
387
387
|
};
|
|
388
388
|
};
|
|
389
389
|
let A = null;
|
|
390
|
-
const _ = () => (A || (A =
|
|
390
|
+
const _ = () => (A || (A = Ee(null)), A), Me = {
|
|
391
391
|
Provider: ({
|
|
392
392
|
children: i,
|
|
393
393
|
value: g
|
|
@@ -396,7 +396,7 @@ const _ = () => (A || (A = Ce(null)), A), Me = {
|
|
|
396
396
|
return fe.createElement(p.Provider, { value: g }, i);
|
|
397
397
|
}
|
|
398
398
|
}, Oe = () => {
|
|
399
|
-
const i = _(), g =
|
|
399
|
+
const i = _(), g = Ce(i);
|
|
400
400
|
if (!g)
|
|
401
401
|
throw new Error(
|
|
402
402
|
"useFormMachine must be used within a FormWizard component"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { memo as d } from "react";
|
|
4
4
|
import { useFormMachine as p } from "../../state-management/machines/useFormMachine.js";
|
|
5
|
-
import {
|
|
6
|
-
const D =
|
|
5
|
+
import { ActionDialog as I } from "../../dialog-system/components/ActionDialog/ActionDialog.js";
|
|
6
|
+
const D = d(({ className: g = "" }) => {
|
|
7
7
|
const [i, a] = p(), { context: n } = i, l = (e) => {
|
|
8
8
|
switch (console.log("🔥 ActionManager: Dialog button clicked!", e), console.log("🔥 ActionManager: Button action type:", e.type), e.type) {
|
|
9
9
|
case "close":
|
|
@@ -90,7 +90,7 @@ const D = I(({ className: g = "" }) => {
|
|
|
90
90
|
}), /* @__PURE__ */ s("div", { className: g, children: [
|
|
91
91
|
t && !1,
|
|
92
92
|
/* @__PURE__ */ r(
|
|
93
|
-
|
|
93
|
+
I,
|
|
94
94
|
{
|
|
95
95
|
config: n.activeDialog,
|
|
96
96
|
formData: n.data,
|
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { SchemaBuilder as
|
|
3
|
-
import { ValidationCache as
|
|
4
|
-
import { ValidationExecutor as
|
|
5
|
-
class
|
|
2
|
+
import { SchemaBuilder as n } from "./SchemaBuilder.js";
|
|
3
|
+
import { ValidationCache as r } from "./ValidationCache.js";
|
|
4
|
+
import { ValidationExecutor as d } from "./ValidationExecutor.js";
|
|
5
|
+
class o {
|
|
6
6
|
debounceTimers = /* @__PURE__ */ new Map();
|
|
7
7
|
debounceMs;
|
|
8
8
|
schemaBuilder;
|
|
9
9
|
validationExecutor;
|
|
10
10
|
validationCache;
|
|
11
11
|
constructor(e = {}) {
|
|
12
|
-
this.debounceMs = e.debounceMs || 300, this.schemaBuilder = new
|
|
12
|
+
this.debounceMs = e.debounceMs || 300, this.schemaBuilder = new n(
|
|
13
13
|
e.messageStyle || "withLabel",
|
|
14
14
|
e.secureValidatorConfig
|
|
15
|
-
), this.validationExecutor = new
|
|
15
|
+
), this.validationExecutor = new d(this.schemaBuilder), this.validationCache = new r(this.schemaBuilder);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Validates a single field with debouncing
|
|
19
19
|
*/
|
|
20
|
-
async validateFieldDebounced(e,
|
|
21
|
-
return new Promise((
|
|
20
|
+
async validateFieldDebounced(e, a) {
|
|
21
|
+
return new Promise((i) => {
|
|
22
22
|
const t = `field_${e.id}`;
|
|
23
23
|
if (this.debounceTimers.has(t)) {
|
|
24
|
-
const
|
|
25
|
-
|
|
24
|
+
const s = this.debounceTimers.get(t);
|
|
25
|
+
s && clearTimeout(s);
|
|
26
26
|
}
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
this.debounceTimers.delete(t),
|
|
27
|
+
const c = setTimeout(() => {
|
|
28
|
+
const s = this.validateField(e, a);
|
|
29
|
+
this.debounceTimers.delete(t), i(s);
|
|
30
30
|
}, this.debounceMs);
|
|
31
|
-
this.debounceTimers.set(t,
|
|
31
|
+
this.debounceTimers.set(t, c);
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Validates a single field immediately (synchronous)
|
|
36
36
|
*/
|
|
37
|
-
validateField(e,
|
|
38
|
-
const
|
|
39
|
-
return this.validationExecutor.validateFieldSync(
|
|
37
|
+
validateField(e, a) {
|
|
38
|
+
const i = this.validationCache.getComponentSchema(e);
|
|
39
|
+
return this.validationExecutor.validateFieldSync(a, i);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Validates all fields in a step
|
|
43
43
|
*/
|
|
44
|
-
async validateStep(e,
|
|
45
|
-
const
|
|
46
|
-
return await this.validationExecutor.validateStep(
|
|
44
|
+
async validateStep(e, a) {
|
|
45
|
+
const i = this.validationCache.getStepSchema(e);
|
|
46
|
+
return await this.validationExecutor.validateStep(a, i);
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Validates an entire form
|
|
50
50
|
*/
|
|
51
|
-
async validateForm(e,
|
|
52
|
-
return await this.validationExecutor.validateForm(e,
|
|
51
|
+
async validateForm(e, a) {
|
|
52
|
+
return await this.validationExecutor.validateForm(e, a);
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Creates and caches a Zod schema for a component
|
|
@@ -86,12 +86,7 @@ class c {
|
|
|
86
86
|
), this.validationCache.clearCache());
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
function g(s) {
|
|
91
|
-
return new c(s);
|
|
92
|
-
}
|
|
89
|
+
new o();
|
|
93
90
|
export {
|
|
94
|
-
|
|
95
|
-
g as createValidationEngine,
|
|
96
|
-
v as defaultValidationEngine
|
|
91
|
+
o as ValidationEngine
|
|
97
92
|
};
|
package/FormWizard.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Form Wizard Component - Legacy export file for backward compatibility
|
|
3
|
-
*
|
|
4
|
-
* This file maintains backward compatibility for existing imports.
|
|
5
|
-
* New code should import from the features directory structure.
|
|
6
|
-
*/
|
|
7
|
-
export * from '../../core/src/index.ts';
|
|
8
|
-
export * from '../../ui/src/index.ts';
|
|
9
|
-
export * from './features/form-runtime';
|
|
10
|
-
export { FormWizard as default } from './features/form-runtime';
|
package/core/src/types/api.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
const e = {
|
|
3
|
-
string: ["text", "email", "tel", "password", "textarea", "select"],
|
|
4
|
-
number: ["number", "range"],
|
|
5
|
-
boolean: ["checkbox", "radio"],
|
|
6
|
-
array: ["select", "checkbox-group", "radio-group"],
|
|
7
|
-
object: [],
|
|
8
|
-
null: []
|
|
9
|
-
};
|
|
10
|
-
export {
|
|
11
|
-
e as TYPE_COMPATIBILITY
|
|
12
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { z as o } from "zod";
|
|
3
|
-
const t = o.object({
|
|
4
|
-
team: o.string()
|
|
5
|
-
}), a = o.object({
|
|
6
|
-
primaryStorage: o.string(),
|
|
7
|
-
fallbackPaths: o.array(o.string()).optional(),
|
|
8
|
-
staticAssets: o.string().optional(),
|
|
9
|
-
templates: o.union([o.string(), t]).optional()
|
|
10
|
-
}), e = o.object({
|
|
11
|
-
enabled: o.boolean(),
|
|
12
|
-
maxBackups: o.number().int().positive(),
|
|
13
|
-
backupPath: o.string()
|
|
14
|
-
}), n = o.object({
|
|
15
|
-
strategy: o.enum(["filesystem", "memory", "database"]),
|
|
16
|
-
paths: a,
|
|
17
|
-
fileExtension: o.string(),
|
|
18
|
-
createDirectories: o.boolean(),
|
|
19
|
-
backup: e.optional()
|
|
20
|
-
}), i = o.object({
|
|
21
|
-
strictMode: o.boolean(),
|
|
22
|
-
validateOnLoad: o.boolean(),
|
|
23
|
-
allowMigration: o.boolean()
|
|
24
|
-
}), r = o.object({
|
|
25
|
-
minVersion: o.string(),
|
|
26
|
-
maxVersion: o.string()
|
|
27
|
-
}), s = o.object({
|
|
28
|
-
version: o.string(),
|
|
29
|
-
lastUpdated: o.string().datetime(),
|
|
30
|
-
compatibility: r
|
|
31
|
-
}), c = o.object({
|
|
32
|
-
autoBackup: o.boolean(),
|
|
33
|
-
formTemplates: o.boolean(),
|
|
34
|
-
formVersioning: o.boolean(),
|
|
35
|
-
formSharing: o.boolean()
|
|
36
|
-
}), l = o.object({
|
|
37
|
-
enabled: o.boolean(),
|
|
38
|
-
sourceDirectories: o.array(o.string()),
|
|
39
|
-
preserveOriginals: o.boolean(),
|
|
40
|
-
logMigration: o.boolean()
|
|
41
|
-
}), m = o.object({
|
|
42
|
-
$schema: o.string().optional(),
|
|
43
|
-
storage: n,
|
|
44
|
-
validation: i.optional(),
|
|
45
|
-
metadata: s.optional(),
|
|
46
|
-
features: c.optional(),
|
|
47
|
-
migration: l.optional()
|
|
48
|
-
});
|
|
49
|
-
export {
|
|
50
|
-
e as BackupConfigSchema,
|
|
51
|
-
r as CompatibilitySchema,
|
|
52
|
-
c as FeaturesConfigSchema,
|
|
53
|
-
m as FormConfigSchema,
|
|
54
|
-
s as MetadataConfigSchema,
|
|
55
|
-
l as MigrationConfigSchema,
|
|
56
|
-
n as StorageConfigSchema,
|
|
57
|
-
a as StoragePathsSchema,
|
|
58
|
-
t as TemplateStorageConfigSchema,
|
|
59
|
-
i as ValidationConfigSchema
|
|
60
|
-
};
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { z as o } from "zod";
|
|
3
|
-
const i = o.object({
|
|
4
|
-
id: o.string(),
|
|
5
|
-
type: o.string(),
|
|
6
|
-
label: o.string().optional(),
|
|
7
|
-
required: o.boolean().optional(),
|
|
8
|
-
validation: o.record(o.unknown()).optional(),
|
|
9
|
-
triggers: o.array(
|
|
10
|
-
o.object({
|
|
11
|
-
type: o.string(),
|
|
12
|
-
condition: o.unknown().optional(),
|
|
13
|
-
actions: o.array(
|
|
14
|
-
o.object({
|
|
15
|
-
type: o.string(),
|
|
16
|
-
config: o.unknown().optional()
|
|
17
|
-
})
|
|
18
|
-
)
|
|
19
|
-
})
|
|
20
|
-
).optional()
|
|
21
|
-
}).passthrough(), e = o.object({
|
|
22
|
-
id: o.string(),
|
|
23
|
-
title: o.string().optional(),
|
|
24
|
-
mode: o.enum(["readOnly", "editable", "default", "isEditable"]).optional(),
|
|
25
|
-
components: o.array(i),
|
|
26
|
-
showTitle: o.boolean().optional(),
|
|
27
|
-
showActionLink: o.boolean().optional(),
|
|
28
|
-
editText: o.string().optional(),
|
|
29
|
-
cancelText: o.string().optional(),
|
|
30
|
-
saveText: o.string().optional(),
|
|
31
|
-
// biome-ignore lint/suspicious/noExplicitAny: preserves backward compat (was `any` in hand-written interface)
|
|
32
|
-
genericTriggerActions: o.any().optional(),
|
|
33
|
-
visibilityConditions: o.unknown().optional(),
|
|
34
|
-
triggerContexts: o.object({
|
|
35
|
-
supportsSectionSave: o.boolean(),
|
|
36
|
-
showSaveButton: o.boolean(),
|
|
37
|
-
autoSaveOnNavigate: o.boolean()
|
|
38
|
-
}).optional(),
|
|
39
|
-
fieldValidation: o.unknown().optional()
|
|
40
|
-
// Complex nested structure, validate at runtime
|
|
41
|
-
}).passthrough(), t = o.object({
|
|
42
|
-
next: o.object({
|
|
43
|
-
label: o.string(),
|
|
44
|
-
enabled: o.boolean()
|
|
45
|
-
}),
|
|
46
|
-
previous: o.object({
|
|
47
|
-
label: o.string(),
|
|
48
|
-
enabled: o.boolean()
|
|
49
|
-
})
|
|
50
|
-
}), a = o.object({
|
|
51
|
-
label: o.string().optional(),
|
|
52
|
-
showPercentage: o.boolean().optional(),
|
|
53
|
-
duration: o.number().optional(),
|
|
54
|
-
size: o.enum(["sm", "md", "lg"]).optional(),
|
|
55
|
-
variant: o.enum(["default", "minimal", "branded", "striped"]).optional(),
|
|
56
|
-
animationSpeed: o.enum(["slow", "normal", "fast"]).optional(),
|
|
57
|
-
completionMessage: o.string().optional(),
|
|
58
|
-
apiEndpoint: o.object({
|
|
59
|
-
endpoint: o.string(),
|
|
60
|
-
method: o.enum(["GET", "POST", "PUT", "DELETE"]).optional(),
|
|
61
|
-
successStatus: o.union([o.number(), o.array(o.number())]).optional()
|
|
62
|
-
}).optional()
|
|
63
|
-
}).optional(), r = o.object({
|
|
64
|
-
id: o.string(),
|
|
65
|
-
title: o.string(),
|
|
66
|
-
displayTitle: o.boolean().optional(),
|
|
67
|
-
showStepNumber: o.boolean().optional(),
|
|
68
|
-
sections: o.array(e).optional(),
|
|
69
|
-
navigation: t,
|
|
70
|
-
actions: o.array(o.unknown()).optional(),
|
|
71
|
-
// biome-ignore lint/suspicious/noExplicitAny: preserves backward compat (was `any` in hand-written interface)
|
|
72
|
-
genericTriggerActions: o.any().optional(),
|
|
73
|
-
waitForLoader: o.boolean().optional(),
|
|
74
|
-
loaderConfig: a
|
|
75
|
-
}).passthrough(), l = o.object({
|
|
76
|
-
id: o.string(),
|
|
77
|
-
templateId: o.string(),
|
|
78
|
-
navigation: t.partial().optional(),
|
|
79
|
-
readonly: o.boolean().optional(),
|
|
80
|
-
title: o.string().optional(),
|
|
81
|
-
stepIndex: o.number().optional(),
|
|
82
|
-
componentOverrides: o.record(o.unknown()).optional(),
|
|
83
|
-
sectionOverrides: o.record(o.unknown()).optional(),
|
|
84
|
-
showStepNumber: o.boolean().optional(),
|
|
85
|
-
actions: o.array(o.unknown()).optional()
|
|
86
|
-
}).passthrough(), s = o.object({
|
|
87
|
-
schemaVersion: o.number().optional(),
|
|
88
|
-
// Version tracking for lazy migration
|
|
89
|
-
id: o.string(),
|
|
90
|
-
title: o.string(),
|
|
91
|
-
description: o.string().optional(),
|
|
92
|
-
steps: o.array(o.union([r, l])),
|
|
93
|
-
validationMessageStyle: o.enum(["withLabel", "simple"]).optional(),
|
|
94
|
-
// biome-ignore lint/suspicious/noExplicitAny: preserves backward compat (was `any` in hand-written interface)
|
|
95
|
-
genericTriggerActions: o.any().optional()
|
|
96
|
-
}).passthrough();
|
|
97
|
-
function c(n) {
|
|
98
|
-
return s.safeParse(n);
|
|
99
|
-
}
|
|
100
|
-
function g(n) {
|
|
101
|
-
return n?.schemaVersion ?? 1;
|
|
102
|
-
}
|
|
103
|
-
export {
|
|
104
|
-
i as FormComponentSchema,
|
|
105
|
-
e as FormSectionSchema,
|
|
106
|
-
r as FormStepSchema,
|
|
107
|
-
s as FormWizardConfigSchema,
|
|
108
|
-
a as StepLoaderConfigSchema,
|
|
109
|
-
t as StepNavigationSchema,
|
|
110
|
-
l as TemplateStepSchema,
|
|
111
|
-
g as getSchemaVersion,
|
|
112
|
-
c as validateFormConfig
|
|
113
|
-
};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
const l = {
|
|
3
|
-
required: {
|
|
4
|
-
withLabel: (e) => `${e} is verplicht`,
|
|
5
|
-
simple: () => "Dit veld is verplicht"
|
|
6
|
-
},
|
|
7
|
-
minLength: {
|
|
8
|
-
withLabel: (e, i) => `${e} moet minimaal ${i} tekens lang zijn`,
|
|
9
|
-
simple: (e) => `Dit veld moet minimaal ${e} tekens lang zijn`
|
|
10
|
-
},
|
|
11
|
-
maxLength: {
|
|
12
|
-
withLabel: (e, i) => `${e} moet maximaal ${i} tekens lang zijn`,
|
|
13
|
-
simple: (e) => `Dit veld moet maximaal ${e} tekens lang zijn`
|
|
14
|
-
},
|
|
15
|
-
pattern: {
|
|
16
|
-
withLabel: (e) => `${e} formaat is ongeldig`,
|
|
17
|
-
simple: () => "Dit veld formaat is ongeldig"
|
|
18
|
-
},
|
|
19
|
-
email: {
|
|
20
|
-
withLabel: (e) => `${e} moet een geldig e-mailadres zijn`,
|
|
21
|
-
simple: () => "Dit veld moet een geldig e-mailadres zijn"
|
|
22
|
-
},
|
|
23
|
-
min: {
|
|
24
|
-
withLabel: (e, i) => `${e} moet minimaal ${i} zijn`,
|
|
25
|
-
simple: (e) => `Dit veld moet minimaal ${e} zijn`
|
|
26
|
-
},
|
|
27
|
-
max: {
|
|
28
|
-
withLabel: (e, i) => `${e} moet maximaal ${i} zijn`,
|
|
29
|
-
simple: (e) => `Dit veld moet maximaal ${e} zijn`
|
|
30
|
-
},
|
|
31
|
-
minItems: {
|
|
32
|
-
withLabel: (e, i) => `${e} moet minimaal ${i} items hebben`,
|
|
33
|
-
simple: (e) => `Dit veld moet minimaal ${e} items hebben`
|
|
34
|
-
},
|
|
35
|
-
maxItems: {
|
|
36
|
-
withLabel: (e, i) => `${e} moet maximaal ${i} items hebben`,
|
|
37
|
-
simple: (e) => `Dit veld moet maximaal ${e} items hebben`
|
|
38
|
-
},
|
|
39
|
-
url: {
|
|
40
|
-
withLabel: (e) => `${e} moet een geldige URL zijn`,
|
|
41
|
-
simple: () => "Dit veld moet een geldige URL zijn"
|
|
42
|
-
},
|
|
43
|
-
phone: {
|
|
44
|
-
withLabel: (e) => `${e} moet een geldig telefoonnummer zijn`,
|
|
45
|
-
simple: () => "Dit veld moet een geldig telefoonnummer zijn"
|
|
46
|
-
}
|
|
47
|
-
}, n = {
|
|
48
|
-
// For components that need labeled messages (ValidationBuilder, etc.)
|
|
49
|
-
withLabel: (e, i, ...m) => l[e].withLabel(i, ...m),
|
|
50
|
-
// For components that need simple messages (createZodSchema, etc.)
|
|
51
|
-
simple: (e, ...i) => l[e].simple(...i),
|
|
52
|
-
// Dynamic message selection based on form configuration (defaults to withLabel)
|
|
53
|
-
auto: (e, i, m = "withLabel", ...t) => {
|
|
54
|
-
const a = l[e];
|
|
55
|
-
return m === "simple" ? a.simple(...t) : a.withLabel(i, ...t);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
export {
|
|
59
|
-
l as DEFAULT_VALIDATION_MESSAGES,
|
|
60
|
-
n as getValidationMessage
|
|
61
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { ActionExecutor as e } from "../wizard/src/features/api-integration/services/ActionExecutor.js";
|
|
3
|
-
import { ApiCallExecutor as c } from "../wizard/src/features/api-integration/services/ApiCallExecutor.js";
|
|
4
|
-
import { ApiCallService as x } from "../wizard/src/features/api-integration/services/ApiCallService.js";
|
|
5
|
-
import { DialogExecutor as f } from "../wizard/src/features/api-integration/services/DialogExecutor.js";
|
|
6
|
-
import { EnhancedActionExecutor as n } from "../wizard/src/features/api-integration/components/EnhancedActionExecutor/EnhancedActionExecutor.js";
|
|
7
|
-
import { GenericTriggerService as l } from "../wizard/src/features/api-integration/services/GenericTriggerService.js";
|
|
8
|
-
import { NavigationExecutor as E } from "../wizard/src/features/api-integration/services/NavigationExecutor.js";
|
|
9
|
-
export {
|
|
10
|
-
e as ActionExecutor,
|
|
11
|
-
c as ApiCallExecutor,
|
|
12
|
-
x as ApiCallService,
|
|
13
|
-
f as DialogExecutor,
|
|
14
|
-
n as EnhancedActionExecutor,
|
|
15
|
-
l as GenericTriggerService,
|
|
16
|
-
E as NavigationExecutor
|
|
17
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { ActionDialog as r } from "../wizard/src/features/dialog-system/components/ActionDialog/ActionDialog.js";
|
|
3
|
-
import { ConfirmationDialog as a } from "../wizard/src/features/dialog-system/components/ConfirmationDialog/ConfirmationDialog.js";
|
|
4
|
-
import { EmailVerificationDialog as f } from "../wizard/src/features/dialog-system/components/EmailVerificationDialog/EmailVerificationDialog.js";
|
|
5
|
-
export {
|
|
6
|
-
r as ActionDialog,
|
|
7
|
-
a as ConfirmationDialog,
|
|
8
|
-
f as EmailVerificationDialog
|
|
9
|
-
};
|
package/features/form-runtime.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { adaptComponentForRegistry as r } from "../wizard/src/features/form-runtime/ComponentAdapterComplete/ComponentAdapterComplete.js";
|
|
3
|
-
import { default as o } from "../wizard/src/features/form-runtime/FormWizard/FormWizard.js";
|
|
4
|
-
import { default as i } from "../wizard/src/features/form-runtime/components/FormField.js";
|
|
5
|
-
import { default as s } from "../wizard/src/features/form-runtime/components/FormSection/FormSection.js";
|
|
6
|
-
import { default as n } from "../wizard/src/features/form-runtime/components/FormStep/FormStep.js";
|
|
7
|
-
import { getAvailableGenericTemplatesSync as d, getTemplateInfo as T, validateTemplateReferences as f } from "../wizard/src/features/form-runtime/config/templateUtils.js";
|
|
8
|
-
import { getUsedTemplateIds as u, hasTemplateSteps as x, resolveFormWizardConfig as I } from "../wizard/src/features/form-runtime/config/configResolver.js";
|
|
9
|
-
import { getLockMessage as A, getTemplateConfig as F, getTemplateDisplayConfig as C, getTemplatePermissions as y, getTemplateTypeFromInput as E, isActionAllowed as M, isGenericTemplateInput as S, isStepLocked as V, isTeamTemplateInput as b, validateTemplateAction as h } from "../wizard/src/features/form-runtime/config/templateConfig.js";
|
|
10
|
-
import { clearTemplateCache as k, getAvailableGenericTemplates as G, getAvailableTemplates as R, getTemplateMetadata as U, loadTemplate as L, resolveTemplateStep as w } from "../wizard/src/features/form-runtime/config/templateLoader.js";
|
|
11
|
-
import { useComponentTriggers as N, useFieldTriggerMonitor as W } from "../wizard/src/features/form-runtime/hooks/useComponentTriggers.js";
|
|
12
|
-
import { getErrorDebugInfo as P, getFirstErrorMessage as _, getMostRelevantError as j, parseAllErrors as q, parseError as B } from "../wizard/src/features/form-runtime/utils/errorUtils.js";
|
|
13
|
-
import { validateComponentValue as J, validateRule as K } from "../wizard/src/features/form-runtime/utils/validation.js";
|
|
14
|
-
import { VALIDATION_TIMING as X, clearUserInteractionTracking as Y, getDisplayErrorMessage as Z, getValidationTiming as $, hasUserInteracted as ee, markFieldAsUserInteracted as te, shouldShowValidationError as re, updateValidationCache as ae } from "../wizard/src/features/form-runtime/utils/validationUX.js";
|
|
15
|
-
import { evaluateVisibility as le, getVisibilityDependencies as ie } from "../wizard/src/features/form-runtime/utils/visibilityUtils.js";
|
|
16
|
-
export {
|
|
17
|
-
r as ComponentAdapterComplete,
|
|
18
|
-
i as FormField,
|
|
19
|
-
s as FormSection,
|
|
20
|
-
n as FormStep,
|
|
21
|
-
o as FormWizard,
|
|
22
|
-
X as VALIDATION_TIMING,
|
|
23
|
-
k as clearTemplateCache,
|
|
24
|
-
Y as clearUserInteractionTracking,
|
|
25
|
-
le as evaluateVisibility,
|
|
26
|
-
G as getAvailableGenericTemplates,
|
|
27
|
-
d as getAvailableGenericTemplatesSync,
|
|
28
|
-
R as getAvailableTemplates,
|
|
29
|
-
Z as getDisplayErrorMessage,
|
|
30
|
-
P as getErrorDebugInfo,
|
|
31
|
-
_ as getFirstErrorMessage,
|
|
32
|
-
A as getLockMessage,
|
|
33
|
-
j as getMostRelevantError,
|
|
34
|
-
F as getTemplateConfig,
|
|
35
|
-
C as getTemplateDisplayConfig,
|
|
36
|
-
T as getTemplateInfo,
|
|
37
|
-
U as getTemplateMetadata,
|
|
38
|
-
y as getTemplatePermissions,
|
|
39
|
-
E as getTemplateTypeFromInput,
|
|
40
|
-
u as getUsedTemplateIds,
|
|
41
|
-
$ as getValidationTiming,
|
|
42
|
-
ie as getVisibilityDependencies,
|
|
43
|
-
x as hasTemplateSteps,
|
|
44
|
-
ee as hasUserInteracted,
|
|
45
|
-
M as isActionAllowed,
|
|
46
|
-
S as isGenericTemplateInput,
|
|
47
|
-
V as isStepLocked,
|
|
48
|
-
b as isTeamTemplateInput,
|
|
49
|
-
L as loadTemplate,
|
|
50
|
-
te as markFieldAsUserInteracted,
|
|
51
|
-
q as parseAllErrors,
|
|
52
|
-
B as parseError,
|
|
53
|
-
I as resolveFormWizardConfig,
|
|
54
|
-
w as resolveTemplateStep,
|
|
55
|
-
re as shouldShowValidationError,
|
|
56
|
-
ae as updateValidationCache,
|
|
57
|
-
N as useComponentTriggers,
|
|
58
|
-
W as useFieldTriggerMonitor,
|
|
59
|
-
J as validateComponentValue,
|
|
60
|
-
K as validateRule,
|
|
61
|
-
h as validateTemplateAction,
|
|
62
|
-
f as validateTemplateReferences
|
|
63
|
-
};
|
package/features/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Form Wizard Component Features
|
|
3
|
-
*
|
|
4
|
-
* Feature-based exports for the form wizard component
|
|
5
|
-
*/
|
|
6
|
-
export * from './api-integration';
|
|
7
|
-
export * from './dialog-system';
|
|
8
|
-
export * from './form-runtime';
|
|
9
|
-
export * from './state-management';
|
|
10
|
-
export * from './trigger-action-system';
|
|
11
|
-
export * from './validation-system';
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { ComponentTriggerEngine as o, createExecutionPlan as r, determineTriggerContext as i, evaluateComponentTriggers as t, findComponentActions as g, findComponentTriggers as m, findDirtyComponentsForNavigation as s, findDirtyComponentsWithTriggers as a, getTriggersForAction as p, hasComponentActions as c, hasComponentTriggers as C } from "../wizard/src/features/state-management/machines/componentTriggerEngine.js";
|
|
3
|
-
import { FormMachineContext as h, useFormMachine as T, useFormMachineProvider as d } from "../wizard/src/features/state-management/machines/useFormMachine.js";
|
|
4
|
-
import { formMachine as u } from "../wizard/src/features/state-management/machines/formMachine.js";
|
|
5
|
-
export {
|
|
6
|
-
o as ComponentTriggerEngine,
|
|
7
|
-
h as FormMachineContext,
|
|
8
|
-
r as createExecutionPlan,
|
|
9
|
-
i as determineTriggerContext,
|
|
10
|
-
t as evaluateComponentTriggers,
|
|
11
|
-
g as findComponentActions,
|
|
12
|
-
m as findComponentTriggers,
|
|
13
|
-
s as findDirtyComponentsForNavigation,
|
|
14
|
-
a as findDirtyComponentsWithTriggers,
|
|
15
|
-
u as formMachine,
|
|
16
|
-
p as getTriggersForAction,
|
|
17
|
-
c as hasComponentActions,
|
|
18
|
-
C as hasComponentTriggers,
|
|
19
|
-
T as useFormMachine,
|
|
20
|
-
d as useFormMachineProvider
|
|
21
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { ActionLoadingIndicator as o } from "../wizard/src/features/trigger-action-system/components/ActionLoadingIndicator/ActionLoadingIndicator.js";
|
|
3
|
-
import { ActionManager as n } from "../wizard/src/features/trigger-action-system/components/ActionManager.js";
|
|
4
|
-
import { ComponentAlert as g } from "../wizard/src/features/trigger-action-system/components/ComponentAlert/ComponentAlert.js";
|
|
5
|
-
import { GenericTriggerEngine as a, createTriggerContext as m } from "../wizard/src/features/trigger-action-system/utils/GenericTriggerEngine.js";
|
|
6
|
-
export {
|
|
7
|
-
o as ActionLoadingIndicator,
|
|
8
|
-
n as ActionManager,
|
|
9
|
-
g as ComponentAlert,
|
|
10
|
-
a as GenericTriggerEngine,
|
|
11
|
-
m as createTriggerContext
|
|
12
|
-
};
|