@fuf-stack/uniform 0.7.0 → 0.8.1

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 (73) hide show
  1. package/dist/CheckboxGroup/index.cjs +4 -4
  2. package/dist/CheckboxGroup/index.js +3 -3
  3. package/dist/FieldArray/index.cjs +4 -4
  4. package/dist/FieldArray/index.js +3 -3
  5. package/dist/Form/index.cjs +3 -3
  6. package/dist/Form/index.js +2 -2
  7. package/dist/Input/index.cjs +4 -4
  8. package/dist/Input/index.js +3 -3
  9. package/dist/RadioGroup/index.cjs +4 -4
  10. package/dist/RadioGroup/index.js +3 -3
  11. package/dist/Select/index.cjs +4 -4
  12. package/dist/Select/index.js +3 -3
  13. package/dist/SubmitButton/index.cjs +3 -3
  14. package/dist/SubmitButton/index.js +2 -2
  15. package/dist/Switch/index.cjs +4 -4
  16. package/dist/Switch/index.js +3 -3
  17. package/dist/TextArea/index.cjs +4 -4
  18. package/dist/TextArea/index.js +3 -3
  19. package/dist/chunk-B24NXJTR.js +129 -0
  20. package/dist/chunk-B24NXJTR.js.map +1 -0
  21. package/dist/{chunk-6NDSWWW7.cjs → chunk-DZPPA4BG.cjs} +5 -5
  22. package/dist/{chunk-6NDSWWW7.cjs.map → chunk-DZPPA4BG.cjs.map} +1 -1
  23. package/dist/{chunk-VXVDNHDV.cjs → chunk-ENVGJAWA.cjs} +5 -5
  24. package/dist/{chunk-VXVDNHDV.cjs.map → chunk-ENVGJAWA.cjs.map} +1 -1
  25. package/dist/{chunk-36F7BWKL.js → chunk-FYP5BTHS.js} +5 -5
  26. package/dist/{chunk-OFKYZAVG.cjs → chunk-J23BIH72.cjs} +5 -5
  27. package/dist/{chunk-OFKYZAVG.cjs.map → chunk-J23BIH72.cjs.map} +1 -1
  28. package/dist/{chunk-2BQWUW2F.cjs → chunk-JI7GA5XH.cjs} +5 -5
  29. package/dist/{chunk-2BQWUW2F.cjs.map → chunk-JI7GA5XH.cjs.map} +1 -1
  30. package/dist/{chunk-LIKSUWSM.js → chunk-OD5BASYZ.js} +5 -5
  31. package/dist/chunk-OL5DXVY4.cjs +129 -0
  32. package/dist/chunk-OL5DXVY4.cjs.map +1 -0
  33. package/dist/{chunk-UDRSTJBU.js → chunk-PDXVHUGH.js} +5 -5
  34. package/dist/{chunk-MV4JFCOJ.cjs → chunk-QP7FUODS.cjs} +5 -5
  35. package/dist/{chunk-MV4JFCOJ.cjs.map → chunk-QP7FUODS.cjs.map} +1 -1
  36. package/dist/{chunk-R7XP72I5.js → chunk-RULU2SJ5.js} +5 -5
  37. package/dist/{chunk-QD6IQL6U.js → chunk-TN6ZHEXV.js} +2 -2
  38. package/dist/{chunk-KGHLS6DM.js → chunk-UIVSMVUT.js} +5 -5
  39. package/dist/{chunk-G7FQPNDQ.cjs → chunk-VGJQLCH3.cjs} +5 -5
  40. package/dist/{chunk-G7FQPNDQ.cjs.map → chunk-VGJQLCH3.cjs.map} +1 -1
  41. package/dist/{chunk-XJ3JTLXZ.cjs → chunk-VN4U7FEE.cjs} +3 -3
  42. package/dist/{chunk-XJ3JTLXZ.cjs.map → chunk-VN4U7FEE.cjs.map} +1 -1
  43. package/dist/{chunk-ZVBX5EKB.cjs → chunk-WR2PNNMP.cjs} +6 -6
  44. package/dist/{chunk-ZVBX5EKB.cjs.map → chunk-WR2PNNMP.cjs.map} +1 -1
  45. package/dist/{chunk-Y4CFVCUN.js → chunk-X4CGRHLI.js} +22 -40
  46. package/dist/chunk-X4CGRHLI.js.map +1 -0
  47. package/dist/{chunk-EHPYBNHC.js → chunk-YTHRKULG.js} +5 -5
  48. package/dist/{chunk-Y5JGQJI7.js → chunk-ZLLK6TCU.js} +5 -5
  49. package/dist/{chunk-JFCOC5TW.cjs → chunk-ZWRZZGMZ.cjs} +23 -41
  50. package/dist/chunk-ZWRZZGMZ.cjs.map +1 -0
  51. package/dist/hooks/index.cjs +2 -2
  52. package/dist/hooks/index.d.cts +10 -9
  53. package/dist/hooks/index.d.ts +10 -9
  54. package/dist/hooks/index.js +1 -1
  55. package/dist/index.cjs +13 -13
  56. package/dist/index.d.cts +0 -1
  57. package/dist/index.d.ts +0 -1
  58. package/dist/index.js +17 -17
  59. package/package.json +7 -7
  60. package/dist/chunk-BCMPSLSG.js +0 -87
  61. package/dist/chunk-BCMPSLSG.js.map +0 -1
  62. package/dist/chunk-JFCOC5TW.cjs.map +0 -1
  63. package/dist/chunk-WQRM7G4C.cjs +0 -87
  64. package/dist/chunk-WQRM7G4C.cjs.map +0 -1
  65. package/dist/chunk-Y4CFVCUN.js.map +0 -1
  66. /package/dist/{chunk-36F7BWKL.js.map → chunk-FYP5BTHS.js.map} +0 -0
  67. /package/dist/{chunk-LIKSUWSM.js.map → chunk-OD5BASYZ.js.map} +0 -0
  68. /package/dist/{chunk-UDRSTJBU.js.map → chunk-PDXVHUGH.js.map} +0 -0
  69. /package/dist/{chunk-R7XP72I5.js.map → chunk-RULU2SJ5.js.map} +0 -0
  70. /package/dist/{chunk-QD6IQL6U.js.map → chunk-TN6ZHEXV.js.map} +0 -0
  71. /package/dist/{chunk-KGHLS6DM.js.map → chunk-UIVSMVUT.js.map} +0 -0
  72. /package/dist/{chunk-EHPYBNHC.js.map → chunk-YTHRKULG.js.map} +0 -0
  73. /package/dist/{chunk-Y5JGQJI7.js.map → chunk-ZLLK6TCU.js.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkMV4JFCOJcjs = require('../chunk-MV4JFCOJ.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkQP7FUODScjs = require('../chunk-QP7FUODS.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.CheckboxGroup = _chunkMV4JFCOJcjs.CheckboxGroup_default; exports.default = _chunkMV4JFCOJcjs.CheckboxGroup_default2;
12
+ exports.CheckboxGroup = _chunkQP7FUODScjs.CheckboxGroup_default; exports.default = _chunkQP7FUODScjs.CheckboxGroup_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  CheckboxGroup_default,
3
3
  CheckboxGroup_default2
4
- } from "../chunk-KGHLS6DM.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-UIVSMVUT.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  CheckboxGroup_default as CheckboxGroup,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkZVBX5EKBcjs = require('../chunk-ZVBX5EKB.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkWR2PNNMPcjs = require('../chunk-WR2PNNMP.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.FieldArray = _chunkZVBX5EKBcjs.FieldArray_default; exports.default = _chunkZVBX5EKBcjs.FieldArray_default2;
12
+ exports.FieldArray = _chunkWR2PNNMPcjs.FieldArray_default; exports.default = _chunkWR2PNNMPcjs.FieldArray_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FieldArray_default,
3
3
  FieldArray_default2
4
- } from "../chunk-R7XP72I5.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-RULU2SJ5.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  FieldArray_default as FieldArray,
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkJFCOC5TWcjs = require('../chunk-JFCOC5TW.cjs');
5
- require('../chunk-WQRM7G4C.cjs');
4
+ var _chunkZWRZZGMZcjs = require('../chunk-ZWRZZGMZ.cjs');
5
+ require('../chunk-OL5DXVY4.cjs');
6
6
  require('../chunk-BBB4FEY6.cjs');
