@fuf-stack/uniform 0.7.0 → 0.8.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 (72) 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-ZVBX5EKB.cjs → chunk-3ROKDX67.cjs} +6 -6
  20. package/dist/{chunk-ZVBX5EKB.cjs.map → chunk-3ROKDX67.cjs.map} +1 -1
  21. package/dist/{chunk-R7XP72I5.js → chunk-5I5DGCXC.js} +5 -5
  22. package/dist/{chunk-XJ3JTLXZ.cjs → chunk-7HXB2552.cjs} +3 -3
  23. package/dist/{chunk-XJ3JTLXZ.cjs.map → chunk-7HXB2552.cjs.map} +1 -1
  24. package/dist/{chunk-QD6IQL6U.js → chunk-7ZIHJMDO.js} +2 -2
  25. package/dist/{chunk-2BQWUW2F.cjs → chunk-AASC67WZ.cjs} +5 -5
  26. package/dist/{chunk-2BQWUW2F.cjs.map → chunk-AASC67WZ.cjs.map} +1 -1
  27. package/dist/{chunk-BCMPSLSG.js → chunk-BNJP47R7.js} +58 -17
  28. package/dist/chunk-BNJP47R7.js.map +1 -0
  29. package/dist/{chunk-JFCOC5TW.cjs → chunk-C33YNBBZ.cjs} +23 -41
  30. package/dist/chunk-C33YNBBZ.cjs.map +1 -0
  31. package/dist/{chunk-G7FQPNDQ.cjs → chunk-DBJCKVYN.cjs} +5 -5
  32. package/dist/{chunk-G7FQPNDQ.cjs.map → chunk-DBJCKVYN.cjs.map} +1 -1
  33. package/dist/{chunk-VXVDNHDV.cjs → chunk-DS4ALUMK.cjs} +5 -5
  34. package/dist/{chunk-VXVDNHDV.cjs.map → chunk-DS4ALUMK.cjs.map} +1 -1
  35. package/dist/{chunk-OFKYZAVG.cjs → chunk-DVWR5KIG.cjs} +5 -5
  36. package/dist/{chunk-OFKYZAVG.cjs.map → chunk-DVWR5KIG.cjs.map} +1 -1
  37. package/dist/{chunk-MV4JFCOJ.cjs → chunk-EWFS7ZAG.cjs} +5 -5
  38. package/dist/{chunk-MV4JFCOJ.cjs.map → chunk-EWFS7ZAG.cjs.map} +1 -1
  39. package/dist/{chunk-Y5JGQJI7.js → chunk-GYD46GIR.js} +5 -5
  40. package/dist/chunk-J5IMU4UG.cjs +128 -0
  41. package/dist/chunk-J5IMU4UG.cjs.map +1 -0
  42. package/dist/{chunk-UDRSTJBU.js → chunk-PHFPS7PC.js} +5 -5
  43. package/dist/{chunk-EHPYBNHC.js → chunk-QTDKBHZP.js} +5 -5
  44. package/dist/{chunk-Y4CFVCUN.js → chunk-TFDWXKS6.js} +22 -40
  45. package/dist/chunk-TFDWXKS6.js.map +1 -0
  46. package/dist/{chunk-6NDSWWW7.cjs → chunk-UAPCZKBD.cjs} +5 -5
  47. package/dist/{chunk-6NDSWWW7.cjs.map → chunk-UAPCZKBD.cjs.map} +1 -1
  48. package/dist/{chunk-LIKSUWSM.js → chunk-UPMPPGVK.js} +5 -5
  49. package/dist/{chunk-36F7BWKL.js → chunk-XEX4SQAM.js} +5 -5
  50. package/dist/{chunk-KGHLS6DM.js → chunk-ZCHYXHBI.js} +5 -5
  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 +12 -12
  56. package/dist/index.d.cts +0 -1
  57. package/dist/index.d.ts +0 -1
  58. package/dist/index.js +15 -15
  59. package/package.json +7 -7
  60. package/dist/chunk-BCMPSLSG.js.map +0 -1
  61. package/dist/chunk-JFCOC5TW.cjs.map +0 -1
  62. package/dist/chunk-WQRM7G4C.cjs +0 -87
  63. package/dist/chunk-WQRM7G4C.cjs.map +0 -1
  64. package/dist/chunk-Y4CFVCUN.js.map +0 -1
  65. /package/dist/{chunk-R7XP72I5.js.map → chunk-5I5DGCXC.js.map} +0 -0
  66. /package/dist/{chunk-QD6IQL6U.js.map → chunk-7ZIHJMDO.js.map} +0 -0
  67. /package/dist/{chunk-Y5JGQJI7.js.map → chunk-GYD46GIR.js.map} +0 -0
  68. /package/dist/{chunk-UDRSTJBU.js.map → chunk-PHFPS7PC.js.map} +0 -0
  69. /package/dist/{chunk-EHPYBNHC.js.map → chunk-QTDKBHZP.js.map} +0 -0
  70. /package/dist/{chunk-LIKSUWSM.js.map → chunk-UPMPPGVK.js.map} +0 -0
  71. /package/dist/{chunk-36F7BWKL.js.map → chunk-XEX4SQAM.js.map} +0 -0
  72. /package/dist/{chunk-KGHLS6DM.js.map → chunk-ZCHYXHBI.js.map} +0 -0
