@chris-c-brine/form-dialog 1.0.6 → 1.1.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.
@@ -1,5 +1,2 @@
1
- type UseMaxAttemptProps = {
2
- maxAttempts?: number;
3
- };
1
+ import { UseMaxAttemptProps } from "../types";
4
2
  export declare const useMaxAttempts: ({ maxAttempts }: UseMaxAttemptProps) => void;
5
- export {};
@@ -0,0 +1,18 @@
1
+ import { FieldValues } from "react-hook-form-mui";
2
+ import { PersistedFormProviderProps } from "../types";
3
+ /**
4
+ * Hook that enables form state persistence across sessions
5
+ *
6
+ * This hook connects a form to persistent storage (e.g., sessionStorage)
7
+ * allowing form values to be preserved when navigating away and returning.
8
+ * It works by watching form changes and syncing with a zustand store.
9
+ *
10
+ * Key features:
11
+ * - Persists form values during navigation or page reloads
12
+ * - Automatically restores saved values when form is rendered
13
+ * - Debounced updates to avoid excessive storage operations
14
+ * - Only saves changed fields, not the entire form state
15
+ * - Automatically clears storage when form values match defaults
16
+ *
17
+ */
18
+ export declare const usePersistForm: <T extends FieldValues>({ formName, formContext }: PersistedFormProviderProps<T>) => void;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./components";
2
- export { usePersistedForm, useFormDialog, useDialog } from "./hooks";
2
+ export { usePersistForm, useFormDialog, useDialog } from "./hooks";
3
3
  export { FormDialogProvider } from "./state/FormDialogProvider";
4
+ export * from "./types";
package/dist/index.esm.js CHANGED
@@ -1,20 +1,34 @@
1
1
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
- import { createContext, useState, useEffect, useCallback, useContext, Fragment, useRef, memo, Children } from 'react';
2
+ import { createContext, useContext, Fragment, useState, useEffect, useRef, useCallback, memo, useMemo, Children } from 'react';
3
3
  import { Dialog, DialogTitle, DialogContent, DialogActions, Paper, IconButton, Button, useTheme as useTheme$1, Box, CircularProgress, Badge, Grid } from '@mui/material';
4
- import { FormContainer, useFormContext, useFormState } from 'react-hook-form-mui';
4
+ import { useFormContext, FormContainer, useFormState } from 'react-hook-form-mui';
5
+ import { isEqualWith, isObject, isNumber, isEqual, isEmpty, omit, merge, debounce } from 'lodash';
6
+ import { Refresh, Close, Save } from '@mui/icons-material';
5
7
  import { useTheme } from '@mui/material/styles';
6
- import { merge, isEqualWith, isObject, isNumber, isEqual, isEmpty, omit, debounce } from 'lodash';
7
- import { Close, Refresh, Save } from '@mui/icons-material';
8
8
  import { create } from 'zustand';
9
9
  import { createJSONStorage, persist } from 'zustand/middleware';
10
- import { useFormContext as useFormContext$1 } from 'react-hook-form';
11
10
 
12
11
  /**
13
12
  * A component for rendering a modal dialog with an optional blackout effect.
14
13
  */
15
14
  const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, ...props }) => {
16
15
  const sxProps = blackout ? { ...sx, backgroundColor: "black" } : sx;
17
- return (jsx(Dialog, { open: open, id: id, ...props, sx: sxProps, children: children }));
16
+ /**
17
+ * 1) When you open a dialog via a button, the button's ancestor gets aria-hidden, presumably so that
18
+ * screen readers (SR) can't interact with it while the dialog is open.
19
+ * 2) When you close the dialog, the aria-hidden is removed so that SRs can interact with the button again.
20
+ * 3) Also, when closing, the focus is moved back on the opener button.
21
+ *
22
+ * Now comes the important part. You get Blocked aria-hidden on a <div> only when 3 happens before 2. In this case,
23
+ * as the error message explains, we are trying to place focus somewhere where SRs don't have access, which is
24
+ * a No No, and browsers correctly warn about it.
25
+ *
26
+ * This ordering is dependent on the closeAfterTransition prop on the MUI Dialog. When false and user triggers
27
+ * dialog close, aria-hidden is removed (2) and then focus is placed on the opener button (3). Meaning there is no
28
+ * issue. You can see it in action here. However, when it's true (the default), the order is the other way around,
29
+ * and you get the warning.
30
+ */
31
+ return (jsx(Dialog, { closeAfterTransition: false, open: open, id: id, sx: sxProps, ...props, children: children }));
18
32
  };
