@digiform/wizard 0.3.6 → 0.5.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/{ui/src/component-registry → core/src/registry}/renderComponent.js +1 -1
- package/{ui/src/lib → core/src/utils}/logger.js +2 -1
- package/features/form-runtime/ComponentAdapterComplete/ComponentAdapterComplete.d.ts +2 -3
- package/features/form-runtime/components/renderers/InteractiveFieldRenderer/InteractiveFieldRenderer.d.ts +2 -4
- package/package.json +1 -1
- package/renderer/RHCRenderer.d.ts +2 -0
- package/renderer/rhc-field-type-map.d.ts +5 -0
- package/renderer/rhc-selection.config.d.ts +0 -0
- package/styles.css +1 -1
- package/wizard/src/features/api-integration/components/EnhancedActionExecutor/EnhancedActionExecutor.js +1 -2
- package/wizard/src/features/form-runtime/ComponentAdapterComplete/ComponentAdapterComplete.js +33 -47
- package/wizard/src/features/form-runtime/FormWizard/FormWizard.js +35 -35
- package/wizard/src/features/form-runtime/components/FormField.js +24 -30
- package/wizard/src/features/form-runtime/components/FormFooter.js +18 -19
- package/wizard/src/features/form-runtime/components/FormHeader.js +3 -3
- package/wizard/src/features/form-runtime/components/FormStep/FormStep.js +1 -2
- package/wizard/src/features/form-runtime/components/renderers/DisplayModeRenderer/DisplayModeRenderer.js +7 -16
- package/wizard/src/features/form-runtime/components/renderers/InteractiveFieldRenderer/InteractiveFieldRenderer.js +21 -34
- package/wizard/src/features/form-runtime/utils/formDataBuilder.js +4 -5
- package/wizard/src/features/validation-system/validation/ActionValidation.js +7 -8
- package/wizard/src/renderer/RHCRenderer.js +160 -0
- package/wizard/src/renderer/rhc-field-type-map.js +25 -0
- package/renderer/wizardRenderer.d.ts +0 -2
- package/ui/src/components/checkbox/checkbox.js +0 -20
- package/ui/src/components/checkbox/checkbox.module.css.js +0 -10
- package/ui/src/components/input/input.js +0 -20
- package/ui/src/components/input/input.module.css.js +0 -8
- package/ui/src/components/radio-group/radio-group.js +0 -30
- package/ui/src/components/radio-group/radio-group.module.css.js +0 -14
- package/ui/src/components/select/select.js +0 -115
- package/ui/src/components/select/select.module.css.js +0 -32
- package/ui/src/components/textarea/textarea.js +0 -19
- package/ui/src/components/textarea/textarea.module.css.js +0 -8
- package/ui/src/design-system/components/FormFieldWrapper.js +0 -16
- package/wizard/src/renderer/wizardRenderer.js +0 -123
- /package/{ui/src/lib → core/src}/providers/FormEditingContext.js +0 -0
- /package/{ui/src/theme/ThemeProvider.js → core/src/providers/ThemeContext.js} +0 -0
- /package/{ui/src/lib → core/src}/types/guards.js +0 -0
- /package/{ui/src/lib → core/src}/utils/componentUtils.js +0 -0
- /package/{ui/src/lib → core/src}/utils/templateDialogResolver.js +0 -0
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as h, jsxs as F } from "react/jsx-runtime";
|
|
3
3
|
import { clsx as b } from "clsx";
|
|
4
|
-
|
|
5
|
-
import { useFormContext as
|
|
6
|
-
import { useFormEditing as g } from "../../../../../ui/src/lib/providers/FormEditingContext.js";
|
|
4
|
+
import { useFormEditing as S } from "../../../../../core/src/providers/FormEditingContext.js";
|
|
5
|
+
import { useFormContext as g } from "../hooks/useFormContext.js";
|
|
7
6
|
import { useFormMachine as N } from "../../state-management/machines/useFormMachine.js";
|
|
8
7
|
import { Button as A } from "@rijkshuisstijl-community/components-react";
|
|
9
8
|
const I = ({
|
|
10
9
|
navigation: r,
|
|
11
10
|
children: a,
|
|
12
|
-
isDisplayOnly:
|
|
11
|
+
isDisplayOnly: t = !1,
|
|
13
12
|
onNext: c,
|
|
14
|
-
isLastStep:
|
|
13
|
+
isLastStep: u = !1,
|
|
15
14
|
isDisabled: n = !1,
|
|
16
15
|
labels: i,
|
|
17
16
|
...o
|
|
18
17
|
}) => {
|
|
19
18
|
const l = () => {
|
|
20
|
-
|
|
21
|
-
}, m = r?.next?.label || (
|
|
19
|
+
t || n || c?.();
|
|
20
|
+
}, m = r?.next?.label || (u ? i?.finish ?? "Voltooien" : i?.next ?? "Volgende");
|
|
22
21
|
return /* @__PURE__ */ F(
|
|
23
22
|
"div",
|
|
24
23
|
{
|
|
25
24
|
className: b(
|
|
26
|
-
(n ||
|
|
25
|
+
(n || t) && "opacity-50",
|
|
27
26
|
o.className
|
|
28
27
|
),
|
|
29
28
|
...o,
|
|
@@ -34,45 +33,45 @@ const I = ({
|
|
|
34
33
|
{
|
|
35
34
|
appearance: "primary-action-button",
|
|
36
35
|
onClick: l,
|
|
37
|
-
disabled: n ||
|
|
36
|
+
disabled: n || t,
|
|
38
37
|
children: m
|
|
39
38
|
}
|
|
40
39
|
)
|
|
41
40
|
]
|
|
42
41
|
}
|
|
43
42
|
);
|
|
44
|
-
},
|
|
45
|
-
const { isEditing: c } =
|
|
43
|
+
}, _ = ({ children: r, labels: a, ...t }) => {
|
|
44
|
+
const { isEditing: c } = S(), [u, n, i] = N(), { currentStep: o, isLastStep: l, nextStep: m } = i, { navigation: p } = o, s = g(), x = () => {
|
|
46
45
|
const d = Object.keys(s.state.fieldMeta).filter((f) => {
|
|
47
|
-
const
|
|
48
|
-
return !
|
|
46
|
+
const e = s.state.fieldMeta[f];
|
|
47
|
+
return !e.isValid && e.errors?.length > 0;
|
|
49
48
|
});
|
|
50
49
|
d.length > 0 && n({ type: "TRIGGER_STEP_VALIDATION", fieldIds: d });
|
|
51
50
|
};
|
|
52
51
|
return /* @__PURE__ */ h(
|
|
53
52
|
I,
|
|
54
53
|
{
|
|
55
|
-
navigation:
|
|
54
|
+
navigation: p,
|
|
56
55
|
onNext: async () => {
|
|
57
56
|
if (!s.state.canSubmit) {
|
|
58
57
|
x();
|
|
59
58
|
return;
|
|
60
59
|
}
|
|
61
|
-
const f = (o.actions ?? []).some((
|
|
60
|
+
const f = (o.actions ?? []).some((e) => e.trigger === "onStepFinish");
|
|
62
61
|
try {
|
|
63
62
|
f ? await s.handleSubmit() : m();
|
|
64
|
-
} catch (
|
|
65
|
-
console.error("Form submission failed:",
|
|
63
|
+
} catch (e) {
|
|
64
|
+
console.error("Form submission failed:", e);
|
|
66
65
|
}
|
|
67
66
|
},
|
|
68
67
|
isLastStep: l,
|
|
69
68
|
isDisabled: c,
|
|
70
69
|
labels: a,
|
|
71
|
-
...
|
|
70
|
+
...t,
|
|
72
71
|
children: /* @__PURE__ */ h(s.Subscribe, { children: r })
|
|
73
72
|
}
|
|
74
73
|
);
|
|
75
74
|
};
|
|
76
75
|
export {
|
|
77
|
-
|
|
76
|
+
_ as default
|
|
78
77
|
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { jsx as u } from "react/jsx-runtime";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import { FormHeaderBase as c } from "../../../../../ui/src/components/form-header-base/form-header-base.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { useFormEditing as l } from "../../../../../core/src/providers/FormEditingContext.js";
|
|
6
|
+
import { useFormMachine as d } from "../../state-management/machines/useFormMachine.js";
|
|
7
7
|
const N = (t) => {
|
|
8
|
-
const { isEditing: o } =
|
|
8
|
+
const { isEditing: o } = l(), [, , i] = d(), { steps: n, currentStep: e, currentStepIndex: s, previousStep: a, goToStep: m } = i, p = (r) => {
|
|
9
9
|
r === "previous" ? a() : m(r);
|
|
10
10
|
};
|
|
11
11
|
return /* @__PURE__ */ u(
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as f, jsx as r, Fragment as _ } from "react/jsx-runtime";
|
|
3
3
|
import g from "./FormStep.module.css.js";
|
|
4
|
-
|
|
5
|
-
import { logger as w } from "../../../../../../ui/src/lib/logger.js";
|
|
4
|
+
import { logger as w } from "../../../../../../core/src/utils/logger.js";
|
|
6
5
|
import { useForm as I } from "@tanstack/react-form";
|
|
7
6
|
import { useRef as p } from "react";
|
|
8
7
|
import { LoaderProvider as M, useLoaderContext as C } from "../../context/LoaderContext.js";
|
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as p, jsx as r } from "react/jsx-runtime";
|
|
3
|
-
import { clsx as
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
const u = ({
|
|
3
|
+
import { clsx as d } from "clsx";
|
|
4
|
+
import a from "./DisplayModeRenderer.module.css.js";
|
|
5
|
+
import { renderComponentDisplayValue as m } from "../../../utils/componentDisplayValue.js";
|
|
6
|
+
const y = ({
|
|
8
7
|
component: e,
|
|
9
8
|
fieldValue: s
|
|
10
9
|
}) => {
|
|
11
|
-
const l =
|
|
10
|
+
const l = m(e, s), i = e.properties?.description, o = /* @__PURE__ */ p("div", { className: "form-field-display", children: [
|
|
12
11
|
/* @__PURE__ */ r("div", { className: "rhc-form-field-label", children: e.properties?.label }),
|
|
13
12
|
l,
|
|
14
13
|
i && /* @__PURE__ */ r("p", { className: "rhc-form-field-description", children: i })
|
|
15
14
|
] });
|
|
16
|
-
return /* @__PURE__ */ r(
|
|
17
|
-
m,
|
|
18
|
-
{
|
|
19
|
-
invalid: !1,
|
|
20
|
-
errorMessage: void 0,
|
|
21
|
-
className: a("form-field-wrapper form-field-display-mode", d.displayWrapper),
|
|
22
|
-
input: o
|
|
23
|
-
}
|
|
24
|
-
);
|
|
15
|
+
return /* @__PURE__ */ r("div", { className: d("form-field-wrapper form-field-display-mode", a.displayWrapper), children: o });
|
|
25
16
|
};
|
|
26
17
|
export {
|
|
27
|
-
|
|
18
|
+
y as DisplayModeRenderer
|
|
28
19
|
};
|
|
@@ -1,56 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { shouldShowValidationError as E, getDisplayErrorMessage as F, markFieldAsUserInteracted as w } from "../../../utils/validationUX.js";
|
|
8
|
-
const O = ({
|
|
2
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
+
import h from "./InteractiveFieldRenderer.module.css.js";
|
|
4
|
+
import { adaptComponentForRegistry as u } from "../../../ComponentAdapterComplete/ComponentAdapterComplete.js";
|
|
5
|
+
import { shouldShowValidationError as v, getDisplayErrorMessage as g, markFieldAsUserInteracted as E } from "../../../utils/validationUX.js";
|
|
6
|
+
const w = ({
|
|
9
7
|
component: e,
|
|
10
8
|
field: r,
|
|
11
|
-
readOnly:
|
|
12
|
-
needsFormFieldWrapper: d,
|
|
9
|
+
readOnly: a,
|
|
13
10
|
isSubmitAttempted: t,
|
|
14
|
-
onChange:
|
|
15
|
-
onBlur:
|
|
11
|
+
onChange: n,
|
|
12
|
+
onBlur: i
|
|
16
13
|
}) => {
|
|
17
|
-
const
|
|
14
|
+
const d = r.state.value, l = r.state.meta.errors || [], c = !r.state.meta.isValid && l.length > 0, s = v(
|
|
18
15
|
r.state.meta,
|
|
19
16
|
t,
|
|
20
17
|
e.id
|
|
21
18
|
// Pass component ID for validation cache
|
|
22
|
-
),
|
|
19
|
+
), o = g(
|
|
23
20
|
r.state.meta,
|
|
24
21
|
t
|
|
25
|
-
),
|
|
22
|
+
), m = u(
|
|
26
23
|
e,
|
|
27
|
-
|
|
28
|
-
l,
|
|
24
|
+
d,
|
|
29
25
|
n,
|
|
26
|
+
a,
|
|
30
27
|
() => {
|
|
31
|
-
|
|
28
|
+
E(e.id), i();
|
|
32
29
|
},
|
|
33
30
|
void 0,
|
|
34
31
|
// errors parameter
|
|
35
|
-
void 0
|
|
32
|
+
void 0,
|
|
36
33
|
// state parameter
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
children: h
|
|
42
|
-
}
|
|
34
|
+
!!(s && c),
|
|
35
|
+
// invalid
|
|
36
|
+
s && o ? o : void 0
|
|
37
|
+
// errorMessage
|
|
43
38
|
);
|
|
44
|
-
return
|
|
45
|
-
g,
|
|
46
|
-
{
|
|
47
|
-
invalid: s && f,
|
|
48
|
-
errorMessage: s && a ? a : void 0,
|
|
49
|
-
className: u("form-field-wrapper", v.fieldWrapper),
|
|
50
|
-
input: i
|
|
51
|
-
}
|
|
52
|
-
) : /* @__PURE__ */ o("div", { className: "form-field", children: i });
|
|
39
|
+
return /* @__PURE__ */ p("div", { className: h.fieldWrapper, children: m });
|
|
53
40
|
};
|
|
54
41
|
export {
|
|
55
|
-
|
|
42
|
+
w as InteractiveFieldRenderer
|
|
56
43
|
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
(e, t) => (e[t.id] = s(t.type), e),
|
|
2
|
+
import { isFormField as i, getDefaultValue as r } from "../../../../../core/src/utils/componentUtils.js";
|
|
3
|
+
const n = (s) => (s.sections ?? []).flatMap((e) => e.components).filter((e) => i(e.type)).reduce(
|
|
4
|
+
(e, t) => (e[t.id] = r(t.type), e),
|
|
6
5
|
{}
|
|
7
6
|
);
|
|
8
7
|
export {
|
|
9
|
-
|
|
8
|
+
n as buildDefaultValues
|
|
10
9
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import { isTemplateDialogConfig as
|
|
4
|
-
|
|
5
|
-
class m extends Error {
|
|
2
|
+
import { resolveTemplateDialog as p } from "../../../../../core/src/utils/templateDialogResolver.js";
|
|
3
|
+
import { isTemplateDialogConfig as d } from "../../../../../core/src/types/guards.js";
|
|
4
|
+
class v extends Error {
|
|
6
5
|
constructor(t, e, i, r) {
|
|
7
6
|
super(i), this.actionId = t, this.actionType = e, this.details = r, this.name = "ActionValidationError";
|
|
8
7
|
}
|
|
@@ -72,7 +71,7 @@ class n {
|
|
|
72
71
|
*/
|
|
73
72
|
static validateDialogConfig(t) {
|
|
74
73
|
const e = [];
|
|
75
|
-
if (
|
|
74
|
+
if (d(t))
|
|
76
75
|
return n.validateTemplateDialogConfig(t);
|
|
77
76
|
const i = t;
|
|
78
77
|
if (i.title || e.push("Dialog title is required"), i.content || e.push("Dialog content is required"), i.type ? ["modal", "toast", "sidebar"].includes(i.type) || e.push("Invalid dialog type") : e.push("Dialog type is required"), !i.buttons || i.buttons.length === 0)
|
|
@@ -100,7 +99,7 @@ class n {
|
|
|
100
99
|
if ((!t.template.typeId || t.template.typeId.trim() === "") && e.push("Template typeId is required"), (!t.template.config || typeof t.template.config != "object") && e.push("Template config is required and must be an object"), e.length > 0)
|
|
101
100
|
return e;
|
|
102
101
|
try {
|
|
103
|
-
const i =
|
|
102
|
+
const i = p(t);
|
|
104
103
|
return n.validateResolvedDialogConfig(i);
|
|
105
104
|
} catch (i) {
|
|
106
105
|
e.push(
|
|
@@ -207,7 +206,7 @@ class n {
|
|
|
207
206
|
try {
|
|
208
207
|
const s = o.config;
|
|
209
208
|
let a;
|
|
210
|
-
if (
|
|
209
|
+
if (d(s) ? a = p(s) : a = s, a.buttons) {
|
|
211
210
|
for (const u of a.buttons)
|
|
212
211
|
if (u.action.type === "navigate" && u.action.targetStep) {
|
|
213
212
|
const l = u.action.targetStep;
|
|
@@ -229,6 +228,6 @@ class n {
|
|
|
229
228
|
}
|
|
230
229
|
}
|
|
231
230
|
export {
|
|
232
|
-
|
|
231
|
+
v as ActionValidationError,
|
|
233
232
|
n as ActionValidator
|
|
234
233
|
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
3
|
+
import { SelectOption as b, FormFieldRadio as f, FormFieldCheckboxGroup as g, FormFieldCheckboxOption as h } from "@rijkshuisstijl-community/components-react";
|
|
4
|
+
import { wizardFieldTypeMap as v } from "./rhc-field-type-map.js";
|
|
5
|
+
const m = v, x = {
|
|
6
|
+
digits: "[0-9]*",
|
|
7
|
+
letters: "[a-zA-Z]*",
|
|
8
|
+
alphanumeric: "[a-zA-Z0-9]*"
|
|
9
|
+
}, O = ({
|
|
10
|
+
component: u,
|
|
11
|
+
value: i,
|
|
12
|
+
onChange: s,
|
|
13
|
+
isFormView: c,
|
|
14
|
+
invalid: d,
|
|
15
|
+
errorMessage: p
|
|
16
|
+
}) => {
|
|
17
|
+
const y = m[u.type];
|
|
18
|
+
if (!y)
|
|
19
|
+
return console.warn(`[RHCRenderer] No RHC component registered for type: ${u.type}`), null;
|
|
20
|
+
const e = u.properties ?? {}, l = {};
|
|
21
|
+
for (const t of y.included)
|
|
22
|
+
t in e && (l[t] = e[t]);
|
|
23
|
+
const o = y.component;
|
|
24
|
+
switch (u.type) {
|
|
25
|
+
case "text":
|
|
26
|
+
case "email":
|
|
27
|
+
case "tel":
|
|
28
|
+
case "number":
|
|
29
|
+
case "date":
|
|
30
|
+
return /* @__PURE__ */ r(
|
|
31
|
+
o,
|
|
32
|
+
{
|
|
33
|
+
type: u.type,
|
|
34
|
+
value: typeof i == "string" ? i : "",
|
|
35
|
+
...l,
|
|
36
|
+
invalid: d,
|
|
37
|
+
errorMessage: p,
|
|
38
|
+
readOnly: !!l.readOnly || !c,
|
|
39
|
+
onChange: c ? (t) => s(t.target.value) : void 0
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
case "textarea":
|
|
43
|
+
return /* @__PURE__ */ r(
|
|
44
|
+
o,
|
|
45
|
+
{
|
|
46
|
+
value: typeof i == "string" ? i : "",
|
|
47
|
+
...l,
|
|
48
|
+
invalid: d,
|
|
49
|
+
errorMessage: p,
|
|
50
|
+
readOnly: !!l.readOnly || !c,
|
|
51
|
+
onChange: c ? (t) => s(t.target.value) : void 0
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
case "checkbox": {
|
|
55
|
+
const t = typeof e.label == "string" ? e.label : "", n = typeof e.description == "string" ? e.description : void 0;
|
|
56
|
+
return /* @__PURE__ */ r(
|
|
57
|
+
g,
|
|
58
|
+
{
|
|
59
|
+
label: t,
|
|
60
|
+
description: n,
|
|
61
|
+
invalid: d,
|
|
62
|
+
errorMessage: p,
|
|
63
|
+
children: /* @__PURE__ */ r(
|
|
64
|
+
h,
|
|
65
|
+
{
|
|
66
|
+
label: t,
|
|
67
|
+
checked: !!i,
|
|
68
|
+
disabled: !!e.disabled,
|
|
69
|
+
onChange: c ? (a) => s(a.target.checked) : void 0
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
case "radioGroup": {
|
|
76
|
+
const t = Array.isArray(e.options) ? e.options : [];
|
|
77
|
+
return /* @__PURE__ */ r(
|
|
78
|
+
o,
|
|
79
|
+
{
|
|
80
|
+
...l,
|
|
81
|
+
invalid: d,
|
|
82
|
+
errorMessage: p,
|
|
83
|
+
children: t.map((n) => /* @__PURE__ */ r(
|
|
84
|
+
f,
|
|
85
|
+
{
|
|
86
|
+
label: n.label,
|
|
87
|
+
value: n.value,
|
|
88
|
+
checked: i === n.value,
|
|
89
|
+
onChange: c ? () => s(n.value) : void 0
|
|
90
|
+
},
|
|
91
|
+
n.value
|
|
92
|
+
))
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
case "dropdown": {
|
|
97
|
+
const t = Array.isArray(e.options) ? e.options : [], n = typeof e.label == "string" ? e.label : "";
|
|
98
|
+
return /* @__PURE__ */ r(
|
|
99
|
+
o,
|
|
100
|
+
{
|
|
101
|
+
label: n,
|
|
102
|
+
value: typeof i == "string" ? i : "",
|
|
103
|
+
...l,
|
|
104
|
+
invalid: d,
|
|
105
|
+
errorMessage: p,
|
|
106
|
+
onChange: c ? (a) => s(a.target.value) : void 0,
|
|
107
|
+
children: t.map((a) => /* @__PURE__ */ r(b, { value: a.value, children: a.label }, a.value))
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
case "button":
|
|
112
|
+
return /* @__PURE__ */ r(
|
|
113
|
+
o,
|
|
114
|
+
{
|
|
115
|
+
type: "button",
|
|
116
|
+
...l,
|
|
117
|
+
onClick: c ? () => s(null) : void 0,
|
|
118
|
+
children: typeof e.label == "string" ? e.label : "Submit"
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
case "heading": {
|
|
122
|
+
const t = typeof e.level == "number" ? e.level : 2, n = Math.min(6, Math.max(1, t)), a = typeof e.text == "string" ? e.text : "";
|
|
123
|
+
return /* @__PURE__ */ r(o, { level: n, children: a });
|
|
124
|
+
}
|
|
125
|
+
case "paragraph":
|
|
126
|
+
return /* @__PURE__ */ r(o, { children: typeof e.text == "string" ? e.text : "" });
|
|
127
|
+
case "alert":
|
|
128
|
+
return /* @__PURE__ */ r(o, { role: "alert", children: typeof e.message == "string" ? e.message : "" });
|
|
129
|
+
case "progress-loader":
|
|
130
|
+
return /* @__PURE__ */ r(
|
|
131
|
+
o,
|
|
132
|
+
{
|
|
133
|
+
mode: typeof e.mode == "string" ? e.mode : "indeterminate",
|
|
134
|
+
status: "loading",
|
|
135
|
+
label: typeof e.label == "string" ? e.label : void 0
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
case "code-input": {
|
|
139
|
+
const t = typeof e.pattern == "string" ? e.pattern : void 0, n = t && t !== "none" ? x[t] : void 0;
|
|
140
|
+
return /* @__PURE__ */ r(
|
|
141
|
+
o,
|
|
142
|
+
{
|
|
143
|
+
codeLength: Number(e.codeLength ?? 6) || 6,
|
|
144
|
+
label: typeof e.label == "string" ? e.label : void 0,
|
|
145
|
+
invalid: d,
|
|
146
|
+
errorMessage: p,
|
|
147
|
+
capitalize: !!e.capitalize,
|
|
148
|
+
pattern: n,
|
|
149
|
+
disabled: !!e.disabled,
|
|
150
|
+
onChange: (a) => s(a)
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
return /* @__PURE__ */ r(o, { ...l });
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
export {
|
|
159
|
+
O as rhcRenderer
|
|
160
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { CodeInputGroup as d, Alert as l, Paragraph as o, Heading as n, Button as a, FormFieldSelect as i, FormFieldRadioGroup as r, FormFieldCheckboxGroup as c, FormFieldTextarea as t, FormFieldTextInput as e } from "@rijkshuisstijl-community/components-react";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import { ProgressLoaderBar as p } from "../../../ui/src/components/ProgressLoaderBar/ProgressLoaderBar.js";
|
|
5
|
+
const s = {
|
|
6
|
+
text: { component: e, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
7
|
+
email: { component: e, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
8
|
+
tel: { component: e, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
9
|
+
number: { component: e, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
10
|
+
date: { component: e, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
11
|
+
textarea: { component: t, included: ["label", "description", "value", "placeholder", "disabled", "readOnly"] },
|
|
12
|
+
// checkbox: handled entirely in RHCRenderer switch case via FormFieldCheckboxGroup + FormFieldCheckboxOption
|
|
13
|
+
checkbox: { component: c, included: [] },
|
|
14
|
+
radioGroup: { component: r, included: ["label", "description"] },
|
|
15
|
+
dropdown: { component: i, included: ["label", "description", "disabled"] },
|
|
16
|
+
button: { component: a, included: ["disabled"] },
|
|
17
|
+
heading: { component: n, included: ["level"] },
|
|
18
|
+
paragraph: { component: o, included: [] },
|
|
19
|
+
alert: { component: l, included: [] },
|
|
20
|
+
"progress-loader": { component: p, included: ["mode", "label"] },
|
|
21
|
+
"code-input": { component: d, included: ["label", "codeLength", "capitalize", "pattern", "disabled"] }
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
s as wizardFieldTypeMap
|
|
25
|
+
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as o } from "react/jsx-runtime";
|
|
3
|
-
import * as e from "@radix-ui/react-checkbox";
|
|
4
|
-
import { Check as i } from "lucide-react";
|
|
5
|
-
import * as s from "react";
|
|
6
|
-
import { clsx as t } from "clsx";
|
|
7
|
-
import c from "./checkbox.module.css.js";
|
|
8
|
-
const l = s.forwardRef(({ className: r, ...m }, a) => /* @__PURE__ */ o(
|
|
9
|
-
e.Root,
|
|
10
|
-
{
|
|
11
|
-
ref: a,
|
|
12
|
-
className: t(c.checkbox, r),
|
|
13
|
-
...m,
|
|
14
|
-
children: /* @__PURE__ */ o(e.Indicator, { className: c.checkboxIndicator, children: /* @__PURE__ */ o(i, { className: c.checkboxIcon }) })
|
|
15
|
-
}
|
|
16
|
-
));
|
|
17
|
-
l.displayName = e.Root.displayName;
|
|
18
|
-
export {
|
|
19
|
-
l as Checkbox
|
|
20
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
-
import * as s from "react";
|
|
4
|
-
import { clsx as e } from "clsx";
|
|
5
|
-
import i from "./input.module.css.js";
|
|
6
|
-
const a = s.forwardRef(
|
|
7
|
-
({ className: t, type: r, ...o }, m) => /* @__PURE__ */ p(
|
|
8
|
-
"input",
|
|
9
|
-
{
|
|
10
|
-
type: r,
|
|
11
|
-
className: e(i.input, t),
|
|
12
|
-
ref: m,
|
|
13
|
-
...o
|
|
14
|
-
}
|
|
15
|
-
)
|
|
16
|
-
);
|
|
17
|
-
a.displayName = "Input";
|
|
18
|
-
export {
|
|
19
|
-
a as Input
|
|
20
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as r } from "react/jsx-runtime";
|
|
3
|
-
import * as o from "@radix-ui/react-radio-group";
|
|
4
|
-
import { Circle as d } from "lucide-react";
|
|
5
|
-
import * as t from "react";
|
|
6
|
-
import { clsx as s } from "clsx";
|
|
7
|
-
import a from "./radio-group.module.css.js";
|
|
8
|
-
const c = t.forwardRef(({ className: i, ...e }, m) => /* @__PURE__ */ r(
|
|
9
|
-
o.Root,
|
|
10
|
-
{
|
|
11
|
-
className: s(a.radioGroup, i),
|
|
12
|
-
...e,
|
|
13
|
-
ref: m
|
|
14
|
-
}
|
|
15
|
-
));
|
|
16
|
-
c.displayName = o.Root.displayName;
|
|
17
|
-
const p = t.forwardRef(({ className: i, ...e }, m) => /* @__PURE__ */ r(
|
|
18
|
-
o.Item,
|
|
19
|
-
{
|
|
20
|
-
ref: m,
|
|
21
|
-
className: s(a.radioGroupItem, i),
|
|
22
|
-
...e,
|
|
23
|
-
children: /* @__PURE__ */ r(o.Indicator, { className: a.radioIndicator, children: /* @__PURE__ */ r(d, { className: a.radioIndicatorIcon }) })
|
|
24
|
-
}
|
|
25
|
-
));
|
|
26
|
-
p.displayName = o.Item.displayName;
|
|
27
|
-
export {
|
|
28
|
-
c as RadioGroup,
|
|
29
|
-
p as RadioGroupItem
|
|
30
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
const o = "fb-radioGroup_PqpPn", r = "fb-radioGroupItem_r91M1", a = "fb-radioIndicator_PFyGX", d = "fb-radioIndicatorIcon_vSsbY", i = {
|
|
3
|
-
radioGroup: o,
|
|
4
|
-
radioGroupItem: r,
|
|
5
|
-
radioIndicator: a,
|
|
6
|
-
radioIndicatorIcon: d
|
|
7
|
-
};
|
|
8
|
-
export {
|
|
9
|
-
i as default,
|
|
10
|
-
o as radioGroup,
|
|
11
|
-
r as radioGroupItem,
|
|
12
|
-
a as radioIndicator,
|
|
13
|
-
d as radioIndicatorIcon
|
|
14
|
-
};
|