@@ -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-BNJP47R7.js";
10
10
 
11
11
  // src/Input/Input.tsx
12
12
  import { Controller } from "react-hook-form";
@@ -78,4 +78,4 @@ export {
78
78
  Input_default,
79
79
  Input_default2
80
80
  };
81
- //# sourceMappingURL=chunk-Y5JGQJI7.js.map
81
+ //# sourceMappingURL=chunk-GYD46GIR.js.map
@@ -0,0 +1,128 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
4
+
5
+ // src/hooks/useFormContext/useFormContext.ts
6
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
7
+ var _reacthookform = require('react-hook-form');
8
+
9
+ // src/Form/subcomponents/FormContext.tsx
10
+
11
+
12
+ var _jsxruntime = require('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 = _react2.default.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] = _react.useState.call(void 0, true);
29
+ const contextValue = _react.useMemo.call(void 0,
30
+ () => ({ canSubmit, setCanSubmit, validation }),
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ [canSubmit]
33
+ );
34
+ const methods = _reacthookform.useForm.call(void 0, {
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
+ return;
55
+ }
56
+ await methods.handleSubmit(onSubmit)(e);
57
+ };
58
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UniformContext.Provider, { value: contextValue, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reacthookform.FormProvider, { ...methods, children: children({ handleSubmit }) }) });
59
+ };
60
+ var FormContext_default = FormProvider;
61
+
62
+ // src/hooks/useFormContext/useFormContext.ts
63
+ var recursiveSearchInnerType = (schema) => {
64
+ let currentSchema = schema;
65
+ while (_optionalChain([currentSchema, 'optionalAccess', _ => _._def, 'optionalAccess', _2 => _2.innerType])) {
66
+ currentSchema = currentSchema._def.innerType;
67
+ if (_optionalChain([currentSchema, 'optionalAccess', _3 => _3._def, 'optionalAccess', _4 => _4.typeName]) === "ZodOptional") {
68
+ return false;
69
+ }
70
+ }
71
+ return true;
72
+ };
73
+ var recursiveFieldKeySearch = (schema, path) => {
74
+ const [current, ...rest] = path;
75
+ let currentSchema = schema;
76
+ if (_optionalChain([schema, 'optionalAccess', _5 => _5._def, 'optionalAccess', _6 => _6.typeName]) === "ZodOptional") {
77
+ currentSchema = schema.unwrap();
78
+ }
79
+ if (_optionalChain([schema, 'optionalAccess', _7 => _7._def, 'optionalAccess', _8 => _8.typeName]) === "ZodEffects") {
80
+ return recursiveFieldKeySearch(schema._def.schema, path);
81
+ }
82
+ if (_optionalChain([currentSchema, 'optionalAccess', _9 => _9._def, 'optionalAccess', _10 => _10.typeName]) === "ZodIntersection") {
83
+ return (_optionalChain([currentSchema, 'access', _11 => _11._def, 'access', _12 => _12.left, 'optionalAccess', _13 => _13.schema]) ? recursiveFieldKeySearch(currentSchema._def.left.schema, path) : recursiveFieldKeySearch(currentSchema._def.left, path)) || (_optionalChain([currentSchema, 'access', _14 => _14._def, 'access', _15 => _15.right, 'optionalAccess', _16 => _16.schema]) ? recursiveFieldKeySearch(currentSchema._def.right.schema, path) : recursiveFieldKeySearch(currentSchema._def.right, path));
84
+ }
85
+ const shape = _nullishCoalesce(_optionalChain([currentSchema, 'optionalAccess', _17 => _17.shape]), () => ( _optionalChain([currentSchema, 'optionalAccess', _18 => _18.element, 'optionalAccess', _19 => _19.shape])));
86
+ if (shape && shape[current]) {
87
+ if (rest.length === 0) {
88
+ return _optionalChain([shape, 'access', _20 => _20[current], 'optionalAccess', _21 => _21._def, 'optionalAccess', _22 => _22.typeName]) !== "ZodOptional" && recursiveSearchInnerType(shape[current]);
89
+ }
90
+ return recursiveFieldKeySearch(shape[current], rest);
91
+ }
92
+ return null;
93
+ };
94
+ var useFormContext = () => {
95
+ const {
96
+ formState,
97
+ // https://react-hook-form.com/docs/useform/getfieldstate
98
+ // for getFieldState a subscription to formState properties is needed!
99
+ getFieldState: getFieldStateOrig,
100
+ ...otherMethods
101
+ } = _reacthookform.useFormContext.call(void 0, );
102
+ const uniformContext = _react.useContext.call(void 0, UniformContext);
103
+ const getFieldState = (name, testId) => {
104
+ const fieldPath = typeof name === "string" ? name.replace(/\[\d+\]/g, "").split(".") : name;
105
+ const required = _optionalChain([uniformContext, 'optionalAccess', _23 => _23.validation]) && recursiveFieldKeySearch(uniformContext.validation.schema, fieldPath) || false;
106
+ const { error, ...rest } = getFieldStateOrig(name, formState);
107
+ return {
108
+ ...rest,
109
+ error,
110
+ // Ensure correct type for error
111
+ required,
112
+ testId: _chunkBBB4FEY6cjs.slugify.call(void 0, testId || name)
113
+ };
114
+ };
115
+ return {
116
+ ...otherMethods,
117
+ ...uniformContext,
118
+ getFieldState,
119
+ formState
120
+ };
121
+ };
122
+
123
+
124
+
125
+
126
+
127
+ exports.FormContext_default = FormContext_default; exports.recursiveFieldKeySearch = recursiveFieldKeySearch; exports.useFormContext = useFormContext;
128
+ //# sourceMappingURL=chunk-J5IMU4UG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-J5IMU4UG.cjs","../src/hooks/useFormContext/useFormContext.ts","../src/Form/subcomponents/FormContext.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-J5IMU4UG.cjs","sourcesContent":[null,"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 const handleSubmit = async (e?: React.BaseSyntheticEvent) => {\n if (!canSubmit) {\n console.warn(\n '[FormProvider] form submit was canceled canSubmit is false...',\n );\n return;\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"]}
@@ -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-BNJP47R7.js";
10
10
 