19
33
 
20
34
  /**
@@ -48,167 +62,17 @@ const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog"
48
62
  * <SettingsForm />
49
63
  * </BaseDialog>
50
64
  */
51
- const BaseDialog = ({ title = null, closeButton, titleProps, children = null, contentProps, id, actions = null, actionsProps, sx, ...props }) => (jsxs(BlackoutDialog, { id: id, sx: {
52
- "& .MuiDialog-container": {
53
- "& .MuiPaper-root": {
54
- minWidth: "max-content",
55
- mb: 2,
56
- },
57
- },
58
- ...sx,
59
- }, ...props, children: [title && jsx(DialogTitle, { ...titleProps, children: title }), " ", closeButton, children && jsx(DialogContent, { ...contentProps, children: children }), actions && jsx(DialogActions, { ...actionsProps, children: actions })] }));
60
-
61
- /**
62
- * A component that combines a Material UI Paper with a form container
63
- *
64
- * PaperForm wraps form content in an elevated paper surface, providing
65
- * visual distinction and a clean container for form elements. It integrates
66
- * seamlessly with react-hook-form by using FormContainer internally.
67
- *
68
- * This component is useful for creating standalone form surfaces outside of dialogs,
69
- * such as on pages or within cards. It supports all Paper props for styling
70
- * while handling form state management through FormContainer.
71
- *
72
- * @example
73
- * // Basic usage
74
- * <PaperForm
75
- * formProps={{
76
- * defaultValues: { name: "", email: "" },
77
- * onSuccess: handleSubmit
78
- * }}
79
- * elevation={3}
80
- * >
81
- * <TextFieldElement name="name" label="Name" />
82
- * <TextFieldElement name="email" label="Email" />
83
- * <Button type="submit">Submit</Button>
84
- * </PaperForm>
85
- *
86
- * @example
87
- * // With custom styling and validation
88
- * <PaperForm
89
- * formProps={{
90
- * defaultValues: formDefaultValues,
91
- * onSuccess: handleSubmit,
92
- * onError: handleError,
93
- * }}
94
- * sx={{
95
- * padding: 3,
96
- * borderRadius: 2,
97
- * backgroundColor: 'background.paper',
98
- * }}
99
- * elevation={2}
100
- * >
101
- * <FormFields />
102
- * <FormDialogActions submitProps={{ children: "Save Profile" }} />
103
- * </PaperForm>
104
- *
105
- * @template T - The type of form values being handled
106
- */
107
- const PaperForm = ({ children, formProps, ...paperProps }) => (jsx(Paper, { ...paperProps, children: jsx(FormContainer, { ...formProps, children: children }) }));
65
+ const BaseDialog = ({ title = null, closeButton, titleProps, children = null, contentProps, id, actions = null, actionsProps, ...props }) => (jsxs(BlackoutDialog, { id: id, ...props, children: [title && jsx(DialogTitle, { ...titleProps, children: title }), " ", closeButton, children && jsx(DialogContent, { ...contentProps, children: children }), actions && jsx(DialogActions, { ...actionsProps, children: actions })] }));
108
66
 
109
67
  const FormDialogContext = createContext(undefined);
110
68
  FormDialogContext.displayName = "FormDialogContext";
111
69
 
