@evanschleret/formforgeclient 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.
Files changed (121) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +94 -0
  3. package/dist/module.cjs +112 -0
  4. package/dist/module.d.cts +20 -0
  5. package/dist/module.d.mts +20 -0
  6. package/dist/module.d.ts +20 -0
  7. package/dist/module.json +12 -0
  8. package/dist/module.mjs +109 -0
  9. package/dist/runtime/api/categories.d.ts +9 -0
  10. package/dist/runtime/api/categories.js +83 -0
  11. package/dist/runtime/api/client.d.ts +45 -0
  12. package/dist/runtime/api/client.js +148 -0
  13. package/dist/runtime/api/drafts.d.ts +6 -0
  14. package/dist/runtime/api/drafts.js +77 -0
  15. package/dist/runtime/api/http.d.ts +3 -0
  16. package/dist/runtime/api/http.js +138 -0
  17. package/dist/runtime/api/index.d.ts +9 -0
  18. package/dist/runtime/api/index.js +11 -0
  19. package/dist/runtime/api/management.d.ts +19 -0
  20. package/dist/runtime/api/management.js +180 -0
  21. package/dist/runtime/api/request.d.ts +8 -0
  22. package/dist/runtime/api/request.js +52 -0
  23. package/dist/runtime/api/responses.d.ts +6 -0
  24. package/dist/runtime/api/responses.js +61 -0
  25. package/dist/runtime/api/schema.d.ts +7 -0
  26. package/dist/runtime/api/schema.js +56 -0
  27. package/dist/runtime/api/submission.d.ts +11 -0
  28. package/dist/runtime/api/submission.js +47 -0
  29. package/dist/runtime/api/upload.d.ts +8 -0
  30. package/dist/runtime/api/upload.js +37 -0
  31. package/dist/runtime/composables/index.d.ts +31 -0
  32. package/dist/runtime/composables/index.js +16 -0
  33. package/dist/runtime/composables/useFormForgeApi.d.ts +3 -0
  34. package/dist/runtime/composables/useFormForgeApi.js +4 -0
  35. package/dist/runtime/composables/useFormForgeBuilder.d.ts +57 -0
  36. package/dist/runtime/composables/useFormForgeBuilder.js +515 -0
  37. package/dist/runtime/composables/useFormForgeCategory.d.ts +61 -0
  38. package/dist/runtime/composables/useFormForgeCategory.js +248 -0
  39. package/dist/runtime/composables/useFormForgeClient.d.ts +3 -0
  40. package/dist/runtime/composables/useFormForgeClient.js +200 -0
  41. package/dist/runtime/composables/useFormForgeDrafts.d.ts +20 -0
  42. package/dist/runtime/composables/useFormForgeDrafts.js +78 -0
  43. package/dist/runtime/composables/useFormForgeForm.d.ts +26 -0
  44. package/dist/runtime/composables/useFormForgeForm.js +114 -0
  45. package/dist/runtime/composables/useFormForgeGetForm.d.ts +22 -0
  46. package/dist/runtime/composables/useFormForgeGetForm.js +36 -0
  47. package/dist/runtime/composables/useFormForgeI18n.d.ts +250 -0
  48. package/dist/runtime/composables/useFormForgeI18n.js +324 -0
  49. package/dist/runtime/composables/useFormForgeManagement.d.ts +40 -0
  50. package/dist/runtime/composables/useFormForgeManagement.js +153 -0
  51. package/dist/runtime/composables/useFormForgeResolver.d.ts +28 -0
  52. package/dist/runtime/composables/useFormForgeResolver.js +88 -0
  53. package/dist/runtime/composables/useFormForgeResponses.d.ts +45 -0
  54. package/dist/runtime/composables/useFormForgeResponses.js +206 -0
  55. package/dist/runtime/composables/useFormForgeSchema.d.ts +24 -0
  56. package/dist/runtime/composables/useFormForgeSchema.js +69 -0
  57. package/dist/runtime/composables/useFormForgeSubmission.d.ts +12 -0
  58. package/dist/runtime/composables/useFormForgeSubmission.js +4 -0
  59. package/dist/runtime/composables/useFormForgeSubmit.d.ts +29 -0
  60. package/dist/runtime/composables/useFormForgeSubmit.js +291 -0
  61. package/dist/runtime/composables/useFormForgeUploads.d.ts +21 -0
  62. package/dist/runtime/composables/useFormForgeUploads.js +37 -0
  63. package/dist/runtime/composables/useFormForgeWizard.d.ts +20 -0
  64. package/dist/runtime/composables/useFormForgeWizard.js +83 -0
  65. package/dist/runtime/index.d.ts +11 -0
  66. package/dist/runtime/index.js +14 -0
  67. package/dist/runtime/plugin.d.ts +3 -0
  68. package/dist/runtime/plugin.js +175 -0
  69. package/dist/runtime/renderers/default/FormForgeBuilder.d.vue.ts +40 -0
  70. package/dist/runtime/renderers/default/FormForgeBuilder.vue +1159 -0
  71. package/dist/runtime/renderers/default/FormForgeBuilder.vue.d.ts +40 -0
  72. package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.d.vue.ts +16 -0
  73. package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.vue +129 -0
  74. package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.vue.d.ts +16 -0
  75. package/dist/runtime/renderers/default/FormForgeRenderer.d.vue.ts +72 -0
  76. package/dist/runtime/renderers/default/FormForgeRenderer.vue +1188 -0
  77. package/dist/runtime/renderers/default/FormForgeRenderer.vue.d.ts +72 -0
  78. package/dist/runtime/renderers/default/FormForgeResponse.d.vue.ts +18 -0
  79. package/dist/runtime/renderers/default/FormForgeResponse.vue +744 -0
  80. package/dist/runtime/renderers/default/FormForgeResponse.vue.d.ts +18 -0
  81. package/dist/runtime/renderers/default/index.d.ts +5 -0
  82. package/dist/runtime/renderers/default/index.js +4 -0
  83. package/dist/runtime/renderers/index.d.ts +2 -0
  84. package/dist/runtime/renderers/index.js +1 -0
  85. package/dist/runtime/types/api.d.ts +129 -0
  86. package/dist/runtime/types/api.js +0 -0
  87. package/dist/runtime/types/category.d.ts +42 -0
  88. package/dist/runtime/types/category.js +0 -0
  89. package/dist/runtime/types/errors.d.ts +16 -0
  90. package/dist/runtime/types/errors.js +0 -0
  91. package/dist/runtime/types/index.d.ts +8 -0
  92. package/dist/runtime/types/index.js +0 -0
  93. package/dist/runtime/types/json.d.ts +6 -0
  94. package/dist/runtime/types/json.js +0 -0
  95. package/dist/runtime/types/management.d.ts +46 -0
  96. package/dist/runtime/types/management.js +0 -0
  97. package/dist/runtime/types/nuxt.d.ts +13 -0
  98. package/dist/runtime/types/nuxt.js +1 -0
  99. package/dist/runtime/types/schema.d.ts +93 -0
  100. package/dist/runtime/types/schema.js +0 -0
  101. package/dist/runtime/utils/category.d.ts +5 -0
  102. package/dist/runtime/utils/category.js +101 -0
  103. package/dist/runtime/utils/form-data.d.ts +8 -0
  104. package/dist/runtime/utils/form-data.js +64 -0
  105. package/dist/runtime/utils/object.d.ts +8 -0
  106. package/dist/runtime/utils/object.js +43 -0
  107. package/dist/runtime/utils/schema.d.ts +3 -0
  108. package/dist/runtime/utils/schema.js +309 -0
  109. package/dist/runtime/utils/submission.d.ts +4 -0
  110. package/dist/runtime/utils/submission.js +45 -0
  111. package/dist/runtime/validation/errors.d.ts +5 -0
  112. package/dist/runtime/validation/errors.js +130 -0
  113. package/dist/runtime/validation/zod.d.ts +6 -0
  114. package/dist/runtime/validation/zod.js +203 -0
  115. package/dist/runtime.cjs +16 -0
  116. package/dist/runtime.d.cts +1 -0
  117. package/dist/runtime.d.mts +1 -0
  118. package/dist/runtime.d.ts +1 -0
  119. package/dist/runtime.mjs +1 -0
  120. package/dist/types.d.mts +3 -0
  121. package/package.json +60 -0