7
7
 
8
8
 
9
9
 
10
- exports.Form = _chunkJFCOC5TWcjs.Form_default; exports.default = _chunkJFCOC5TWcjs.Form_default2;
10
+ exports.Form = _chunkZWRZZGMZcjs.Form_default; exports.default = _chunkZWRZZGMZcjs.Form_default2;
11
11
  //# sourceMappingURL=index.cjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Form_default,
3
3
  Form_default2
4
- } from "../chunk-Y4CFVCUN.js";
5
- import "../chunk-BCMPSLSG.js";
4
+ } from "../chunk-X4CGRHLI.js";
5
+ import "../chunk-B24NXJTR.js";
6
6
  import "../chunk-V46BHM2U.js";
7
7
  export {
8
8
  Form_default as Form,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk2BQWUW2Fcjs = require('../chunk-2BQWUW2F.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkJI7GA5XHcjs = require('../chunk-JI7GA5XH.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.Input = _chunk2BQWUW2Fcjs.Input_default; exports.default = _chunk2BQWUW2Fcjs.Input_default2;
12
+ exports.Input = _chunkJI7GA5XHcjs.Input_default; exports.default = _chunkJI7GA5XHcjs.Input_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Input_default,
3
3
  Input_default2
4
- } from "../chunk-Y5JGQJI7.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-ZLLK6TCU.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  Input_default as Input,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkOFKYZAVGcjs = require('../chunk-OFKYZAVG.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkJ23BIH72cjs = require('../chunk-J23BIH72.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.RadioGroup = _chunkOFKYZAVGcjs.RadioGroup_default; exports.default = _chunkOFKYZAVGcjs.RadioGroup_default2;
12
+ exports.RadioGroup = _chunkJ23BIH72cjs.RadioGroup_default; exports.default = _chunkJ23BIH72cjs.RadioGroup_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  RadioGroup_default,
3
3
  RadioGroup_default2
4
- } from "../chunk-36F7BWKL.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-FYP5BTHS.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  RadioGroup_default as RadioGroup,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkG7FQPNDQcjs = require('../chunk-G7FQPNDQ.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkVGJQLCH3cjs = require('../chunk-VGJQLCH3.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.Select = _chunkG7FQPNDQcjs.Select_default; exports.default = _chunkG7FQPNDQcjs.Select_default2;
12
+ exports.Select = _chunkVGJQLCH3cjs.Select_default; exports.default = _chunkVGJQLCH3cjs.Select_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Select_default,
3
3
  Select_default2
4
- } from "../chunk-EHPYBNHC.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-YTHRKULG.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  Select_default as Select,
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkXJ3JTLXZcjs = require('../chunk-XJ3JTLXZ.cjs');
5
- require('../chunk-WQRM7G4C.cjs');
4
+ var _chunkVN4U7FEEcjs = require('../chunk-VN4U7FEE.cjs');
5
+ require('../chunk-OL5DXVY4.cjs');
6
6
  require('../chunk-BBB4FEY6.cjs');
7
7
 
8
8
 
9
9
 
10
- exports.SubmitButton = _chunkXJ3JTLXZcjs.SubmitButton_default; exports.default = _chunkXJ3JTLXZcjs.SubmitButton_default2;
10
+ exports.SubmitButton = _chunkVN4U7FEEcjs.SubmitButton_default; exports.default = _chunkVN4U7FEEcjs.SubmitButton_default2;
11
11
  //# sourceMappingURL=index.cjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SubmitButton_default,
