@wix/headless-forms 0.0.1 → 0.0.2

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.
@@ -563,7 +563,7 @@ export interface FieldsProps {
563
563
  * };
564
564
  * ```
565
565
  */
566
- export declare const Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLElement>>;
566
+ export declare const Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLDivElement>>;
567
567
  /**
568
568
  * Main Form namespace containing all form components following the compound component pattern.
569
569
  * Provides a headless, flexible way to render and manage forms with custom field components.
@@ -627,6 +627,6 @@ export declare const Form: {
627
627
  /** Form submitted state component */
628
628
  readonly Submitted: React.ForwardRefExoticComponent<SubmittedProps & React.RefAttributes<HTMLElement>>;
629
629
  /** Form fields component for rendering form fields */
630
- readonly Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLElement>>;
630
+ readonly Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLDivElement>>;
631
631
  };
632
632
  export {};
@@ -32,15 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.Form = exports.Fields = exports.Submitted = exports.Error = exports.LoadingError = exports.Loading = exports.Root = void 0;
40
37
  const jsx_runtime_1 = require("react/jsx-runtime");
41
- const react_1 = __importDefault(require("react"));
38
+ const react_1 = __importStar(require("react"));
42
39
  const react_2 = require("@wix/headless-utils/react");
43
- const CoreForm = __importStar(require("./core/Form.js"));
40
+ const services_manager_react_1 = require("@wix/services-manager-react");
41
+ const form_public_1 = require("@wix/form-public");
42
+ const form_service_1 = require("../services/form-service");
43
+ const CoreForm = __importStar(require("./core/Form"));
44
44
  var TestIds;
45
45
  (function (TestIds) {
46
46
  TestIds["formRoot"] = "form-root";
@@ -114,7 +114,7 @@ exports.Root = react_1.default.forwardRef((props, ref) => {
114
114
  */
115
115
  const RootContent = react_1.default.forwardRef((props, ref) => {
116
116
  const { asChild, children, className, ...otherProps } = props;
117
- return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": TestIds.formRoot, customElement: children, customElementProps: {}, ...otherProps, children: (0, jsx_runtime_1.jsx)("div", { children: react_1.default.isValidElement(children) ? children : null }) }));
117
+ return ((0, jsx_runtime_1.jsx)(react_2.AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": TestIds.formRoot, customElement: children, customElementProps: {}, ...otherProps, children: (0, jsx_runtime_1.jsx)("div", { children: children }) }));
118
118
  });
119
119
  /**
120
120
  * Component that renders content during loading state.
@@ -483,108 +483,26 @@ exports.Submitted = react_1.default.forwardRef((props, ref) => {
483
483
  * };
484
484
  * ```
485
485
  */
