react-f0rm 0.6.0 → 0.7.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 (39) hide show
  1. package/README.md +22 -0
  2. package/dist/devtools/index.cjs.js +1 -743
  3. package/dist/devtools/index.cjs.js.map +1 -1
  4. package/dist/devtools/index.mjs +1 -723
  5. package/dist/devtools/index.mjs.map +1 -1
  6. package/dist/form-CGRvih_c.cjs.js +2 -0
  7. package/dist/form-CGRvih_c.cjs.js.map +1 -0
  8. package/dist/form-CfBBPz6p.mjs +2 -0
  9. package/dist/form-CfBBPz6p.mjs.map +1 -0
  10. package/dist/{form-D9COEt0-.d.ts → form-DHKns6j_.d.ts} +41 -1
  11. package/dist/index.cjs.js +1 -1812
  12. package/dist/index.cjs.js.map +1 -1
  13. package/dist/index.d.ts +3 -3
  14. package/dist/index.mjs +1 -1719
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/index.umd.js +27 -7
  17. package/dist/index.umd.js.map +1 -1
  18. package/dist/index.umd.min.js +2 -2
  19. package/dist/index.umd.min.js.map +1 -1
  20. package/dist/resolvers/standard-schema.cjs.js +1 -89
  21. package/dist/resolvers/standard-schema.cjs.js.map +1 -1
  22. package/dist/resolvers/standard-schema.mjs +1 -85
  23. package/dist/resolvers/standard-schema.mjs.map +1 -1
  24. package/dist/resolvers/yup.cjs.js +1 -22
  25. package/dist/resolvers/yup.cjs.js.map +1 -1
  26. package/dist/resolvers/yup.d.ts +1 -1
  27. package/dist/resolvers/yup.mjs +1 -20
  28. package/dist/resolvers/yup.mjs.map +1 -1
  29. package/dist/resolvers/zod.cjs.js +1 -22
  30. package/dist/resolvers/zod.cjs.js.map +1 -1
  31. package/dist/resolvers/zod.d.ts +1 -1
  32. package/dist/resolvers/zod.mjs +1 -20
  33. package/dist/resolvers/zod.mjs.map +1 -1
  34. package/dist/{validate-Cu43SqhV.d.ts → validate-BoNZhOMY.d.ts} +1 -1
  35. package/package.json +6 -1
  36. package/dist/form-CXF5HwQG.mjs +0 -349
  37. package/dist/form-CXF5HwQG.mjs.map +0 -1
  38. package/dist/form-DbnzAKSM.cjs.js +0 -358
  39. package/dist/form-DbnzAKSM.cjs.js.map +0 -1
package/dist/index.umd.js CHANGED
@@ -228,6 +228,7 @@
228
228
  errors: /* @__PURE__ */ new Map(),
229
229
  touched: /* @__PURE__ */ new Set(),
230
230
  validators: /* @__PURE__ */ new Map(),
231
+ changeHandlers: /* @__PURE__ */ new Map(),
231
232
  validating: /* @__PURE__ */ new Set(),
232
233
  parsedValues: void 0,
233
234
  isSubmitting: false,
@@ -267,6 +268,14 @@
267
268
  if (options?.shouldValidate) form.validators.get(path.key)?.();
268
269
  emit(emitter, "change", path);
269
270
  }
271
+ function changeValue(form, name, value) {
272
+ changeValueByPath(form, create$1(name), value);
273
+ }
274
+ function changeValueByPath(form, path, value) {
275
+ const change = form.changeHandlers.get(path.key);
276
+ if (change) change(value);
277
+ else setValueByPath(form, path, value);
278
+ }
270
279
  function getError(form, name) {
271
280
  return getErrorByPath(form, create$1(name));
272
281
  }
@@ -1315,6 +1324,13 @@
1315
1324
  if (mode === "onChange" || mode === "all" || mode === "onTouched" && hasTouchedByPath(form, path) || liveErrors.length > 0 && form.reValidateMode === "onChange")
1316
1325
  validator();
1317
1326
  });