3
3
  SubmitButton_default2
4
- } from "../chunk-QD6IQL6U.js";
5
- import "../chunk-BCMPSLSG.js";
4
+ } from "../chunk-TN6ZHEXV.js";
5
+ import "../chunk-B24NXJTR.js";
6
6
  import "../chunk-V46BHM2U.js";
7
7
  export {
8
8
  SubmitButton_default as SubmitButton,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk6NDSWWW7cjs = require('../chunk-6NDSWWW7.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkDZPPA4BGcjs = require('../chunk-DZPPA4BG.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.Switch = _chunk6NDSWWW7cjs.Switch_default; exports.default = _chunk6NDSWWW7cjs.Switch_default2;
12
+ exports.Switch = _chunkDZPPA4BGcjs.Switch_default; exports.default = _chunkDZPPA4BGcjs.Switch_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Switch_default,
3
3
  Switch_default2
4
- } from "../chunk-LIKSUWSM.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-OD5BASYZ.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  Switch_default as Switch,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkVXVDNHDVcjs = require('../chunk-VXVDNHDV.cjs');
5
- require('../chunk-QTL5FREE.cjs');
4
+ var _chunkENVGJAWAcjs = require('../chunk-ENVGJAWA.cjs');
6
5
  require('../chunk-KMMS4G7A.cjs');
7
- require('../chunk-WQRM7G4C.cjs');
6
+ require('../chunk-QTL5FREE.cjs');
7
+ require('../chunk-OL5DXVY4.cjs');
8
8
  require('../chunk-BBB4FEY6.cjs');
9
9
 
10
10
 
11
11
 
12
- exports.TextArea = _chunkVXVDNHDVcjs.TextArea_default; exports.default = _chunkVXVDNHDVcjs.TextArea_default2;
12
+ exports.TextArea = _chunkENVGJAWAcjs.TextArea_default; exports.default = _chunkENVGJAWAcjs.TextArea_default2;
13
13
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  TextArea_default,
3
3
  TextArea_default2
4
- } from "../chunk-UDRSTJBU.js";
5
- import "../chunk-DBLODROX.js";
4
+ } from "../chunk-PDXVHUGH.js";
6
5
  import "../chunk-T3CCNJHK.js";
7
- import "../chunk-BCMPSLSG.js";
6
+ import "../chunk-DBLODROX.js";
7
+ import "../chunk-B24NXJTR.js";
8
8
  import "../chunk-V46BHM2U.js";