486
- exports.Fields = react_1.default.forwardRef(({ fieldMap }) => {
487
- // TODO: render real viewer
488
- return (0, jsx_runtime_1.jsx)(MockViewer, { fieldMap: fieldMap });
489
- });
490
- const MockViewer = ({ fieldMap }) => {
491
- // This is how fieldMap is expected to be used in the viewer
492
- const schemaFields = {
493
- // CONTACTS_FIELD_TYPES
494
- CONTACTS_COMPANY: fieldMap.TEXT_INPUT,
495
- CONTACTS_POSITION: fieldMap.TEXT_INPUT,
496
- CONTACTS_TAX_ID: fieldMap.TEXT_INPUT,
497
- CONTACTS_FIRST_NAME: fieldMap.TEXT_INPUT,
498
- CONTACTS_LAST_NAME: fieldMap.TEXT_INPUT,
499
- CONTACTS_EMAIL: fieldMap.TEXT_INPUT,
500
- CONTACTS_BIRTHDATE: fieldMap.DATE_INPUT,
501
- CONTACTS_PHONE: fieldMap.PHONE_INPUT,
502
- CONTACTS_ADDRESS: fieldMap.TEXT_INPUT,
503
- CONTACTS_SUBSCRIBE: fieldMap.CHECKBOX,
504
- // QUIZ_FIELD_TYPES
505
- QUIZ_MULTI_CHOICE: fieldMap.CHECKBOX_GROUP,
506
- QUIZ_SINGLE_CHOICE: fieldMap.RADIO_GROUP,
507
- QUIZ_SHORT_TEXT: fieldMap.TEXT_INPUT,
508
- QUIZ_LONG_TEXT: fieldMap.TEXT_AREA,
509
- QUIZ_NUMBER: fieldMap.NUMBER_INPUT,
510
- QUIZ_FILE_UPLOAD: fieldMap.FILE_UPLOAD,
511
- QUIZ_IMAGE_CHOICE: fieldMap.IMAGE_CHOICE, // TODO: add
512
- // DEXT_FIELD_TYPES
513
- DEXT_TEXT_INPUT: fieldMap.TEXT_INPUT,
514
- DEXT_TEXT_AREA: fieldMap.TEXT_AREA,
515
- DEXT_DROPDOWN: fieldMap.DROPDOWN,
516
- DEXT_URL_INPUT: fieldMap.TEXT_INPUT,
517
- DEXT_RADIO_GROUP: fieldMap.RADIO_GROUP,
518
- DEXT_NUMBER_INPUT: fieldMap.NUMBER_INPUT,
519
- DEXT_CHECKBOX: fieldMap.CHECKBOX,
520
- DEXT_CHECKBOX_GROUP: fieldMap.CHECKBOX_GROUP,
521
- DEXT_EMAIL: fieldMap.TEXT_INPUT,
522
- DEXT_PHONE: fieldMap.PHONE_INPUT,
523
- DEXT_RATING_INPUT: fieldMap.RATING_INPUT,
524
- DEXT_DATE_PICKER: fieldMap.DATE_PICKER,
525
- DEXT_TAGS: fieldMap.TAGS,
526
- // SCHEDULING_FIELD_TYPES
527
- APPOINTMENT: fieldMap.APPOINTMENT,
528
- SERVICES_DROPDOWN: fieldMap.DROPDOWN,
529
- // ECOM_FIELD_TYPES
530
- ECOM_ADDITIONAL_INFO: fieldMap.TEXT_AREA,
531
- ECOM_ADDRESS: fieldMap.TEXT_INPUT,
532
- ECOM_FULL_NAME: fieldMap.TEXT_INPUT,
533
- ECOM_PHONE: fieldMap.PHONE_INPUT,
534
- ECOM_COMPANY_NAME: fieldMap.TEXT_INPUT,
535
- ECOM_EMAIL: fieldMap.TEXT_INPUT,
536
- ECOM_SUBSCRIPTION: fieldMap.CHECKBOX,
537
- // BOOKINGS_FIELD_TYPES
538
- BOOKINGS_FIRST_NAME: fieldMap.TEXT_INPUT,
539
- BOOKINGS_LAST_NAME: fieldMap.TEXT_INPUT,
540
- BOOKINGS_EMAIL: fieldMap.TEXT_INPUT,
541
- BOOKINGS_PHONE: fieldMap.PHONE_INPUT,
542
- BOOKINGS_ADDRESS: fieldMap.TEXT_INPUT,
543
- // PAYMENTS_FIELD_TYPES
544
- PRODUCT_LIST: fieldMap.PRODUCT_LIST,
545
- DONATION: fieldMap.DONATION,
546
- PAYMENT_INPUT: fieldMap.PAYMENT_INPUT, // could be TEXT_INPUT?
547
- FIXED_PAYMENT: fieldMap.FIXED_PAYMENT, // could be TAGS?
548
- // COMMON_FIELD_TYPES
549
- TEXT_INPUT: fieldMap.TEXT_INPUT,
550
- NUMBER_INPUT: fieldMap.NUMBER_INPUT,
551
- URL_INPUT: fieldMap.TEXT_INPUT,
552
- TEXT_AREA: fieldMap.TEXT_AREA,
553
- DATE_INPUT: fieldMap.DATE_INPUT,
554
- DATE_TIME_INPUT: fieldMap.DATE_TIME_INPUT,
555
- TIME_INPUT: fieldMap.TIME_INPUT,
556
- RADIO_GROUP: fieldMap.RADIO_GROUP,
557
- CHECKBOX_GROUP: fieldMap.CHECKBOX_GROUP,
558
- FILE_UPLOAD: fieldMap.FILE_UPLOAD,
559
- CHECKBOX: fieldMap.CHECKBOX,
560
- DROPDOWN: fieldMap.DROPDOWN,
561
- // NESTED_FORM: 'NESTED_FORM',
562
- MULTILINE_ADDRESS: fieldMap.MULTILINE_ADDRESS,
563
- // are these relevant for headless?
564
- MLA_COUNTRY: fieldMap.DROPDOWN,
565
- MLA_CITY: fieldMap.TEXT_INPUT,
566
- MLA_ADDRESS_LINE: fieldMap.TEXT_INPUT, // dropdown if autocomplete disabled?
567
- MLA_ADDRESS_LINE_2: fieldMap.TEXT_INPUT,
568
- MLA_POSTAL_CODE: fieldMap.TEXT_INPUT,
569
- MLA_SUBDIVISION: fieldMap.DROPDOWN,
570
- MLA_STREET_NAME: fieldMap.TEXT_INPUT,
571
- MLA_STREET_NUMBER: fieldMap.TEXT_INPUT,
572
- MLA_APARTMENT: fieldMap.TEXT_INPUT,
573
- FULL_NAME_FIRST_NAME: fieldMap.TEXT_INPUT,
574
- FULL_NAME_LAST_NAME: fieldMap.TEXT_INPUT,
575
- FULL_NAME: fieldMap.TEXT_INPUT,
576
- VAT_ID: fieldMap.TEXT_INPUT,
577
- SIGNATURE: fieldMap.SIGNATURE,
578
- RATING_INPUT: fieldMap.RATING_INPUT,
579
- TAGS: fieldMap.TAGS,
580
- DATE_PICKER: fieldMap.DATE_PICKER,
581
- // READONLY_FIELD_TYPES
582
- HEADER: fieldMap.TEXT,
583
- RICH_TEXT: fieldMap.TEXT,
584
- SUBMIT_BUTTON: fieldMap.SUBMIT_BUTTON,
486
+ exports.Fields = react_1.default.forwardRef(({ fieldMap }, ref) => {
487
+ const formService = (0, services_manager_react_1.useService)(form_service_1.FormServiceDefinition);
488
+ const form = formService.form.get();
489
+ const _form = {
490
+ ...form,
491
+ id: form?._id,
492
+ fields: form?.formFields?.map((field) => ({ ...field, id: field._id })),
585
493
  };
586
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { children: "Form Fields" }), (0, jsx_runtime_1.jsx)("div", { children: JSON.stringify(schemaFields) })] }));
587
- };
494
+ const [formValues, setFormValues] = (0, react_1.useState)({});
495
+ const [formErrors, setFormErrors] = (0, react_1.useState)([]);
496
+ const handleFormChange = (0, react_1.useCallback)((values) => {
497
+ setFormValues(values);
498
+ }, []);
499
+ const handleFormValidate = (0, react_1.useCallback)((errors) => {
500
+ setFormErrors(errors);
501
+ }, []);
502
+ if (!form)
503
+ return (0, jsx_runtime_1.jsx)("div", { children: "Form not found, oops!" });
504
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, children: (0, jsx_runtime_1.jsx)(form_public_1.Form, { form: _form, values: formValues, onChange: handleFormChange, errors: formErrors, onValidate: handleFormValidate, fields: fieldMap }) }));
505
+ });
588
506
  /**
589
507
  * Main Form namespace containing all form components following the compound component pattern.
590
508
  * Provides a headless, flexible way to render and manage forms with custom field components.
@@ -786,7 +786,7 @@ export interface DateInputProps extends BaseFieldProps {
786
786
  label: string;
787
787
  showLabel: boolean;
788
788
  showPlaceholder: boolean;
789
- firstDayOfWeek: 'SUNDAY' | 'MONDAY';
789
+ showDateLabels: boolean;
790
790
  acceptedDates: 'all' | 'past' | 'future';
791
791
  description?: forms.RichContent;
792
792
  }
@@ -136,6 +136,6 @@ async function loadFormServiceConfig(id) {
136
136
  }
137
137
  catch (error) {
138
138
  console.error('Failed to load form:', error);
139
- return { type: 'notFound' };
140
139
  }
140
+ return { type: 'notFound' };
141
141
  }
@@ -563,7 +563,7 @@ export interface FieldsProps {
563
563
  * };
564
564
  * ```
565
565
  */
