@m4l/components 9.3.29-JT19112025.beta.6 → 9.3.30-BE211125-beta.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 (104) hide show
  1. package/components/AppBar/styles.js +1 -1
  2. package/components/Card/Card.styles.js +1 -1
  3. package/components/DataGrid/Datagrid.styles.js +39 -111
  4. package/components/DataGrid/dictionary.d.ts +0 -1
  5. package/components/DataGrid/dictionary.js +1 -2
  6. package/components/DataGrid/formatters/ColumnIconFormatter/constants.d.ts +4 -0
  7. package/components/DataGrid/hooks/useModalCardDetail.d.ts +1 -1
  8. package/components/DataGrid/hooks/useModalCardDetail.js +2 -10
  9. package/components/DataGrid/icons.d.ts +0 -1
  10. package/components/DataGrid/icons.js +1 -2
  11. package/components/DataGrid/slots/DataGridEnum.d.ts +1 -4
  12. package/components/DataGrid/slots/DataGridEnum.js +0 -3
  13. package/components/DataGrid/slots/DataGridSlot.d.ts +0 -3
  14. package/components/DataGrid/slots/DataGridSlot.js +33 -48
  15. package/components/DataGrid/subcomponents/Cards/hooks/useCardContent.d.ts +1 -1
  16. package/components/DataGrid/subcomponents/Cards/hooks/useCardContent.js +5 -47
  17. package/components/DataGrid/subcomponents/Cards/index.js +3 -6
  18. package/components/DataGrid/subcomponents/Cards/subcomponents/CardDetails/index.d.ts +1 -1
  19. package/components/DataGrid/subcomponents/Cards/subcomponents/CardDetails/index.js +15 -59
  20. package/components/DataGrid/subcomponents/Cards/subcomponents/CardHeader/index.js +1 -1
  21. package/components/DataGrid/subcomponents/Cards/subcomponents/CardRow/index.d.ts +2 -2
  22. package/components/DataGrid/subcomponents/Cards/subcomponents/CardRow/index.js +1 -5
  23. package/components/DataGrid/subcomponents/Cards/types.d.ts +0 -16
  24. package/components/DataGrid/subcomponents/CheckboxCellAdapter/index.js +1 -1
  25. package/components/DataGrid/subcomponents/ControlNavigate/ControlNavigate.js +1 -1
  26. package/components/DataGrid/subcomponents/HeaderActions/index.js +2 -2
  27. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/RowsCount/index.js +1 -1
  28. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +1 -1
  29. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfigCards/index.js +1 -1
  30. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/ViewMode/index.js +1 -1
  31. package/components/DataGrid/subcomponents/Table/index.js +1 -1
  32. package/components/DataGrid/subcomponents/Table/subcomponents/CheckboxFormatter.js +0 -1
  33. package/components/DataGrid/subcomponents/Table/subcomponents/CustomIcons.js +14 -39
  34. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +1 -1
  35. package/components/DataGrid/subcomponents/Table/subcomponents/HeaderRenderClick/HeaderRenderClick.js +1 -1
  36. package/components/DataGrid/subcomponents/editors/TextEditor/index.js +1 -1
  37. package/components/DataGrid/types.d.ts +0 -12
  38. package/components/DynamicFilter/subcomponents/FieldTypes/BooleanFilter/helpers.d.ts +3 -2
  39. package/components/DynamicFilter/subcomponents/FieldTypes/BooleanFilter/helpers.js +3 -2
  40. package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.d.ts +3 -2
  41. package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.js +3 -2
  42. package/components/DynamicFilter/subcomponents/FieldTypes/FieldTypeInterface.d.ts +3 -4
  43. package/components/DynamicFilter/subcomponents/FieldTypes/NumberFilter/helpers.d.ts +3 -2
  44. package/components/DynamicFilter/subcomponents/FieldTypes/NumberFilter/helpers.js +3 -2
  45. package/components/DynamicFilter/subcomponents/FieldTypes/SelectAsyncFilter/helpers.d.ts +3 -2
  46. package/components/DynamicFilter/subcomponents/FieldTypes/SelectAsyncFilter/helpers.js +3 -2
  47. package/components/DynamicFilter/subcomponents/FieldTypes/SelectFilter/helpers.d.ts +3 -2
  48. package/components/DynamicFilter/subcomponents/FieldTypes/SelectFilter/helpers.js +3 -2
  49. package/components/DynamicFilter/subcomponents/FieldTypes/StringFilter/helpers.d.ts +3 -2
  50. package/components/DynamicFilter/subcomponents/FieldTypes/StringFilter/helpers.js +3 -2
  51. package/components/DynamicFilter/subcomponents/PopoverFilter/PopoverFilter.js +1 -1
  52. package/components/DynamicFilter/subcomponents/PopoverFilter/usePopoverFilter.d.ts +1 -7
  53. package/components/DynamicSort/subcomponents/FieldTypes/FieldTypeInterface.d.ts +2 -3
  54. package/components/DynamicSort/subcomponents/FieldTypes/StringSort/helpers.d.ts +3 -2
  55. package/components/DynamicSort/subcomponents/FieldTypes/StringSort/helpers.js +3 -2
  56. package/components/DynamicSort/subcomponents/PopoverSort/PopoverSort.js +1 -1
  57. package/components/DynamicSort/subcomponents/PopoverSort/usePopoverSort.d.ts +1 -7
  58. package/components/areas/components/AreasAdmin/AreasAdmin.js +1 -1
  59. package/components/areas/components/AreasAdmin/subcomponents/AreaChip/AreaChip.js +4 -3
  60. package/components/areas/components/AreasAdmin/subcomponents/AreaChipMobile/subcomponents/ChipMobile/ChipMobile.js +4 -3
  61. package/components/hook-form/RHFormProvider/RHFormProvider.d.ts +14 -0
  62. package/components/hook-form/RHFormProvider/RHFormProvider.js +98 -0
  63. package/components/hook-form/RHFormProvider/index.d.ts +4 -0
  64. package/components/hook-form/RHFormProvider/index.js +1 -0
  65. package/components/hook-form/RHFormProvider/schema.d.ts +17 -0
  66. package/components/hook-form/RHFormProvider/schema.js +29 -0
  67. package/components/hook-form/RHFormProvider/types.d.ts +133 -0
  68. package/components/hook-form/RHFormProvider/types.js +8 -0
  69. package/components/hook-form/index.d.ts +1 -0
  70. package/contexts/index.d.ts +3 -3
  71. package/helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.d.ts +3 -3
  72. package/helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.js +3 -3
  73. package/helpers/getStepsAndValidationSchema/types.d.ts +5 -4
  74. package/hooks/index.d.ts +2 -1
  75. package/hooks/useFormAddEdit/{index.d.ts → useFormAddEdit.d.ts} +3 -2
  76. package/hooks/useWatchTyped/index.d.ts +1 -0
  77. package/hooks/useWatchTyped/index.js +1 -0
  78. package/hooks/useWatchTyped/types.d.ts +11 -0
  79. package/hooks/useWatchTyped/useTypedWatch.d.ts +9 -0
  80. package/hooks/useWatchTyped/useTypedWatch.js +30 -0
  81. package/index.js +47 -36
  82. package/package.json +1 -1
  83. package/components/DataGrid/formatters/ColumnColorFormatter/tests/ColumnColorFormatter.test.d.ts +0 -1
  84. package/components/DataGrid/formatters/ColumnColorFormatter/tests/useColumnColor.test.d.ts +0 -1
  85. package/components/DataGrid/formatters/ColumnTagsFormatter/tests/ColumnTagsFormatter.test.d.ts +0 -1
  86. package/components/DataGrid/formatters/ColumnTagsFormatter/tests/useColumnTags.test.d.ts +0 -1
  87. package/components/hook-form/RHFormContext/index.d.ts +0 -120
  88. package/components/hook-form/RHFormContext/index.js +0 -91
  89. package/components/hook-form/RHFormContext/types.d.ts +0 -83
  90. package/hooks/useFormReadyForUpdate/types.d.ts +0 -8
  91. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/constants.d.ts +0 -0
  92. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/constants.js +0 -0
  93. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/index.d.ts +0 -0
  94. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/index.js +0 -0
  95. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/types.d.ts +0 -0
  96. /package/components/hook-form/{RHFormContext → RHFormProvider}/dictionary.d.ts +0 -0
  97. /package/components/hook-form/{RHFormContext → RHFormProvider}/dictionary.js +0 -0
  98. /package/components/hook-form/{RHFormContext → RHFormProvider}/styles.d.ts +0 -0
  99. /package/components/hook-form/{RHFormContext → RHFormProvider}/styles.js +0 -0
  100. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/index.d.ts +0 -0
  101. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/skeleton.d.ts +0 -0
  102. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/styles.d.ts +0 -0
  103. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/types.d.ts +0 -0
  104. /package/hooks/useFormAddEdit/{index.js → useFormAddEdit.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  export { DynamicMFParmsProvider, DynamicMFParmsContext, MemonizedDynamicMFParmsProvider, } from '../components/WindowBase/contexts/DynamicMFParmsContext';
2
2
  export * from './ModalContext/index';
3
3
  export * from './ModalContext/types';
4
- export type { FormInitialValues, FormStatusLoad, } from '../components/hook-form/RHFormContext/types';
5
- export { RHFormProvider, FormProviderCustom, useCustomForm, } from '../components/hook-form/RHFormContext';
6
- export { getFormComponentsDictionary } from '../components/hook-form/RHFormContext/dictionary';
4
+ export type { RHFormInitialValues as FormInitialValues, FormStatusLoad, } from '../components/hook-form/RHFormProvider/types';
5
+ export { RHFormProvider, FormProviderCustom, useCustomForm, } from '../components/hook-form/RHFormProvider/RHFormProvider';
6
+ export { getFormComponentsDictionary } from '../components/hook-form/RHFormProvider/dictionary';
7
7
  export { useAppearanceComponentStore, AppearanceComponentProvider, } from './AppearanceComponentContext';
@@ -1,11 +1,11 @@
1
1
  import { Step } from '../../components/Stepper/types';
2
2
  import { GetStepsAndValidationSchemaProps } from './types';
3
- import * as Yup from 'yup';
3
+ import { RHFormValues } from '../../components/hook-form/RHFormProvider/types';
4
4
  /**
5
5
  * Hook personalizado que recibe un array de steps con validaciones y regresa todo listo para el Stepper
6
6
  * Una sola configuración genera: validationSchema + steps + validationFields automáticamente
7
7
  */
8
- export declare function getStepsAndValidationSchema({ steps, visibilityData, }: GetStepsAndValidationSchemaProps): {
9
- validationSchema: Yup.ObjectSchema<import('yup/lib/object').Assign<import('yup/lib/object').ObjectShape, Record<string, any>>, import('yup/lib/object').AnyObject, import('yup/lib/object').TypeOfShape<import('yup/lib/object').Assign<import('yup/lib/object').ObjectShape, Record<string, any>>>, import('yup/lib/object').AssertsShape<import('yup/lib/object').Assign<import('yup/lib/object').ObjectShape, Record<string, any>>>>;
8
+ export declare function getStepsAndValidationSchema<T extends RHFormValues>({ steps, visibilityData, }: GetStepsAndValidationSchemaProps<T>): {
9
+ validationSchema: import('../../components/hook-form/RHFormProvider/types').ValidationSchema<T>;
10
10
  steps: Step[];
11
11
  };
@@ -1,11 +1,11 @@
1
- import * as Yup from "yup";
1
+ import { b as createValidationPartialObject, c as createValidationSchema, a as createValidationFullObject } from "../../components/hook-form/RHFormProvider/schema.js";
2
2
  import { e as evaluateVisibilityStepCondition } from "../../components/Stepper/helpers/evaluateVisibilityStepCondition/index.js";
3
3
  function getStepsAndValidationSchema({
4
4
  steps,
5
5
  visibilityData
6
6
  }) {
7
7
  const validationSchema = (() => {
8
- const combinedValidations = {};
8
+ const combinedValidations = createValidationPartialObject({});
9
9
  const visibleSteps = steps.filter((step) => {
10
10
  if (!step.visibilityCondition) {
11
11
  return true;
@@ -18,7 +18,7 @@ function getStepsAndValidationSchema({
18
18
  Object.assign(combinedValidations, validationResult);
19
19
  }
20
20
  });
21
- return Yup.object().shape(combinedValidations);
21
+ return createValidationSchema(createValidationFullObject(combinedValidations));
22
22
  })();
23
23
  const processedSteps = steps.map((step) => {
24
24
  let validationFields = [];
@@ -1,19 +1,20 @@
1
+ import { RHFormValues, ValidationPartialObject } from '../../components/hook-form/RHFormProvider/types';
1
2
  import { Step } from '../../components/Stepper/types';
2
3
  /**
3
4
  * Configuración completa de un step con validaciones incluidas
4
5
  */
5
- export interface StepWithValidation extends Omit<Step, 'validationFields'> {
6
+ export interface StepWithValidation<T extends RHFormValues> extends Omit<Step, 'validationFields'> {
6
7
  /**
7
8
  * Función de validación que retorna un objeto con esquemas Yup
8
9
  * Ejemplo: ContactDataValidation
9
10
  */
10
- validationFunction?: () => Record<string, any>;
11
+ validationFunction?: () => ValidationPartialObject<T>;
11
12
  }
12
- export interface GetStepsAndValidationSchemaProps {
13
+ export interface GetStepsAndValidationSchemaProps<T extends RHFormValues> {
13
14
  /**
14
15
  * Array de steps con sus validaciones incluidas
15
16
  */
16
- steps: StepWithValidation[];
17
+ steps: StepWithValidation<T>[];
17
18
  /**
18
19
  * Datos adicionales para visibilityCondition (ej: objectId)
19
20
  */
package/hooks/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { useFormAddEdit } from './useFormAddEdit';
1
+ export { useFormAddEdit } from './useFormAddEdit/useFormAddEdit';
2
2
  export { useModal } from './useModal';
3
3
  export { useTab } from './useTab';
4
4
  export { getformAddEditDictionary } from './useFormAddEdit/dictionary';
@@ -13,3 +13,4 @@ export * from './useDataGridPersistence';
13
13
  export * from './usePopoverContainer';
14
14
  export * from './useIsVisible';
15
15
  export * from './useSizeContainer';
16
+ export * from './useWatchTyped';
@@ -1,8 +1,9 @@
1
- import { FormStatusLoad } from '../../components/hook-form/RHFormContext/types';
1
+ import { FormStatusLoad } from '../../components/hook-form/RHFormProvider/types';
2
2
  import { UseFormAddEditProps } from './types';
3
3
  import { FieldValues } from 'react-hook-form';
4
4
  /**
5
- * TODO: Documentar
5
+ * Hook to add or edit a form
6
+ * @deprecated Use useFormAddEdit from @m4l/layouts instead
6
7
  */
7
8
  export declare function useFormAddEdit<TValues extends FieldValues = FieldValues, TEndpointValues extends FieldValues = FieldValues>(props: UseFormAddEditProps<TValues, TEndpointValues>): {
8
9
  formValues: TValues;
@@ -0,0 +1 @@
1
+ export * from './useTypedWatch';
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,11 @@
1
+ import { Control, DeepPartialSkipArrayKey, FieldPath, FieldPathValue, FieldPathValues, FieldValues } from 'react-hook-form';
2
+ export type BaseProps<TFieldValues extends FieldValues> = {
3
+ control: Control<TFieldValues>;
4
+ disabled?: boolean;
5
+ exact?: boolean;
6
+ };
7
+ export type NameArray<TFieldValues extends FieldValues> = readonly FieldPath<TFieldValues>[];
8
+ export type ExtractFieldPath<TFieldValues extends FieldValues, TName> = Extract<TName, FieldPath<TFieldValues>>;
9
+ export type ExtractNameArray<TFieldValues extends FieldValues, TName> = Extract<TName, NameArray<TFieldValues>>;
10
+ export type DefaultValueFor<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> | NameArray<TFieldValues>> = TName extends NameArray<TFieldValues> ? DeepPartialSkipArrayKey<TFieldValues> : FieldPathValue<TFieldValues, ExtractFieldPath<TFieldValues, TName>>;
11
+ export type ReturnValueFor<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> | NameArray<TFieldValues>> = TName extends NameArray<TFieldValues> ? FieldPathValues<TFieldValues, ExtractNameArray<TFieldValues, TName>> : FieldPathValue<TFieldValues, ExtractFieldPath<TFieldValues, TName>>;
@@ -0,0 +1,9 @@
1
+ import { FieldPath, FieldValues } from 'react-hook-form';
2
+ import { BaseProps, DefaultValueFor, NameArray, ReturnValueFor } from './types';
3
+ /**
4
+ * Observa campos específicos (uno o varios) y devuelve su valor tipado.
5
+ */
6
+ export declare function useWatchTyped<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> | NameArray<TFieldValues>>({ control, name, defaultValue, disabled, exact, }: BaseProps<TFieldValues> & {
7
+ name: TName;
8
+ defaultValue?: DefaultValueFor<TFieldValues, TName>;
9
+ }): ReturnValueFor<TFieldValues, TName>;
@@ -0,0 +1,30 @@
1
+ import { useWatch } from "react-hook-form";
2
+ function useWatchTyped({
3
+ control,
4
+ name,
5
+ defaultValue,
6
+ disabled,
7
+ exact
8
+ }) {
9
+ if (Array.isArray(name)) {
10
+ const namesArray = name;
11
+ return useWatch({
12
+ control,
13
+ name: namesArray,
14
+ defaultValue,
15
+ disabled,
16
+ exact
17
+ });
18
+ }
19
+ const fieldName = name;
20
+ return useWatch({
21
+ control,
22
+ name: fieldName,
23
+ defaultValue,
24
+ disabled,
25
+ exact
26
+ });
27
+ }
28
+ export {
29
+ useWatchTyped as u
30
+ };
package/index.js CHANGED
@@ -161,6 +161,9 @@ import { R as R19 } from "./components/hook-form/RHFPeriod/slots/RHFPeriodEnum.j
161
161
  import { N as N3, P as P6, R as R20, S as S7 } from "./components/hook-form/RHFPeriod/slots/RHFPeriodSlots.js";
162
162
  import { R as R21 } from "./components/hook-form/RHFNumberInput/RHFNumberInput.js";
163
163
  import { R as R22 } from "./components/hook-form/RHFUpload/RHFUploadImage/RHFUploadImage.js";
164
+ import { V as V2, b as b4, a as a9 } from "./components/hook-form/RHFormProvider/types.js";
165
+ import { F as F3, R as R23, u as u17 } from "./components/hook-form/RHFormProvider/RHFormProvider.js";
166
+ import { d as d4, a as a10, b as b5, c as c3 } from "./components/hook-form/RHFormProvider/schema.js";
164
167
  import { I as I4 } from "./components/Icon/Icon.js";
165
168
  import { I as I5 } from "./components/Image/Image.js";
166
169
  import { L as L6 } from "./components/Label/Label.js";
@@ -170,7 +173,7 @@ import { L as L9 } from "./components/Loadable/index.js";
170
173
  import { L as L10 } from "./components/LoadingError/LoadingError.js";
171
174
  import { g as g22 } from "./components/LoadingError/dictionary.js";
172
175
  import { g as g23 } from "./components/MenuActions/dictionary.js";
173
- import { a as a9, M as M3 } from "./components/MenuActions/MenuActions.js";
176
+ import { a as a11, M as M3 } from "./components/MenuActions/MenuActions.js";
174
177
  import { M as M4 } from "./components/MFIsolationApp/MFIsolationApp.js";
175
178
  import { M as M5 } from "./components/MFIsolationAppStorybook/MFIsolationAppStorybook.js";
176
179
  import { M as M6 } from "./components/MFLoader/MFLoader.js";
@@ -184,8 +187,8 @@ import { g as g27 } from "./components/ObjectLogs/dictionary.js";
184
187
  import { O } from "./components/ObjectLogs/ObjectLogs.js";
185
188
  import { P as P7 } from "./components/PaperForm/PaperForm.js";
186
189
  import { P as P8 } from "./components/PDFViewer/PDFViewer.js";
187
- import { u as u17 } from "./components/popups/components/PopupsProvider/hooks/usePopupsStore.js";
188
- import { a as a10, P as P9 } from "./components/popups/components/PopupsProvider/contexts/PopupsContext/PopupsContext.js";
190
+ import { u as u18 } from "./components/popups/components/PopupsProvider/hooks/usePopupsStore.js";
191
+ import { a as a12, P as P9 } from "./components/popups/components/PopupsProvider/contexts/PopupsContext/PopupsContext.js";
189
192
  import { P as P10 } from "./components/popups/components/PopupsViewer/PopupsViewer.js";
190
193
  import { P as P11 } from "./components/PrintingSystem/PrintingSystem.js";
191
194
  import { P as P12 } from "./components/PropertyValue/PropertyValue.js";
@@ -194,17 +197,17 @@ import { S as S9 } from "./components/SideBar/SideBar.js";
194
197
  import { T as T18 } from "./components/ToastContainer/ToastContainer.js";
195
198
  import { T as T19 } from "./components/ToastContainer/subcomponents/ToastMessage/ToastMessage.js";
196
199
  import { W as W2 } from "./components/WindowBase/WindowBase.js";
197
- import { u as u18 } from "./components/WindowBase/hooks/useWindowToolsMF/index.js";
198
- import { u as u19, a as a11 } from "./components/WindowBase/hooks/useDynamicMFParameters/index.js";
199
- import { M as M7, W as W3, a as a12 } from "./components/WindowBase/contexts/WindowToolsMFContext/WindowToolsMFContext.js";
200
- import { c as c3 } from "./components/WindowBase/contexts/DynamicMFParmsContext/store.js";
201
- import { D as D10, a as a13, M as M8 } from "./components/WindowBase/contexts/DynamicMFParmsContext/DynamicMFParmsContext.js";
200
+ import { u as u19 } from "./components/WindowBase/hooks/useWindowToolsMF/index.js";
201
+ import { u as u20, a as a13 } from "./components/WindowBase/hooks/useDynamicMFParameters/index.js";
202
+ import { M as M7, W as W3, a as a14 } from "./components/WindowBase/contexts/WindowToolsMFContext/WindowToolsMFContext.js";
203
+ import { c as c4 } from "./components/WindowBase/contexts/DynamicMFParmsContext/store.js";
204
+ import { D as D10, a as a15, M as M8 } from "./components/WindowBase/contexts/DynamicMFParmsContext/DynamicMFParmsContext.js";
202
205
  import { W as W4 } from "./components/WindowConfirm/WindowConfirm.js";
203
- import { a as a14, g as g28 } from "./components/ModalDialog/dictionary.js";
206
+ import { a as a16, g as g28 } from "./components/ModalDialog/dictionary.js";
204
207
  import { M as M9 } from "./components/ModalDialog/ModalDialog.js";
205
208
  import { S as S10 } from "./components/SettingsLayout/SettingsLayout.js";
206
209
  import { P as P13 } from "./components/Pager/Pager.js";
207
- import { u as u20 } from "./components/Stepper/hooks/useStepper/index.js";
210
+ import { u as u21 } from "./components/Stepper/hooks/useStepper/index.js";
208
211
  import { S as S11 } from "./components/Stepper/Stepper.js";
209
212
  import { S as S12 } from "./components/Stepper/subcomponents/StepperContent/index.js";
210
213
  import { S as S13 } from "./components/Stepper/subcomponents/StepperContent/subcomponents/Step/index.js";
@@ -217,12 +220,11 @@ import { S as S19 } from "./components/Stepper/subcomponents/StepperButtons/Step
217
220
  import { S as S20 } from "./components/Stepper/subcomponents/StepperButtons/StepperSubmitButton/index.js";
218
221
  import { e as e2 } from "./components/Stepper/helpers/evaluateVisibilityStepCondition/index.js";
219
222
  import { g as g29 } from "./components/Stepper/dictionary.js";
220
- import { F as F3, R as R23, u as u21 } from "./components/hook-form/RHFormContext/index.js";
221
- import { g as g30 } from "./components/hook-form/RHFormContext/dictionary.js";
223
+ import { g as g30 } from "./components/hook-form/RHFormProvider/dictionary.js";
222
224
  import { u as u22 } from "./contexts/AppearanceComponentContext/useAppearanceComponentStore.js";
223
225
  import { A as A16 } from "./contexts/AppearanceComponentContext/AppearanceComponentContext.js";
224
- import { a as a15, M as M10 } from "./contexts/ModalContext/index.js";
225
- import { u as u23 } from "./hooks/useFormAddEdit/index.js";
226
+ import { a as a17, M as M10 } from "./contexts/ModalContext/index.js";
227
+ import { u as u23 } from "./hooks/useFormAddEdit/useFormAddEdit.js";
226
228
  import { u as u24 } from "./hooks/useModal/index.js";
227
229
  import { u as u25 } from "./hooks/useTab/index.js";
228
230
  import { g as g31 } from "./hooks/useFormAddEdit/dictionary.js";
@@ -238,19 +240,20 @@ import { u as u33 } from "./hooks/useDataGridPersistence/useDataGridPersistence.
238
240
  import { u as u34 } from "./hooks/usePopoverContainer/usePopoverContainer.js";
239
241
  import { u as u35 } from "./hooks/useIsVisible/useIsVisible.js";
240
242
  import { u as u36 } from "./hooks/useSizeContainer/index.js";
241
- import { c as c4 } from "./utils/capitalizeFirstLetter.js";
243
+ import { u as u37 } from "./hooks/useWatchTyped/useTypedWatch.js";
244
+ import { c as c5 } from "./utils/capitalizeFirstLetter.js";
242
245
  import { i as i2 } from "./utils/isValidDate.js";
243
246
  import { g as g32 } from "./utils/getComponentUtilityClass.js";
244
247
  import { g as g33 } from "./utils/getPaletteColor.js";
245
248
  import { g as g34 } from "./utils/getTypographyStyles.js";
246
249
  import { g as g35 } from "./utils/getIconColor.js";
247
- import { a as a16, g as g36 } from "./utils/getSizeStyles/getSizeStyles.js";
250
+ import { a as a18, g as g36 } from "./utils/getSizeStyles/getSizeStyles.js";
248
251
  import { O as O2 } from "./utils/ObjectQueue.js";
249
- import { g as g37, a as a17 } from "./utils/getComponentSlotRoot.js";
252
+ import { g as g37, a as a19 } from "./utils/getComponentSlotRoot.js";
250
253
  import { f as f2 } from "./utils/formatDistanceToNow/formatDistanteToNow.js";
251
254
  import { g as g38 } from "./utils/getValidDate.js";
252
255
  import { g as g39 } from "./utils/getNullGuard.js";
253
- import { c as c5, d as d4 } from "./utils/deepShallow.js";
256
+ import { c as c6, d as d5 } from "./utils/deepShallow.js";
254
257
  import { g as g40 } from "./helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.js";
255
258
  export {
256
259
  A7 as AREAS_DICCTIONARY,
@@ -310,7 +313,7 @@ export {
310
313
  D3 as DragResizeWindowRND,
311
314
  D4 as DynamicFilter,
312
315
  D10 as DynamicMFParmsContext,
313
- a13 as DynamicMFParmsProvider,
316
+ a15 as DynamicMFParmsProvider,
314
317
  D5 as DynamicSort,
315
318
  F as FixedSizeList,
316
319
  F2 as FormContainer,
@@ -339,10 +342,10 @@ export {
339
342
  M5 as MFIsolationAppStorybook,
340
343
  M6 as MFLoader,
341
344
  M8 as MemonizedDynamicMFParmsProvider,
342
- a9 as MemonizedMenuActions,
345
+ a11 as MemonizedMenuActions,
343
346
  M7 as MemonizedWindowToolsMFContext,
344
347
  M3 as MenuActions,
345
- a15 as ModalContext,
348
+ a17 as ModalContext,
346
349
  M9 as ModalDialog,
347
350
  M10 as ModalProvider,
348
351
  M as MotionContainer,
@@ -361,7 +364,7 @@ export {
361
364
  P6 as PeriodRootStyled,
362
365
  P3 as PointsFormatter,
363
366
  P2 as Popover,
364
- a10 as PopupsContext,
367
+ a12 as PopupsContext,
365
368
  P9 as PopupsProvider,
366
369
  P10 as PopupsViewer,
367
370
  P5 as PriceFormatter,
@@ -434,20 +437,27 @@ export {
434
437
  T as TopBar,
435
438
  T8 as Typography,
436
439
  U as UncertaintyFormatter,
440
+ V2 as VALIDATION_OBJECT_BRAND,
441
+ b4 as VALIDATION_PARTIAL_OBJECT_BRAND,
442
+ a9 as VALIDATION_SCHEMA_BRAND,
437
443
  V as VariableSizeList,
438
444
  W as WINDOW_SIZES,
439
445
  W2 as WindowBase,
440
446
  W4 as WindowConfirm,
441
447
  W3 as WindowToolsMFContext,
442
- a12 as WindowToolsMFProvider,
448
+ a14 as WindowToolsMFProvider,
443
449
  c2 as addLayoutItemToBreakPointIfNoExists,
444
450
  e as addLayoutItemToBreakPoints,
445
- c4 as capitalizeFirstLetter,
451
+ c5 as capitalizeFirstLetter,
446
452
  d3 as cloneLayouts,
447
- c5 as createCustomDeepShallow,
448
- c3 as createDynamicMFStore,
453
+ c6 as createCustomDeepShallow,
454
+ c4 as createDynamicMFStore,
455
+ d4 as createEmptyValidationSchema,
449
456
  c as createToaster,
450
- d4 as deepShallow,
457
+ a10 as createValidationFullObject,
458
+ b5 as createValidationPartialObject,
459
+ c3 as createValidationSchema,
460
+ d5 as deepShallow,
451
461
  d as defaultCommonActionsDictionary,
452
462
  d2 as dragResizeWindowRNDClasses,
453
463
  e2 as evaluateVisibilityStepCondition,
@@ -458,7 +468,7 @@ export {
458
468
  g3 as getAreasDictionary,
459
469
  g4 as getCommonActionsDictionary,
460
470
  g37 as getComponentClasses,
461
- a17 as getComponentSlotRoot,
471
+ a19 as getComponentSlotRoot,
462
472
  g32 as getComponentUtilityClass,
463
473
  g5 as getDataGridComponentsDictionary,
464
474
  g6 as getDataGridRowsFromSet,
@@ -472,13 +482,13 @@ export {
472
482
  g14 as getFormatPoints,
473
483
  g16 as getFormatPrice,
474
484
  g18 as getFormattersComponentsDictionary,
475
- a16 as getHeightSizeStyles,
485
+ a18 as getHeightSizeStyles,
476
486
  g35 as getIconColor,
477
487
  g8 as getIsIfInDynamicFilter,
478
488
  g22 as getLoadingErrorComponentsDictionary,
479
489
  g24 as getMFLoaderComponentsDictionary,
480
490
  g23 as getMenuActionsComponentsDictionary,
481
- a14 as getModalDialogComponentsDictionary,
491
+ a16 as getModalDialogComponentsDictionary,
482
492
  g28 as getModalDictionary,
483
493
  g26 as getNoItemPrivilegesComponentsDictionary,
484
494
  g25 as getNoItemSelectedComponentsDictionary,
@@ -520,12 +530,12 @@ export {
520
530
  u13 as useColumnTags,
521
531
  u11 as useColumnUncertanity,
522
532
  u28 as useComponentSize,
523
- u21 as useCustomForm,
533
+ u17 as useCustomForm,
524
534
  u33 as useDataGridPersistence,
525
535
  u16 as useDistanceToNowFormatter,
526
536
  u32 as useDynamicFilterAndSort,
527
- u19 as useDynamicMFParameters,
528
- a11 as useDynamicMFParametersStore,
537
+ u20 as useDynamicMFParameters,
538
+ a13 as useDynamicMFParametersStore,
529
539
  u23 as useFormAddEdit,
530
540
  u26 as useFormFocus,
531
541
  u29 as useFormReadyForUpdate,
@@ -534,13 +544,14 @@ export {
534
544
  u35 as useIsVisible,
535
545
  u24 as useModal,
536
546
  u34 as usePopoverContainer,
537
- u17 as usePopupsStore,
547
+ u18 as usePopupsStore,
538
548
  u36 as useSizeContainer,
539
549
  u30 as useStateRef,
540
- u20 as useStepper,
550
+ u21 as useStepper,
541
551
  u31 as useSvgColor,
542
552
  u25 as useTab,
543
- u18 as useWindowToolsMF,
553
+ u37 as useWatchTyped,
554
+ u19 as useWindowToolsMF,
544
555
  v2 as varBounce,
545
556
  v3 as varContainer,
546
557
  v as varFade,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m4l/components",
3
- "version": "9.3.29-JT19112025.beta.6",
3
+ "version": "9.3.30-BE211125-beta.1",
4
4
  "license": "UNLICENSED",
5
5
  "description": "M4L Components",
6
6
  "lint-staged": {
@@ -1,120 +0,0 @@
1
- import { FieldValues } from 'react-hook-form';
2
- import { CustomFormArguments, FormProviderProps, RHFormProviderRef } from './types';
3
- /**
4
- * Hook personalizado que configura y gestiona un formulario usando React Hook Form con validación Yup.
5
- *
6
- * Este hook encapsula la lógica de inicialización del formulario, incluyendo la configuración del resolver de Yup,
7
- * valores por defecto, y la gestión de estados de carga para actualizar valores del formulario.
8
- * @param validationSchema - Esquema de validación de Yup que define las reglas de validación del formulario
9
- * @param values - Valores iniciales del formulario
10
- * @param statusLoad - Estado de carga que determina cuándo actualizar los valores del formulario
11
- * @param mode - Modo de validación del formulario (ej: 'onChange', 'onBlur', 'onSubmit')
12
- * @returns Objeto con todos los métodos y propiedades de React Hook Form
13
- * @example
14
- * ```tsx
15
- * const formMethods = useCustomForm({
16
- * validationSchema: myValidationSchema,
17
- * values: { name: '', email: '' },
18
- * statusLoad: 'ready',
19
- * mode: 'onChange'
20
- * });
21
- * ```
22
- */
23
- export declare function useCustomForm({ validationSchema, values, statusLoad, mode, }: CustomFormArguments): import('react-hook-form').UseFormReturn<FieldValues, any, FieldValues>;
24
- /**
25
- * Componente que proporciona el contexto de React Hook Form con funcionalidades adicionales.
26
- *
27
- * Este componente envuelve el `FormProvider` de React Hook Form y expone métodos del formulario
28
- * a través de una ref usando `useImperativeHandle`. Permite acceso programático a métodos
29
- * como submit, reset, setValue, etc.
30
- * @param props - Propiedades del componente que incluyen los métodos de React Hook Form
31
- * @param ref - Referencia que expone los métodos del formulario
32
- * @returns JSX del FormProvider con el formulario envuelto
33
- * @example
34
- * ```tsx
35
- * const formRef = useRef<RHFormProviderRef>(null);
36
- *
37
- * const handleReset = () => {
38
- * formRef.current?.reset();
39
- * };
40
- *
41
- * return (
42
- * <FormProviderCustom
43
- * ref={formRef}
44
- * onSubmit={handleSubmit}
45
- * {...formMethods}
46
- * >
47
- * <input {...register('name')} />
48
- * </FormProviderCustom>
49
- * );
50
- * ```
51
- */
52
- export declare const FormProviderCustom: import('react').ForwardRefExoticComponent<{
53
- children: React.ReactNode | React.ReactNode[];
54
- } & import('react-hook-form').UseFormReturn<FieldValues, any, FieldValues> & FormProviderProps & import('react').RefAttributes<RHFormProviderRef>>;
55
- /**
56
- * Componente principal que gestiona el `Provider` de `react-hook-form` y encapsula el formulario para la creación de formularios personalizados.
57
- *
58
- * Este componente utiliza internamente `useForm` para inicializar todos los métodos necesarios para la manipulación del formulario,
59
- * incluyendo validación con Yup, gestión de estados de carga, y exposición de métodos a través de refs.
60
- *
61
- * **Características principales:**
62
- * - Integración completa con React Hook Form
63
- * - Validación automática usando esquemas de Yup
64
- * - Gestión de estados de carga para actualización de valores
65
- * - Exposición de métodos del formulario a través de refs
66
- * - Soporte para diferentes modos de validación
67
- *
68
- * Si necesitas acceso directo a los métodos de `useForm`, puedes utilizar el `Provider` y el hook por separado mediante
69
- * `FormProviderCustom` y `useCustomForm`, respectivamente.
70
- * @param props - Propiedades del componente
71
- * @param props.children - Elementos hijos del formulario
72
- * @param props.onSubmit - Función que se ejecuta al enviar el formulario
73
- * @param props.values - Valores iniciales del formulario
74
- * @param props.validationSchema - Esquema de validación de Yup
75
- * @param props.statusLoad - Estado de carga del formulario (opcional, por defecto 'ready')
76
- * @param props.className - Clases CSS adicionales (opcional)
77
- * @param props.mode - Modo de validación del formulario (opcional)
78
- * @param ref - Referencia que expone los métodos del formulario
79
- * @returns JSX del formulario con contexto de React Hook Form
80
- * @example
81
- * ```tsx
82
- * import { useRef } from 'react';
83
- * import { RHFormProvider, RHFormProviderRef } from './RHFormContext';
84
- * import * as yup from 'yup';
85
- *
86
- * const schema = yup.object({
87
- * name: yup.string().required('El nombre es requerido'),
88
- * email: yup.string().email('Email inválido').required('El email es requerido')
89
- * });
90
- *
91
- * const MyForm = () => {
92
- * const formRef = useRef<RHFormProviderRef>(null);
93
- *
94
- * const handleSubmit = (data: any) => {
95
- * console.log('Datos del formulario:', data);
96
- * };
97
- *
98
- * const handleReset = () => {
99
- * formRef.current?.reset();
100
- * };
101
- *
102
- * return (
103
- * <RHFormProvider
104
- * ref={formRef}
105
- * onSubmit={handleSubmit}
106
- * values={{ name: '', email: '' }}
107
- * validationSchema={schema}
108
- * statusLoad="ready"
109
- * mode="onChange"
110
- * >
111
- * <input {...register('name')} placeholder="Nombre" />
112
- * <input {...register('email')} placeholder="Email" />
113
- * <button type="submit">Enviar</button>
114
- * <button type="button" onClick={handleReset}>Resetear</button>
115
- * </RHFormProvider>
116
- * );
117
- * };
118
- * ```
119
- */
120
- export declare const RHFormProvider: import('react').ForwardRefExoticComponent<FormProviderProps & import('react').RefAttributes<RHFormProviderRef>>;
@@ -1,91 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { forwardRef, useImperativeHandle, useEffect } from "react";
3
- import clsx from "clsx";
4
- import { FormProvider, useForm } from "react-hook-form";
5
- import { yupResolver } from "@hookform/resolvers/yup";
6
- import { F as FormProviderRoot } from "./styles.js";
7
- import { R as RHFormProviderUtilityClasses } from "./classes/index.js";
8
- const classes = RHFormProviderUtilityClasses();
9
- function useCustomForm({
10
- validationSchema,
11
- values,
12
- statusLoad,
13
- mode
14
- }) {
15
- const formMethods = useForm({
16
- resolver: yupResolver(validationSchema),
17
- defaultValues: values,
18
- ...mode && { mode }
19
- });
20
- useEffect(() => {
21
- if (statusLoad === "reload_values_provider") {
22
- const keys = Object.keys(values);
23
- keys.forEach((key) => {
24
- formMethods.setValue(key, values[key], {
25
- shouldValidate: false,
26
- shouldDirty: false,
27
- shouldTouch: false
28
- });
29
- });
30
- formMethods.clearErrors();
31
- return;
32
- }
33
- }, [formMethods, statusLoad, values]);
34
- useEffect(() => {
35
- if (statusLoad === "ready") {
36
- formMethods.setValue("statusLoad", "ready", {
37
- shouldValidate: false,
38
- shouldDirty: false,
39
- shouldTouch: false
40
- });
41
- }
42
- }, [statusLoad]);
43
- return formMethods;
44
- }
45
- const FormProviderCustom = forwardRef((props, ref) => {
46
- const { children, onSubmit, className, handleSubmit, ...formMethods } = props;
47
- useImperativeHandle(ref, () => ({
48
- formMethods: { ...formMethods, handleSubmit },
49
- submit: () => handleSubmit(onSubmit)(),
50
- reset: formMethods.reset,
51
- clearErrors: formMethods.clearErrors,
52
- setValue: formMethods.setValue,
53
- getValues: formMethods.getValues,
54
- trigger: formMethods.trigger,
55
- watch: formMethods.watch,
56
- setError: formMethods.setError,
57
- unregister: formMethods.unregister
58
- }), [formMethods, handleSubmit, onSubmit]);
59
- return /* @__PURE__ */ jsx(FormProvider, { ...props, children: /* @__PURE__ */ jsx(
60
- FormProviderRoot,
61
- {
62
- className: clsx(classes.root, className),
63
- onSubmit: handleSubmit(onSubmit),
64
- children
65
- }
66
- ) });
67
- });
68
- FormProviderCustom.displayName = "FormProviderCustom";
69
- const RHFormProvider = forwardRef((props, ref) => {
70
- const { children, onSubmit, values, validationSchema, statusLoad = "ready", className, mode } = props;
71
- const formMethods = useCustomForm({ validationSchema, statusLoad, values, mode });
72
- return /* @__PURE__ */ jsx(
73
- FormProviderCustom,
74
- {
75
- ref,
76
- className,
77
- values,
78
- validationSchema,
79
- statusLoad,
80
- onSubmit,
81
- ...formMethods,
82
- children
83
- }
84
- );
85
- });
86
- RHFormProvider.displayName = "RHFormProvider";
87
- export {
88
- FormProviderCustom as F,
89
- RHFormProvider as R,
90
- useCustomForm as u
91
- };