9
9
  export {
10
10
  TextArea_default as TextArea,
@@ -0,0 +1,129 @@
1
+ import {
2
+ slugify
3
+ } from "./chunk-V46BHM2U.js";
4
+
5
+ // src/hooks/useFormContext/useFormContext.ts
6
+ import { useContext } from "react";
7
+ import { useFormContext as useHookFormContext } from "react-hook-form";
8
+
9
+ // src/Form/subcomponents/FormContext.tsx
10
+ import React, { useMemo, useState } from "react";
11
+ import { FormProvider as HookFormProvider, useForm } from "react-hook-form";
12
+ import { jsx } from "react/jsx-runtime";
13
+ var removeNullishFields = (obj) => {
14
+ return JSON.parse(
15
+ JSON.stringify(obj, (_key, value) => {
16
+ return value === null ? void 0 : value;
17
+ })
18
+ );
19
+ };
20
+ var UniformContext = React.createContext(void 0);
21
+ var FormProvider = ({
22
+ children,
23
+ initialValues = void 0,
24
+ onSubmit,
25
+ validation = void 0,
26
+ validationTrigger
27
+ }) => {
28
+ const [canSubmit, setCanSubmit] = useState(true);
29
+ const contextValue = useMemo(
30
+ () => ({ canSubmit, setCanSubmit, validation }),
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ [canSubmit]
33
+ );
34
+ const methods = useForm({
35
+ defaultValues: initialValues,
36
+ // add validation config when validation schema provided
37
+ ...validation ? {
38
+ // set rhf mode
39
+ // see: https://react-hook-form.com/docs/useform#mode
40
+ mode: validationTrigger,
41
+ resolver: async (values) => {
42
+ const { data, errors, ...rest } = await validation.validateAsync(
43
+ removeNullishFields(values)
44
+ );
45
+ return { values: data || {}, errors: errors || {}, ...rest };
46
+ }
47
+ } : {}
48
+ });
49
+ const handleSubmit = async (e) => {
50
+ if (!canSubmit) {
51
+ console.warn(
52
+ "[FormProvider] form submit was canceled canSubmit is false..."
53
+ );
54
+ e?.preventDefault();
55
+ return Promise.resolve();
56
+ }
57
+ await methods.handleSubmit(onSubmit)(e);
58
+ };
59
+ return /* @__PURE__ */ jsx(UniformContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(HookFormProvider, { ...methods, children: children({ handleSubmit }) }) });
60
+ };
61
+ var FormContext_default = FormProvider;
62
+
63
+ // src/hooks/useFormContext/useFormContext.ts
64
+ var recursiveSearchInnerType = (schema) => {
65
+ let currentSchema = schema;
66
+ while (currentSchema?._def?.innerType) {
67
+ currentSchema = currentSchema._def.innerType;
68
+ if (currentSchema?._def?.typeName === "ZodOptional") {
69
+ return false;
70
+ }
71
+ }
72
+ return true;
73
+ };
74
+ var recursiveFieldKeySearch = (schema, path) => {
75
+ const [current, ...rest] = path;
76
+ let currentSchema = schema;
77
+ if (schema?._def?.typeName === "ZodOptional") {
78
+ currentSchema = schema.unwrap();
79
+ }
80
+ if (schema?._def?.typeName === "ZodEffects") {
81
+ return recursiveFieldKeySearch(schema._def.schema, path);
82
+ }
83
+ if (currentSchema?._def?.typeName === "ZodIntersection") {
84
+ return (currentSchema._def.left?.schema ? recursiveFieldKeySearch(currentSchema._def.left.schema, path) : recursiveFieldKeySearch(currentSchema._def.left, path)) || (currentSchema._def.right?.schema ? recursiveFieldKeySearch(currentSchema._def.right.schema, path) : recursiveFieldKeySearch(currentSchema._def.right, path));
85
+ }
86
+ const shape = currentSchema?.shape ?? currentSchema?.element?.shape;
87
+ if (shape && shape[current]) {
88
+ if (rest.length === 0) {
89
+ return shape[current]?._def?.typeName !== "ZodOptional" && recursiveSearchInnerType(shape[current]);
90
+ }
91
+ return recursiveFieldKeySearch(shape[current], rest);
92
+ }
93
+ return null;
94
+ };
95
+ var useFormContext = () => {
96
+ const {
97
+ formState,
98
+ // https://react-hook-form.com/docs/useform/getfieldstate
99
+ // for getFieldState a subscription to formState properties is needed!
100
+ getFieldState: getFieldStateOrig,
101
+ ...otherMethods
102
+ } = useHookFormContext();
103
+ const uniformContext = useContext(UniformContext);
104
+ const getFieldState = (name, testId) => {
105
+ const fieldPath = typeof name === "string" ? name.replace(/\[\d+\]/g, "").split(".") : name;
106
+ const required = uniformContext?.validation && recursiveFieldKeySearch(uniformContext.validation.schema, fieldPath) || false;
107
+ const { error, ...rest } = getFieldStateOrig(name, formState);
108
+ return {
109
+ ...rest,
110
+ error,
111
+ // Ensure correct type for error
112
+ required,
113
+ testId: slugify(testId || name)
114
+ };
115
+ };
116
+ return {
117
+ ...otherMethods,
118
+ ...uniformContext,
119
+ getFieldState,
120
+ formState
121
+ };
122
+ };
123
+
124
+ export {
125
+ FormContext_default,
126
+ recursiveFieldKeySearch,
127
+ useFormContext
128
+ };
129
+ //# sourceMappingURL=chunk-B24NXJTR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useFormContext/useFormContext.ts","../src/Form/subcomponents/FormContext.tsx"],"sourcesContent":["import type { VetoSchema } from '@fuf-stack/veto';\nimport type { FieldError } from 'react-hook-form';\n\nimport { useContext } from 'react';\nimport { useFormContext as useHookFormContext } from 'react-hook-form';\n\nimport { UniformContext } from '../../Form/subcomponents/FormContext';\nimport { slugify } from '../../helpers';\n\n/** Checks whether the field is an optional type by recursively checking inner types */\nconst recursiveSearchInnerType = (schema: VetoSchema): boolean => {\n let currentSchema = schema;\n\n // Loop through inner types to find the root type\n while (currentSchema?._def?.innerType) {\n currentSchema = currentSchema._def.innerType;\n if (currentSchema?._def?.typeName === 'ZodOptional') {\n // Stop recursion if optional is found\n return false;\n }\n }\n // If no optional was found, assume it's required\n return true;\n};\n\n/** Recursive search to check whether a field is required or optional */\nexport const recursiveFieldKeySearch = (\n schema: VetoSchema,\n path: string[],\n): boolean | null => {\n const [current, ...rest] = path;\n\n let currentSchema = schema;\n\n // Handle ZodOptional schema: unwrap and continue searching\n if (schema?._def?.typeName === 'ZodOptional') {\n // @ts-expect-error not sure here\n currentSchema = schema.unwrap();\n }\n\n // Handle ZodEffects (transformations or validation effects)\n if (schema?._def?.typeName === 'ZodEffects') {\n // Unwrap and continue\n return recursiveFieldKeySearch(schema._def.schema, path);\n }\n\n // Handle ZodIntersection (intersection types)\n if (currentSchema?._def?.typeName === 'ZodIntersection') {\n return (\n (currentSchema._def.left?.schema\n ? recursiveFieldKeySearch(currentSchema._def.left.schema, path)\n : recursiveFieldKeySearch(currentSchema._def.left, path)) ||\n (currentSchema._def.right?.schema\n ? recursiveFieldKeySearch(currentSchema._def.right.schema, path)\n : recursiveFieldKeySearch(currentSchema._def.right, path))\n );\n }\n\n // Get the shape of an object or elements of an array schema\n // @ts-expect-error not sure here\n const shape = currentSchema?.shape ?? currentSchema?.element?.shape;\n\n if (shape && shape[current]) {\n if (rest.length === 0) {\n // At the end of the path, check if the field is optional\n return (\n shape[current]?._def?.typeName !== 'ZodOptional' &&\n recursiveSearchInnerType(shape[current])\n );\n }\n return recursiveFieldKeySearch(shape[current], rest);\n }\n // Return null if field not found\n return null;\n};\n\n/**\n * Custom hook that extends react-hook-form's useFormContext to add validation and state management.\n */\nexport const useFormContext = () => {\n const {\n formState,\n // https://react-hook-form.com/docs/useform/getfieldstate\n // for getFieldState a subscription to formState properties is needed!\n getFieldState: getFieldStateOrig,\n ...otherMethods\n } = useHookFormContext();\n\n const uniformContext = useContext(UniformContext);\n\n /**\n * Updated getFieldState method which returns:\n * - Whether the field is required by checking the validation schema\n * - Existing field state information (errors, etc.)\n */\n const getFieldState = (name: string, testId?: string) => {\n const fieldPath =\n typeof name === 'string' ? name.replace(/\\[\\d+\\]/g, '').split('.') : name;\n\n // Check if the field is required using the validation schema\n const required =\n (uniformContext?.validation &&\n recursiveFieldKeySearch(uniformContext.validation.schema, fieldPath)) ||\n false;\n\n // Get the original field state (errors, etc.) from react-hook-form\n const { error, ...rest } = getFieldStateOrig(name, formState);\n\n return {\n ...rest,\n error: error as FieldError[] | undefined, // Ensure correct type for error\n required,\n testId: slugify(testId || name),\n };\n };\n\n return {\n ...otherMethods,\n ...uniformContext,\n getFieldState,\n formState,\n };\n};\n","import type { VetoInstance } from '@fuf-stack/veto';\nimport type { ReactNode } from 'react';\nimport type { FieldValues, SubmitHandler } from 'react-hook-form';\n\nimport React, { useMemo, useState } from 'react';\nimport { FormProvider as HookFormProvider, useForm } from 'react-hook-form';\n\n/**\n * recursively removes all fields that are null or undefined before\n * the form data is passed to the veto validation function\n */\nexport const removeNullishFields = (obj: Record<string, unknown>) => {\n return JSON.parse(\n JSON.stringify(obj, (_key, value) => {\n return value === null ? undefined : value;\n }),\n );\n};\n\n/**\n * The `UniformContext` provides the form submission state (`canSubmit`) and the ability to control\n * submission behavior (`setCanSubmit`). Additionally, it may provide an optional `validation` schema\n * (from Veto) for form validation purposes.\n *\n * This context is used by components that need to control or be aware of the form submission state,\n * or that require access to the validation schema for managing validation logic.\n *\n * The context's default value is `undefined` until provided by the `FormProvider` component.\n */\nexport const UniformContext = React.createContext<\n | {\n /** Whether the form can be submitted */\n canSubmit: boolean;\n /** Function to update the form's submission state (enabled/disabled) */\n setCanSubmit: React.Dispatch<React.SetStateAction<boolean>>;\n /** Optional Veto validation schema instance for form validation */\n validation?: VetoInstance;\n }\n | undefined\n>(undefined);\n\n// Define props for the FormProvider component, extending HookForm's props\ninterface FormProviderProps {\n /** children form render function */\n children: (childProps: {\n handleSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;\n }) => ReactNode;\n /** initial form values */\n initialValues?: FieldValues;\n /** form submit handler */\n onSubmit: SubmitHandler<FieldValues>;\n /** Veto validation schema instance */\n validation?: VetoInstance;\n /** when the validation should be triggered */\n validationTrigger: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';\n}\n\n/**\n * FormProvider component provides both:\n * 1. The veto validation schema context\n * 2. The form submission control context\n */\nconst FormProvider: React.FC<FormProviderProps> = ({\n children,\n initialValues = undefined,\n onSubmit,\n validation = undefined,\n validationTrigger,\n}) => {\n // Local state to control if form can be submitted\n const [canSubmit, setCanSubmit] = useState(true);\n\n // Memoize the context value to prevent re-renders\n const contextValue = useMemo(\n () => ({ canSubmit, setCanSubmit, validation }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [canSubmit],\n );\n\n // Initialize react hook form\n const methods = useForm({\n defaultValues: initialValues,\n // add validation config when validation schema provided\n ...(validation\n ? {\n // set rhf mode\n // see: https://react-hook-form.com/docs/useform#mode\n mode: validationTrigger,\n resolver: async (values) => {\n const { data, errors, ...rest } = await validation.validateAsync(\n removeNullishFields(values),\n );\n // https://github.com/react-hook-form/resolvers/blob/master/zod/src/zod.ts\n return { values: data || {}, errors: errors || {}, ...rest };\n },\n }\n : {}),\n });\n\n // Create submit handler\n // eslint-disable-next-line consistent-return\n const handleSubmit = async (e?: React.BaseSyntheticEvent) => {\n if (!canSubmit) {\n console.warn(\n '[FormProvider] form submit was canceled canSubmit is false...',\n );\n e?.preventDefault();\n return Promise.resolve();\n }\n await methods.handleSubmit(onSubmit)(e);\n };\n\n return (\n <UniformContext.Provider value={contextValue}>\n {/* Spread all hook form props into HookFormProvider */}\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <HookFormProvider {...methods}>\n {children({ handleSubmit })}\n </HookFormProvider>\n </UniformContext.Provider>\n );\n};\n\nexport default FormProvider;\n"],"mappings":"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","names":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
4
 
