@wix/form-elements 0.0.0-stage → 1.54.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/LICENSE +21 -0
- package/README.md +118 -2
- package/dist/component/appointment-rac-DlOqbFoi.js +1005 -0
- package/dist/component/bookings-address-rac-CvK-P3df.js +6 -0
- package/dist/component/bookings-email-rac-9BEPTuox.js +6 -0
- package/dist/component/bookings-first-name-rac-BrU-BtPp.js +6 -0
- package/dist/component/bookings-header-rac-8NCL7fxp.js +8 -0
- package/dist/component/bookings-last-name-rac-DgLqZ1nS.js +6 -0
- package/dist/component/bookings-login-bar-rac-C2pzRMyt.js +74 -0
- package/dist/component/bookings-phone-rac-BrPBAo8B.js +6 -0
- package/dist/component/bookings-rich-text-rac-qpPsyIuc.js +8 -0
- package/dist/component/calling-country-codes-PyWuOTmF.js +243 -0
- package/dist/component/checkbox-field-rac-CaloY2Hs.js +625 -0
- package/dist/component/checkbox-group-field-headless-4HlJmarB.js +204 -0
- package/dist/component/checkbox-group-field-rac-B1tFZT3o.js +33 -0
- package/dist/component/checkbox-group-rac-C0SzN2Bx.js +6 -0
- package/dist/component/checkbox-rac-ssJIVvZI.js +6 -0
- package/dist/component/chevron-down-icon-CcpVm6B-.js +15 -0
- package/dist/component/contacts-address-rac-Dwf4yrGq.js +6 -0
- package/dist/component/contacts-birthdate-rac-C195rG5w.js +6 -0
- package/dist/component/contacts-company-rac-BHX6xZU8.js +6 -0
- package/dist/component/contacts-email-rac-CFY-m-r2.js +6 -0
- package/dist/component/contacts-first-name-rac-D23QFUGK.js +6 -0
- package/dist/component/contacts-last-name-rac-COuQB15p.js +6 -0
- package/dist/component/contacts-phone-rac-BfhY_I7p.js +6 -0
- package/dist/component/contacts-position-rac-D80_knc8.js +6 -0
- package/dist/component/contacts-subscribe-rac--NuPoBFm.js +13 -0
- package/dist/component/contacts-tax-id-rac-BURE313k.js +6 -0
- package/dist/component/custom-focus-class-_483Pkwp.js +4 -0
- package/dist/component/data-hooks-Dkw1pbRj.js +6 -0
- package/dist/component/date-availability-BQyNH-7j.js +49 -0
- package/dist/component/date-input-field-rac-BnFvhqe1.js +286 -0
- package/dist/component/date-input-rac-TLkITFRh.js +6 -0
- package/dist/component/date-picker-field-rac-BAFKYE1B.js +304 -0
- package/dist/component/date-picker-rac-uBJQkALE.js +6 -0
- package/dist/component/date-time-input-field-rac-DnOkBj7w.js +421 -0
- package/dist/component/date-time-input-rac-BxbWyK23.js +6 -0
- package/dist/component/default-limits-D7qVv_Hv.js +6 -0
- package/dist/component/dext-checkbox-group-rac-DnifcsEZ.js +18 -0
- package/dist/component/dext-checkbox-rac-D45Ok0J4.js +6 -0
- package/dist/component/dext-date-picker-rac-Cs47jywn.js +6 -0
- package/dist/component/dext-date-time-input-rac-UPwXpk2g.js +6 -0
- package/dist/component/dext-dropdown-rac-D18mhUDU.js +6 -0
- package/dist/component/dext-email-rac-B4frwTvA.js +6 -0
- package/dist/component/dext-number-input-rac-CoS-Fk59.js +6 -0
- package/dist/component/dext-phone-rac-DwR0JLia.js +6 -0
- package/dist/component/dext-radio-group-rac-DogWvoUg.js +18 -0
- package/dist/component/dext-rating-input-rac-C4NxeIto.js +6 -0
- package/dist/component/dext-tags-rac-DsEenrft.js +18 -0
- package/dist/component/dext-text-area-rac-Du-FqTqW.js +6 -0
- package/dist/component/dext-text-input-rac-DUE8JE9b.js +6 -0
- package/dist/component/dext-url-input-rac-Cn55pV9m.js +6 -0
- package/dist/component/donation-rac-Cjk_hFm1.js +305 -0
- package/dist/component/dropdown-field-headless-Dcy46MWj.js +84 -0
- package/dist/component/dropdown-field-rac-rMMPzKxL.js +32 -0
- package/dist/component/dropdown-rac-C6B8C8Yc.js +6 -0
- package/dist/component/ecom-address-rac-1wNixzip.js +6 -0
- package/dist/component/ecom-subscription-checkbox-rac-C5z68KHa.js +49 -0
- package/dist/component/email-input-field-rac-C7Wn2XVU.js +507 -0
- package/dist/component/error-icon-hZxQ6DEy.js +15 -0
- package/dist/component/events-repeater-rac-DTv4JD79.js +247 -0
- package/dist/component/events-rsvp-rac-cS7Mb04F.js +38 -0
- package/dist/component/field-error-headless-Dm5UCOBb.js +34 -0
- package/dist/component/field-label-headless-C7mDzdLq.js +52 -0
- package/dist/component/field-rac.module-DAPTqFDM.js +21 -0
- package/dist/component/fieldset-headless-CD3fds9J.js +54 -0
- package/dist/component/file-upload-rac-DeZvh7dy.js +484 -0
- package/dist/component/find-child-C60k4CxG.js +11 -0
- package/dist/component/fixed-payment-rac-D7t5DjVp.js +62 -0
- package/dist/component/form-DaOKiR16.js +8890 -0
- package/dist/component/form-element-classes-Bi-nNM8q.js +55 -0
- package/dist/component/form.css +1 -0
- package/dist/component/form.js +9 -0
- package/dist/component/format-currency-BwShJ9vM.js +44 -0
- package/dist/component/get-first-day-of-the-week-DvnsxYhQ.js +118 -0
- package/dist/component/header-field-rac-hJSXllPm.js +25 -0
- package/dist/component/header-rac-G_lsddOd.js +6 -0
- package/dist/component/headless-styles-CmcyA_pi.js +20 -0
- package/dist/component/helpers-HmkkXrh2.js +12 -0
- package/dist/component/image-choice-rac-BHyAKRDt.js +141 -0
- package/dist/component/index-CFW1VXFU.js +64 -0
- package/dist/component/index-CkCSQD3_.js +2290 -0
- package/dist/component/isObject-BAwJJxQ3.js +34 -0
- package/dist/component/messages_ar-BZXnU2Gj.js +3517 -0
- package/dist/component/messages_ar-L1BYLZbF.js +20 -0
- package/dist/component/messages_ar-PAHg01OB.js +299 -0
- package/dist/component/messages_bg-CO56qlOt.js +299 -0
- package/dist/component/messages_bg-CQcGl0Yi.js +20 -0
- package/dist/component/messages_bg-DgbMwIbv.js +3515 -0
- package/dist/component/messages_ca-BAHE5nuo.js +3515 -0
- package/dist/component/messages_ca-BRoHmzRw.js +20 -0
- package/dist/component/messages_ca-Bl6rZi_O.js +299 -0
- package/dist/component/messages_cs-BADd3t_h.js +3515 -0
- package/dist/component/messages_cs-CDyWDExk.js +298 -0
- package/dist/component/messages_cs-wn5UmrBw.js +20 -0
- package/dist/component/messages_da-BPnmb9Qb.js +20 -0
- package/dist/component/messages_da-BvVUWnBz.js +3515 -0
- package/dist/component/messages_da-DHlpaT4q.js +298 -0
- package/dist/component/messages_de-2czOmM8X.js +3515 -0
- package/dist/component/messages_de-BKgzIF1d.js +298 -0
- package/dist/component/messages_de-Bwx84N0O.js +20 -0
- package/dist/component/messages_el-BnuYMjcf.js +299 -0
- package/dist/component/messages_el-_D2RUBSU.js +20 -0
- package/dist/component/messages_el-qCyH12Uq.js +3515 -0
- package/dist/component/messages_en-BWaixPd6.js +3518 -0
- package/dist/component/messages_en-CBBcgtxs.js +296 -0
- package/dist/component/messages_en-DvSLxqKp.js +20 -0
- package/dist/component/messages_es-Cq6i2xci.js +3515 -0
- package/dist/component/messages_es-DlGCLaYi.js +298 -0
- package/dist/component/messages_es-rCKXnGf0.js +20 -0
- package/dist/component/messages_fi-B-ciZGqD.js +3515 -0
- package/dist/component/messages_fi-DzKva_Wq.js +299 -0
- package/dist/component/messages_fi-PCCXPo0O.js +20 -0
- package/dist/component/messages_fr-2im0dcYp.js +3515 -0
- package/dist/component/messages_fr-DMFilq1G.js +298 -0
- package/dist/component/messages_fr-DQa1dT9u.js +20 -0
- package/dist/component/messages_he-Bb1qTc2Y.js +299 -0
- package/dist/component/messages_he-BfIkDo1h.js +3515 -0
- package/dist/component/messages_he-DwIysfDp.js +20 -0
- package/dist/component/messages_hi-Bty6ytCh.js +3515 -0
- package/dist/component/messages_hi-C-6UHGbM.js +298 -0
- package/dist/component/messages_hi-DF1w6b6B.js +20 -0
- package/dist/component/messages_hr-BXzIzU3d.js +20 -0
- package/dist/component/messages_hr-CiU1ZVrx.js +3515 -0
- package/dist/component/messages_hr-tRSM9lmc.js +299 -0
- package/dist/component/messages_hu-ChzHFUtB.js +3515 -0
- package/dist/component/messages_hu-D86Taf9R.js +299 -0
- package/dist/component/messages_hu-Z9XpByCO.js +20 -0
- package/dist/component/messages_id-3952ilBE.js +20 -0
- package/dist/component/messages_id-CPuhTUYV.js +298 -0
- package/dist/component/messages_id-Ddr3ijST.js +3515 -0
- package/dist/component/messages_it-B-A1X4BZ.js +298 -0
- package/dist/component/messages_it-DnUTUabT.js +20 -0
- package/dist/component/messages_it-eY6GnuZC.js +3515 -0
- package/dist/component/messages_ja-B3PxHv2c.js +3515 -0
- package/dist/component/messages_ja-Ced6ZBxD.js +298 -0
- package/dist/component/messages_ja-Cg7CqBUL.js +20 -0
- package/dist/component/messages_ko-DBCjHG4c.js +3515 -0
- package/dist/component/messages_ko-PKIrqwPk.js +298 -0
- package/dist/component/messages_ko-zvhtZMGA.js +20 -0
- package/dist/component/messages_lt-DV3hdFsp.js +3515 -0
- package/dist/component/messages_lt-DywusvNm.js +20 -0
- package/dist/component/messages_lt-zxcCPHno.js +299 -0
- package/dist/component/messages_lv-BEowUv-S.js +299 -0
- package/dist/component/messages_lv-DggJE2f9.js +20 -0
- package/dist/component/messages_lv-hIonzpTs.js +3515 -0
- package/dist/component/messages_ms-Ca0m7bf7.js +20 -0
- package/dist/component/messages_ms-Cvypo0vi.js +299 -0
- package/dist/component/messages_ms-DoMzA8a3.js +3515 -0
- package/dist/component/messages_nl-CEmANR_r.js +3515 -0
- package/dist/component/messages_nl-CZR4TvNo.js +298 -0
- package/dist/component/messages_nl-DgVYmdO9.js +20 -0
- package/dist/component/messages_no-B2BBaGBH.js +298 -0
- package/dist/component/messages_no-DJfJSlDm.js +3515 -0
- package/dist/component/messages_no-hPkfRJQ9.js +20 -0
- package/dist/component/messages_pl-Bzph-WyD.js +20 -0
- package/dist/component/messages_pl-ChJVH7RO.js +3515 -0
- package/dist/component/messages_pl-rCMsbMbN.js +298 -0
- package/dist/component/messages_pt-Bv63V1uB.js +3515 -0
- package/dist/component/messages_pt-CBgCNF3T.js +20 -0
- package/dist/component/messages_pt-Cx0FF6uF.js +298 -0
- package/dist/component/messages_ro-BvLoD_wE.js +299 -0
- package/dist/component/messages_ro-CMzcu-9b.js +20 -0
- package/dist/component/messages_ro-PVRK7Gx4.js +3515 -0
- package/dist/component/messages_ru-8BI6MYA0.js +3515 -0
- package/dist/component/messages_ru-BhRKVmVC.js +298 -0
- package/dist/component/messages_ru-C_BaQo57.js +20 -0
- package/dist/component/messages_sk-Bgi_3583.js +3515 -0
- package/dist/component/messages_sk-CrsC7rOj.js +20 -0
- package/dist/component/messages_sk-CtF-ei23.js +299 -0
- package/dist/component/messages_sl-B5t-KKi8.js +299 -0
- package/dist/component/messages_sl-BFdYWVHd.js +3515 -0
- package/dist/component/messages_sl-NqfmyUP1.js +20 -0
- package/dist/component/messages_sv-Bd1CcY6G.js +3515 -0
- package/dist/component/messages_sv-DPRT-DpN.js +20 -0
- package/dist/component/messages_sv-bQwbNmjr.js +298 -0
- package/dist/component/messages_th-BauH9qdo.js +20 -0
- package/dist/component/messages_th-C_dL_PCq.js +298 -0
- package/dist/component/messages_th-DEWm01uD.js +3515 -0
- package/dist/component/messages_tl-CouXLNcW.js +299 -0
- package/dist/component/messages_tl-D2t9Y_ZC.js +3515 -0
- package/dist/component/messages_tl-UDZY8Wuk.js +20 -0
- package/dist/component/messages_tr-2-OHesob.js +3515 -0
- package/dist/component/messages_tr-CpsxYTDb.js +20 -0
- package/dist/component/messages_tr-DHXnlj_j.js +298 -0
- package/dist/component/messages_uk-CPK4y5lH.js +298 -0
- package/dist/component/messages_uk-DIuQ2HoD.js +3515 -0
- package/dist/component/messages_uk-gPkmA_ar.js +20 -0
- package/dist/component/messages_vi-CgxB4Ey0.js +20 -0
- package/dist/component/messages_vi-DZeFWgwp.js +3515 -0
- package/dist/component/messages_vi-Det8i7_V.js +298 -0
- package/dist/component/messages_zh-D53_A4N9.js +298 -0
- package/dist/component/messages_zh-O552w5dp.js +20 -0
- package/dist/component/messages_zh-nG7LNxIt.js +3515 -0
- package/dist/component/multiline-address-field-rac-CwLOzNF6.js +1574 -0
- package/dist/component/multiline-address-rac-C4JXBlFC.js +6 -0
- package/dist/component/non-modal-popover-DtIMXHbe.js +63 -0
- package/dist/component/number-input-field-rac-BOeiugCV.js +89 -0
- package/dist/component/number-input-rac-NqbFwW0d.js +6 -0
- package/dist/component/numeric-input-utils-CuBMi4-a.js +45 -0
- package/dist/component/options-layout-constants-DEfIEJWD.js +6 -0
- package/dist/component/options-rac.module-KM-VT_KY.js +7 -0
- package/dist/component/password-rac-DxCYgvu_.js +142 -0
- package/dist/component/payment-field-utils-DobiK5Xh.js +12 -0
- package/dist/component/payment-input-rac-C2aof0p0.js +137 -0
- package/dist/component/phone-input-field-rac-Cd7RFaoD.js +473 -0
- package/dist/component/phone-rac-4MQREqBG.js +6 -0
- package/dist/component/product-list-rac-CjoepDQ_.js +263 -0
- package/dist/component/quiz-radio-group-rac-CIwk7N3X.js +13 -0
- package/dist/component/radio-group-field-rac-DE2mnUHD.js +40 -0
- package/dist/component/radio-group-field-rac.module-DEP9BCiX.js +124 -0
- package/dist/component/radio-group-rac-XE6CeGnp.js +6 -0
- package/dist/component/rating-input-field-rac-BzAAMipp.js +130 -0
- package/dist/component/rating-input-rac-oIvpEVjK.js +6 -0
- package/dist/component/rich-content-rac.module-cis7mx3M.js +49 -0
- package/dist/component/rich-text-field-rac-CqkM22CI.js +22 -0
- package/dist/component/rich-text-rac-BKbz3TcX.js +6 -0
- package/dist/component/ricos-viewer-chunk-B4rfbgjA.js +5 -0
- package/dist/component/service-dropdown-rac-CfCMbT9d.js +142 -0
- package/dist/component/services-multi-choice-rac-F2h5gUOr.js +76 -0
- package/dist/component/signature-rac-CIRsmZhS.js +795 -0
- package/dist/component/submit-button-rac-BELGrClx.js +115 -0
- package/dist/component/tags-field-rac-B6Hg2XOI.js +201 -0
- package/dist/component/tags-rac-Dfv8VP7J.js +6 -0
- package/dist/component/text-area-field-rac-Bsd1V2Q3.js +69 -0
- package/dist/component/text-area-rac-BNVdI-Gq.js +6 -0
- package/dist/component/text-input-field-rac-DF9dD_KW.js +24 -0
- package/dist/component/text-input-headless-Dlao2R8f.js +44 -0
- package/dist/component/text-input-rac-C2p7E01b.js +6 -0
- package/dist/component/time-input-rac-90mLBZsX.js +152 -0
- package/dist/component/url-input-field-rac-bCEOlctr.js +71 -0
- package/dist/component/url-input-rac-D5o8b9gx.js +6 -0
- package/dist/component/use-invoke-callback-UH73A_J3.js +15 -0
- package/dist/component/use-service-options-base-DO5hy6mn.js +48 -0
- package/dist/component/use-synced-display-value-DcAxdn3M.js +19 -0
- package/dist/form.d.ts +6930 -0
- package/package.json +164 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wix.com
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,119 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @wix/form-elements
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The Wix Forms rendering element for Builder apps. `@wix/form-elements/Form` renders a form schema
|
|
4
|
+
with the same engine the Forms app uses, and resolves language, currency, member context and
|
|
5
|
+
submission on its own from the site's services.
|
|
6
|
+
|
|
7
|
+
## How it reaches your site
|
|
8
|
+
|
|
9
|
+
At runtime the Wix builder platform resolves `@wix/form-elements/Form` through an import map to the
|
|
10
|
+
component the Forms app deploys. This package is what your project imports at development time: it
|
|
11
|
+
carries the types, and a bundle that behaves like the deployed component in tests, Storybook and the
|
|
12
|
+
builder sandbox.
|
|
13
|
+
|
|
14
|
+
Declare the module as a component dependency so your build leaves the import to the platform:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
resources: {
|
|
18
|
+
client: {
|
|
19
|
+
componentUrl,
|
|
20
|
+
dependencies: {
|
|
21
|
+
componentDependencies: ['@wix/form-elements/Form'],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Install it as a dev dependency next to `react`, `react-dom` and `@wix/services-manager-react`,
|
|
28
|
+
which the platform provides and this package expects from its host. Everything else the element
|
|
29
|
+
needs from the public registry (the Wix SDK modules, react-aria, ajv and the like) is a regular
|
|
30
|
+
dependency of this package; only Wix-internal packages are bundled.
|
|
31
|
+
|
|
32
|
+
## Rendering a form
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import Form, {
|
|
36
|
+
type FormSchema,
|
|
37
|
+
type FormValues,
|
|
38
|
+
type ValidationError,
|
|
39
|
+
} from '@wix/form-elements/Form';
|
|
40
|
+
|
|
41
|
+
const Step = ({ form, compId }: { form: FormSchema; compId: string }) => {
|
|
42
|
+
const [values, setValues] = useState<FormValues>({});
|
|
43
|
+
const [errors, setErrors] = useState<ValidationError[]>([]);
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<Form
|
|
47
|
+
className="my-form"
|
|
48
|
+
form={form}
|
|
49
|
+
compId={compId}
|
|
50
|
+
values={values}
|
|
51
|
+
onChange={setValues}
|
|
52
|
+
errors={errors}
|
|
53
|
+
onValidate={setErrors}
|
|
54
|
+
onSubmitSuccess={(submission) => markComplete(submission)}
|
|
55
|
+
/>
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Fetch the schema with the `@wix/forms` SDK and rename its `_id`-style keys with
|
|
61
|
+
`renameKeysFromSDKRequestToRESTRequest` from `@wix/sdk-runtime/rename-all-nested-keys`; the element
|
|
62
|
+
normalizes the layout itself.
|
|
63
|
+
|
|
64
|
+
| Prop | Purpose |
|
|
65
|
+
| ------------------------------------- | ------------------------------------------------------------------------ |
|
|
66
|
+
| `form` | The schema to render. Without it the element shows a notice. |
|
|
67
|
+
| `values` / `onChange` | Controlled field values, keyed by field target. |
|
|
68
|
+
| `errors` / `onValidate` | Controlled validation state. |
|
|
69
|
+
| `stepId` / `onStepIdChange` | Controlled multi-step navigation. |
|
|
70
|
+
| `onSubmit` | Fires when submission starts. |
|
|
71
|
+
| `onSubmitSuccess` / `onSubmitFailure` | The created submission, or the rejection. |
|
|
72
|
+
| `compId` | Scopes field ids so two instances on a page do not collide. |
|
|
73
|
+
| `id` / `className` | On the element's wrapper, for layout and the editor selector. |
|
|
74
|
+
| `ref` | `FormHandle`: `submit()`, `validate()`, `validateStep()`, `getValues()`. |
|
|
75
|
+
|
|
76
|
+
The stylesheet is exported as `@wix/form-elements/Form/css`, following the
|
|
77
|
+
`@wix/editor-react-components/<Name>/css` convention. It is for renders outside the Wix platform:
|
|
78
|
+
Storybook, standalone pages and Site Export, which imports `<package>/<cssFile.path>` from a
|
|
79
|
+
component's `moduleConfiguration`. Don't import it from component code: on a Wix site the platform
|
|
80
|
+
loads the element's stylesheet itself, and the Wix CLI build would bundle a second copy into your
|
|
81
|
+
component's CSS, since it only leaves `@wix/form-elements/Form` itself external.
|
|
82
|
+
|
|
83
|
+
## What the package contains
|
|
84
|
+
|
|
85
|
+
- `dist/component/form.js` and its lazy chunks: the pre-built element. Wix-internal packages are
|
|
86
|
+
bundled; packages on the public registry are imported from `dependencies`; `react`, `react-dom`
|
|
87
|
+
and `@wix/services-manager-react` come from the host. Stylesheets are always bundled, even when
|
|
88
|
+
they come from an external package such as `@wix/ricos`, so the JavaScript never imports CSS.
|
|
89
|
+
- `dist/form.d.ts`: the public types, rolled into one file that imports only `react`.
|
|
90
|
+
- `dist/component/form.css`.
|
|
91
|
+
|
|
92
|
+
## Developing
|
|
93
|
+
|
|
94
|
+
This package is a Wix CLI app. `yarn build` generates translation keys, typechecks, pre-builds the
|
|
95
|
+
element into `dist/component`, builds the extension and rolls up the types. `yarn dev` serves the
|
|
96
|
+
extension and rebuilds the pre-build on change.
|
|
97
|
+
|
|
98
|
+
`yarn test` runs two Vitest projects. `unit` covers the source. `package` checks the built package
|
|
99
|
+
in `dist/`, so it needs a build first; CI runs `test` after the build. It verifies that:
|
|
100
|
+
|
|
101
|
+
- `dependencies` matches exactly what the bundle imports.
|
|
102
|
+
- the bundle imports only peers and declared dependencies, that Node can load each of them without
|
|
103
|
+
a bundler, that none reaches a stylesheet through its own module graph, and that the types import
|
|
104
|
+
only `react`.
|
|
105
|
+
- each chunk group stays within its gzipped limit in `.size-limit.json`, checked by size-limit.
|
|
106
|
+
- the packed tarball passes publint and arethetypeswrong.
|
|
107
|
+
- the tarball installs into a fresh Vitest project and renders, including a rich-text field that
|
|
108
|
+
loads `@wix/ricos` from that project's `node_modules`. It installs from Artifactory's mirror of
|
|
109
|
+
registry.npmjs.org, which serves only public packages, so it fails if anything internal is needed.
|
|
110
|
+
It takes a couple of minutes; `yarn test --project unit` skips the package checks.
|
|
111
|
+
|
|
112
|
+
The dependency list is derived, not maintained by hand. The pre-build leaves every public package as
|
|
113
|
+
a bare import, except the ones in `scripts/bundled-packages.mts`, which carry the reason they must
|
|
114
|
+
stay inside the bundle. When form-fields or form-viewer start importing a new public package, the
|
|
115
|
+
dependency test fails; run `node scripts/sync-dependencies.mts && yarn install` and commit the
|
|
116
|
+
manifest change. If the new import cannot be loaded by Node (CSS, extension-less deep imports), the
|
|
117
|
+
import test fails; add the package to `bundled-packages.mts` with its reason instead.
|
|
118
|
+
|
|
119
|
+
See `src/form-fields/*/*.md` for the build and test integration notes.
|