@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.
Files changed (237) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -2
  3. package/dist/component/appointment-rac-DlOqbFoi.js +1005 -0
  4. package/dist/component/bookings-address-rac-CvK-P3df.js +6 -0
  5. package/dist/component/bookings-email-rac-9BEPTuox.js +6 -0
  6. package/dist/component/bookings-first-name-rac-BrU-BtPp.js +6 -0
  7. package/dist/component/bookings-header-rac-8NCL7fxp.js +8 -0
  8. package/dist/component/bookings-last-name-rac-DgLqZ1nS.js +6 -0
  9. package/dist/component/bookings-login-bar-rac-C2pzRMyt.js +74 -0
  10. package/dist/component/bookings-phone-rac-BrPBAo8B.js +6 -0
  11. package/dist/component/bookings-rich-text-rac-qpPsyIuc.js +8 -0
  12. package/dist/component/calling-country-codes-PyWuOTmF.js +243 -0
  13. package/dist/component/checkbox-field-rac-CaloY2Hs.js +625 -0
  14. package/dist/component/checkbox-group-field-headless-4HlJmarB.js +204 -0
  15. package/dist/component/checkbox-group-field-rac-B1tFZT3o.js +33 -0
  16. package/dist/component/checkbox-group-rac-C0SzN2Bx.js +6 -0
  17. package/dist/component/checkbox-rac-ssJIVvZI.js +6 -0
  18. package/dist/component/chevron-down-icon-CcpVm6B-.js +15 -0
  19. package/dist/component/contacts-address-rac-Dwf4yrGq.js +6 -0
  20. package/dist/component/contacts-birthdate-rac-C195rG5w.js +6 -0
  21. package/dist/component/contacts-company-rac-BHX6xZU8.js +6 -0
  22. package/dist/component/contacts-email-rac-CFY-m-r2.js +6 -0
  23. package/dist/component/contacts-first-name-rac-D23QFUGK.js +6 -0
  24. package/dist/component/contacts-last-name-rac-COuQB15p.js +6 -0
  25. package/dist/component/contacts-phone-rac-BfhY_I7p.js +6 -0
  26. package/dist/component/contacts-position-rac-D80_knc8.js +6 -0
  27. package/dist/component/contacts-subscribe-rac--NuPoBFm.js +13 -0
  28. package/dist/component/contacts-tax-id-rac-BURE313k.js +6 -0
  29. package/dist/component/custom-focus-class-_483Pkwp.js +4 -0
  30. package/dist/component/data-hooks-Dkw1pbRj.js +6 -0
  31. package/dist/component/date-availability-BQyNH-7j.js +49 -0
  32. package/dist/component/date-input-field-rac-BnFvhqe1.js +286 -0
  33. package/dist/component/date-input-rac-TLkITFRh.js +6 -0
  34. package/dist/component/date-picker-field-rac-BAFKYE1B.js +304 -0
  35. package/dist/component/date-picker-rac-uBJQkALE.js +6 -0
  36. package/dist/component/date-time-input-field-rac-DnOkBj7w.js +421 -0
  37. package/dist/component/date-time-input-rac-BxbWyK23.js +6 -0
  38. package/dist/component/default-limits-D7qVv_Hv.js +6 -0
  39. package/dist/component/dext-checkbox-group-rac-DnifcsEZ.js +18 -0
  40. package/dist/component/dext-checkbox-rac-D45Ok0J4.js +6 -0
  41. package/dist/component/dext-date-picker-rac-Cs47jywn.js +6 -0
  42. package/dist/component/dext-date-time-input-rac-UPwXpk2g.js +6 -0
  43. package/dist/component/dext-dropdown-rac-D18mhUDU.js +6 -0
  44. package/dist/component/dext-email-rac-B4frwTvA.js +6 -0
  45. package/dist/component/dext-number-input-rac-CoS-Fk59.js +6 -0
  46. package/dist/component/dext-phone-rac-DwR0JLia.js +6 -0
  47. package/dist/component/dext-radio-group-rac-DogWvoUg.js +18 -0
  48. package/dist/component/dext-rating-input-rac-C4NxeIto.js +6 -0
  49. package/dist/component/dext-tags-rac-DsEenrft.js +18 -0
  50. package/dist/component/dext-text-area-rac-Du-FqTqW.js +6 -0
  51. package/dist/component/dext-text-input-rac-DUE8JE9b.js +6 -0
  52. package/dist/component/dext-url-input-rac-Cn55pV9m.js +6 -0
  53. package/dist/component/donation-rac-Cjk_hFm1.js +305 -0
  54. package/dist/component/dropdown-field-headless-Dcy46MWj.js +84 -0
  55. package/dist/component/dropdown-field-rac-rMMPzKxL.js +32 -0
  56. package/dist/component/dropdown-rac-C6B8C8Yc.js +6 -0
  57. package/dist/component/ecom-address-rac-1wNixzip.js +6 -0
  58. package/dist/component/ecom-subscription-checkbox-rac-C5z68KHa.js +49 -0
  59. package/dist/component/email-input-field-rac-C7Wn2XVU.js +507 -0
  60. package/dist/component/error-icon-hZxQ6DEy.js +15 -0
  61. package/dist/component/events-repeater-rac-DTv4JD79.js +247 -0
  62. package/dist/component/events-rsvp-rac-cS7Mb04F.js +38 -0
  63. package/dist/component/field-error-headless-Dm5UCOBb.js +34 -0
  64. package/dist/component/field-label-headless-C7mDzdLq.js +52 -0
  65. package/dist/component/field-rac.module-DAPTqFDM.js +21 -0
  66. package/dist/component/fieldset-headless-CD3fds9J.js +54 -0
  67. package/dist/component/file-upload-rac-DeZvh7dy.js +484 -0
  68. package/dist/component/find-child-C60k4CxG.js +11 -0
  69. package/dist/component/fixed-payment-rac-D7t5DjVp.js +62 -0
  70. package/dist/component/form-DaOKiR16.js +8890 -0
  71. package/dist/component/form-element-classes-Bi-nNM8q.js +55 -0
  72. package/dist/component/form.css +1 -0
  73. package/dist/component/form.js +9 -0
  74. package/dist/component/format-currency-BwShJ9vM.js +44 -0
  75. package/dist/component/get-first-day-of-the-week-DvnsxYhQ.js +118 -0
  76. package/dist/component/header-field-rac-hJSXllPm.js +25 -0
  77. package/dist/component/header-rac-G_lsddOd.js +6 -0
  78. package/dist/component/headless-styles-CmcyA_pi.js +20 -0
  79. package/dist/component/helpers-HmkkXrh2.js +12 -0
  80. package/dist/component/image-choice-rac-BHyAKRDt.js +141 -0
  81. package/dist/component/index-CFW1VXFU.js +64 -0
  82. package/dist/component/index-CkCSQD3_.js +2290 -0
  83. package/dist/component/isObject-BAwJJxQ3.js +34 -0
  84. package/dist/component/messages_ar-BZXnU2Gj.js +3517 -0
  85. package/dist/component/messages_ar-L1BYLZbF.js +20 -0
  86. package/dist/component/messages_ar-PAHg01OB.js +299 -0
  87. package/dist/component/messages_bg-CO56qlOt.js +299 -0
  88. package/dist/component/messages_bg-CQcGl0Yi.js +20 -0
  89. package/dist/component/messages_bg-DgbMwIbv.js +3515 -0
  90. package/dist/component/messages_ca-BAHE5nuo.js +3515 -0
  91. package/dist/component/messages_ca-BRoHmzRw.js +20 -0
  92. package/dist/component/messages_ca-Bl6rZi_O.js +299 -0
  93. package/dist/component/messages_cs-BADd3t_h.js +3515 -0
  94. package/dist/component/messages_cs-CDyWDExk.js +298 -0
  95. package/dist/component/messages_cs-wn5UmrBw.js +20 -0
  96. package/dist/component/messages_da-BPnmb9Qb.js +20 -0
  97. package/dist/component/messages_da-BvVUWnBz.js +3515 -0
  98. package/dist/component/messages_da-DHlpaT4q.js +298 -0
  99. package/dist/component/messages_de-2czOmM8X.js +3515 -0
  100. package/dist/component/messages_de-BKgzIF1d.js +298 -0
  101. package/dist/component/messages_de-Bwx84N0O.js +20 -0
  102. package/dist/component/messages_el-BnuYMjcf.js +299 -0
  103. package/dist/component/messages_el-_D2RUBSU.js +20 -0
  104. package/dist/component/messages_el-qCyH12Uq.js +3515 -0
  105. package/dist/component/messages_en-BWaixPd6.js +3518 -0
  106. package/dist/component/messages_en-CBBcgtxs.js +296 -0
  107. package/dist/component/messages_en-DvSLxqKp.js +20 -0
  108. package/dist/component/messages_es-Cq6i2xci.js +3515 -0
  109. package/dist/component/messages_es-DlGCLaYi.js +298 -0
  110. package/dist/component/messages_es-rCKXnGf0.js +20 -0
  111. package/dist/component/messages_fi-B-ciZGqD.js +3515 -0
  112. package/dist/component/messages_fi-DzKva_Wq.js +299 -0
  113. package/dist/component/messages_fi-PCCXPo0O.js +20 -0
  114. package/dist/component/messages_fr-2im0dcYp.js +3515 -0
  115. package/dist/component/messages_fr-DMFilq1G.js +298 -0
  116. package/dist/component/messages_fr-DQa1dT9u.js +20 -0
  117. package/dist/component/messages_he-Bb1qTc2Y.js +299 -0
  118. package/dist/component/messages_he-BfIkDo1h.js +3515 -0
  119. package/dist/component/messages_he-DwIysfDp.js +20 -0
  120. package/dist/component/messages_hi-Bty6ytCh.js +3515 -0
  121. package/dist/component/messages_hi-C-6UHGbM.js +298 -0
  122. package/dist/component/messages_hi-DF1w6b6B.js +20 -0
  123. package/dist/component/messages_hr-BXzIzU3d.js +20 -0
  124. package/dist/component/messages_hr-CiU1ZVrx.js +3515 -0
  125. package/dist/component/messages_hr-tRSM9lmc.js +299 -0
  126. package/dist/component/messages_hu-ChzHFUtB.js +3515 -0
  127. package/dist/component/messages_hu-D86Taf9R.js +299 -0
  128. package/dist/component/messages_hu-Z9XpByCO.js +20 -0
  129. package/dist/component/messages_id-3952ilBE.js +20 -0
  130. package/dist/component/messages_id-CPuhTUYV.js +298 -0
  131. package/dist/component/messages_id-Ddr3ijST.js +3515 -0
  132. package/dist/component/messages_it-B-A1X4BZ.js +298 -0
  133. package/dist/component/messages_it-DnUTUabT.js +20 -0
  134. package/dist/component/messages_it-eY6GnuZC.js +3515 -0
  135. package/dist/component/messages_ja-B3PxHv2c.js +3515 -0
  136. package/dist/component/messages_ja-Ced6ZBxD.js +298 -0
  137. package/dist/component/messages_ja-Cg7CqBUL.js +20 -0
  138. package/dist/component/messages_ko-DBCjHG4c.js +3515 -0
  139. package/dist/component/messages_ko-PKIrqwPk.js +298 -0
  140. package/dist/component/messages_ko-zvhtZMGA.js +20 -0
  141. package/dist/component/messages_lt-DV3hdFsp.js +3515 -0
  142. package/dist/component/messages_lt-DywusvNm.js +20 -0
  143. package/dist/component/messages_lt-zxcCPHno.js +299 -0
  144. package/dist/component/messages_lv-BEowUv-S.js +299 -0
  145. package/dist/component/messages_lv-DggJE2f9.js +20 -0
  146. package/dist/component/messages_lv-hIonzpTs.js +3515 -0
  147. package/dist/component/messages_ms-Ca0m7bf7.js +20 -0
  148. package/dist/component/messages_ms-Cvypo0vi.js +299 -0
  149. package/dist/component/messages_ms-DoMzA8a3.js +3515 -0
  150. package/dist/component/messages_nl-CEmANR_r.js +3515 -0
  151. package/dist/component/messages_nl-CZR4TvNo.js +298 -0
  152. package/dist/component/messages_nl-DgVYmdO9.js +20 -0
  153. package/dist/component/messages_no-B2BBaGBH.js +298 -0
  154. package/dist/component/messages_no-DJfJSlDm.js +3515 -0
  155. package/dist/component/messages_no-hPkfRJQ9.js +20 -0
  156. package/dist/component/messages_pl-Bzph-WyD.js +20 -0
  157. package/dist/component/messages_pl-ChJVH7RO.js +3515 -0
  158. package/dist/component/messages_pl-rCMsbMbN.js +298 -0
  159. package/dist/component/messages_pt-Bv63V1uB.js +3515 -0
  160. package/dist/component/messages_pt-CBgCNF3T.js +20 -0
  161. package/dist/component/messages_pt-Cx0FF6uF.js +298 -0
  162. package/dist/component/messages_ro-BvLoD_wE.js +299 -0
  163. package/dist/component/messages_ro-CMzcu-9b.js +20 -0
  164. package/dist/component/messages_ro-PVRK7Gx4.js +3515 -0
  165. package/dist/component/messages_ru-8BI6MYA0.js +3515 -0
  166. package/dist/component/messages_ru-BhRKVmVC.js +298 -0
  167. package/dist/component/messages_ru-C_BaQo57.js +20 -0
  168. package/dist/component/messages_sk-Bgi_3583.js +3515 -0
  169. package/dist/component/messages_sk-CrsC7rOj.js +20 -0
  170. package/dist/component/messages_sk-CtF-ei23.js +299 -0
  171. package/dist/component/messages_sl-B5t-KKi8.js +299 -0
  172. package/dist/component/messages_sl-BFdYWVHd.js +3515 -0
  173. package/dist/component/messages_sl-NqfmyUP1.js +20 -0
  174. package/dist/component/messages_sv-Bd1CcY6G.js +3515 -0
  175. package/dist/component/messages_sv-DPRT-DpN.js +20 -0
  176. package/dist/component/messages_sv-bQwbNmjr.js +298 -0
  177. package/dist/component/messages_th-BauH9qdo.js +20 -0
  178. package/dist/component/messages_th-C_dL_PCq.js +298 -0
  179. package/dist/component/messages_th-DEWm01uD.js +3515 -0
  180. package/dist/component/messages_tl-CouXLNcW.js +299 -0
  181. package/dist/component/messages_tl-D2t9Y_ZC.js +3515 -0
  182. package/dist/component/messages_tl-UDZY8Wuk.js +20 -0
  183. package/dist/component/messages_tr-2-OHesob.js +3515 -0
  184. package/dist/component/messages_tr-CpsxYTDb.js +20 -0
  185. package/dist/component/messages_tr-DHXnlj_j.js +298 -0
  186. package/dist/component/messages_uk-CPK4y5lH.js +298 -0
  187. package/dist/component/messages_uk-DIuQ2HoD.js +3515 -0
  188. package/dist/component/messages_uk-gPkmA_ar.js +20 -0
  189. package/dist/component/messages_vi-CgxB4Ey0.js +20 -0
  190. package/dist/component/messages_vi-DZeFWgwp.js +3515 -0
  191. package/dist/component/messages_vi-Det8i7_V.js +298 -0
  192. package/dist/component/messages_zh-D53_A4N9.js +298 -0
  193. package/dist/component/messages_zh-O552w5dp.js +20 -0
  194. package/dist/component/messages_zh-nG7LNxIt.js +3515 -0
  195. package/dist/component/multiline-address-field-rac-CwLOzNF6.js +1574 -0
  196. package/dist/component/multiline-address-rac-C4JXBlFC.js +6 -0
  197. package/dist/component/non-modal-popover-DtIMXHbe.js +63 -0
  198. package/dist/component/number-input-field-rac-BOeiugCV.js +89 -0
  199. package/dist/component/number-input-rac-NqbFwW0d.js +6 -0
  200. package/dist/component/numeric-input-utils-CuBMi4-a.js +45 -0
  201. package/dist/component/options-layout-constants-DEfIEJWD.js +6 -0
  202. package/dist/component/options-rac.module-KM-VT_KY.js +7 -0
  203. package/dist/component/password-rac-DxCYgvu_.js +142 -0
  204. package/dist/component/payment-field-utils-DobiK5Xh.js +12 -0
  205. package/dist/component/payment-input-rac-C2aof0p0.js +137 -0
  206. package/dist/component/phone-input-field-rac-Cd7RFaoD.js +473 -0
  207. package/dist/component/phone-rac-4MQREqBG.js +6 -0
  208. package/dist/component/product-list-rac-CjoepDQ_.js +263 -0
  209. package/dist/component/quiz-radio-group-rac-CIwk7N3X.js +13 -0
  210. package/dist/component/radio-group-field-rac-DE2mnUHD.js +40 -0
  211. package/dist/component/radio-group-field-rac.module-DEP9BCiX.js +124 -0
  212. package/dist/component/radio-group-rac-XE6CeGnp.js +6 -0
  213. package/dist/component/rating-input-field-rac-BzAAMipp.js +130 -0
  214. package/dist/component/rating-input-rac-oIvpEVjK.js +6 -0
  215. package/dist/component/rich-content-rac.module-cis7mx3M.js +49 -0
  216. package/dist/component/rich-text-field-rac-CqkM22CI.js +22 -0
  217. package/dist/component/rich-text-rac-BKbz3TcX.js +6 -0
  218. package/dist/component/ricos-viewer-chunk-B4rfbgjA.js +5 -0
  219. package/dist/component/service-dropdown-rac-CfCMbT9d.js +142 -0
  220. package/dist/component/services-multi-choice-rac-F2h5gUOr.js +76 -0
  221. package/dist/component/signature-rac-CIRsmZhS.js +795 -0
  222. package/dist/component/submit-button-rac-BELGrClx.js +115 -0
  223. package/dist/component/tags-field-rac-B6Hg2XOI.js +201 -0
  224. package/dist/component/tags-rac-Dfv8VP7J.js +6 -0
  225. package/dist/component/text-area-field-rac-Bsd1V2Q3.js +69 -0
  226. package/dist/component/text-area-rac-BNVdI-Gq.js +6 -0
  227. package/dist/component/text-input-field-rac-DF9dD_KW.js +24 -0
  228. package/dist/component/text-input-headless-Dlao2R8f.js +44 -0
  229. package/dist/component/text-input-rac-C2p7E01b.js +6 -0
  230. package/dist/component/time-input-rac-90mLBZsX.js +152 -0
  231. package/dist/component/url-input-field-rac-bCEOlctr.js +71 -0
  232. package/dist/component/url-input-rac-D5o8b9gx.js +6 -0
  233. package/dist/component/use-invoke-callback-UH73A_J3.js +15 -0
  234. package/dist/component/use-service-options-base-DO5hy6mn.js +48 -0
  235. package/dist/component/use-synced-display-value-DcAxdn3M.js +19 -0
  236. package/dist/form.d.ts +6930 -0
  237. 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
- # Temporary Holding Version
1
+ # @wix/form-elements
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
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.