5
5
 
6
- var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
7
 
8
8
 
9
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
9
+ var _chunkOL5DXVY4cjs = require('./chunk-OL5DXVY4.cjs');
10
10
 
11
11
  // src/Switch/Switch.tsx
12
12
  var _reacthookform = require('react-hook-form');
@@ -20,7 +20,7 @@ var Switch = ({
20
20
  name,
21
21
  testId: _testId = void 0
22
22
  }) => {
23
- const { control, getFieldState } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
23
+ const { control, getFieldState } = _chunkOL5DXVY4cjs.useFormContext.call(void 0, );
24
24
  const { error, required, testId, invalid } = getFieldState(name, _testId);
25
25
  const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } = _input.useInput.call(void 0, {
26
26
  errorMessage: JSON.stringify(error),
@@ -78,4 +78,4 @@ var Switch_default2 = Switch_default;
78
78
 
79
79
 
80
80
  exports.Switch_default = Switch_default; exports.Switch_default2 = Switch_default2;
81
- //# sourceMappingURL=chunk-6NDSWWW7.cjs.map
81
+ //# sourceMappingURL=chunk-DZPPA4BG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-6NDSWWW7.cjs","../src/Switch/Switch.tsx","../src/Switch/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,gDAA2B;AAE3B,0CAAyB;AACzB,4CAAqC;AAkD7B,+CAAA;AA5BR,IAAM,OAAA,EAAS,CAAC;AAAA,EACd,SAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,OAAA,EAAS,KAAA,CAAA;AAAA,EAChB,IAAA;AAAA,EACA,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAAmB;AACjB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAQ,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,qBAAA,EAAuB,qBAAqB,EAAA,EACxE,6BAAA;AAAS,IACP,YAAA,EAAc,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAAA,IAClC,SAAA,EAAW,OAAA;AAAA,IACX,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO,MAAA;AAAA,IACP,cAAA,EAAgB,SAAA;AAAA,IAChB,WAAA,EAAa;AAAA,EACf,CAAC,CAAA;AAEH,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,SAAS;AAAA,MAC9D,CAAA,EAAA,mBACE,8BAAA,oBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,8BAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,kBAAA,EAAkB,aAAA,CAAc,CAAA,CAAE,kBAAkB,CAAA;AAAA,YACpD,QAAA;AAAA,YACA,UAAA,EAAY,CAAC,CAAC,KAAA;AAAA,YACd,SAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,KAAA,EAAO,CAAA,yCAAA,EAA4C,QAAA,EAAU,cAAA,EAAgB,EAAE,CAAA;AAAA,YAAA;AACjF,YAAA;AACa,YAAA;AACb,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AAEC,cAAA;AAAA,cAAA;AAE2C,8BAAA;AAEL,YAAA;AAAA,UAAA;AAAA,QAAA;AACzC,QAAA;AACC,wBAAA;AAOC,MAAA;AAEJ,IAAA;AAAA,EAAA;AAIR;AAEA;ADnBA;AACA;AEnEA;AFqEA;AACA;AACA;AACA;AACA","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-6NDSWWW7.cjs","sourcesContent":[null,"import { Controller } from 'react-hook-form';\n\nimport { useInput } from '@nextui-org/input';\nimport { Switch as NextSwitch } from '@nextui-org/switch';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface SwitchProps {\n /** CSS class name */\n className: string;\n /** whether the select should be disabled */\n disabled?: boolean;\n /** component displayed next to the switch. */\n label: React.ReactNode;\n /** name the field is registered under */\n name: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Switch component based on [NextUI Switch](https://nextui.org/docs/components/switch)\n */\nconst Switch = ({\n className,\n disabled = false,\n label: _label = undefined,\n name,\n testId: _testId = undefined,\n}: SwitchProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, required, testId, invalid } = getFieldState(name, _testId);\n\n const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } =\n useInput({\n errorMessage: JSON.stringify(error),\n isInvalid: invalid,\n isRequired: required,\n label: _label,\n labelPlacement: 'outside',\n placeholder: ' ',\n });\n\n return (\n <Controller\n name={name}\n control={control}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, value, ref, onBlur, onChange },\n }) => (\n <>\n <NextSwitch\n aria-describedby={getInputProps()['aria-describedby']}\n required={required}\n isSelected={!!value}\n className={className}\n classNames={{\n label: `text-bold block text-ellipsis text-small ${invalid ? 'text-danger' : ''}`,\n }}\n data-testid={testId}\n isDisabled={isDisabled}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n name={name}\n ref={ref}\n >\n {label}\n {!!required && !!_label && (\n <span className=\"!text-danger\">{' \\u002A'}</span>\n )}\n <FieldCopyTestIdButton testId={testId} />\n </NextSwitch>\n {error && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div {...getHelperWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <div {...getErrorMessageProps()}>\n <FieldValidationError error={error} />\n </div>\n </div>\n )}\n </>\n )}\n />\n );\n};\n\nexport default Switch;\n","import Switch from './Switch';\n\nexport type { SwitchProps } from './Switch';\n\nexport { Switch };\n\nexport default Switch;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-DZPPA4BG.cjs","../src/Switch/Switch.tsx","../src/Switch/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,gDAA2B;AAE3B,0CAAyB;AACzB,4CAAqC;AAkD7B,+CAAA;AA5BR,IAAM,OAAA,EAAS,CAAC;AAAA,EACd,SAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,OAAA,EAAS,KAAA,CAAA;AAAA,EAChB,IAAA;AAAA,EACA,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAAmB;AACjB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAQ,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,qBAAA,EAAuB,qBAAqB,EAAA,EACxE,6BAAA;AAAS,IACP,YAAA,EAAc,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAAA,IAClC,SAAA,EAAW,OAAA;AAAA,IACX,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO,MAAA;AAAA,IACP,cAAA,EAAgB,SAAA;AAAA,IAChB,WAAA,EAAa;AAAA,EACf,CAAC,CAAA;AAEH,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,SAAS;AAAA,MAC9D,CAAA,EAAA,mBACE,8BAAA,oBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,8BAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,kBAAA,EAAkB,aAAA,CAAc,CAAA,CAAE,kBAAkB,CAAA;AAAA,YACpD,QAAA;AAAA,YACA,UAAA,EAAY,CAAC,CAAC,KAAA;AAAA,YACd,SAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,KAAA,EAAO,CAAA,yCAAA,EAA4C,QAAA,EAAU,cAAA,EAAgB,EAAE,CAAA;AAAA,YAAA;AACjF,YAAA;AACa,YAAA;AACb,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AAEC,cAAA;AAAA,cAAA;AAE2C,8BAAA;AAEL,YAAA;AAAA,UAAA;AAAA,QAAA;AACzC,QAAA;AACC,wBAAA;AAOC,MAAA;AAEJ,IAAA;AAAA,EAAA;AAIR;AAEA;ADnBA;AACA;AEnEA;AFqEA;AACA;AACA;AACA;AACA","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-DZPPA4BG.cjs","sourcesContent":[null,"import { Controller } from 'react-hook-form';\n\nimport { useInput } from '@nextui-org/input';\nimport { Switch as NextSwitch } from '@nextui-org/switch';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface SwitchProps {\n /** CSS class name */\n className: string;\n /** whether the select should be disabled */\n disabled?: boolean;\n /** component displayed next to the switch. */\n label: React.ReactNode;\n /** name the field is registered under */\n name: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Switch component based on [NextUI Switch](https://nextui.org/docs/components/switch)\n */\nconst Switch = ({\n className,\n disabled = false,\n label: _label = undefined,\n name,\n testId: _testId = undefined,\n}: SwitchProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, required, testId, invalid } = getFieldState(name, _testId);\n\n const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } =\n useInput({\n errorMessage: JSON.stringify(error),\n isInvalid: invalid,\n isRequired: required,\n label: _label,\n labelPlacement: 'outside',\n placeholder: ' ',\n });\n\n return (\n <Controller\n name={name}\n control={control}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, value, ref, onBlur, onChange },\n }) => (\n <>\n <NextSwitch\n aria-describedby={getInputProps()['aria-describedby']}\n required={required}\n isSelected={!!value}\n className={className}\n classNames={{\n label: `text-bold block text-ellipsis text-small ${invalid ? 'text-danger' : ''}`,\n }}\n data-testid={testId}\n isDisabled={isDisabled}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n name={name}\n ref={ref}\n >\n {label}\n {!!required && !!_label && (\n <span className=\"!text-danger\">{' \\u002A'}</span>\n )}\n <FieldCopyTestIdButton testId={testId} />\n </NextSwitch>\n {error && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div {...getHelperWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <div {...getErrorMessageProps()}>\n <FieldValidationError error={error} />\n </div>\n </div>\n )}\n </>\n )}\n />\n );\n};\n\nexport default Switch;\n","import Switch from './Switch';\n\nexport type { SwitchProps } from './Switch';\n\nexport { Switch };\n\nexport default Switch;\n"]}
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
4
 
5
5
 
6
- var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
7
 
8
8
 
9
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
9
+ var _chunkOL5DXVY4cjs = require('./chunk-OL5DXVY4.cjs');
10
10
 
11
11
  // src/TextArea/TextArea.tsx
12
12
  var _reacthookform = require('react-hook-form');
@@ -22,7 +22,7 @@ var TextArea = ({
22
22
  placeholder = " ",
23
23
  testId: _testId = void 0
24
24
  }) => {
25
- const { control, getFieldState } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
25
+ const { control, getFieldState } = _chunkOL5DXVY4cjs.useFormContext.call(void 0, );
26
26
  const { error, invalid, required, testId } = getFieldState(name, _testId);
27
27
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28
28
  _reacthookform.Controller,
@@ -73,4 +73,4 @@ var TextArea_default2 = TextArea_default;
73
73
 
74
74
 
75
75
  exports.TextArea_default = TextArea_default; exports.TextArea_default2 = TextArea_default2;
76
- //# sourceMappingURL=chunk-VXVDNHDV.cjs.map
76
+ //# sourceMappingURL=chunk-ENVGJAWA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-VXVDNHDV.cjs","../src/TextArea/TextArea.tsx","../src/TextArea/index.ts"],"names":["TextArea_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,gDAA2B;AAE3B,0CAAyC;AAEzC,oDAAmB;AAqDgB,+CAAA;AA3BnC,IAAM,SAAA,EAAW,CAAC;AAAA,EAChB,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,IAAA;AAAA,EACA,YAAA,EAAc,GAAA;AAAA,EACd,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAAqB;AACnB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,OAAO,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,IAAI;AAAA,MAC9D,CAAA,EAAA,GAAM;AACJ,QAAA,uBACE,6BAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,YACvB,UAAA,EAAY;AAAA,cACV,YAAA,EAAc;AAAA,YAChB,CAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,YAAA,EAAc,MAAA,mBAAS,6BAAA,8CAAC,EAAA,EAAqB,MAAA,CAAc,CAAA;AAAA,YAC3D,UAAA;AAAA,YACA,UAAA,EAAY,QAAA;AAAA,YACZ,SAAA,EAAW,OAAA;AAAA,YACX,KAAA,kBACE,8BAAA,oBAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,8BACD,6BAAA,+CAAC,EAAA,EAAsB,OAAA,CAAgB;AAAA,YAAA,EAAA,CACzC,CAAA;AAAA,YAEF,cAAA,EAAe,SAAA;AAAA,YACf,WAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA,GAAA;AAAA,YACA,OAAA,EAAQ,UAAA;AAAA,YAEP;AAAA,UAAA;AAAA,QACH,CAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,iBAAA,EAAQ,QAAA;ADnBf;AACA;AE9DA,IAAOA,kBAAAA,EAAQ,gBAAA;AFgEf;AACA;AACE;AACA;AACF,2FAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-VXVDNHDV.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { Controller } from 'react-hook-form';\n\nimport { Textarea as NextTextArea } from '@nextui-org/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface TextAreaProps {\n /** Child components. The content of the textarea. */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** Determines if the TextArea is disabled or not. */\n disabled?: boolean;\n /** Label displayed above the TextArea. */\n label?: ReactNode;\n /** Name the TextArea is registered at in HTML forms (react-hook-form). */\n name: string;\n /** placeholder for the textArea content. */\n placeholder?: string;\n /** Id to grab element in internal tests. */\n testId?: string;\n}\n\n/**\n * TextArea component based on [NextUI TextArea](https://nextui.org/docs/components/textarea)\n */\nconst TextArea = ({\n children = null,\n className = undefined,\n disabled = false,\n label = undefined,\n name,\n placeholder = ' ',\n testId: _testId = undefined,\n}: TextAreaProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n return (\n <Controller\n control={control}\n name={name}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, onChange, onBlur, value, ref },\n }) => {\n return (\n <NextTextArea\n className={cn(className)}\n classNames={{\n inputWrapper: 'group-data-[focus=true]:border-primary',\n }}\n data-testid={testId}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isRequired={required}\n isInvalid={invalid}\n label={\n <>\n {label}\n <FieldCopyTestIdButton testId={testId} />\n </>\n }\n labelPlacement=\"outside\"\n placeholder={placeholder}\n name={name}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n variant=\"bordered\"\n >\n {children}\n </NextTextArea>\n );\n }}\n />\n );\n};\n\nexport default TextArea;\n","import TextArea from './TextArea';\n\nexport type { TextAreaProps } from './TextArea';\n\nexport { TextArea };\n\nexport default TextArea;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ENVGJAWA.cjs","../src/TextArea/TextArea.tsx","../src/TextArea/index.ts"],"names":["TextArea_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACRA,gDAA2B;AAE3B,0CAAyC;AAEzC,oDAAmB;AAqDgB,+CAAA;AA3BnC,IAAM,SAAA,EAAW,CAAC;AAAA,EAChB,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,IAAA;AAAA,EACA,YAAA,EAAc,GAAA;AAAA,EACd,MAAA,EAAQ,QAAA,EAAU,KAAA;AACpB,CAAA,EAAA,GAAqB;AACnB,EAAA,MAAM,EAAE,OAAA,EAAS,cAAc,EAAA,EAAI,8CAAA,CAAe;AAClD,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,OAAO,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,uBACE,6BAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,IAAI;AAAA,MAC9D,CAAA,EAAA,GAAM;AACJ,QAAA,uBACE,6BAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,YACvB,UAAA,EAAY;AAAA,cACV,YAAA,EAAc;AAAA,YAChB,CAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,YAAA,EAAc,MAAA,mBAAS,6BAAA,8CAAC,EAAA,EAAqB,MAAA,CAAc,CAAA;AAAA,YAC3D,UAAA;AAAA,YACA,UAAA,EAAY,QAAA;AAAA,YACZ,SAAA,EAAW,OAAA;AAAA,YACX,KAAA,kBACE,8BAAA,oBAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,8BACD,6BAAA,+CAAC,EAAA,EAAsB,OAAA,CAAgB;AAAA,YAAA,EAAA,CACzC,CAAA;AAAA,YAEF,cAAA,EAAe,SAAA;AAAA,YACf,WAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA,GAAA;AAAA,YACA,OAAA,EAAQ,UAAA;AAAA,YAEP;AAAA,UAAA;AAAA,QACH,CAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,iBAAA,EAAQ,QAAA;ADnBf;AACA;AE9DA,IAAOA,kBAAAA,EAAQ,gBAAA;AFgEf;AACA;AACE;AACA;AACF,2FAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ENVGJAWA.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { Controller } from 'react-hook-form';\n\nimport { Textarea as NextTextArea } from '@nextui-org/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface TextAreaProps {\n /** Child components. The content of the textarea. */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** Determines if the TextArea is disabled or not. */\n disabled?: boolean;\n /** Label displayed above the TextArea. */\n label?: ReactNode;\n /** Name the TextArea is registered at in HTML forms (react-hook-form). */\n name: string;\n /** placeholder for the textArea content. */\n placeholder?: string;\n /** Id to grab element in internal tests. */\n testId?: string;\n}\n\n/**\n * TextArea component based on [NextUI TextArea](https://nextui.org/docs/components/textarea)\n */\nconst TextArea = ({\n children = null,\n className = undefined,\n disabled = false,\n label = undefined,\n name,\n placeholder = ' ',\n testId: _testId = undefined,\n}: TextAreaProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n return (\n <Controller\n control={control}\n name={name}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, onChange, onBlur, value, ref },\n }) => {\n return (\n <NextTextArea\n className={cn(className)}\n classNames={{\n inputWrapper: 'group-data-[focus=true]:border-primary',\n }}\n data-testid={testId}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isRequired={required}\n isInvalid={invalid}\n label={\n <>\n {label}\n <FieldCopyTestIdButton testId={testId} />\n </>\n }\n labelPlacement=\"outside\"\n placeholder={placeholder}\n name={name}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n variant=\"bordered\"\n >\n {children}\n </NextTextArea>\n );\n }}\n />\n );\n};\n\nexport default TextArea;\n","import TextArea from './TextArea';\n\nexport type { TextAreaProps } from './TextArea';\n\nexport { TextArea };\n\nexport default TextArea;\n"]}
@@ -1,12 +1,12 @@
1
- import {
2
- FieldValidationError_default
3
- } from "./chunk-DBLODROX.js";
4
1
  import {
5
2
  FieldCopyTestIdButton_default
6
3
  } from "./chunk-T3CCNJHK.js";
4
+ import {
5
+ FieldValidationError_default
6
+ } from "./chunk-DBLODROX.js";
7
7
  import {
8
8
  useFormContext
9
- } from "./chunk-BCMPSLSG.js";
9
+ } from "./chunk-B24NXJTR.js";
10
10
  import {
11
11
  slugify
12
12
  } from "./chunk-V46BHM2U.js";
@@ -202,4 +202,4 @@ export {
202
202
  RadioGroup_default,
203
203
  RadioGroup_default2
204
204
  };
205
- //# sourceMappingURL=chunk-36F7BWKL.js.map
205
+ //# sourceMappingURL=chunk-FYP5BTHS.js.map
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
3
+ var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
4
4
 
5
5
 
6
- var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
7
 
8
8
 
9
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
9
+ var _chunkOL5DXVY4cjs = require('./chunk-OL5DXVY4.cjs');
10
10
 
11
11
 
12
12
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
@@ -103,7 +103,7 @@ var RadioGroup = ({
103
103
  testId: _testId = void 0,
104
104
  variant = "default"
105
105
  }) => {
106
- const { control, getFieldState, getValues } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
106
+ const { control, getFieldState, getValues } = _chunkOL5DXVY4cjs.useFormContext.call(void 0, );
107
107
  const { error, invalid, required, testId } = getFieldState(name, _testId);
108
108
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
109
109
  _reacthookform.Controller,
@@ -202,4 +202,4 @@ var RadioGroup_default2 = RadioGroup_default;
202
202
 
203
203
 
204
204
  exports.RadioGroup_default = RadioGroup_default; exports.RadioGroup_default2 = RadioGroup_default2;
205
- //# sourceMappingURL=chunk-OFKYZAVG.cjs.map
205
+ //# sourceMappingURL=chunk-J23BIH72.cjs.map