1327
+ React.useEffect(() => {
1328
+ form.changeHandlers.set(path.key, onChange);
1329
+ return () => {
1330
+ if (form.changeHandlers.get(path.key) === onChange)
1331
+ form.changeHandlers.delete(path.key);
1332
+ };
1333
+ }, [form, path.key, onChange]);
1318
1334
  const onBlur = useStageFn(() => {
1319
1335
  setTouchedByPath(form, path);
1320
1336
  if (mode === "onBlur" || mode === "onTouched" || mode === "all" || liveErrors.length > 0 && form.reValidateMode === "onBlur")
@@ -1517,6 +1533,12 @@
1517
1533
  const id = key.replace(/["'[\],\s]+/g, "-").replace(/^-+|-+$/g, "");
1518
1534
  return id || "field";
1519
1535
  }
1536
+ function ariaProps(error, fieldKey, props) {
1537
+ return {
1538
+ "aria-invalid": error ? true : props["aria-invalid"],
1539
+ "aria-describedby": error ? [props["aria-describedby"], errorIdFromKey(fieldKey)].filter(Boolean).join(" ") : props["aria-describedby"]
1540
+ };
1541
+ }
1520
1542
  function fieldErrorId(name) {
1521
1543
  return errorIdFromKey(create$1(name).key);
1522
1544
  }
@@ -1610,7 +1632,6 @@
1610
1632
  );
1611
1633
  const toValue = eventToValue ?? ((e) => e.target.value);
1612
1634
  const errorId = errorIdFromKey(fieldKey);
1613
- const describedBy = error ? [props["aria-describedby"], errorId].filter(Boolean).join(" ") : props["aria-describedby"];
1614
1635
  return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
1615
1636
  Component,
1616
1637
  {
@@ -1619,8 +1640,7 @@
1619
1640
  onBlur,
1620
1641
  ...asProps,
1621
1642
  ...valueToProps ? valueToProps(value) : { value },
1622
- "aria-invalid": error ? true : props["aria-invalid"],
1623
- "aria-describedby": describedBy,
1643
+ ...ariaProps(error, fieldKey, props),
1624
1644
  disabled: isDisabled,
1625
1645
  onChange: (e) => onChange(toValue(e)),
1626
1646
  ref: mergedRef
@@ -1669,8 +1689,7 @@
1669
1689
  onBlur,
1670
1690
  type: "checkbox",
1671
1691
  checked: !!value,
1672
- "aria-invalid": error ? true : props["aria-invalid"],
1673
- "aria-describedby": error ? [props["aria-describedby"], errorIdFromKey(fieldKey)].filter(Boolean).join(" ") : props["aria-describedby"],
1692
+ ...ariaProps(error, fieldKey, props),
1674
1693
  disabled: isDisabled,
1675
1694
  onChange: (e) => onChange(e.target.checked),
1676
1695
  ref
@@ -1725,8 +1744,7 @@
1725
1744
  onBlur,
1726
1745
  multiple,
1727
1746
  value: toSelectValue(multiple, value),
1728
- "aria-invalid": error ? true : props["aria-invalid"],
1729
- "aria-describedby": error ? [props["aria-describedby"], errorIdFromKey(fieldKey)].filter(Boolean).join(" ") : props["aria-describedby"],
1747
+ ...ariaProps(error, fieldKey, props),
1730
1748
  disabled: isDisabled,
1731
1749
  onChange: (e) => onChange(
1732
1750
  multiple ? Array.from(e.target.selectedOptions, (option) => option.value) : e.target.value
@@ -1747,6 +1765,8 @@
1747
1765
  exports.FormProvider = FormProvider;
1748
1766
  exports.Select = Select;
1749
1767
  exports.VALIDATION_OUTCOME = VALIDATION_OUTCOME;
1768
+ exports.changeValue = changeValue;
1769
+ exports.changeValueByPath = changeValueByPath;
1750
1770
  exports.clearErrors = clearErrors;
1751
1771
  exports.createForm = create;
1752
1772
  exports.createFormContext = createFormContext;