@wix/headless-forms 0.0.17 → 0.0.18

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.
@@ -41,6 +41,7 @@ const form_public_1 = require("@wix/form-public");
41
41
  const Form_js_1 = require("./core/Form.js");
42
42
  const FieldContext_js_1 = require("./context/FieldContext.js");
43
43
  const FieldLayoutContext_js_1 = require("./context/FieldLayoutContext.js");
44
+ const utils_1 = require("../services/utils");
44
45
  var TestIds;
45
46
  (function (TestIds) {
46
47
  TestIds["formRoot"] = "form-root";
@@ -523,21 +524,30 @@ exports.Submitted = react_1.default.forwardRef((props, ref) => {
523
524
  * ```
524
525
  */
525
526
  exports.Fields = react_1.default.forwardRef((props, ref) => {
526
- const [formValues, setFormValues] = (0, react_1.useState)({});
527
527
  const [formErrors, setFormErrors] = (0, react_1.useState)([]);
528
- const handleFormChange = (0, react_1.useCallback)((values) => {
529
- setFormValues(values);
530
- }, []);
531
528
  const handleFormValidate = (0, react_1.useCallback)((errors) => {
532
529
  setFormErrors(errors);
533
530
  }, []);
534
- return ((0, jsx_runtime_1.jsx)(Form_js_1.Fields, { children: ({ form, submitForm }) => {
531
+ return ((0, jsx_runtime_1.jsx)(Form_js_1.Fields, { children: ({ form, formValues, submitForm, handleForm }) => {
535
532
  if (!form)
536
533
  return null;
537
- return ((0, jsx_runtime_1.jsx)("div", { ref: ref, children: (0, jsx_runtime_1.jsx)(form_public_1.FormProvider, { currency: 'USD', locale: 'en', children: (0, jsx_runtime_1.jsx)(FieldsWithForm, { form: form, values: formValues, onChange: handleFormChange, errors: formErrors, onValidate: handleFormValidate, fields: props.fieldMap, submitForm: () => submitForm(formValues), rowGapClassname: props.rowGapClassname, columnGapClassname: props.columnGapClassname }) }) }));
534
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, children: (0, jsx_runtime_1.jsx)(form_public_1.FormProvider, { currency: 'USD', locale: 'en', children: (0, jsx_runtime_1.jsx)(FieldsWithForm, { form: form, values: formValues, onChange: handleForm, errors: formErrors, onValidate: handleFormValidate, fields: props.fieldMap, submitForm: submitForm, rowGapClassname: props.rowGapClassname, columnGapClassname: props.columnGapClassname }) }) }));
538
535
  } }));
539
536
  });
540
537
  const FieldsWithForm = ({ form, submitForm, values, onChange, errors, onValidate, fields: fieldMap, rowGapClassname, columnGapClassname, }) => {
538
+ const coreUploadFile = async ({ file, formId, }) => {
539
+ const uploadUrl = await (0, utils_1.getUploadUrl)(formId, file);
540
+ if (uploadUrl === undefined) {
541
+ return { isPrivate: false };
542
+ }
543
+ const url = await (0, utils_1.uploadFile)(file, uploadUrl);
544
+ return {
545
+ id: '123123',
546
+ isPrivate: false,
547
+ displayName: file.name,
548
+ url,
549
+ };
550
+ };
541
551
  const formData = (0, form_public_1.useForm)({
542
552
  form,
543
553
  values,
@@ -545,6 +555,7 @@ const FieldsWithForm = ({ form, submitForm, values, onChange, errors, onValidate
545
555
  onChange,
546
556
  onValidate,
547
557
  submitForm,
558
+ uploadFile: coreUploadFile,
548
559
  fieldMap,
549
560
  });
550
561
  if (!formData)
@@ -225,8 +225,10 @@ export declare function Submitted(props: FormSubmittedProps): import("react").Re
225
225
  export interface FieldsRenderProps {
226
226
  /** The form data, or null if not loaded */
227
227
  form: forms.Form | null;
228
+ formValues: FormValues;
228
229
  /** Function to submit the form with values */
229
- submitForm: (formValues: FormValues) => Promise<void>;
230
+ submitForm: () => Promise<void>;
231
+ handleForm: (formValues: FormValues) => Promise<void>;
230
232
  }
231
233
  /**
232
234
  * Props for Fields headless component
@@ -230,11 +230,14 @@ function Submitted(props) {
230
230
  * ```
231
231
  */
232
232
  function Fields(props) {
233
- const { formSignal, submitForm } = (0, services_manager_react_1.useService)(form_service_js_1.FormServiceDefinition);
233
+ const { formSignal, submitForm, handleForm, formValuesSignal } = (0, services_manager_react_1.useService)(form_service_js_1.FormServiceDefinition);
234
234
  const form = formSignal.get();
235
+ const formValues = formValuesSignal.get();
235
236
  return props.children({
236
237
  form,
238
+ formValues,
237
239
  submitForm,
240
+ handleForm,
238
241
  });
239
242
  }
240
243
  /**
@@ -1,3 +1,3 @@
1
1
  export * as Form from './Form.js';
2
2
  export * from './types.js';
3
- export { PhoneField } from '@wix/form-public';
3
+ export { PhoneField, FileUpload } from '@wix/form-public';
@@ -36,8 +36,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.PhoneField = exports.Form = void 0;
39
+ exports.FileUpload = exports.PhoneField = exports.Form = void 0;
40
40
  exports.Form = __importStar(require("./Form.js"));
41
41
  __exportStar(require("./types.js"), exports);
42
42
  var form_public_1 = require("@wix/form-public");
43
43
  Object.defineProperty(exports, "PhoneField", { enumerable: true, get: function () { return form_public_1.PhoneField; } });
44
+ Object.defineProperty(exports, "FileUpload", { enumerable: true, get: function () { return form_public_1.FileUpload; } });
@@ -1,3 +1,14 @@
1
1
  import { type CheckboxGroupProps, type CheckboxProps, type PhoneInputProps, type DateInputProps, type DatePickerProps, type DateTimeInputProps, type DropdownProps, type FileUploadProps, type MultilineAddressProps, type NumberInputProps, type RadioGroupProps, type RatingInputProps, type RichTextProps, type SignatureProps, type SubmitButtonProps, type TagsProps, type TextAreaProps, type TextInputProps, type TimeInputProps, type ProductListProps, type FixedPaymentProps, type PaymentInputProps, type DonationProps, type AppointmentProps, type ImageChoiceProps } from '@wix/form-public';
2
2
  export type { CheckboxGroupProps, CheckboxProps, PhoneInputProps, DateInputProps, DatePickerProps, DateTimeInputProps, DropdownProps, FileUploadProps, MultilineAddressProps, NumberInputProps, RadioGroupProps, RatingInputProps, RichTextProps, SignatureProps, SubmitButtonProps, TagsProps, TextAreaProps, TextInputProps, TimeInputProps, ProductListProps, FixedPaymentProps, PaymentInputProps, DonationProps, AppointmentProps, ImageChoiceProps, };
3
3
  export type FormValues = Record<string, any>;
4
+ export interface UploadFileParams {
5
+ file: File;
6
+ formId: string;
7
+ uploadTarget: string;
8
+ }
9
+ export interface FileDescriptor {
10
+ id?: string;
11
+ displayName?: string;
12
+ url?: string;
13
+ isPrivate: boolean;
14
+ }
@@ -32,8 +32,12 @@ export interface FormServiceAPI {
32
32
  errorSignal: ReadOnlySignal<string | null>;
33
33
  /** Reactive signal containing submission response state */
34
34
  submitResponseSignal: ReadOnlySignal<SubmitResponse>;
35
+ /** Reactive signal that contains all actual formValues */
36
+ formValuesSignal: ReadOnlySignal<FormValues>;
35
37
  /** Function to submit form with current values */
36
- submitForm: (formValues: FormValues) => Promise<void>;
38
+ submitForm: () => Promise<void>;
39
+ /** Function to handle changed form with new values */
40
+ handleForm: (formValues: FormValues) => Promise<void>;
37
41
  }
38
42
  /**
39
43
  * Service definition for the Form service.
@@ -47,6 +47,7 @@ exports.FormService = services_definitions_1.implementService.withConfig()(expor
47
47
  });
48
48
  const hasSchema = 'form' in config;
49
49
  const formSignal = signalsService.signal(hasSchema ? config.form : null);
50
+ const formValuesSignal = signalsService.signal({});
50
51
  if (!hasSchema) {
51
52
  loadForm(config.formId, config.namespace, config.additionalMetadata);
52
53
  }
@@ -88,7 +89,7 @@ exports.FormService = services_definitions_1.implementService.withConfig()(expor
88
89
  * Submits the form with the provided values.
89
90
  * Uses custom handler if provided in config, otherwise uses default submission.
90
91
  */
91
- async function submitForm(formValues) {
92
+ async function submitForm() {
92
93
  const form = formSignal.get();
93
94
  if (!form) {
94
95
  console.error('Cannot submit: form not loaded');
@@ -98,8 +99,8 @@ exports.FormService = services_definitions_1.implementService.withConfig()(expor
98
99
  const formId = form._id ? form._id : form.id;
99
100
  submitResponseSignal.set({ type: 'loading' });
100
101
  try {
101
- const handler = config.onSubmit || defaultSubmitHandler;
102
- const response = await handler(formId, formValues);
102
+ const handler = await defaultSubmitHandler;
103
+ const response = await handler(formId, formValuesSignal.get());
103
104
  submitResponseSignal.set(response);
104
105
  }
105
106
  catch (error) {
@@ -110,12 +111,17 @@ exports.FormService = services_definitions_1.implementService.withConfig()(expor
110
111
  });
111
112
  }
112
113
  }
114
+ async function handleForm(formValues) {
115
+ formValuesSignal.set(formValues);
116
+ }
113
117
  return {
114
- formSignal: formSignal,
115
- isLoadingSignal: isLoadingSignal,
116
- errorSignal: errorSignal,
117
- submitResponseSignal: submitResponseSignal,
118
- submitForm: submitForm,
118
+ formSignal,
119
+ isLoadingSignal,
120
+ errorSignal,
121
+ submitResponseSignal,
122
+ formValuesSignal,
123
+ submitForm,
124
+ handleForm,
119
125
  };
120
126
  });
121
127
  function buildFormFetchQueryParams({ id, namespace, additionalMetadata, }) {
@@ -0,0 +1,2 @@
1
+ export declare const getUploadUrl: (formId: string, file: File) => Promise<string | undefined>;
2
+ export declare const uploadFile: (file: File, uploadUrl: string) => Promise<string | undefined>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uploadFile = exports.getUploadUrl = void 0;
4
+ const forms_1 = require("@wix/forms");
5
+ const essentials_1 = require("@wix/essentials");
6
+ const getUploadUrl = async (formId, file) => {
7
+ try {
8
+ const { uploadUrl } = await forms_1.submissions.getMediaUploadUrl(formId, file.name, file.type);
9
+ return uploadUrl;
10
+ }
11
+ catch {
12
+ console.error('Cannot get uploadUrl for file upload!');
13
+ return;
14
+ }
15
+ };
16
+ exports.getUploadUrl = getUploadUrl;
17
+ const uploadFile = async (file, uploadUrl) => {
18
+ const headers = {
19
+ 'Content-Type': 'application/octet-stream',
20
+ };
21
+ const { withErrorHandler } = essentials_1.errorHandler;
22
+ try {
23
+ const response = await withErrorHandler(() => essentials_1.httpClient.fetchWithAuth(uploadUrl, {
24
+ method: 'PUT',
25
+ body: file,
26
+ headers,
27
+ }), {});
28
+ const data = await response.json();
29
+ if (!data) {
30
+ return;
31
+ }
32
+ return data.file.url;
33
+ }
34
+ catch (e) {
35
+ const resolvedError = essentials_1.errorHandler.getResolvedError(e);
36
+ throw resolvedError;
37
+ }
38
+ };
39
+ exports.uploadFile = uploadFile;
@@ -0,0 +1 @@
1
+ export { getUploadUrl, uploadFile } from './file-upload-utils';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uploadFile = exports.getUploadUrl = void 0;
4
+ var file_upload_utils_1 = require("./file-upload-utils");
5
+ Object.defineProperty(exports, "getUploadUrl", { enumerable: true, get: function () { return file_upload_utils_1.getUploadUrl; } });
6
+ Object.defineProperty(exports, "uploadFile", { enumerable: true, get: function () { return file_upload_utils_1.uploadFile; } });
@@ -5,6 +5,7 @@ import { useForm, FormProvider, } from '@wix/form-public';
5
5
  import { Root as CoreRoot, Loading as CoreLoading, LoadingError as CoreLoadingError, Error as CoreError, Submitted as CoreSubmitted, Fields as CoreFields, Field as CoreField, } from './core/Form.js';
6
6
  import { FieldContext, useFieldContext, } from './context/FieldContext.js';
7
7
  import { FieldLayoutProvider, useFieldLayout, } from './context/FieldLayoutContext.js';
8
+ import { getUploadUrl, uploadFile } from '../services/utils';
8
9
  var TestIds;
9
10
  (function (TestIds) {
10
11
  TestIds["formRoot"] = "form-root";
@@ -487,21 +488,30 @@ export const Submitted = React.forwardRef((props, ref) => {
487
488
  * ```
488
489
  */
489
490
  export const Fields = React.forwardRef((props, ref) => {
490
- const [formValues, setFormValues] = useState({});
491
491
  const [formErrors, setFormErrors] = useState([]);
492
- const handleFormChange = useCallback((values) => {
493
- setFormValues(values);
494
- }, []);
495
492
  const handleFormValidate = useCallback((errors) => {
496
493
  setFormErrors(errors);
497
494
  }, []);
498
- return (_jsx(CoreFields, { children: ({ form, submitForm }) => {
495
+ return (_jsx(CoreFields, { children: ({ form, formValues, submitForm, handleForm }) => {
499
496
  if (!form)
500
497
  return null;
501
- return (_jsx("div", { ref: ref, children: _jsx(FormProvider, { currency: 'USD', locale: 'en', children: _jsx(FieldsWithForm, { form: form, values: formValues, onChange: handleFormChange, errors: formErrors, onValidate: handleFormValidate, fields: props.fieldMap, submitForm: () => submitForm(formValues), rowGapClassname: props.rowGapClassname, columnGapClassname: props.columnGapClassname }) }) }));
498
+ return (_jsx("div", { ref: ref, children: _jsx(FormProvider, { currency: 'USD', locale: 'en', children: _jsx(FieldsWithForm, { form: form, values: formValues, onChange: handleForm, errors: formErrors, onValidate: handleFormValidate, fields: props.fieldMap, submitForm: submitForm, rowGapClassname: props.rowGapClassname, columnGapClassname: props.columnGapClassname }) }) }));
502
499
  } }));
503
500
  });
504
501
  const FieldsWithForm = ({ form, submitForm, values, onChange, errors, onValidate, fields: fieldMap, rowGapClassname, columnGapClassname, }) => {
502
+ const coreUploadFile = async ({ file, formId, }) => {
503
+ const uploadUrl = await getUploadUrl(formId, file);
504
+ if (uploadUrl === undefined) {
505
+ return { isPrivate: false };
506
+ }
507
+ const url = await uploadFile(file, uploadUrl);
508
+ return {
509
+ id: '123123',
510
+ isPrivate: false,
511
+ displayName: file.name,
512
+ url,
513
+ };
514
+ };
505
515
  const formData = useForm({
506
516
  form,
507
517
  values,
@@ -509,6 +519,7 @@ const FieldsWithForm = ({ form, submitForm, values, onChange, errors, onValidate
509
519
  onChange,
510
520
  onValidate,
511
521
  submitForm,
522
+ uploadFile: coreUploadFile,
512
523
  fieldMap,
513
524
  });
514
525
  if (!formData)
@@ -225,8 +225,10 @@ export declare function Submitted(props: FormSubmittedProps): import("react").Re
225
225
  export interface FieldsRenderProps {
226
226
  /** The form data, or null if not loaded */
227
227
  form: forms.Form | null;
228
+ formValues: FormValues;
228
229
  /** Function to submit the form with values */
229
- submitForm: (formValues: FormValues) => Promise<void>;
230
+ submitForm: () => Promise<void>;
231
+ handleForm: (formValues: FormValues) => Promise<void>;
230
232
  }
231
233
  /**
232
234
  * Props for Fields headless component
@@ -221,11 +221,14 @@ export function Submitted(props) {
221
221
  * ```
222
222
  */
223
223
  export function Fields(props) {
224
- const { formSignal, submitForm } = useService(FormServiceDefinition);
224
+ const { formSignal, submitForm, handleForm, formValuesSignal } = useService(FormServiceDefinition);
225
225
  const form = formSignal.get();
226
+ const formValues = formValuesSignal.get();
226
227
  return props.children({
227
228
  form,
229
+ formValues,
228
230
  submitForm,
231
+ handleForm,
229
232
  });
230
233
  }
231
234
  /**
@@ -1,3 +1,3 @@
1
1
  export * as Form from './Form.js';
2
2
  export * from './types.js';
3
- export { PhoneField } from '@wix/form-public';
3
+ export { PhoneField, FileUpload } from '@wix/form-public';
@@ -1,3 +1,3 @@
1
1
  export * as Form from './Form.js';
2
2
  export * from './types.js';
3
- export { PhoneField } from '@wix/form-public';
3
+ export { PhoneField, FileUpload } from '@wix/form-public';
@@ -1,3 +1,14 @@
1
1
  import { type CheckboxGroupProps, type CheckboxProps, type PhoneInputProps, type DateInputProps, type DatePickerProps, type DateTimeInputProps, type DropdownProps, type FileUploadProps, type MultilineAddressProps, type NumberInputProps, type RadioGroupProps, type RatingInputProps, type RichTextProps, type SignatureProps, type SubmitButtonProps, type TagsProps, type TextAreaProps, type TextInputProps, type TimeInputProps, type ProductListProps, type FixedPaymentProps, type PaymentInputProps, type DonationProps, type AppointmentProps, type ImageChoiceProps } from '@wix/form-public';
2
2
  export type { CheckboxGroupProps, CheckboxProps, PhoneInputProps, DateInputProps, DatePickerProps, DateTimeInputProps, DropdownProps, FileUploadProps, MultilineAddressProps, NumberInputProps, RadioGroupProps, RatingInputProps, RichTextProps, SignatureProps, SubmitButtonProps, TagsProps, TextAreaProps, TextInputProps, TimeInputProps, ProductListProps, FixedPaymentProps, PaymentInputProps, DonationProps, AppointmentProps, ImageChoiceProps, };
3
3
  export type FormValues = Record<string, any>;
4
+ export interface UploadFileParams {
5
+ file: File;
6
+ formId: string;
7
+ uploadTarget: string;
8
+ }
9
+ export interface FileDescriptor {
10
+ id?: string;
11
+ displayName?: string;
12
+ url?: string;
13
+ isPrivate: boolean;
14
+ }
@@ -32,8 +32,12 @@ export interface FormServiceAPI {
32
32
  errorSignal: ReadOnlySignal<string | null>;
33
33
  /** Reactive signal containing submission response state */
34
34
  submitResponseSignal: ReadOnlySignal<SubmitResponse>;
35
+ /** Reactive signal that contains all actual formValues */
36
+ formValuesSignal: ReadOnlySignal<FormValues>;
35
37
  /** Function to submit form with current values */
36
- submitForm: (formValues: FormValues) => Promise<void>;
38
+ submitForm: () => Promise<void>;
39
+ /** Function to handle changed form with new values */
40
+ handleForm: (formValues: FormValues) => Promise<void>;
37
41
  }
38
42
  /**
39
43
  * Service definition for the Form service.
@@ -43,6 +43,7 @@ export const FormService = implementService.withConfig()(FormServiceDefinition,
43
43
  });
44
44
  const hasSchema = 'form' in config;
45
45
  const formSignal = signalsService.signal(hasSchema ? config.form : null);
46
+ const formValuesSignal = signalsService.signal({});
46
47
  if (!hasSchema) {
47
48
  loadForm(config.formId, config.namespace, config.additionalMetadata);
48
49
  }
@@ -84,7 +85,7 @@ export const FormService = implementService.withConfig()(FormServiceDefinition,
84
85
  * Submits the form with the provided values.
85
86
  * Uses custom handler if provided in config, otherwise uses default submission.
86
87
  */
87
- async function submitForm(formValues) {
88
+ async function submitForm() {
88
89
  const form = formSignal.get();
89
90
  if (!form) {
90
91
  console.error('Cannot submit: form not loaded');
@@ -94,8 +95,8 @@ export const FormService = implementService.withConfig()(FormServiceDefinition,
94
95
  const formId = form._id ? form._id : form.id;
95
96
  submitResponseSignal.set({ type: 'loading' });
96
97
  try {
97
- const handler = config.onSubmit || defaultSubmitHandler;
98
- const response = await handler(formId, formValues);
98
+ const handler = await defaultSubmitHandler;
99
+ const response = await handler(formId, formValuesSignal.get());
99
100
  submitResponseSignal.set(response);
100
101
  }
101
102
  catch (error) {
@@ -106,12 +107,17 @@ export const FormService = implementService.withConfig()(FormServiceDefinition,
106
107
  });
107
108
  }
108
109
  }
110
+ async function handleForm(formValues) {
111
+ formValuesSignal.set(formValues);
112
+ }
109
113
  return {
110
- formSignal: formSignal,
111
- isLoadingSignal: isLoadingSignal,
112
- errorSignal: errorSignal,
113
- submitResponseSignal: submitResponseSignal,
114
- submitForm: submitForm,
114
+ formSignal,
115
+ isLoadingSignal,
116
+ errorSignal,
117
+ submitResponseSignal,
118
+ formValuesSignal,
119
+ submitForm,
120
+ handleForm,
115
121
  };
116
122
  });
117
123
  function buildFormFetchQueryParams({ id, namespace, additionalMetadata, }) {
@@ -0,0 +1,2 @@
1
+ export declare const getUploadUrl: (formId: string, file: File) => Promise<string | undefined>;
2
+ export declare const uploadFile: (file: File, uploadUrl: string) => Promise<string | undefined>;
@@ -0,0 +1,34 @@
1
+ import { submissions } from '@wix/forms';
2
+ import { httpClient, errorHandler } from '@wix/essentials';
3
+ export const getUploadUrl = async (formId, file) => {
4
+ try {
5
+ const { uploadUrl } = await submissions.getMediaUploadUrl(formId, file.name, file.type);
6
+ return uploadUrl;
7
+ }
8
+ catch {
9
+ console.error('Cannot get uploadUrl for file upload!');
10
+ return;
11
+ }
12
+ };
13
+ export const uploadFile = async (file, uploadUrl) => {
14
+ const headers = {
15
+ 'Content-Type': 'application/octet-stream',
16
+ };
17
+ const { withErrorHandler } = errorHandler;
18
+ try {
19
+ const response = await withErrorHandler(() => httpClient.fetchWithAuth(uploadUrl, {
20
+ method: 'PUT',
21
+ body: file,
22
+ headers,
23
+ }), {});
24
+ const data = await response.json();
25
+ if (!data) {
26
+ return;
27
+ }
28
+ return data.file.url;
29
+ }
30
+ catch (e) {
31
+ const resolvedError = errorHandler.getResolvedError(e);
32
+ throw resolvedError;
33
+ }
34
+ };
@@ -0,0 +1 @@
1
+ export { getUploadUrl, uploadFile } from './file-upload-utils';
@@ -0,0 +1 @@
1
+ export { getUploadUrl, uploadFile } from './file-upload-utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/headless-forms",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -42,7 +42,7 @@
42
42
  "vitest": "^3.1.4"
43
43
  },
44
44
  "dependencies": {
45
- "@wix/form-public": "^0.64.0",
45
+ "@wix/form-public": "^0.68.0",
46
46
  "@wix/forms": "^1.0.331",
47
47
  "@wix/headless-utils": "0.0.7",
48
48
  "@wix/services-definitions": "^0.1.4",
@@ -59,5 +59,5 @@
59
59
  "groupId": "com.wixpress.headless-components"
60
60
  }
61
61
  },
62
- "falconPackageHash": "32d2f15a3874199a26e6700b141253e4f332c4fb8dafbc4bcbc1fcbf"
62
+ "falconPackageHash": "f3edf9d5732afbeb7ae504e3914dcd5e290272761dec8d784dc0e8f8"
63
63
  }