566
- export declare const Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLElement>>;
566
+ export declare const Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLDivElement>>;
567
567
  /**
568
568
  * Main Form namespace containing all form components following the compound component pattern.
569
569
  * Provides a headless, flexible way to render and manage forms with custom field components.
@@ -627,6 +627,6 @@ export declare const Form: {
627
627
  /** Form submitted state component */
628
628
  readonly Submitted: React.ForwardRefExoticComponent<SubmittedProps & React.RefAttributes<HTMLElement>>;
629
629
  /** Form fields component for rendering form fields */
630
- readonly Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLElement>>;
630
+ readonly Fields: React.ForwardRefExoticComponent<FieldsProps & React.RefAttributes<HTMLDivElement>>;
631
631
  };
632
632
  export {};
@@ -1,7 +1,10 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useCallback, useState } from 'react';
3
3
  import { AsChildSlot } from '@wix/headless-utils/react';
4
- import * as CoreForm from './core/Form.js';
4
+ import { useService } from '@wix/services-manager-react';
5
+ import { Form as FormViewer, } from '@wix/form-public';
6
+ import { FormServiceDefinition, } from '../services/form-service';
7
+ import * as CoreForm from './core/Form';
5
8
  var TestIds;
6
9
  (function (TestIds) {
7
10
  TestIds["formRoot"] = "form-root";
@@ -75,7 +78,7 @@ export const Root = React.forwardRef((props, ref) => {
75
78
  */
76
79
  const RootContent = React.forwardRef((props, ref) => {
77
80
  const { asChild, children, className, ...otherProps } = props;
78
- return (_jsx(AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": TestIds.formRoot, customElement: children, customElementProps: {}, ...otherProps, children: _jsx("div", { children: React.isValidElement(children) ? children : null }) }));
81
+ return (_jsx(AsChildSlot, { ref: ref, asChild: asChild, className: className, "data-testid": TestIds.formRoot, customElement: children, customElementProps: {}, ...otherProps, children: _jsx("div", { children: children }) }));
79
82
  });
80
83
  /**
81
84
  * Component that renders content during loading state.
@@ -444,108 +447,26 @@ export const Submitted = React.forwardRef((props, ref) => {
444
447
  * };
445
448
  * ```
446
449
  */
447
- export const Fields = React.forwardRef(({ fieldMap }) => {
448
- // TODO: render real viewer
449
- return _jsx(MockViewer, { fieldMap: fieldMap });
450
- });
451
- const MockViewer = ({ fieldMap }) => {
452
- // This is how fieldMap is expected to be used in the viewer
453
- const schemaFields = {
454
- // CONTACTS_FIELD_TYPES
455
- CONTACTS_COMPANY: fieldMap.TEXT_INPUT,
456
- CONTACTS_POSITION: fieldMap.TEXT_INPUT,
457
- CONTACTS_TAX_ID: fieldMap.TEXT_INPUT,
458
- CONTACTS_FIRST_NAME: fieldMap.TEXT_INPUT,
459
- CONTACTS_LAST_NAME: fieldMap.TEXT_INPUT,
460
- CONTACTS_EMAIL: fieldMap.TEXT_INPUT,
461
- CONTACTS_BIRTHDATE: fieldMap.DATE_INPUT,
462
- CONTACTS_PHONE: fieldMap.PHONE_INPUT,
463
- CONTACTS_ADDRESS: fieldMap.TEXT_INPUT,
464
- CONTACTS_SUBSCRIBE: fieldMap.CHECKBOX,
465
- // QUIZ_FIELD_TYPES
466
- QUIZ_MULTI_CHOICE: fieldMap.CHECKBOX_GROUP,
467
- QUIZ_SINGLE_CHOICE: fieldMap.RADIO_GROUP,
468
- QUIZ_SHORT_TEXT: fieldMap.TEXT_INPUT,
469
- QUIZ_LONG_TEXT: fieldMap.TEXT_AREA,
470
- QUIZ_NUMBER: fieldMap.NUMBER_INPUT,
471
- QUIZ_FILE_UPLOAD: fieldMap.FILE_UPLOAD,
472
- QUIZ_IMAGE_CHOICE: fieldMap.IMAGE_CHOICE, // TODO: add
473
- // DEXT_FIELD_TYPES
474
- DEXT_TEXT_INPUT: fieldMap.TEXT_INPUT,
475
- DEXT_TEXT_AREA: fieldMap.TEXT_AREA,
476
- DEXT_DROPDOWN: fieldMap.DROPDOWN,
477
- DEXT_URL_INPUT: fieldMap.TEXT_INPUT,
478
- DEXT_RADIO_GROUP: fieldMap.RADIO_GROUP,
479
- DEXT_NUMBER_INPUT: fieldMap.NUMBER_INPUT,
480
- DEXT_CHECKBOX: fieldMap.CHECKBOX,
481
- DEXT_CHECKBOX_GROUP: fieldMap.CHECKBOX_GROUP,
482
- DEXT_EMAIL: fieldMap.TEXT_INPUT,
483
- DEXT_PHONE: fieldMap.PHONE_INPUT,
484
- DEXT_RATING_INPUT: fieldMap.RATING_INPUT,
485
- DEXT_DATE_PICKER: fieldMap.DATE_PICKER,
486
- DEXT_TAGS: fieldMap.TAGS,
487
- // SCHEDULING_FIELD_TYPES
488
- APPOINTMENT: fieldMap.APPOINTMENT,
489
- SERVICES_DROPDOWN: fieldMap.DROPDOWN,
490
- // ECOM_FIELD_TYPES
491
- ECOM_ADDITIONAL_INFO: fieldMap.TEXT_AREA,
492
- ECOM_ADDRESS: fieldMap.TEXT_INPUT,
493
- ECOM_FULL_NAME: fieldMap.TEXT_INPUT,
494
- ECOM_PHONE: fieldMap.PHONE_INPUT,
495
- ECOM_COMPANY_NAME: fieldMap.TEXT_INPUT,
496
- ECOM_EMAIL: fieldMap.TEXT_INPUT,
497
- ECOM_SUBSCRIPTION: fieldMap.CHECKBOX,
498
- // BOOKINGS_FIELD_TYPES
499
- BOOKINGS_FIRST_NAME: fieldMap.TEXT_INPUT,
500
- BOOKINGS_LAST_NAME: fieldMap.TEXT_INPUT,
501
- BOOKINGS_EMAIL: fieldMap.TEXT_INPUT,
502
- BOOKINGS_PHONE: fieldMap.PHONE_INPUT,
503
- BOOKINGS_ADDRESS: fieldMap.TEXT_INPUT,
504
- // PAYMENTS_FIELD_TYPES
505
- PRODUCT_LIST: fieldMap.PRODUCT_LIST,
506
- DONATION: fieldMap.DONATION,
507
- PAYMENT_INPUT: fieldMap.PAYMENT_INPUT, // could be TEXT_INPUT?
508
- FIXED_PAYMENT: fieldMap.FIXED_PAYMENT, // could be TAGS?
509
- // COMMON_FIELD_TYPES
510
- TEXT_INPUT: fieldMap.TEXT_INPUT,
511
- NUMBER_INPUT: fieldMap.NUMBER_INPUT,
512
- URL_INPUT: fieldMap.TEXT_INPUT,
513
- TEXT_AREA: fieldMap.TEXT_AREA,
514
- DATE_INPUT: fieldMap.DATE_INPUT,
515
- DATE_TIME_INPUT: fieldMap.DATE_TIME_INPUT,
516
- TIME_INPUT: fieldMap.TIME_INPUT,
517
- RADIO_GROUP: fieldMap.RADIO_GROUP,
518
- CHECKBOX_GROUP: fieldMap.CHECKBOX_GROUP,
519
- FILE_UPLOAD: fieldMap.FILE_UPLOAD,
520
- CHECKBOX: fieldMap.CHECKBOX,
521
- DROPDOWN: fieldMap.DROPDOWN,
522
- // NESTED_FORM: 'NESTED_FORM',
523
- MULTILINE_ADDRESS: fieldMap.MULTILINE_ADDRESS,
524
- // are these relevant for headless?
525
- MLA_COUNTRY: fieldMap.DROPDOWN,
526
- MLA_CITY: fieldMap.TEXT_INPUT,
527
- MLA_ADDRESS_LINE: fieldMap.TEXT_INPUT, // dropdown if autocomplete disabled?
528
- MLA_ADDRESS_LINE_2: fieldMap.TEXT_INPUT,
529
- MLA_POSTAL_CODE: fieldMap.TEXT_INPUT,
530
- MLA_SUBDIVISION: fieldMap.DROPDOWN,
531
- MLA_STREET_NAME: fieldMap.TEXT_INPUT,
532
- MLA_STREET_NUMBER: fieldMap.TEXT_INPUT,
533
- MLA_APARTMENT: fieldMap.TEXT_INPUT,
534
- FULL_NAME_FIRST_NAME: fieldMap.TEXT_INPUT,
535
- FULL_NAME_LAST_NAME: fieldMap.TEXT_INPUT,
536
- FULL_NAME: fieldMap.TEXT_INPUT,
537
- VAT_ID: fieldMap.TEXT_INPUT,
538
- SIGNATURE: fieldMap.SIGNATURE,
539
- RATING_INPUT: fieldMap.RATING_INPUT,
540
- TAGS: fieldMap.TAGS,
541
- DATE_PICKER: fieldMap.DATE_PICKER,
542
- // READONLY_FIELD_TYPES
543
- HEADER: fieldMap.TEXT,
544
- RICH_TEXT: fieldMap.TEXT,
545
- SUBMIT_BUTTON: fieldMap.SUBMIT_BUTTON,
450
+ export const Fields = React.forwardRef(({ fieldMap }, ref) => {
451
+ const formService = useService(FormServiceDefinition);
452
+ const form = formService.form.get();
453
+ const _form = {
454
+ ...form,
455
+ id: form?._id,
456
+ fields: form?.formFields?.map((field) => ({ ...field, id: field._id })),
546
457
  };
547
- return (_jsxs(_Fragment, { children: [_jsx("div", { children: "Form Fields" }), _jsx("div", { children: JSON.stringify(schemaFields) })] }));
548
- };
458
+ const [formValues, setFormValues] = useState({});
459
+ const [formErrors, setFormErrors] = useState([]);
460
+ const handleFormChange = useCallback((values) => {
461
+ setFormValues(values);
462
+ }, []);
463
+ const handleFormValidate = useCallback((errors) => {
464
+ setFormErrors(errors);
465
+ }, []);
466
+ if (!form)
467
+ return _jsx("div", { children: "Form not found, oops!" });
468
+ return (_jsx("div", { ref: ref, children: _jsx(FormViewer, { form: _form, values: formValues, onChange: handleFormChange, errors: formErrors, onValidate: handleFormValidate, fields: fieldMap }) }));
469
+ });
549
470
  /**
550
471
  * Main Form namespace containing all form components following the compound component pattern.
551
472
  * Provides a headless, flexible way to render and manage forms with custom field components.
@@ -786,7 +786,7 @@ export interface DateInputProps extends BaseFieldProps {
786
786
  label: string;
787
787
  showLabel: boolean;
788
788
  showPlaceholder: boolean;
789
- firstDayOfWeek: 'SUNDAY' | 'MONDAY';
789
+ showDateLabels: boolean;
790
790
  acceptedDates: 'all' | 'past' | 'future';
791
791
  description?: forms.RichContent;
792
792
  }
@@ -132,6 +132,6 @@ export async function loadFormServiceConfig(id) {
132
132
  }
133
133
  catch (error) {
134
134
  console.error('Failed to load form:', error);
135
- return { type: 'notFound' };
136
135
  }
136
+ return { type: 'notFound' };
137
137
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/headless-forms",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "npm run build:esm && npm run build:cjs",
@@ -41,6 +41,7 @@
41
41
  "vitest": "^3.1.4"
42
42
  },
43
43
  "dependencies": {
44
+ "@wix/form-public": "^0.9.0",
44
45
  "@wix/forms": "^1.0.292",
45
46
  "@wix/headless-utils": "0.0.3",
46
47
  "@wix/services-definitions": "^0.1.4",