@teamnovu/nuxt-statamic-formbuilder 0.1.0 → 1.0.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/README.md +4 -2
- package/dist/module.d.mts +7 -1
- package/dist/module.json +5 -2
- package/dist/module.mjs +46 -25
- package/dist/runtime/{components → app/components}/StatamicFormBuilder.d.vue.ts +2 -2
- package/dist/runtime/{components → app/components}/StatamicFormBuilder.vue +1 -1
- package/dist/runtime/{components → app/components}/StatamicFormBuilder.vue.d.ts +2 -2
- package/dist/runtime/app/components/StatamicFormBuilderFields.d.vue.ts +27 -0
- package/dist/runtime/{components/FormBuilderFields.vue → app/components/StatamicFormBuilderFields.vue} +1 -1
- package/dist/runtime/app/components/StatamicFormBuilderFields.vue.d.ts +27 -0
- package/dist/runtime/{composables → app/composables}/useFieldConditions.d.ts +1 -1
- package/dist/runtime/{composables → app/composables}/useFormBuilder.d.ts +2 -2
- package/dist/runtime/{composables → app/composables}/useFormBuilder.js +3 -3
- package/dist/runtime/{composables → app/composables}/useFormValidation.d.ts +1 -1
- package/dist/runtime/{composables → app/composables}/useFormValidation.js +1 -1
- package/dist/runtime/{composables → app/composables}/useTranslatableInput.d.ts +1 -1
- package/dist/runtime/fieldConfigs.d.ts +32 -1
- package/dist/runtime/fieldProps.d.ts +41 -0
- package/dist/runtime/fieldProps.js +0 -0
- package/dist/runtime/locales/it.json +29 -0
- package/dist/runtime/styleConfig.d.ts +19 -0
- package/dist/runtime/styleConfig.js +0 -0
- package/dist/runtime/styles/form-builder.css +1 -1
- package/dist/runtime/types.d.ts +3 -3
- package/dist/types.d.mts +1 -1
- package/package.json +29 -3
- package/dist/runtime/components/FormBuilderFields.d.vue.ts +0 -34
- package/dist/runtime/components/FormBuilderFields.vue.d.ts +0 -34
- /package/dist/runtime/{composables → app/composables}/useFieldConditions.js +0 -0
- /package/dist/runtime/{composables → app/composables}/useFormFieldRegistry.d.ts +0 -0
- /package/dist/runtime/{composables → app/composables}/useFormFieldRegistry.js +0 -0
- /package/dist/runtime/{composables → app/composables}/useTranslatableInput.js +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @teamnovu/nuxt-statamic-formbuilder
|
|
2
2
|
|
|
3
|
-
Core Nuxt module: form configuration types, Valibot validation from Statamic rules, field conditions, field registry, Statamic CSRF submit, and `
|
|
3
|
+
Core Nuxt module: form configuration types, Valibot validation from Statamic rules, field conditions, field registry, Statamic CSRF submit, `StatamicFormBuilder`, and `StatamicFormBuilderFields`.
|
|
4
4
|
|
|
5
5
|
See the [monorepo README](../../README.md) for install and usage.
|
|
6
6
|
|
|
@@ -10,4 +10,6 @@ Client-side Valibot rules are for UX only. Authoritative validation is Statamic
|
|
|
10
10
|
|
|
11
11
|
## Texts vs i18n
|
|
12
12
|
|
|
13
|
-
Bundled locales cover field validation messages and toast titles. Submit / loading / success / error body copy belongs on CMS `FormBuilderTexts` (see monorepo README).
|
|
13
|
+
Bundled locales cover field validation messages and toast titles (`form.user_feedback.*`). Submit / loading / success / error body copy belongs on CMS `FormBuilderTexts` (see monorepo README).
|
|
14
|
+
|
|
15
|
+
By default the module publishes en/de/fr via `i18n:registerModule`. Set `statamicFormBuilder.publishI18n: false` to disable that and provide those keys in the host app instead.
|
package/dist/module.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
export { BaseFieldConfig, DefaultInputField, DisplayTextFieldConfig, FormBuilderConfiguration, FormBuilderField, FormBuilderFieldBase, FormBuilderFieldType, FormBuilderRequestState, FormBuilderSubmitter, FormBuilderTexts, FormFieldOption, InputCheckboxesFieldConfig, InputDateFieldConfig, InputEmailFieldConfig, InputFileUploadFieldConfig, InputFormBuilderField, InputNumberFieldConfig, InputPhoneFieldConfig, InputRadioButtonsFieldConfig, InputRules, InputSelectFieldConfig, InputSliderFieldConfig, InputSwitchFieldConfig, InputTextFieldConfig, InputTextareaFieldConfig, TranslatableInput, UseFormBuilderOptions, ValidationTrigger, defaultInputField, formBuilderStateKey, isDisplayOrSpacerField, isFileUploadField, isInputField, isMultiValueField } from '../dist/runtime/types.js';
|
|
2
|
+
export { BaseFieldConfig, DefaultInputField, DisplayTextFieldConfig, FormBuilderConfiguration, FormBuilderField, FormBuilderFieldBase, FormBuilderFieldType, FormBuilderRequestState, FormBuilderStyleConfig, FormBuilderSubmitter, FormBuilderTexts, FormFieldCheckboxesProps, FormFieldComponentProps, FormFieldConfig, FormFieldConfigByType, FormFieldDateProps, FormFieldDisplayTextProps, FormFieldEmailProps, FormFieldFileUploadProps, FormFieldNumberProps, FormFieldOption, FormFieldPhoneProps, FormFieldRadioButtonsProps, FormFieldSelectProps, FormFieldShellProps, FormFieldSliderProps, FormFieldSwitchProps, FormFieldTextProps, FormFieldTextareaProps, InputCheckboxesFieldConfig, InputDateFieldConfig, InputEmailFieldConfig, InputFileUploadFieldConfig, InputFormBuilderField, InputNumberFieldConfig, InputPhoneFieldConfig, InputRadioButtonsFieldConfig, InputRules, InputSelectFieldConfig, InputSliderFieldConfig, InputSwitchFieldConfig, InputTextFieldConfig, InputTextareaFieldConfig, TranslatableInput, UseFormBuilderOptions, ValidationTrigger, defaultInputField, formBuilderStateKey, isDisplayOrSpacerField, isFileUploadField, isInputField, isMultiValueField } from '../dist/runtime/types.js';
|
|
3
3
|
|
|
4
4
|
interface ModuleOptions {
|
|
5
5
|
/**
|
|
@@ -7,6 +7,12 @@ interface ModuleOptions {
|
|
|
7
7
|
* Falls back to `runtimeConfig.public.BACKEND_URL` when unset.
|
|
8
8
|
*/
|
|
9
9
|
serverUrl?: string;
|
|
10
|
+
/**
|
|
11
|
+
* When true (default), register bundled `form.user_feedback.*` locale
|
|
12
|
+
* files via `i18n:registerModule`. Set to false to own these strings
|
|
13
|
+
* in the host app (e.g. locales not shipped by this module).
|
|
14
|
+
*/
|
|
15
|
+
publishI18n?: boolean;
|
|
10
16
|
}
|
|
11
17
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
12
18
|
|
package/dist/module.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teamnovu/nuxt-statamic-formbuilder",
|
|
3
|
-
"configKey": "
|
|
4
|
-
"
|
|
3
|
+
"configKey": "statamicFormBuilder",
|
|
4
|
+
"compatibility": {
|
|
5
|
+
"nuxt": ">=3.16.0"
|
|
6
|
+
},
|
|
7
|
+
"version": "1.0.0",
|
|
5
8
|
"builder": {
|
|
6
9
|
"@nuxt/module-builder": "1.0.2",
|
|
7
10
|
"unbuild": "3.6.1"
|
package/dist/module.mjs
CHANGED
|
@@ -1,19 +1,41 @@
|
|
|
1
|
-
import { defineNuxtModule, createResolver, addImports, addComponent } from '@nuxt/kit';
|
|
1
|
+
import { defineNuxtModule, createResolver, addTypeTemplate, addImports, addComponent } from '@nuxt/kit';
|
|
2
|
+
import { defu } from 'defu';
|
|
2
3
|
export { formBuilderStateKey, isDisplayOrSpacerField, isFileUploadField, isInputField, isMultiValueField } from '../dist/runtime/types.js';
|
|
3
4
|
|
|
5
|
+
const RUNTIME_CONFIG_AUGMENTATION = `declare module '@nuxt/schema' {
|
|
6
|
+
interface PublicRuntimeConfig {
|
|
7
|
+
statamicFormBuilder: {
|
|
8
|
+
serverUrl: string
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export {}
|
|
14
|
+
`;
|
|
4
15
|
const module$1 = defineNuxtModule({
|
|
5
16
|
meta: {
|
|
6
17
|
name: "@teamnovu/nuxt-statamic-formbuilder",
|
|
7
|
-
configKey: "
|
|
18
|
+
configKey: "statamicFormBuilder",
|
|
19
|
+
compatibility: {
|
|
20
|
+
nuxt: ">=3.16.0"
|
|
21
|
+
}
|
|
8
22
|
},
|
|
9
23
|
defaults: {
|
|
10
|
-
serverUrl: void 0
|
|
24
|
+
serverUrl: void 0,
|
|
25
|
+
publishI18n: true
|
|
11
26
|
},
|
|
12
27
|
setup(options, nuxt) {
|
|
13
28
|
const resolver = createResolver(import.meta.url);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
addTypeTemplate({
|
|
30
|
+
filename: "types/statamic-formbuilder-runtime-config.d.ts",
|
|
31
|
+
getContents: () => RUNTIME_CONFIG_AUGMENTATION
|
|
32
|
+
});
|
|
33
|
+
nuxt.options.runtimeConfig.public.statamicFormBuilder = defu(
|
|
34
|
+
nuxt.options.runtimeConfig.public.statamicFormBuilder,
|
|
35
|
+
{
|
|
36
|
+
serverUrl: options.serverUrl ?? nuxt.options.runtimeConfig.public.BACKEND_URL ?? ""
|
|
37
|
+
}
|
|
38
|
+
);
|
|
17
39
|
const composables = [
|
|
18
40
|
"useFormBuilder",
|
|
19
41
|
"useFormValidation",
|
|
@@ -24,16 +46,16 @@ const module$1 = defineNuxtModule({
|
|
|
24
46
|
for (const name of composables) {
|
|
25
47
|
addImports({
|
|
26
48
|
name,
|
|
27
|
-
from: resolver.resolve(`./runtime/composables/${name}`)
|
|
49
|
+
from: resolver.resolve(`./runtime/app/composables/${name}`)
|
|
28
50
|
});
|
|
29
51
|
}
|
|
30
52
|
addImports({
|
|
31
53
|
name: "registerFormField",
|
|
32
|
-
from: resolver.resolve("./runtime/composables/useFormFieldRegistry")
|
|
54
|
+
from: resolver.resolve("./runtime/app/composables/useFormFieldRegistry")
|
|
33
55
|
});
|
|
34
56
|
addImports({
|
|
35
57
|
name: "resolveFormField",
|
|
36
|
-
from: resolver.resolve("./runtime/composables/useFormFieldRegistry")
|
|
58
|
+
from: resolver.resolve("./runtime/app/composables/useFormFieldRegistry")
|
|
37
59
|
});
|
|
38
60
|
addImports({
|
|
39
61
|
name: "toFormBuilderConfiguration",
|
|
@@ -43,10 +65,6 @@ const module$1 = defineNuxtModule({
|
|
|
43
65
|
name: "COMPONENT_FORM_BUILDER_FRAGMENT",
|
|
44
66
|
from: resolver.resolve("./runtime/utils/graphqlFragment")
|
|
45
67
|
});
|
|
46
|
-
addImports({
|
|
47
|
-
name: "removePTags",
|
|
48
|
-
from: resolver.resolve("./runtime/utils/removePTags")
|
|
49
|
-
});
|
|
50
68
|
for (const name of [
|
|
51
69
|
"isDisplayOrSpacerField",
|
|
52
70
|
"isInputField",
|
|
@@ -60,23 +78,26 @@ const module$1 = defineNuxtModule({
|
|
|
60
78
|
});
|
|
61
79
|
}
|
|
62
80
|
addComponent({
|
|
63
|
-
name: "
|
|
64
|
-
filePath: resolver.resolve("./runtime/components/
|
|
81
|
+
name: "StatamicFormBuilderFields",
|
|
82
|
+
filePath: resolver.resolve("./runtime/app/components/StatamicFormBuilderFields.vue")
|
|
65
83
|
});
|
|
66
84
|
addComponent({
|
|
67
85
|
name: "StatamicFormBuilder",
|
|
68
|
-
filePath: resolver.resolve("./runtime/components/StatamicFormBuilder.vue")
|
|
86
|
+
filePath: resolver.resolve("./runtime/app/components/StatamicFormBuilder.vue")
|
|
69
87
|
});
|
|
70
|
-
|
|
71
|
-
register
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
88
|
+
if (options.publishI18n) {
|
|
89
|
+
nuxt.hook("i18n:registerModule", (register) => {
|
|
90
|
+
register({
|
|
91
|
+
langDir: resolver.resolve("./runtime/locales"),
|
|
92
|
+
locales: [
|
|
93
|
+
{ code: "en", file: "en.json" },
|
|
94
|
+
{ code: "de", file: "de.json" },
|
|
95
|
+
{ code: "fr", file: "fr.json" },
|
|
96
|
+
{ code: "it", file: "it.json" }
|
|
97
|
+
]
|
|
98
|
+
});
|
|
78
99
|
});
|
|
79
|
-
}
|
|
100
|
+
}
|
|
80
101
|
}
|
|
81
102
|
});
|
|
82
103
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { FormBuilderConfiguration, FormBuilderSubmitter, FormBuilderTexts } from '
|
|
1
|
+
import type { FormBuilderConfiguration, FormBuilderStyleConfig, FormBuilderSubmitter, FormBuilderTexts } from '../../types.js';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
form: FormBuilderConfiguration;
|
|
4
4
|
texts: FormBuilderTexts;
|
|
5
5
|
serverUrl?: string;
|
|
6
|
-
styleConfig?:
|
|
6
|
+
styleConfig?: FormBuilderStyleConfig;
|
|
7
7
|
submitter?: FormBuilderSubmitter;
|
|
8
8
|
/**
|
|
9
9
|
* Override the FormBuilder component (defaults to globally registered `FormBuilder`
|
|
@@ -34,7 +34,7 @@ const props = defineProps({
|
|
|
34
34
|
});
|
|
35
35
|
const runtimeConfig = useRuntimeConfig();
|
|
36
36
|
const resolvedServerUrl = computed(
|
|
37
|
-
() => props.serverUrl || runtimeConfig.public.
|
|
37
|
+
() => props.serverUrl || runtimeConfig.public.statamicFormBuilder.serverUrl || runtimeConfig.public.BACKEND_URL || ""
|
|
38
38
|
);
|
|
39
39
|
const formBuilderComponent = computed(() => {
|
|
40
40
|
if (props.formComponent) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { FormBuilderConfiguration, FormBuilderSubmitter, FormBuilderTexts } from '
|
|
1
|
+
import type { FormBuilderConfiguration, FormBuilderStyleConfig, FormBuilderSubmitter, FormBuilderTexts } from '../../types.js';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
form: FormBuilderConfiguration;
|
|
4
4
|
texts: FormBuilderTexts;
|
|
5
5
|
serverUrl?: string;
|
|
6
|
-
styleConfig?:
|
|
6
|
+
styleConfig?: FormBuilderStyleConfig;
|
|
7
7
|
submitter?: FormBuilderSubmitter;
|
|
8
8
|
/**
|
|
9
9
|
* Override the FormBuilder component (defaults to globally registered `FormBuilder`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FormBuilderConfiguration, FormBuilderField, FormBuilderStyleConfig } from '../../types.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
form: FormBuilderConfiguration;
|
|
4
|
+
fields: Array<FormBuilderField>;
|
|
5
|
+
error?: Record<string, unknown>;
|
|
6
|
+
styleConfig?: FormBuilderStyleConfig;
|
|
7
|
+
validationErrors?: Record<string, string | undefined>;
|
|
8
|
+
};
|
|
9
|
+
declare var __VLS_2: string, __VLS_3: {
|
|
10
|
+
config?: import("../../fieldConfigs.js").BaseFieldConfig | import("../../fieldConfigs.js").InputTextFieldConfig | import("../../fieldConfigs.js").InputTextareaFieldConfig | import("../../fieldConfigs.js").InputEmailFieldConfig | import("../../fieldConfigs.js").InputPhoneFieldConfig | import("../../fieldConfigs.js").InputNumberFieldConfig | import("../../fieldConfigs.js").InputSelectFieldConfig | import("../../fieldConfigs.js").InputDateFieldConfig | import("../../fieldConfigs.js").InputSliderFieldConfig | import("../../fieldConfigs.js").InputCheckboxesFieldConfig | import("../../fieldConfigs.js").InputRadioButtonsFieldConfig | import("../../fieldConfigs.js").InputSwitchFieldConfig | import("../../fieldConfigs.js").InputFileUploadFieldConfig | import("../../fieldConfigs.js").DisplayTextFieldConfig | undefined;
|
|
11
|
+
styleConfig: FormBuilderStyleConfig;
|
|
12
|
+
input: import("../../types.js").DefaultInputField;
|
|
13
|
+
error?: string | null;
|
|
14
|
+
field: FormBuilderField;
|
|
15
|
+
};
|
|
16
|
+
type __VLS_Slots = {} & {
|
|
17
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
<script setup>
|
|
37
37
|
import { inject, ref } from "vue";
|
|
38
|
-
import { formBuilderStateKey } from "
|
|
38
|
+
import { formBuilderStateKey } from "../../injectionKeys";
|
|
39
39
|
import { useFieldConditions } from "../composables/useFieldConditions";
|
|
40
40
|
import { resolveFormField } from "../composables/useFormFieldRegistry";
|
|
41
41
|
const props = defineProps({
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FormBuilderConfiguration, FormBuilderField, FormBuilderStyleConfig } from '../../types.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
form: FormBuilderConfiguration;
|
|
4
|
+
fields: Array<FormBuilderField>;
|
|
5
|
+
error?: Record<string, unknown>;
|
|
6
|
+
styleConfig?: FormBuilderStyleConfig;
|
|
7
|
+
validationErrors?: Record<string, string | undefined>;
|
|
8
|
+
};
|
|
9
|
+
declare var __VLS_2: string, __VLS_3: {
|
|
10
|
+
config?: import("../../fieldConfigs.js").BaseFieldConfig | import("../../fieldConfigs.js").InputTextFieldConfig | import("../../fieldConfigs.js").InputTextareaFieldConfig | import("../../fieldConfigs.js").InputEmailFieldConfig | import("../../fieldConfigs.js").InputPhoneFieldConfig | import("../../fieldConfigs.js").InputNumberFieldConfig | import("../../fieldConfigs.js").InputSelectFieldConfig | import("../../fieldConfigs.js").InputDateFieldConfig | import("../../fieldConfigs.js").InputSliderFieldConfig | import("../../fieldConfigs.js").InputCheckboxesFieldConfig | import("../../fieldConfigs.js").InputRadioButtonsFieldConfig | import("../../fieldConfigs.js").InputSwitchFieldConfig | import("../../fieldConfigs.js").InputFileUploadFieldConfig | import("../../fieldConfigs.js").DisplayTextFieldConfig | undefined;
|
|
11
|
+
styleConfig: FormBuilderStyleConfig;
|
|
12
|
+
input: import("../../types.js").DefaultInputField;
|
|
13
|
+
error?: string | null;
|
|
14
|
+
field: FormBuilderField;
|
|
15
|
+
};
|
|
16
|
+
type __VLS_Slots = {} & {
|
|
17
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Ref } from 'vue';
|
|
2
|
-
import type { FormBuilderConfiguration, FormBuilderField, FormBuilderRequestState, UseFormBuilderOptions } from '
|
|
2
|
+
import type { FormBuilderConfiguration, FormBuilderField, FormBuilderRequestState, UseFormBuilderOptions } from '../../types.js';
|
|
3
3
|
export declare function useFormBuilder(formBuilderConfiguration: FormBuilderConfiguration, serverUrlOrOptions?: string | UseFormBuilderOptions): {
|
|
4
4
|
requestState: Ref<FormBuilderRequestState, FormBuilderRequestState>;
|
|
5
5
|
submit: (_event?: unknown, stateRef?: Ref<Record<string, unknown>>) => Promise<unknown>;
|
|
6
6
|
reset: () => void;
|
|
7
7
|
state: Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
8
8
|
fields: import("vue").ComputedRef<FormBuilderField[]>;
|
|
9
|
-
serverUrl: import("vue").ComputedRef<
|
|
9
|
+
serverUrl: import("vue").ComputedRef<any>;
|
|
10
10
|
};
|
|
11
11
|
export default useFormBuilder;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useRuntimeConfig } from "#imports";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import { computed, ref, toValue } from "vue";
|
|
4
|
-
import { isDisplayOrSpacerField, isMultiValueField } from "
|
|
5
|
-
import { submitStatamicForm } from "
|
|
4
|
+
import { isDisplayOrSpacerField, isMultiValueField } from "../../types.js";
|
|
5
|
+
import { submitStatamicForm } from "../../utils/submitStatamicForm.js";
|
|
6
6
|
function flattenFields(form) {
|
|
7
7
|
if ("fields" in form) {
|
|
8
8
|
return form.fields;
|
|
@@ -29,7 +29,7 @@ export function useFormBuilder(formBuilderConfiguration, serverUrlOrOptions) {
|
|
|
29
29
|
const runtimeConfig = useRuntimeConfig();
|
|
30
30
|
const { locale } = useI18n();
|
|
31
31
|
const serverUrl = computed(
|
|
32
|
-
() => options.serverUrl || runtimeConfig.public.
|
|
32
|
+
() => options.serverUrl || runtimeConfig.public.statamicFormBuilder.serverUrl || runtimeConfig.public.BACKEND_URL || ""
|
|
33
33
|
);
|
|
34
34
|
const submitter = options.submitter ?? submitStatamicForm;
|
|
35
35
|
const requestState = ref("not_submitted");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import type { MaybeRefOrGetter, Ref } from 'vue';
|
|
3
|
-
import type { FormBuilderConfiguration, FormBuilderField, InputRules } from '
|
|
3
|
+
import type { FormBuilderConfiguration, FormBuilderField, InputRules } from '../../types.js';
|
|
4
4
|
export declare function useFormValidation(fieldsInput: MaybeRefOrGetter<readonly FormBuilderField[]>, formRules: FormBuilderConfiguration['rules'], _state?: Ref<Record<string, unknown>>): {
|
|
5
5
|
schema: import("vue").ComputedRef<v.ObjectSchema<Record<string, v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>, undefined>>;
|
|
6
6
|
validationErrors: Ref<Record<string, string>, Record<string, string>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import { computed, ref, toValue } from "vue";
|
|
4
|
-
import { isDisplayOrSpacerField } from "
|
|
4
|
+
import { isDisplayOrSpacerField } from "../../types.js";
|
|
5
5
|
export function useFormValidation(fieldsInput, formRules, _state) {
|
|
6
6
|
const { t } = useI18n();
|
|
7
7
|
const fields = computed(() => toValue(fieldsInput) ?? []);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TranslatableInput } from '
|
|
1
|
+
import type { TranslatableInput } from '../../types.js';
|
|
2
2
|
export type ResolveTranslatableInput = (input: TranslatableInput | string | undefined | null) => string | undefined;
|
|
3
3
|
/**
|
|
4
4
|
* Call once at the top of `<script setup>`. Returns a resolver safe to use
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
export type ValidationTrigger = 'blur' | 'submit';
|
|
2
|
+
/**
|
|
3
|
+
* Localized string payload from Statamic `translatable_input` / similar fieldtypes.
|
|
4
|
+
* Frontend expectation — not generated from the PHP addon.
|
|
5
|
+
*/
|
|
2
6
|
export type TranslatableInput = {
|
|
3
7
|
handle: string;
|
|
4
8
|
value: string | null;
|
|
5
9
|
}[];
|
|
6
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Shared CMS field config keys present on most input fieldtypes.
|
|
12
|
+
* Shapes mirror what GraphQL `fields { config }` typically delivers after editors
|
|
13
|
+
* configure `teamnovu/formbuilder` fieldtypes — owned here as frontend contracts.
|
|
14
|
+
*/
|
|
7
15
|
export type BaseFieldConfig = {
|
|
8
16
|
label?: string | TranslatableInput;
|
|
9
17
|
hint?: string | TranslatableInput;
|
|
@@ -89,3 +97,26 @@ export type DisplayTextFieldConfig = {
|
|
|
89
97
|
title?: TranslatableInput;
|
|
90
98
|
text?: TranslatableInput;
|
|
91
99
|
};
|
|
100
|
+
/** Union of every known fieldtype `config` payload. */
|
|
101
|
+
export type FormFieldConfig = BaseFieldConfig | InputTextFieldConfig | InputTextareaFieldConfig | InputEmailFieldConfig | InputPhoneFieldConfig | InputNumberFieldConfig | InputSelectFieldConfig | InputDateFieldConfig | InputSliderFieldConfig | InputCheckboxesFieldConfig | InputRadioButtonsFieldConfig | InputSwitchFieldConfig | InputFileUploadFieldConfig | DisplayTextFieldConfig;
|
|
102
|
+
/**
|
|
103
|
+
* Map of Statamic field `type` → expected `config` object.
|
|
104
|
+
* Use when normalizing GraphQL payloads or building custom field renderers.
|
|
105
|
+
*/
|
|
106
|
+
export type FormFieldConfigByType = {
|
|
107
|
+
input_text: InputTextFieldConfig;
|
|
108
|
+
input_textarea: InputTextareaFieldConfig;
|
|
109
|
+
input_email: InputEmailFieldConfig;
|
|
110
|
+
input_phone: InputPhoneFieldConfig;
|
|
111
|
+
input_number: InputNumberFieldConfig;
|
|
112
|
+
input_select: InputSelectFieldConfig;
|
|
113
|
+
input_date: InputDateFieldConfig;
|
|
114
|
+
input_daterange: InputDateFieldConfig;
|
|
115
|
+
input_slider: InputSliderFieldConfig;
|
|
116
|
+
input_checkboxes: InputCheckboxesFieldConfig;
|
|
117
|
+
input_radio_buttons: InputRadioButtonsFieldConfig;
|
|
118
|
+
input_switch: InputSwitchFieldConfig;
|
|
119
|
+
input_file_upload: InputFileUploadFieldConfig;
|
|
120
|
+
display_text: DisplayTextFieldConfig;
|
|
121
|
+
spacer: BaseFieldConfig;
|
|
122
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BaseFieldConfig, DisplayTextFieldConfig, FormFieldConfig, InputCheckboxesFieldConfig, InputDateFieldConfig, InputEmailFieldConfig, InputFileUploadFieldConfig, InputNumberFieldConfig, InputPhoneFieldConfig, InputRadioButtonsFieldConfig, InputSelectFieldConfig, InputSliderFieldConfig, InputSwitchFieldConfig, InputTextFieldConfig, InputTextareaFieldConfig } from './fieldConfigs.js';
|
|
2
|
+
import type { FormBuilderStyleConfig } from './styleConfig.js';
|
|
3
|
+
import type { DefaultInputField } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Props `StatamicFormBuilderFields` binds onto every registered field component.
|
|
6
|
+
*
|
|
7
|
+
* - `TConfig` — frontend-expected CMS field config (see `fieldConfigs.ts`)
|
|
8
|
+
* - `TStyle` — presentation tokens; defaults to `FormBuilderStyleConfig`
|
|
9
|
+
* (augmented by the UI adapter)
|
|
10
|
+
*/
|
|
11
|
+
export type FormFieldComponentProps<TConfig extends FormFieldConfig = FormFieldConfig, TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = {
|
|
12
|
+
config?: TConfig;
|
|
13
|
+
styleConfig: TStyle;
|
|
14
|
+
input: DefaultInputField;
|
|
15
|
+
error?: string | null;
|
|
16
|
+
};
|
|
17
|
+
export type FormFieldTextProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputTextFieldConfig, TStyle>;
|
|
18
|
+
export type FormFieldTextareaProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputTextareaFieldConfig, TStyle>;
|
|
19
|
+
export type FormFieldEmailProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputEmailFieldConfig, TStyle>;
|
|
20
|
+
export type FormFieldPhoneProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputPhoneFieldConfig, TStyle>;
|
|
21
|
+
export type FormFieldNumberProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputNumberFieldConfig, TStyle>;
|
|
22
|
+
export type FormFieldSelectProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputSelectFieldConfig, TStyle>;
|
|
23
|
+
export type FormFieldDateProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputDateFieldConfig, TStyle> & {
|
|
24
|
+
/** Set by StatamicFormBuilderFields for `input_daterange`. */
|
|
25
|
+
isRange?: boolean;
|
|
26
|
+
};
|
|
27
|
+
export type FormFieldSliderProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputSliderFieldConfig, TStyle>;
|
|
28
|
+
export type FormFieldCheckboxesProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputCheckboxesFieldConfig, TStyle>;
|
|
29
|
+
export type FormFieldRadioButtonsProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputRadioButtonsFieldConfig, TStyle>;
|
|
30
|
+
export type FormFieldSwitchProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputSwitchFieldConfig, TStyle>;
|
|
31
|
+
export type FormFieldFileUploadProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = FormFieldComponentProps<InputFileUploadFieldConfig, TStyle>;
|
|
32
|
+
/** Display-only field — no input binding required by the renderer. */
|
|
33
|
+
export type FormFieldDisplayTextProps = {
|
|
34
|
+
config?: DisplayTextFieldConfig;
|
|
35
|
+
};
|
|
36
|
+
/** Shared wrapper props used by UI layout shells (label / hint / help). */
|
|
37
|
+
export type FormFieldShellProps<TStyle extends FormBuilderStyleConfig = FormBuilderStyleConfig> = {
|
|
38
|
+
config?: BaseFieldConfig;
|
|
39
|
+
styleConfig: TStyle;
|
|
40
|
+
input: DefaultInputField;
|
|
41
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"form": {
|
|
3
|
+
"user_feedback": {
|
|
4
|
+
"error": {
|
|
5
|
+
"title": "Errore"
|
|
6
|
+
},
|
|
7
|
+
"field_invalid": "Nessun campo è compilato. | Il campo {fields} non è valido. | I {count} campi {fields} non sono validi.",
|
|
8
|
+
"field_validation": {
|
|
9
|
+
"email": "Indirizzo e-mail non valido",
|
|
10
|
+
"invalid_format": "Formato non valido",
|
|
11
|
+
"max_items": "Massimo {n} elementi",
|
|
12
|
+
"max_number": "Deve essere al massimo {n}",
|
|
13
|
+
"max_value": "Deve essere al massimo {n}",
|
|
14
|
+
"maxlength_characters": "Deve contenere al massimo {n} caratteri",
|
|
15
|
+
"min_items": "Minimo {n} elementi",
|
|
16
|
+
"min_number": "Deve essere almeno {n}",
|
|
17
|
+
"min_value": "Deve essere almeno {n}",
|
|
18
|
+
"minlength_characters": "Deve contenere almeno {n} caratteri",
|
|
19
|
+
"required": "Questo campo è obbligatorio",
|
|
20
|
+
"phone": "Numero di telefono non valido",
|
|
21
|
+
"max_filesize": "La dimensione del file non deve superare {n} KB",
|
|
22
|
+
"max_files": "È possibile caricare al massimo {n} file | È possibile caricare al massimo {n} file"
|
|
23
|
+
},
|
|
24
|
+
"success": {
|
|
25
|
+
"title": "Successo"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Presentation tokens forwarded by core into UI field components.
|
|
3
|
+
*
|
|
4
|
+
* Empty by default — not part of the CMS GraphQL payload. UI adapters
|
|
5
|
+
* (e.g. `@teamnovu/nuxt-statamic-formbuilder-nuxt-ui`) augment this interface
|
|
6
|
+
* so host apps get typed `:style-config` on `StatamicFormBuilder`.
|
|
7
|
+
*
|
|
8
|
+
* @example Augment from a UI adapter
|
|
9
|
+
* ```ts
|
|
10
|
+
* declare module '@teamnovu/nuxt-statamic-formbuilder/runtime/styleConfig' {
|
|
11
|
+
* interface FormBuilderStyleConfig {
|
|
12
|
+
* color?: string
|
|
13
|
+
* variant?: string
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export interface FormBuilderStyleConfig {
|
|
19
|
+
}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@source "
|
|
1
|
+
@source "../app/**/*.{vue,js,ts}";
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type { ValidationTrigger, TranslatableInput, BaseFieldConfig, FormFieldOption, InputTextFieldConfig, InputTextareaFieldConfig, InputEmailFieldConfig, InputPhoneFieldConfig, InputNumberFieldConfig, InputSelectFieldConfig, InputDateFieldConfig, InputSliderFieldConfig, InputCheckboxesFieldConfig, InputRadioButtonsFieldConfig, InputSwitchFieldConfig, InputFileUploadFieldConfig, DisplayTextFieldConfig, } from './fieldConfigs.js';
|
|
1
|
+
export type { ValidationTrigger, TranslatableInput, BaseFieldConfig, FormFieldOption, InputTextFieldConfig, InputTextareaFieldConfig, InputEmailFieldConfig, InputPhoneFieldConfig, InputNumberFieldConfig, InputSelectFieldConfig, InputDateFieldConfig, InputSliderFieldConfig, InputCheckboxesFieldConfig, InputRadioButtonsFieldConfig, InputSwitchFieldConfig, InputFileUploadFieldConfig, DisplayTextFieldConfig, FormFieldConfig, FormFieldConfigByType, } from './fieldConfigs.js';
|
|
2
|
+
export type { FormBuilderStyleConfig } from './styleConfig.js';
|
|
2
3
|
import type { BaseFieldConfig, DisplayTextFieldConfig, InputCheckboxesFieldConfig, InputDateFieldConfig, InputEmailFieldConfig, InputFileUploadFieldConfig, InputNumberFieldConfig, InputPhoneFieldConfig, InputRadioButtonsFieldConfig, InputSelectFieldConfig, InputSliderFieldConfig, InputSwitchFieldConfig, InputTextFieldConfig, InputTextareaFieldConfig } from './fieldConfigs.js';
|
|
3
4
|
/** Shared field metadata from Statamic (all field types). */
|
|
4
5
|
export type FormBuilderFieldBase = {
|
|
@@ -6,8 +7,6 @@ export type FormBuilderFieldBase = {
|
|
|
6
7
|
display: string | null;
|
|
7
8
|
width: number;
|
|
8
9
|
instructions: string | null;
|
|
9
|
-
/** UI-layer specific style hints (typed by the UI package). */
|
|
10
|
-
styleConfig?: Record<string, unknown>;
|
|
11
10
|
if?: Record<string, string> | null;
|
|
12
11
|
unless?: Record<string, string> | null;
|
|
13
12
|
prefix?: string;
|
|
@@ -123,4 +122,5 @@ export type UseFormBuilderOptions = {
|
|
|
123
122
|
serverUrl?: string;
|
|
124
123
|
submitter?: FormBuilderSubmitter;
|
|
125
124
|
};
|
|
125
|
+
export type { FormFieldComponentProps, FormFieldTextProps, FormFieldTextareaProps, FormFieldEmailProps, FormFieldPhoneProps, FormFieldNumberProps, FormFieldSelectProps, FormFieldDateProps, FormFieldSliderProps, FormFieldCheckboxesProps, FormFieldRadioButtonsProps, FormFieldSwitchProps, FormFieldFileUploadProps, FormFieldDisplayTextProps, FormFieldShellProps, } from './fieldProps.js';
|
|
126
126
|
export { formBuilderStateKey } from './injectionKeys.js';
|
package/dist/types.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type BaseFieldConfig, type DefaultInputField, type DisplayTextFieldConfig, type FormBuilderConfiguration, type FormBuilderField, type FormBuilderFieldBase, type FormBuilderFieldType, type FormBuilderRequestState, type FormBuilderSubmitter, type FormBuilderTexts, type FormFieldOption, type InputCheckboxesFieldConfig, type InputDateFieldConfig, type InputEmailFieldConfig, type InputFileUploadFieldConfig, type InputFormBuilderField, type InputNumberFieldConfig, type InputPhoneFieldConfig, type InputRadioButtonsFieldConfig, type InputRules, type InputSelectFieldConfig, type InputSliderFieldConfig, type InputSwitchFieldConfig, type InputTextFieldConfig, type InputTextareaFieldConfig, type TranslatableInput, type UseFormBuilderOptions, type ValidationTrigger, type defaultInputField, type formBuilderStateKey, type isDisplayOrSpacerField, type isFileUploadField, type isInputField, type isMultiValueField } from '../dist/runtime/types.js'
|
|
1
|
+
export { type BaseFieldConfig, type DefaultInputField, type DisplayTextFieldConfig, type FormBuilderConfiguration, type FormBuilderField, type FormBuilderFieldBase, type FormBuilderFieldType, type FormBuilderRequestState, type FormBuilderStyleConfig, type FormBuilderSubmitter, type FormBuilderTexts, type FormFieldCheckboxesProps, type FormFieldComponentProps, type FormFieldConfig, type FormFieldConfigByType, type FormFieldDateProps, type FormFieldDisplayTextProps, type FormFieldEmailProps, type FormFieldFileUploadProps, type FormFieldNumberProps, type FormFieldOption, type FormFieldPhoneProps, type FormFieldRadioButtonsProps, type FormFieldSelectProps, type FormFieldShellProps, type FormFieldSliderProps, type FormFieldSwitchProps, type FormFieldTextProps, type FormFieldTextareaProps, type InputCheckboxesFieldConfig, type InputDateFieldConfig, type InputEmailFieldConfig, type InputFileUploadFieldConfig, type InputFormBuilderField, type InputNumberFieldConfig, type InputPhoneFieldConfig, type InputRadioButtonsFieldConfig, type InputRules, type InputSelectFieldConfig, type InputSliderFieldConfig, type InputSwitchFieldConfig, type InputTextFieldConfig, type InputTextareaFieldConfig, type TranslatableInput, type UseFormBuilderOptions, type ValidationTrigger, type defaultInputField, type formBuilderStateKey, type isDisplayOrSpacerField, type isFileUploadField, type isInputField, type isMultiValueField } from '../dist/runtime/types.js'
|
|
2
2
|
|
|
3
3
|
export { default } from './module.mjs'
|
|
4
4
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teamnovu/nuxt-statamic-formbuilder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Headless Nuxt form builder with Statamic submit adapter",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"homepage": "https://github.com/teamnovu/nuxt-statamic-formbuilder#readme",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/teamnovu/nuxt-statamic-formbuilder.git",
|
|
10
|
+
"directory": "packages/core"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/teamnovu/nuxt-statamic-formbuilder/issues"
|
|
14
|
+
},
|
|
6
15
|
"type": "module",
|
|
7
16
|
"exports": {
|
|
8
17
|
".": {
|
|
@@ -18,9 +27,25 @@
|
|
|
18
27
|
"types": "./dist/runtime/types.d.ts",
|
|
19
28
|
"import": "./dist/runtime/types.js"
|
|
20
29
|
},
|
|
30
|
+
"./runtime/styleConfig": {
|
|
31
|
+
"types": "./dist/runtime/styleConfig.d.ts",
|
|
32
|
+
"import": "./dist/runtime/styleConfig.js"
|
|
33
|
+
},
|
|
34
|
+
"./runtime/app/composables/*": {
|
|
35
|
+
"types": "./dist/runtime/app/composables/*.d.ts",
|
|
36
|
+
"import": "./dist/runtime/app/composables/*"
|
|
37
|
+
},
|
|
38
|
+
"./runtime/app/components/*": {
|
|
39
|
+
"types": "./dist/runtime/app/components/*.d.ts",
|
|
40
|
+
"import": "./dist/runtime/app/components/*"
|
|
41
|
+
},
|
|
21
42
|
"./runtime/composables/*": {
|
|
22
|
-
"types": "./dist/runtime/composables/*.d.ts",
|
|
23
|
-
"import": "./dist/runtime/composables/*"
|
|
43
|
+
"types": "./dist/runtime/app/composables/*.d.ts",
|
|
44
|
+
"import": "./dist/runtime/app/composables/*"
|
|
45
|
+
},
|
|
46
|
+
"./runtime/components/*": {
|
|
47
|
+
"types": "./dist/runtime/app/components/*.d.ts",
|
|
48
|
+
"import": "./dist/runtime/app/components/*"
|
|
24
49
|
}
|
|
25
50
|
},
|
|
26
51
|
"main": "./dist/module.mjs",
|
|
@@ -39,6 +64,7 @@
|
|
|
39
64
|
},
|
|
40
65
|
"dependencies": {
|
|
41
66
|
"@nuxt/kit": "^4.3.1",
|
|
67
|
+
"defu": "^6.1.7",
|
|
42
68
|
"valibot": "^1.2.0"
|
|
43
69
|
},
|
|
44
70
|
"peerDependencies": {
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { FormBuilderConfiguration, FormBuilderField } from '../types.js';
|
|
2
|
-
type __VLS_Props = {
|
|
3
|
-
form: FormBuilderConfiguration;
|
|
4
|
-
fields: Array<FormBuilderField>;
|
|
5
|
-
error?: Record<string, unknown>;
|
|
6
|
-
styleConfig?: Record<string, unknown>;
|
|
7
|
-
validationErrors?: Record<string, string | undefined>;
|
|
8
|
-
};
|
|
9
|
-
declare var __VLS_2: string, __VLS_3: {
|
|
10
|
-
field: FormBuilderField;
|
|
11
|
-
config: import("../fieldConfigs.js").BaseFieldConfig | import("../fieldConfigs.js").InputTextFieldConfig | import("../fieldConfigs.js").InputTextareaFieldConfig | import("../fieldConfigs.js").InputEmailFieldConfig | import("../fieldConfigs.js").InputPhoneFieldConfig | import("../fieldConfigs.js").InputNumberFieldConfig | import("../fieldConfigs.js").InputSelectFieldConfig | import("../fieldConfigs.js").InputDateFieldConfig | import("../fieldConfigs.js").InputSliderFieldConfig | import("../fieldConfigs.js").InputCheckboxesFieldConfig | import("../fieldConfigs.js").InputRadioButtonsFieldConfig | import("../fieldConfigs.js").InputSwitchFieldConfig | import("../fieldConfigs.js").InputFileUploadFieldConfig | import("../fieldConfigs.js").DisplayTextFieldConfig;
|
|
12
|
-
styleConfig: Record<string, unknown>;
|
|
13
|
-
input: {
|
|
14
|
-
name: string;
|
|
15
|
-
id: string;
|
|
16
|
-
ariaLabel: string;
|
|
17
|
-
rules: {
|
|
18
|
-
required: boolean | undefined;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
error: {} | null;
|
|
22
|
-
};
|
|
23
|
-
type __VLS_Slots = {} & {
|
|
24
|
-
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
25
|
-
};
|
|
26
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
28
|
-
declare const _default: typeof __VLS_export;
|
|
29
|
-
export default _default;
|
|
30
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
31
|
-
new (): {
|
|
32
|
-
$slots: S;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { FormBuilderConfiguration, FormBuilderField } from '../types.js';
|
|
2
|
-
type __VLS_Props = {
|
|
3
|
-
form: FormBuilderConfiguration;
|
|
4
|
-
fields: Array<FormBuilderField>;
|
|
5
|
-
error?: Record<string, unknown>;
|
|
6
|
-
styleConfig?: Record<string, unknown>;
|
|
7
|
-
validationErrors?: Record<string, string | undefined>;
|
|
8
|
-
};
|
|
9
|
-
declare var __VLS_2: string, __VLS_3: {
|
|
10
|
-
field: FormBuilderField;
|
|
11
|
-
config: import("../fieldConfigs.js").BaseFieldConfig | import("../fieldConfigs.js").InputTextFieldConfig | import("../fieldConfigs.js").InputTextareaFieldConfig | import("../fieldConfigs.js").InputEmailFieldConfig | import("../fieldConfigs.js").InputPhoneFieldConfig | import("../fieldConfigs.js").InputNumberFieldConfig | import("../fieldConfigs.js").InputSelectFieldConfig | import("../fieldConfigs.js").InputDateFieldConfig | import("../fieldConfigs.js").InputSliderFieldConfig | import("../fieldConfigs.js").InputCheckboxesFieldConfig | import("../fieldConfigs.js").InputRadioButtonsFieldConfig | import("../fieldConfigs.js").InputSwitchFieldConfig | import("../fieldConfigs.js").InputFileUploadFieldConfig | import("../fieldConfigs.js").DisplayTextFieldConfig;
|
|
12
|
-
styleConfig: Record<string, unknown>;
|
|
13
|
-
input: {
|
|
14
|
-
name: string;
|
|
15
|
-
id: string;
|
|
16
|
-
ariaLabel: string;
|
|
17
|
-
rules: {
|
|
18
|
-
required: boolean | undefined;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
error: {} | null;
|
|
22
|
-
};
|
|
23
|
-
type __VLS_Slots = {} & {
|
|
24
|
-
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
25
|
-
};
|
|
26
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
28
|
-
declare const _default: typeof __VLS_export;
|
|
29
|
-
export default _default;
|
|
30
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
31
|
-
new (): {
|
|
32
|
-
$slots: S;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|