11
11
  // src/TextArea/TextArea.tsx
12
12
  import { Controller } from "react-hook-form";
@@ -73,4 +73,4 @@ export {
73
73
  TextArea_default,
74
74
  TextArea_default2
75
75
  };
76
- //# sourceMappingURL=chunk-UDRSTJBU.js.map
76
+ //# sourceMappingURL=chunk-PHFPS7PC.js.map
@@ -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-BNJP47R7.js";
10
10
 
11
11
  // src/Select/Select.tsx
12
12
  import { Controller } from "react-hook-form";
@@ -236,4 +236,4 @@ export {
236
236
  Select_default,
237
237
  Select_default2
238
238
  };
239
- //# sourceMappingURL=chunk-EHPYBNHC.js.map
239
+ //# sourceMappingURL=chunk-QTDKBHZP.js.map
@@ -1,13 +1,12 @@
1
1
  import {
2
2
  FormContext_default,
3
3
  useFormContext
4
- } from "./chunk-BCMPSLSG.js";
4
+ } from "./chunk-BNJP47R7.js";
5
5
  import {
6
6
  slugify
7
7
  } from "./chunk-V46BHM2U.js";
8
8
 
9
9
  // src/Form/Form.tsx
10
- import { useForm } from "react-hook-form";
11
10
  import { cn as cn2 } from "@fuf-stack/pixel-utils";