@@ -0,0 +1,61 @@
1
+ import { isFormForgeJsonObject, pickFormForgeDataEnvelope } from "../utils/object.js";
2
+ import { resolveEndpointPath } from "./request.js";
3
+ function asJsonObjectArray(value) {
4
+ if (!Array.isArray(value)) {
5
+ return [];
6
+ }
7
+ const items = [];
8
+ for (const item of value) {
9
+ if (isFormForgeJsonObject(item)) {
10
+ items.push(item);
11
+ }
12
+ }
13
+ return items;
14
+ }
15
+ function normalizeResponsesList(payload) {
16
+ const dataValue = payload.data;
17
+ if (Array.isArray(dataValue)) {
18
+ return asJsonObjectArray(dataValue);
19
+ }
20
+ if (!isFormForgeJsonObject(dataValue)) {
21
+ return asJsonObjectArray(payload.items ?? payload.responses ?? payload.submissions);
22
+ }
23
+ const nestedData = dataValue.data;
24
+ if (Array.isArray(nestedData)) {
25
+ return asJsonObjectArray(nestedData);
26
+ }
27
+ return asJsonObjectArray(dataValue.items ?? dataValue.responses ?? dataValue.submissions);
28
+ }
29
+ export async function fetchFormForgeResponses(http, key, query = {}, options = {}) {
30
+ const response = await http({
31
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}/responses`, {
32
+ key
33
+ }, options.scope),
34
+ method: "GET",
35
+ query
36
+ });
37
+ return {
38
+ data: normalizeResponsesList(response.data),
39
+ meta: isFormForgeJsonObject(response.data.meta) ? response.data.meta : void 0
40
+ };
41
+ }
42
+ export async function fetchFormForgeResponse(http, key, submissionId, options = {}) {
43
+ const response = await http({
44
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}/responses/${submissionId}`, {
45
+ key,
46
+ submissionId
47
+ }, options.scope),
48
+ method: "GET"
49
+ });
50
+ return pickFormForgeDataEnvelope(response.data);
51
+ }
52
+ export async function deleteFormForgeResponse(http, key, submissionId, options = {}) {
53
+ const response = await http({
54
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}/responses/${submissionId}`, {
55
+ key,
56
+ submissionId
57
+ }, options.scope),
58
+ method: "DELETE"
59
+ });
60
+ return pickFormForgeDataEnvelope(response.data);
61
+ }
@@ -0,0 +1,7 @@
1
+ import type { FormForgeFormSchema, FormForgeHttpAdapter, FormForgeResolveInput, FormForgeSchemaVersionsResponse } from '../types/index.js';
2
+ import { type FormForgeRequestOptions } from './request.js';
3
+ export declare function fetchFormForgeSchema(http: FormForgeHttpAdapter, key: string, options?: FormForgeRequestOptions): Promise<FormForgeFormSchema>;
4
+ export declare function fetchFormForgeSchemaVersions(http: FormForgeHttpAdapter, key: string, options?: FormForgeRequestOptions): Promise<FormForgeSchemaVersionsResponse>;
5
+ export declare function fetchFormForgeSchemaVersion(http: FormForgeHttpAdapter, key: string, version: string, options?: FormForgeRequestOptions): Promise<FormForgeFormSchema>;
6
+ export declare function resolveFormForgeSchema(http: FormForgeHttpAdapter, key: string, input?: FormForgeResolveInput, version?: string, options?: FormForgeRequestOptions): Promise<FormForgeFormSchema>;
7
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1,56 @@
1
+ import { isFormForgeJsonObject, pickFormForgeDataEnvelope } from "../utils/object.js";
2
+ import { normalizeFormForgeSchema } from "../utils/schema.js";
3
+ import { resolveEndpointPath } from "./request.js";
4
+ export async function fetchFormForgeSchema(http, key, options = {}) {
5
+ const response = await http({
6
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}`, {
7
+ key
8
+ }, options.scope),
9
+ method: "GET"
10
+ });
11
+ return normalizeFormForgeSchema(response.data);
12
+ }
13
+ export async function fetchFormForgeSchemaVersions(http, key, options = {}) {
14
+ const response = await http({
15
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}/versions`, {
16
+ key
17
+ }, options.scope),
18
+ method: "GET"
19
+ });
20
+ return {
21
+ data: pickFormForgeDataEnvelope(response.data),
22
+ meta: response.data.meta
23
+ };
24
+ }
25
+ export async function fetchFormForgeSchemaVersion(http, key, version, options = {}) {
26
+ const response = await http({
27
+ path: resolveEndpointPath(options.endpoint, `/forms/${key}/versions/${version}`, {
28
+ key,
29
+ version
30
+ }, options.scope),
31
+ method: "GET"
32
+ });
33
+ return normalizeFormForgeSchema(response.data);
34
+ }
35
+ export async function resolveFormForgeSchema(http, key, input = {}, version, options = {}) {
36
+ const fallbackPath = version !== void 0 && version !== "" ? `/forms/${key}/versions/${version}/resolve` : `/forms/${key}/resolve`;
37
+ const path = resolveEndpointPath(options.endpoint, fallbackPath, {
38
+ key,
39
+ version: version ?? ""
40
+ }, options.scope);
41
+ const body = {
42
+ payload: JSON.parse(JSON.stringify(input.payload ?? {})),
43
+ debug: input.debug === true
44
+ };
45
+ const response = await http({
46
+ path,
47
+ method: "POST",
48
+ json: body
49
+ });
50
+ const data = pickFormForgeDataEnvelope(response.data);
51
+ const schemaValue = data.schema;
52
+ if (isFormForgeJsonObject(schemaValue)) {
53
+ return normalizeFormForgeSchema(schemaValue);
54
+ }
55
+ return normalizeFormForgeSchema(data);
56
+ }
@@ -0,0 +1,11 @@
1
+ import type { FormForgeHttpAdapter, FormForgeSubmitInput, FormForgeSubmissionResponse } from '../types/index.js';
2
+ import { type FormForgeRequestOptions } from './request.js';
3
+ interface FormForgeSubmitOptions extends FormForgeRequestOptions {
4
+ version?: string;
5
+ }
6
+ export declare function submitFormForgeJson(http: FormForgeHttpAdapter, key: string, input: FormForgeSubmitInput, options?: FormForgeSubmitOptions): Promise<FormForgeSubmissionResponse>;
7
+ export declare function submitFormForgeMultipart(http: FormForgeHttpAdapter, key: string, formData: FormData, options?: FormForgeSubmitOptions & {
8
+ test?: boolean;
9
+ }): Promise<FormForgeSubmissionResponse>;
10
+ export {};
11
+ //# sourceMappingURL=submission.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { buildJsonSubmitBody } from "../utils/form-data.js";
2
+ import { pickFormForgeDataEnvelope } from "../utils/object.js";
3
+ import { resolveEndpointPath } from "./request.js";
4
+ function buildSubmitPath(key, version) {
5
+ if (version !== void 0 && version !== "") {
6
+ return `/forms/${key}/versions/${version}/submit`;
7
+ }
8
+ return `/forms/${key}/submit`;
9
+ }
10
+ export async function submitFormForgeJson(http, key, input, options = {}) {
11
+ const headers = {};
12
+ if (input.test === true) {
13
+ headers["X-FormForge-Test"] = "true";
14
+ }
15
+ const response = await http({
16
+ path: resolveEndpointPath(options.endpoint, buildSubmitPath(key, options.version), {
17
+ key,
18
+ version: options.version ?? ""
19
+ }, options.scope),
20
+ method: "POST",
21
+ headers,
22
+ json: buildJsonSubmitBody(input.payload, input.meta)
23
+ });
24
+ return {
25
+ data: pickFormForgeDataEnvelope(response.data),
26
+ meta: response.data.meta
27
+ };
28
+ }
29
+ export async function submitFormForgeMultipart(http, key, formData, options = {}) {
30
+ const headers = {};
31
+ if (options.test === true) {
32
+ headers["X-FormForge-Test"] = "true";
33
+ }
34
+ const response = await http({
35
+ path: resolveEndpointPath(options.endpoint, buildSubmitPath(key, options.version), {
36
+ key,
37
+ version: options.version ?? ""
38
+ }, options.scope),
39
+ method: "POST",
40
+ headers,
41
+ body: formData
42
+ });
43
+ return {
44
+ data: pickFormForgeDataEnvelope(response.data),
45
+ meta: response.data.meta
46
+ };
47
+ }
@@ -0,0 +1,8 @@
1
+ import type { FormForgeHttpAdapter, FormForgeStageUploadInput, FormForgeStagedUploadResponse } from '../types/index.js';
2
+ import { type FormForgeRequestOptions } from './request.js';
3
+ interface FormForgeStageUploadOptions extends FormForgeRequestOptions {
4
+ version?: string;
5
+ }
6
+ export declare function stageFormForgeUpload(http: FormForgeHttpAdapter, key: string, input: FormForgeStageUploadInput, options?: FormForgeStageUploadOptions): Promise<FormForgeStagedUploadResponse>;
7
+ export {};
8
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { pickFormForgeDataEnvelope } from "../utils/object.js";
2
+ import { resolveEndpointPath } from "./request.js";
3
+ function buildUploadPath(key, version) {
4
+ if (version !== void 0 && version !== "") {
5
+ return `/forms/${key}/versions/${version}/uploads/stage`;
6
+ }
7
+ return `/forms/${key}/uploads/stage`;
8
+ }
9
+ export async function stageFormForgeUpload(http, key, input, options = {}) {
10
+ const formData = new FormData();
11
+ if (input.field !== void 0) {
12
+ formData.append("field", input.field);
13
+ }
14
+ if (input.field_key !== void 0) {
15
+ formData.append("field_key", input.field_key);
16
+ }
17
+ formData.append("file", input.file);
18
+ const response = await http({
19
+ path: resolveEndpointPath(options.endpoint, buildUploadPath(key, options.version), {
20
+ key,
21
+ version: options.version ?? ""
22
+ }, options.scope),
23
+ method: "POST",
24
+ body: formData
25
+ });
26
+ const data = pickFormForgeDataEnvelope(response.data);
27
+ const stagedValue = data.staged;
28
+ return {
29
+ data: {
30
+ staged: {
31
+ upload_token: String(stagedValue.upload_token ?? ""),
32
+ expires_at: typeof stagedValue.expires_at === "string" ? stagedValue.expires_at : void 0
33
+ }
34
+ },
35
+ meta: response.data.meta
36
+ };
37
+ }
@@ -0,0 +1,31 @@
1
+ export { useFormForgeApi } from './useFormForgeApi.js';
2
+ export { useFormForgeClient } from './useFormForgeClient.js';
3
+ export { useFormForgeSchema } from './useFormForgeSchema.js';
4
+ export { useFormForgeGetForm } from './useFormForgeGetForm.js';
5
+ export { useFormForgeI18n } from './useFormForgeI18n.js';
6
+ export { useFormForgeResolver } from './useFormForgeResolver.js';
7
+ export { useFormForgeDrafts } from './useFormForgeDrafts.js';
8
+ export { useFormForgeUploads } from './useFormForgeUploads.js';
9
+ export { useFormForgeForm } from './useFormForgeForm.js';
10
+ export { useFormForgeSubmit } from './useFormForgeSubmit.js';
11
+ export { useFormForgeSubmission } from './useFormForgeSubmission.js';
12
+ export { useFormForgeResponses } from './useFormForgeResponses.js';
13
+ export { useFormForgeCategory, useFormForgeCategoryOptions, normalizeFormForgeCategoryOptions } from './useFormForgeCategory.js';
14
+ export { useFormForgeManagement } from './useFormForgeManagement.js';
15
+ export { useFormForgeWizard } from './useFormForgeWizard.js';
16
+ export { useFormForgeBuilder } from './useFormForgeBuilder.js';
17
+ export type { UseFormForgeSchemaOptions, FormForgeSchemaFetchOptions } from './useFormForgeSchema.js';
18
+ export type { UseFormForgeGetFormOptions, FormForgeGetFormParams } from './useFormForgeGetForm.js';
19
+ export type { UseFormForgeI18nOptions, FormForgeLocale } from './useFormForgeI18n.js';
20
+ export type { UseFormForgeResolverOptions, FormForgeResolveOptions } from './useFormForgeResolver.js';
21
+ export type { UseFormForgeDraftsOptions, FormForgeDraftRequestOptions } from './useFormForgeDrafts.js';
22
+ export type { UseFormForgeUploadsOptions, FormForgeUploadOptions } from './useFormForgeUploads.js';
23
+ export type { UseFormForgeFormOptions, FormForgeFormRequestOptions } from './useFormForgeForm.js';
24
+ export type { UseFormForgeSubmitOptions, FormForgeSubmitOptions } from './useFormForgeSubmit.js';
25
+ export type { UseFormForgeSubmissionOptions, FormForgeSubmissionOptions } from './useFormForgeSubmission.js';
26
+ export type { UseFormForgeResponsesOptions, UseFormForgeResponsesQuerySync, FormForgeResponsesRefreshOptions, FormForgeResponsesRequestOptions } from './useFormForgeResponses.js';
27
+ export type { UseFormForgeCategoryOptions, FormForgeCategoryRequestOptions, FormForgeCategoryRefreshOptions, UseFormForgeCategoryOptionsHelperInput } from './useFormForgeCategory.js';
28
+ export type { UseFormForgeManagementOptions, UseFormForgeManagementMutationInputOptions } from './useFormForgeManagement.js';
29
+ export type { UseFormForgeWizardOptions } from './useFormForgeWizard.js';
30
+ export type { UseFormForgeBuilderOptions, FormForgeBuilderDraft } from './useFormForgeBuilder.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,16 @@
1
+ export { useFormForgeApi } from "./useFormForgeApi.js";
2
+ export { useFormForgeClient } from "./useFormForgeClient.js";
3
+ export { useFormForgeSchema } from "./useFormForgeSchema.js";
4
+ export { useFormForgeGetForm } from "./useFormForgeGetForm.js";
5
+ export { useFormForgeI18n } from "./useFormForgeI18n.js";
6
+ export { useFormForgeResolver } from "./useFormForgeResolver.js";
7
+ export { useFormForgeDrafts } from "./useFormForgeDrafts.js";
8
+ export { useFormForgeUploads } from "./useFormForgeUploads.js";
9
+ export { useFormForgeForm } from "./useFormForgeForm.js";
10
+ export { useFormForgeSubmit } from "./useFormForgeSubmit.js";
11
+ export { useFormForgeSubmission } from "./useFormForgeSubmission.js";
12
+ export { useFormForgeResponses } from "./useFormForgeResponses.js";
13
+ export { useFormForgeCategory, useFormForgeCategoryOptions, normalizeFormForgeCategoryOptions } from "./useFormForgeCategory.js";
14
+ export { useFormForgeManagement } from "./useFormForgeManagement.js";
15
+ export { useFormForgeWizard } from "./useFormForgeWizard.js";
16
+ export { useFormForgeBuilder } from "./useFormForgeBuilder.js";
@@ -0,0 +1,3 @@
1
+ import type { FormForgeClient, FormForgeClientConfig } from '../types/index.js';
2
+ export declare function useFormForgeApi(config?: FormForgeClientConfig): FormForgeClient;
3
+ //# sourceMappingURL=useFormForgeApi.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { useFormForgeClient } from "./useFormForgeClient.js";
2
+ export function useFormForgeApi(config = {}) {
3
+ return useFormForgeClient(config);
4
+ }
@@ -0,0 +1,57 @@
1
+ import type { FormForgeClient, FormForgeClientConfig, FormForgeCondition, FormForgeConditionAction, FormForgeConditionMatch, FormForgeConditionOperator, FormForgeConditionTargetType, FormForgeDraftSettings, FormForgeFieldType, FormForgeScope, FormForgePageSchema } from '../types/index.js';
2
+ export interface FormForgeBuilderDraft {
3
+ uuid: string | null;
4
+ key: string | null;
5
+ title: string;
6
+ category: string | null;
7
+ pages: FormForgePageSchema[];
8
+ conditions: FormForgeCondition[];
9
+ drafts: FormForgeDraftSettings;
10
+ }
11
+ export interface UseFormForgeBuilderOptions {
12
+ formUuid?: string;
13
+ formKey?: string;
14
+ endpoint?: string;
15
+ scope?: FormForgeScope;
16
+ initial?: Partial<FormForgeBuilderDraft>;
17
+ autosave?: boolean;
18
+ autosaveDelay?: number;
19
+ client?: FormForgeClient;
20
+ clientConfig?: FormForgeClientConfig;
21
+ }
22
+ export declare const FORM_FORGE_BUILDER_FIELD_TYPES: FormForgeFieldType[];
23
+ export declare const FORM_FORGE_BUILDER_CONDITION_TARGET_TYPES: FormForgeConditionTargetType[];
24
+ export declare const FORM_FORGE_BUILDER_CONDITION_ACTIONS: FormForgeConditionAction[];
25
+ export declare const FORM_FORGE_BUILDER_CONDITION_MATCHES: FormForgeConditionMatch[];
26
+ export declare const FORM_FORGE_BUILDER_CONDITION_OPERATORS: FormForgeConditionOperator[];
27
+ export declare function useFormForgeBuilder(options?: UseFormForgeBuilderOptions): {
28
+ client: FormForgeClient;
29
+ loading: any;
30
+ saving: any;
31
+ publishing: any;
32
+ error: any;
33
+ draft: {
34
+ value: FormForgeBuilderDraft;
35
+ };
36
+ autosaveEnabled: any;
37
+ autosaveDelay: any;
38
+ lastSavedAt: any;
39
+ publishable: any;
40
+ addPage: () => void;
41
+ removePage: (pageKey: string) => void;
42
+ mergePageWithPrevious: (pageKey: string) => void;
43
+ addField: (pageKey: string, type: FormForgeFieldType) => void;
44
+ duplicateField: (pageKey: string, fieldKey: string) => void;
45
+ removeField: (pageKey: string, fieldKey: string) => void;
46
+ addCondition: () => void;
47
+ removeCondition: (conditionKey: string) => void;
48
+ addConditionClause: (conditionKey: string) => void;
49
+ removeConditionClause: (conditionKey: string, index: number) => void;
50
+ normalizeFieldLocations: () => void;
51
+ save: (idempotencyKey?: string) => Promise<void>;
52
+ publish: (idempotencyKey?: string) => Promise<void>;
53
+ unpublish: (idempotencyKey?: string) => Promise<void>;
54
+ clearAutosave: () => void;
55
+ scheduleAutosave: () => void;
56
+ };
57
+ //# sourceMappingURL=useFormForgeBuilder.d.ts.map