112
- // Create a context that will hold the parent theme
113
- const ParentThemeContext = createContext(null);
114
- const ThemeBridge = ({ children }) => {
115
- const parentTheme = useTheme();
116
- const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
117
- // Update the snapshot when the parent theme changes
118
- useEffect(() => {
119
- setThemeSnapshot(parentTheme);
120
- }, [parentTheme]);
121
- // Pass the parent theme to our components
122
- return (jsx(ParentThemeContext.Provider, { value: themeSnapshot, children: children }));
123
- };
124
-
125
- /**
126
- * Context provider component for form dialog state management
127
- *
128
- * FormDialogProvider creates and manages shared state for form dialogs,
129
- * allowing child components to access dialog state and controls through
130
- * the useFormDialog hook.
131
- *
132
- * This provider handles:
133
- * - Dialog open/close state
134
- * - Form-wide disabled state
135
- * - Dialog close handler passing
136
- * - Theme consistency via ThemeBridge
137
- *
138
- * Use this provider to wrap form components that need to share state
139
- * and disabled status, such as dialogs with multiple form fields
140
- * and action buttons that need to be coordinated.
141
- *
142
- * @example
143
- * // Basic usage wrapping a form
144
- * <FormDialogProvider>
145
- * <FormContainer onSuccess={handleSubmit}>
146
- * <TextFieldElement name="name" />
147
- * <FormDialogActions />
148
- * </FormContainer>
149
- * </FormDialogProvider>
150
- *
151
- * @example
152
- * // With pre-configured dialog state
153
- * <FormDialogProvider open={isOpen} closeDialog={handleClose}>
154
- * <PaperForm formProps={formProps}>
155
- * <LoginFormFields />
156
- * <FormDialogActions submitProps={{ maxAttempts: 3 }} />
157
- * </PaperForm>
158
- * </FormDialogProvider>
159
- */
160
- const FormDialogProvider = ({ children, ...value }) => {
161
- const [disabled, setDisabled] = useState(false);
162
- return (jsx(ThemeBridge, { children: jsx(FormDialogContext.Provider, { value: { ...value, disabled, setDisabled }, children: children }) }));
163
- };
164
-
165
- /**
166
- * A dialog component specialized for forms with integrated context providers
167
- *
168
- * FormDialog combines Material UI dialog functionality with React Hook Form,
169
- * creating a comprehensive solution for modal forms. It provides context
170
- * providers for form state management, dialog controls, and accessibility.
171
- *
172
- * Key features:
173
- * - Integrates React Hook Form with Material UI dialogs
174
- * - Provides form state management through FormProvider
175
- * - Establishes dialog context through FormDialogProvider
176
- * - Handles form submission and error states
177
- * - Supports loading states for form operations
178
- * - Maintains consistent styling and behavior
179
- *
180
- * Child components can access the form and dialog context through hooks:
181
- * - useFormContext() - Access form methods and state
182
- * - useFormState() - Access form validation state
183
- * - useFormDialog() - Access dialog controls and state
184
- *
185
- */
186
- const FormDialog = ({ formProps, children, open, onClose, ...dialogProps }) => {
187
- const PaperComponent = useCallback((props) => jsx(PaperForm, { formProps: formProps, ...props }), [formProps]);
188
- const FormDialogContent = useCallback(() => (jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
189
- position: "absolute",
190
- top: 8,
191
- right: 8,
192
- }, onClick: (e) => onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown'), children: jsx(Close, { fontSize: "small", "aria-label": "close-form-dialog" }) }), disableRestoreFocus: true, disableEnforceFocus: false, disableAutoFocus: false, ...merge({
193
- actionsProps: { sx: { pt: 2.5 } },
194
- contentProps: {
195
- sx: {
196
- display: "flex",
197
- justifyContent: "center",
198
- boxSizing: "border-box",
199
- maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
200
- },
201
- },
202
- }, dialogProps), children: children })), [open, onClose, dialogProps, children, PaperComponent]);
203
- return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(FormDialogContent, {}) }));
204
- };
205
-
206
70
  // src/components/dialogs/FormDialog/hooks/useFormDialog.ts