12
11
 
13
12
  // src/Form/subcomponents/FormDebugViewer.tsx
@@ -104,13 +103,6 @@ var FormDebugViewer_default = FormDebugViewer;
104
103
 
105
104
  // src/Form/Form.tsx
106
105
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
107
- var removeNullishFields = (obj) => {
108
- return JSON.parse(
109
- JSON.stringify(obj, (_key, value) => {
110
- return value === null ? void 0 : value;
111
- })
112
- );
113
- };
114
106
  var Form = ({
115
107
  children,
116
108
  className = void 0,
@@ -121,38 +113,28 @@ var Form = ({
121
113
  validation = void 0,
122
114
  validationTrigger = "all"
123
115
  }) => {
124
- const methods = useForm(
125
- validation ? {
126
- defaultValues: initialValues,
127
- resolver: async (values) => {
128
- const { data, errors, ...rest } = await validation.validateAsync(
129
- removeNullishFields(values)
130
- );
131
- return { values: data || {}, errors: errors || {}, ...rest };
132
- },
133
- // set rhf mode
134
- // see: https://react-hook-form.com/docs/useform#mode
135
- mode: validationTrigger
136
- } : {
137
- defaultValues: initialValues
116
+ return /* @__PURE__ */ jsx2(
117
+ FormContext_default,
118
+ {
119
+ initialValues,
120
+ onSubmit,
121
+ validation,
122
+ validationTrigger,
123
+ children: ({ handleSubmit }) => /* @__PURE__ */ jsxs2("div", { className: "flex w-full flex-row justify-between gap-6", children: [
124
+ /* @__PURE__ */ jsx2(
125
+ "form",
126
+ {
127
+ className: cn2("flex-grow", className),
128
+ "data-testid": slugify(testId || name || ""),
129
+ name,
130
+ onSubmit: handleSubmit,
131
+ children
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsx2(FormDebugViewer_default, { className: "w-96 flex-shrink" })
135
+ ] })
138
136
  }
139
137
  );
140
- return (
141
- // eslint-disable-next-line react/jsx-props-no-spreading
142
- /* @__PURE__ */ jsx2(FormContext_default, { ...methods, validation, children: /* @__PURE__ */ jsxs2("div", { className: "flex w-full flex-row justify-between gap-6", children: [
143
- /* @__PURE__ */ jsx2(
144
- "form",
145
- {
146
- className: cn2("flex-grow", className),
147
- "data-testid": slugify(testId || name || ""),
148
- name,
149
- onSubmit: methods.handleSubmit(onSubmit),
150
- children
151
- }
152
- ),
153
- /* @__PURE__ */ jsx2(FormDebugViewer_default, { className: "w-96 flex-shrink" })
154
- ] }) })
155
- );
156
138
  };
157
139
  var Form_default = Form;
158
140
 
@@ -163,4 +145,4 @@ export {
163
145
  Form_default,
164
146
  Form_default2
165
147
  };
166
- //# sourceMappingURL=chunk-Y4CFVCUN.js.map
148
+ //# sourceMappingURL=chunk-TFDWXKS6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Form/Form.tsx","../src/Form/subcomponents/FormDebugViewer.tsx","../src/Form/index.ts"],"sourcesContent":["import type { VetoInstance } from '@fuf-stack/veto';\nimport type { ReactNode } from 'react';\nimport type { FieldValues, SubmitHandler } from 'react-hook-form';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { slugify } from '../helpers';\nimport FormProvider from './subcomponents/FormContext';\nimport FormDebugViewer from './subcomponents/FormDebugViewer';\n\nexport interface FormProps {\n /** form children */\n children: ReactNode | ReactNode[];\n /** CSS class name */\n className?: string | string[];\n /** initial form values */\n initialValues?: FieldValues;\n /** name of the form */\n name?: string;\n /** form submit handler */\n onSubmit: SubmitHandler<FieldValues>;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** veto validation schema */\n validation?: VetoInstance;\n /** when the validation should be triggered */\n validationTrigger?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';\n}\n\n/**\n * Form component that has to wrap every uniform\n */\nconst Form = ({\n children,\n className = undefined,\n initialValues = undefined,\n name = undefined,\n onSubmit,\n testId = undefined,\n validation = undefined,\n validationTrigger = 'all',\n}: FormProps) => {\n return (\n <FormProvider\n initialValues={initialValues}\n onSubmit={onSubmit}\n validation={validation}\n validationTrigger={validationTrigger}\n >\n {({ handleSubmit }) => (\n <div className=\"flex w-full flex-row justify-between gap-6\">\n <form\n className={cn('flex-grow', className)}\n data-testid={slugify(testId || name || '')}\n name={name}\n onSubmit={handleSubmit}\n >\n {children}\n </form>\n <FormDebugViewer className=\"w-96 flex-shrink\" />\n </div>\n )}\n </FormProvider>\n );\n};\n\nexport default Form;\n","import type { VetoError } from '@fuf-stack/veto';\n\nimport { useEffect, useState } from 'react';\nimport { FaTimes } from 'react-icons/fa';\nimport { FaBug, FaBullseye } from 'react-icons/fa6';\n\nimport { cn } from '@fuf-stack/pixel-utils';\nimport { Button, Card, Json, useLocalStorage } from '@fuf-stack/pixels';\n\nimport { useFormContext } from '../../hooks';\n\ninterface FormDebugViewerProps {\n /** CSS class name */\n className?: string;\n}\n\nconst LOCALSTORAGE_DEBUG_KEY = 'uniform:form-debug-enabled';\nconst LOCALSTORAGE_COPY_TEST_ID_KEY = 'uniform:form-debug-copy-test-id-enabled';\n\n/** Renders a form debug panel with information about the current form state */\nconst FormDebugViewer = ({ className = undefined }: FormDebugViewerProps) => {\n const {\n watch,\n formState: { dirtyFields, isValid, isSubmitting },\n validation,\n } = useFormContext();\n\n const [debug, setDebug] = useLocalStorage(LOCALSTORAGE_DEBUG_KEY, false);\n const [copyTestId, setCopyTestId] = useLocalStorage(\n LOCALSTORAGE_COPY_TEST_ID_KEY,\n false,\n );\n\n const [validationErrors, setValidationErrors] = useState<\n VetoError['errors'] | null\n >(null);\n\n const formValues = watch();\n\n useEffect(\n () => {\n const updateValidationErrors = async () => {\n if (validation) {\n const validateResult = await validation?.validateAsync(formValues);\n setValidationErrors(validateResult?.errors);\n }\n };\n updateValidationErrors();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(formValues)],\n );\n\n if (!debug) {\n return (\n <Button\n ariaLabel=\"Enable form debug mode\"\n onClick={() => setDebug(!debug)}\n className=\"absolute bottom-2.5 right-2.5 w-5 text-default-400\"\n variant=\"light\"\n icon={<FaBug />}\n />\n );\n }\n\n return (\n <Card\n className={cn(className)}\n header={\n <div className=\"flex w-full flex-row justify-between\">\n <span className=\"text-lg\">Debug Mode</span>\n <Button\n icon={<FaTimes className=\"text-danger\" />}\n onClick={() => setDebug(false)}\n size=\"sm\"\n variant=\"flat\"\n />\n </div>\n }\n >\n <Button\n variant={copyTestId ? 'solid' : 'light'}\n icon={<FaBullseye />}\n className=\"mb-4 ml-auto mr-auto\"\n onClick={() => setCopyTestId(!copyTestId)}\n >\n {copyTestId ? 'Hide CopyButton' : 'Show CopyButton'}\n </Button>\n <Json\n value={{\n values: formValues,\n errors: validationErrors,\n dirtyFields,\n isValid,\n isSubmitting,\n }}\n />\n </Card>\n );\n};\nexport default FormDebugViewer;\n","import Form from './Form';\n\nexport type { FormProps } from './Form';\n\nexport { Form };\n\nexport default Form;\n"],"mappings":"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","names":["cn","jsx","jsxs","cn","Form_default"]}
@@ -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 _chunkJ5IMU4UGcjs = require('./chunk-J5IMU4UG.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 } = _chunkJ5IMU4UGcjs.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-UAPCZKBD.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-UAPCZKBD.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-UAPCZKBD.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
- 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-BNJP47R7.js";
10
10
 
11
11
  // src/Switch/Switch.tsx
12
12
  import { Controller } from "react-hook-form";
@@ -78,4 +78,4 @@ export {
78
78
  Switch_default,
79
79
  Switch_default2
80
80
  };
81
- //# sourceMappingURL=chunk-LIKSUWSM.js.map
81
+ //# sourceMappingURL=chunk-UPMPPGVK.js.map
@@ -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-BNJP47R7.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-XEX4SQAM.js.map
@@ -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-BNJP47R7.js";
10
10
  import {
11
11
  slugify
12
12
  } from "./chunk-V46BHM2U.js";
@@ -93,4 +93,4 @@ export {
93
93
  CheckboxGroup_default,
94
94
  CheckboxGroup_default2
95
95
  };
96
- //# sourceMappingURL=chunk-KGHLS6DM.js.map
96
+ //# sourceMappingURL=chunk-ZCHYXHBI.js.map
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkWQRM7G4Ccjs = require('../chunk-WQRM7G4C.cjs');
4
+ var _chunkJ5IMU4UGcjs = require('../chunk-J5IMU4UG.cjs');
5
5
  require('../chunk-BBB4FEY6.cjs');
6
6
 
7
7
 
8
8
 
9
- exports.recursiveFieldKeySearch = _chunkWQRM7G4Ccjs.recursiveFieldKeySearch; exports.useFormContext = _chunkWQRM7G4Ccjs.useFormContext;
9
+ exports.recursiveFieldKeySearch = _chunkJ5IMU4UGcjs.recursiveFieldKeySearch; exports.useFormContext = _chunkJ5IMU4UGcjs.useFormContext;
10
10
  //# sourceMappingURL=index.cjs.map
@@ -1,11 +1,14 @@
1
- import * as react_hook_form from 'react-hook-form';
2
- import { FieldError } from 'react-hook-form';
3
1
  import * as _fuf_stack_veto from '@fuf-stack/veto';
4
2
  import { VetoSchema } from '@fuf-stack/veto';
5
- import * as _fuf_stack_veto_dist_types_d_2kF2Yz_2 from '@fuf-stack/veto/dist/types.d-2kF2Yz_2';
3
+ import * as react from 'react';
4
+ import * as react_hook_form from 'react-hook-form';
5
+ import { FieldError } from 'react-hook-form';
6
6
 
7
+ /** Recursive search to check whether a field is required or optional */
7
8
  declare const recursiveFieldKeySearch: (schema: VetoSchema, path: string[]) => boolean | null;
8
- /** TODO: add description */
9
+ /**
10
+ * Custom hook that extends react-hook-form's useFormContext to add validation and state management.
11
+ */
9
12
  declare const useFormContext: () => {
10
13
  getFieldState: (name: string, testId?: string) => {
11
14
  error: FieldError[] | undefined;
@@ -16,12 +19,10 @@ declare const useFormContext: () => {
16
19
  isTouched: boolean;
17
20
  isValidating: boolean;
18
21
  };
19
- validation: {
20
- schema: _fuf_stack_veto_dist_types_d_2kF2Yz_2.a;
21
- validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>;
22
- validateAsync: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>>;
23
- } | undefined;
24
22
  formState: react_hook_form.FormState<react_hook_form.FieldValues>;
23
+ canSubmit?: boolean | undefined;
24
+ setCanSubmit?: react.Dispatch<react.SetStateAction<boolean>> | undefined;
25
+ validation?: _fuf_stack_veto.VetoInstance;
25
26
  watch: react_hook_form.UseFormWatch<react_hook_form.FieldValues>;
26
27
  getValues: react_hook_form.UseFormGetValues<react_hook_form.FieldValues>;
27
28
  setError: react_hook_form.UseFormSetError<react_hook_form.FieldValues>;
@@ -1,11 +1,14 @@
1
- import * as react_hook_form from 'react-hook-form';
2
- import { FieldError } from 'react-hook-form';
3
1
  import * as _fuf_stack_veto from '@fuf-stack/veto';
4
2
  import { VetoSchema } from '@fuf-stack/veto';
5
- import * as _fuf_stack_veto_dist_types_d_2kF2Yz_2 from '@fuf-stack/veto/dist/types.d-2kF2Yz_2';
3
+ import * as react from 'react';
4
+ import * as react_hook_form from 'react-hook-form';
5
+ import { FieldError } from 'react-hook-form';
6
6
 
7
+ /** Recursive search to check whether a field is required or optional */
7
8
  declare const recursiveFieldKeySearch: (schema: VetoSchema, path: string[]) => boolean | null;
8
- /** TODO: add description */
9
+ /**
10
+ * Custom hook that extends react-hook-form's useFormContext to add validation and state management.
11
+ */
9
12
  declare const useFormContext: () => {
10
13
  getFieldState: (name: string, testId?: string) => {
11
14
  error: FieldError[] | undefined;
@@ -16,12 +19,10 @@ declare const useFormContext: () => {
16
19
  isTouched: boolean;
17
20
  isValidating: boolean;
18
21
  };
19
- validation: {
20
- schema: _fuf_stack_veto_dist_types_d_2kF2Yz_2.a;
21
- validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>;
22
- validateAsync: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>>;
23
- } | undefined;
24
22
  formState: react_hook_form.FormState<react_hook_form.FieldValues>;
23
+ canSubmit?: boolean | undefined;
24
+ setCanSubmit?: react.Dispatch<react.SetStateAction<boolean>> | undefined;
25
+ validation?: _fuf_stack_veto.VetoInstance;
25
26
  watch: react_hook_form.UseFormWatch<react_hook_form.FieldValues>;
26
27
  getValues: react_hook_form.UseFormGetValues<react_hook_form.FieldValues>;
27
28
  setError: react_hook_form.UseFormSetError<react_hook_form.FieldValues>;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  recursiveFieldKeySearch,
3
3
  useFormContext
4
- } from "../chunk-BCMPSLSG.js";
4
+ } from "../chunk-BNJP47R7.js";
5
5
  import "../chunk-V46BHM2U.js";
6
6
  export {
7
7
  recursiveFieldKeySearch,
package/dist/index.cjs CHANGED
@@ -1,43 +1,43 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2BQWUW2Fcjs = require('./chunk-2BQWUW2F.cjs');
3
+ var _chunk7HXB2552cjs = require('./chunk-7HXB2552.cjs');
4
4
 
5
5
 
6
- var _chunk6NDSWWW7cjs = require('./chunk-6NDSWWW7.cjs');
6
+ var _chunkUAPCZKBDcjs = require('./chunk-UAPCZKBD.cjs');
7
7
 
8
8
 
9
- var _chunkVXVDNHDVcjs = require('./chunk-VXVDNHDV.cjs');
9
+ var _chunkDS4ALUMKcjs = require('./chunk-DS4ALUMK.cjs');
10
10
 
11
11
 
12
- var _chunkMV4JFCOJcjs = require('./chunk-MV4JFCOJ.cjs');
12
+ var _chunkEWFS7ZAGcjs = require('./chunk-EWFS7ZAG.cjs');
13
13
 
14
14
 
15
- var _chunkZVBX5EKBcjs = require('./chunk-ZVBX5EKB.cjs');
15
+ var _chunk3ROKDX67cjs = require('./chunk-3ROKDX67.cjs');
16
16
 
17
17
 
18
- var _chunkJFCOC5TWcjs = require('./chunk-JFCOC5TW.cjs');
18
+ var _chunkC33YNBBZcjs = require('./chunk-C33YNBBZ.cjs');
19
19
 
20
20
 
21
21
  var _chunk6GN255GPcjs = require('./chunk-6GN255GP.cjs');
22
22
 
23
23
 
24
- var _chunkOFKYZAVGcjs = require('./chunk-OFKYZAVG.cjs');
24
+ var _chunkAASC67WZcjs = require('./chunk-AASC67WZ.cjs');
25
25
 
26
26
 
27
- var _chunkG7FQPNDQcjs = require('./chunk-G7FQPNDQ.cjs');
27
+ var _chunkDBJCKVYNcjs = require('./chunk-DBJCKVYN.cjs');
28
28
 
29
29
 
30
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
30
+ var _chunkDVWR5KIGcjs = require('./chunk-DVWR5KIG.cjs');
31
31
 
32
32
 
33
33
  var _chunkKMMS4G7Acjs = require('./chunk-KMMS4G7A.cjs');
34
34
 
35
35
 
36
- var _chunkXJ3JTLXZcjs = require('./chunk-XJ3JTLXZ.cjs');
36
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
37
37
 
38
38
 
39
39
 
40
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
40
+ var _chunkJ5IMU4UGcjs = require('./chunk-J5IMU4UG.cjs');
41
41
 
42
42
 
43
43
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
@@ -57,5 +57,5 @@ var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
57
57
 
58
58
 
59
59
 
60
- exports.CheckboxGroup = _chunkMV4JFCOJcjs.CheckboxGroup_default; exports.FieldArray = _chunkZVBX5EKBcjs.FieldArray_default; exports.FieldCopyTestIdButton = _chunkKMMS4G7Acjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkQTL5FREEcjs.FieldValidationError_default; exports.Form = _chunkJFCOC5TWcjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunk2BQWUW2Fcjs.Input_default; exports.RadioGroup = _chunkOFKYZAVGcjs.RadioGroup_default; exports.Select = _chunkG7FQPNDQcjs.Select_default; exports.SubmitButton = _chunkXJ3JTLXZcjs.SubmitButton_default; exports.Switch = _chunk6NDSWWW7cjs.Switch_default; exports.TextArea = _chunkVXVDNHDVcjs.TextArea_default; exports.recursiveFieldKeySearch = _chunkWQRM7G4Ccjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFormContext = _chunkWQRM7G4Ccjs.useFormContext;
60
+ exports.CheckboxGroup = _chunkEWFS7ZAGcjs.CheckboxGroup_default; exports.FieldArray = _chunk3ROKDX67cjs.FieldArray_default; exports.FieldCopyTestIdButton = _chunkKMMS4G7Acjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkQTL5FREEcjs.FieldValidationError_default; exports.Form = _chunkC33YNBBZcjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunkAASC67WZcjs.Input_default; exports.RadioGroup = _chunkDVWR5KIGcjs.RadioGroup_default; exports.Select = _chunkDBJCKVYNcjs.Select_default; exports.SubmitButton = _chunk7HXB2552cjs.SubmitButton_default; exports.Switch = _chunkUAPCZKBDcjs.Switch_default; exports.TextArea = _chunkDS4ALUMKcjs.TextArea_default; exports.recursiveFieldKeySearch = _chunkJ5IMU4UGcjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFormContext = _chunkJ5IMU4UGcjs.useFormContext;
61
61
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -17,6 +17,5 @@ import 'react-hook-form';
17
17
  import '@fuf-stack/veto';
18
18
  import 'react';
19
19
  import 'slug';
20
- import '@fuf-stack/veto/dist/types.d-2kF2Yz_2';
21
20
  import 'react-select';
22
21
  import '@fuf-stack/pixels';