207
71
  /**
208
72
  * Hook for accessing the FormDialog context values and functions
209
73
  *
210
74
  * This hook provides access to the form dialog state and controls managed by
211
- * the FormDialogProvider. It allows components to interact with dialog state,
75
+ * the FormDialogProvider. It allows components to interact with the dialog state,
212
76
  * including open/close status and form-wide disabled state.
213
77
  *
214
78
  * The context provides:
@@ -324,6 +188,19 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
324
188
  return { resetButtonProps, gridContainerProps, cancelButtonProps, submitButtonProps };
325
189
  }
326
190
 
191
+ // Create a context that will hold the parent theme
192
+ const ParentThemeContext = createContext(null);
193
+ const ThemeBridge = ({ children }) => {
194
+ const parentTheme = useTheme();
195
+ const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
196
+ // Update the snapshot when the parent theme changes
197
+ useEffect(() => {
198
+ setThemeSnapshot(parentTheme);
199
+ }, [parentTheme]);
200
+ // Pass the parent theme to our components
201
+ return (jsx(ParentThemeContext.Provider, { value: themeSnapshot, children: children }));
202
+ };
203
+
327
204
  const useMaxAttempts = ({ maxAttempts }) => {
328
205
  const { formState, resetField } = useFormContext();
329
206
  const { setDisabled, disabled } = useFormDialog();
@@ -418,36 +295,18 @@ function useOnMount(callback) {
418
295
  * - Only saves changed fields, not the entire form state
419
296
  * - Automatically clears storage when form values match defaults
420
297
  *
421
- * @example
422
- * // In a form component:
423
- * const MyPersistedForm = () => {
424
- * const formMethods = useForm({ defaultValues: { name: '' } });
425
- * // Connect the form to persistence
426
- * usePersistedForm({ formName: 'user-registration' });
427
- *
428
- * return (<FormProvider {...formMethods}>
429
- * <TextFieldElement name="name" label="Name" />
430
- * </FormProvider>);
431
- * }
432
- *
433
- * @example
434
- * // For convenience, use with the PersistForm wrapper component:
435
- * <PersistForm formName="user-profile">
436
- * <ProfileFormFields />
437
- * </PersistForm>
438
- *
439
- * @param props - Configuration options
440
298
  */
441
- const usePersistedForm = ({ formName = "" }) => {
442
- const { setValue, watch, formState } = useFormContext();
299
+ const usePersistForm = ({ formName = "", formContext }) => {
300
+ // const { setValue, watch, formState } = formContext;
443
301
  const { formData, updateFormData, resetFormData } = createFormChangeStore(formName)();
444
- const { open, disabled } = useFormDialog();
302
+ const { disabled } = useFormDialog();
445
303
  const debouncedUpdate = debounce((key, values) => {
446
304
  updateFormData(key, values);
447
305
  }, 200);
448
306
  useEffect(() => {
449
- if (!formName)
307
+ if (!formName || !formContext)
450
308
  return;
309
+ const { watch, formState } = formContext;
451
310
  const subscription = watch((newValues, { name }) => {
452
311
  if (deepCompare(newValues, formState.defaultValues, true)) {
453
312
  resetFormData();
@@ -466,19 +325,18 @@ const usePersistedForm = ({ formName = "" }) => {
466
325
  debouncedUpdate.cancel();
467
326
  };
468
327
  // eslint-disable-next-line react-hooks/exhaustive-deps
469
- }, [watch, debouncedUpdate]);
328
+ }, [formContext, debouncedUpdate]);
470
329
  useOnMount(() => {
471
- if (!isEmpty(formData) && !disabled && !formState.isLoading && open && formName) {
330
+ if (!isEmpty(formData) && !disabled && !(formContext === null || formContext === void 0 ? void 0 : formContext.formState.isLoading) && formName) {
472
331
  setTimeout(() => {
473
332
  Object.entries(formData).forEach(([key, value]) => {
474
- setValue(key, value, { shouldDirty: true, shouldTouch: true });
333
+ formContext === null || formContext === void 0 ? void 0 : formContext.setValue(key, value, { shouldDirty: true, shouldTouch: true });
475
334
  });
476
335
  }, 200);
477
336
  }
478
337
  });
479
338
  };
480
339
 
481
- // src/hooks/useDialog.ts
482
340
  /**
483
341
  * Hook for managing dialog state and providing dialog control functions
484
342
  *
@@ -486,6 +344,8 @@ const usePersistedForm = ({ formName = "" }) => {
486
344
  * functions to open and close the dialog, along with props that can be
487
345
  * spread onto a Material-UI Dialog component.
488
346
  *
347
+ * Restores focus to the opening element, but only after the dialog has fully closed.
348
+ *
489
349
  * @example
490
350
  * // Basic usage
491
351
  * const { openDialog, closeDialog, dialogProps } = useDialog();
@@ -498,38 +358,16 @@ const usePersistedForm = ({ formName = "" }) => {
498
358
  * // With initial configuration
499
359
  * const { dialogProps } = useDialog({ keepMounted: true});
500
360
  *
501
- *
502
361
  * @param props - Optional configuration options
503
362
  */
504
363
  const useDialog = (props) => {
505
364
  const [open, setOpen] = useState(!!(props === null || props === void 0 ? void 0 : props.open));
506
- const previousFocus = useRef(null);
507
- const onClose = useCallback(() => {
508
- setOpen(false);
509
- // Restore focus after a small delay to ensure the dialog has fully closed
510
- setTimeout(() => {
511
- if (previousFocus.current) {
512
- previousFocus.current.focus();
513
- }
514
- }, 100);
515
- }, []);
516
- const openDialog = useCallback(() => {
517
- // Store the current active element before opening dialog
518
- previousFocus.current = document.activeElement;
519
- setOpen(true);
520
- }, []);
365
+ const closeDialog = useCallback(() => setOpen(false), []);
366
+ const openDialog = useCallback(() => setOpen(true), []);
521
367
  return {
522
- closeDialog: onClose,
368
+ closeDialog,
523
369
  openDialog,
524
- dialogProps: {
525
- open,
526
- onClose,
527
- // Add to ensure that the dialog properly handles focus
528
- disableRestoreFocus: true,
529
- disableEnforceFocus: false,
530
- disableAutoFocus: false,
531
- ...props === null || props === void 0 ? void 0 : props.dialogProps
532
- }
370
+ dialogProps: { open, onClose: closeDialog, keepMounted: !!(props === null || props === void 0 ? void 0 : props.keepMounted) }
533
371
  };
534
372
  };
535
373
 
@@ -574,10 +412,142 @@ const useDialog = (props) => {
574
412
  * </PersistForm>
575
413
  * </FormDialog>
576
414
  */
577
- const PersistForm = ({ children, formName }) => {
578
- usePersistedForm({ formName });
415
+ const PersistForm = memo(function ({ children, formName }) {
416
+ const formContext = useFormContext();
417
+ usePersistForm({ formName, formContext });
579
418
  return jsx(Fragment$1, { children: children });
419
+ });
420
+ PersistForm.displayName = "PersistForm";
421
+
422
+ /**
423
+ * A component that combines a Material UI Paper with a form container
424
+ *
425
+ * PaperForm wraps form content in an elevated paper surface, providing
426
+ * visual distinction and a clean container for form elements. It integrates
427
+ * seamlessly with react-hook-form by using FormContainer internally.
428
+ *
429
+ * This component is useful for creating standalone form surfaces outside of dialogs,
430
+ * such as on pages or within cards. It supports all Paper props for styling
431
+ * while handling form state management through FormContainer.
432
+ *
433
+ * @example
434
+ * // Basic usage
435
+ * <PaperForm
436
+ * formProps={{
437
+ * defaultValues: { name: "", email: "" },
438
+ * onSuccess: handleSubmit
439
+ * }}
440
+ * elevation={3}
441
+ * >
442
+ * <TextFieldElement name="name" label="Name" />
443
+ * <TextFieldElement name="email" label="Email" />
444
+ * <Button type="submit">Submit</Button>
445
+ * </PaperForm>
446
+ *
447
+ * @example
448
+ * // With custom styling and validation
449
+ * <PaperForm
450
+ * formProps={{
451
+ * defaultValues: formDefaultValues,
452
+ * onSuccess: handleSubmit,
453
+ * onError: handleError,
454
+ * }}
455
+ * sx={{
456
+ * padding: 3,
457
+ * borderRadius: 2,
458
+ * backgroundColor: 'background.paper',
459
+ * }}
460
+ * elevation={2}
461
+ * >
462
+ * <FormFields />
463
+ * <FormDialogActions submitProps={{ children: "Save Profile" }} />
464
+ * </PaperForm>
465
+ *
466
+ * @template T - The type of form values being handled
467
+ */
468
+ const PaperForm = ({ children, persistKey = "", formProps, ...paperProps }) => (jsx(Paper, { ...paperProps, children: jsx(FormContainer, { ...formProps, children: jsx(PersistForm, { formName: persistKey, children: children }) }) }));
469
+
470
+ /**
471
+ * Context provider component for form dialog state management
472
+ *
473
+ * FormDialogProvider creates and manages shared state for form dialogs,
474
+ * allowing child components to access dialog state and controls through
475
+ * the useFormDialog hook.
476
+ *
477
+ * This provider handles:
478
+ * - Dialog open/close state
479
+ * - Form-wide disabled state
480
+ * - Dialog close handler passing
481
+ * - Theme consistency via ThemeBridge
482
+ *
483
+ * Use this provider to wrap form components that need to share state
484
+ * and disabled status, such as dialogs with multiple form fields
485
+ * and action buttons that need to be coordinated.
486
+ *
487
+ * @example
488
+ * // Basic usage wrapping a form
489
+ * <FormDialogProvider>
490
+ * <FormContainer onSuccess={handleSubmit}>
491
+ * <TextFieldElement name="name" />
492
+ * <FormDialogActions />
493
+ * </FormContainer>
494
+ * </FormDialogProvider>
495
+ *
496
+ * @example
497
+ * // With pre-configured dialog state
498
+ * <FormDialogProvider open={isOpen} closeDialog={handleClose}>
499
+ * <PaperForm formProps={formProps}>
500
+ * <LoginFormFields />
501
+ * <FormDialogActions submitProps={{ maxAttempts: 3 }} />
502
+ * </PaperForm>
503
+ * </FormDialogProvider>
504
+ */
505
+ const FormDialogProvider = ({ children, ...value }) => {
506
+ const [disabled, setDisabled] = useState(false);
507
+ return (jsx(ThemeBridge, { children: jsx(FormDialogContext.Provider, { value: { ...value, disabled, setDisabled }, children: children }) }));
508
+ };
509
+
510
+ /**
511
+ * A dialog component specialized for forms with integrated context providers
512
+ *
513
+ * FormDialog combines Material UI dialog functionality with React Hook Form,
514
+ * creating a comprehensive solution for modal forms. It provides context
515
+ * providers for form state management, dialog controls, and accessibility.
516
+ *
517
+ * Key features:
518
+ * - Integrates React Hook Form with Material UI dialogs
519
+ * - Provides form state management through FormProvider
520
+ * - Establishes dialog context through FormDialogProvider
521
+ * - Handles form submission and error states
522
+ * - Supports loading states for form operations
523
+ * - Maintains consistent styling and behavior
524
+ *
525
+ * Child components can access the form and dialog context through hooks:
526
+ * - useFormContext() - Access form methods and state
527
+ * - useFormState() - Access form validation state
528
+ * - useFormDialog() - Access dialog controls and state
529
+ *
530
+ */
531
+ const FormDialog = function ({ formProps, children, open, onClose, persistKey = "", ...dialogProps }) {
532
+ const PaperComponent = useCallback((props) => jsx(PaperForm, { persistKey: persistKey, formProps: formProps, ...props }), [formProps, persistKey]);
533
+ const baseDialogProps = useMemo(() => merge({
534
+ actionsProps: { sx: { pt: 2.5 } },
535
+ contentProps: {
536
+ sx: {
537
+ display: "flex",
538
+ justifyContent: "center",
539
+ boxSizing: "border-box",
540
+ maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
541
+ },
542
+ },
543
+ }, dialogProps), [dialogProps]);
544
+ return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
545
+ position: "absolute",
546
+ top: 8,
547
+ right: 8,
548
+ }, onClick: (e) => onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown'), children: jsx(Close, { fontSize: "small", "aria-label": "close-form-dialog" }) }), ...baseDialogProps, children: children }) }));
580
549
  };
550
+ FormDialog.displayName = "FormDialog";
581
551
 
582
552
  /**
583
553
  * A cancel button component that integrates with FormDialogContext.
@@ -660,7 +630,7 @@ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
660
630
  };
661
631
 
662
632
  /**
663
- * A submit button for forms with loading state, attempt tracking and form context awareness
633
+ * A "submit button" for forms with loading state, attempt tracking and form context awareness
664
634
  *
665
635
  * This component extends the LoadingButton with form-specific features:
666
636
  * - Automatically displays loading state during form submission
@@ -692,7 +662,7 @@ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
692
662
  * </FormSubmitButton>
693
663
  */
694
664
  const FormSubmitButton = memo(function ({ showAttempts, maxAttempts, children = "Save", ...props }) {
695
- const { formState, getValues } = useFormContext$1();
665
+ const formState = useFormState();
696
666
  const { disabled: disabledForm } = useFormDialog();
697
667
  const disabled = formState.isSubmitting || formState.isLoading || props.disabled || disabledForm;
698
668
  const hasMaxAttempts = maxAttempts && isFinite(maxAttempts);
@@ -883,5 +853,5 @@ const AutoGrid = ({ components, columnCount = 1, ...props }) => (jsx(Grid, { con
883
853
  xs: 12 / columnCount,
884
854
  }, children: child }, child.key))) }));
885
855
 
886
- export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog, usePersistedForm };
856
+ export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog, usePersistForm };
887
857
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/dialogs/BlackoutDialog.tsx","../src/components/dialogs/BaseDialog.tsx","../src/components/forms/PaperForm.tsx","../src/state/FormDialogContext.ts","../src/utils/ThemeBridge.tsx","../src/state/FormDialogProvider.tsx","../src/components/dialogs/FormDialog.tsx","../src/hooks/useFormDialog.ts","../src/utils/hasMaxAttempts.ts","../src/utils/deepCompare.ts","../src/utils/applyDefaultFormDialogProps.tsx","../src/hooks/useMaxAttempts.ts","../src/state/createFormChangeStore.ts","../src/hooks/useOnMount.ts","../src/hooks/usePersistedForm.tsx","../src/hooks/useDialog.ts","../src/components/forms/PersistForm.tsx","../src/components/buttons/FormCancelButton.tsx","../src/components/buttons/LoadingButton.tsx","../src/components/buttons/FormSubmitButton.tsx","../src/components/buttons/FormResetButton.tsx","../src/components/GridSpacer.tsx","../src/components/dialogs/FormDialogActions.tsx","../src/components/AutoGrid.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_jsx","_jsxs","useMuiTheme","CloseIcon","RefreshIcon","_Fragment","SaveIcon","useTheme","useFormContext"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/components/dialogs/BlackoutDialog.tsx","../src/components/dialogs/BaseDialog.tsx","../src/state/FormDialogContext.ts","../src/hooks/useFormDialog.ts","../src/utils/hasMaxAttempts.ts","../src/utils/deepCompare.ts","../src/utils/applyDefaultFormDialogProps.tsx","../src/utils/ThemeBridge.tsx","../src/hooks/useMaxAttempts.ts","../src/state/createFormChangeStore.ts","../src/hooks/useOnMount.ts","../src/hooks/usePersistForm.ts","../src/hooks/useDialog.ts","../src/components/forms/PersistForm.tsx","../src/components/forms/PaperForm.tsx","../src/state/FormDialogProvider.tsx","../src/components/dialogs/FormDialog.tsx","../src/components/buttons/FormCancelButton.tsx","../src/components/buttons/LoadingButton.tsx","../src/components/buttons/FormSubmitButton.tsx","../src/components/buttons/FormResetButton.tsx","../src/components/GridSpacer.tsx","../src/components/dialogs/FormDialogActions.tsx","../src/components/AutoGrid.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_jsx","_jsxs","RefreshIcon","CloseIcon","_Fragment","SaveIcon","useMuiTheme","useTheme"],"mappings":"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"}