@chris-c-brine/form-dialog 1.0.5 → 1.0.6

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.
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
- import { createContext, useContext, useState, useEffect, useCallback, useMemo, Fragment, useRef, memo, Children } from 'react';
2
+ import { createContext, useState, useEffect, useCallback, useContext, Fragment, useRef, memo, 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
4
  import { FormContainer, useFormContext, useFormState } from 'react-hook-form-mui';
5
5
  import { useTheme } from '@mui/material/styles';
@@ -12,9 +12,9 @@ import { useFormContext as useFormContext$1 } from 'react-hook-form';
12
12
  /**
13
13
  * A component for rendering a modal dialog with an optional blackout effect.
14
14
  */
15
- const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, keepMounted = true, ...props }) => {
15
+ const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, ...props }) => {
16
16
  const sxProps = blackout ? { ...sx, backgroundColor: "black" } : sx;
17
- return (jsx(Dialog, { open: open, id: id, keepMounted: keepMounted, ...props, sx: sxProps, children: children }));
17
+ return (jsx(Dialog, { open: open, id: id, ...props, sx: sxProps, children: children }));
18
18
  };
19
19
 
20
20
  /**
@@ -36,27 +36,11 @@ const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog"
36
36
  * consistent styling and behavior.
37
37
  *
38
38
  * @example
39
- * // Basic usage with all sections
40
- * <BaseDialog
41
- * open={open}
42
- * onClose={handleClose}
43
- * title="Confirmation"
44
- * actions={
45
- * <>
46
- * <Button onClick={handleCancel}>Cancel</Button>
47
- * <Button onClick={handleConfirm}>Confirm</Button>
48
- * </>
49
- * }
50
- * >
51
- * Are you sure you want to proceed?
52
- * </BaseDialog>
53
- *
54
- * @example
55
39
  * // Customized with section props
56
40
  * <BaseDialog
57
41
  * open={isOpen}
58
42
  * title="Advanced Settings"
59
- * titleProps={{ sx: { bgcolor: 'primary.main', color: 'white' } }}
43
+ * titleProps={{ sx: { backgroundColor: 'primary.main', color: 'white' } }}
60
44
  * contentProps={{ sx: { p: 3 } }}
61
45
  * actionsProps={{ sx: { justifyContent: 'space-between' } }}
62
46
  * actions={<SettingsDialogActions />}
@@ -127,7 +111,6 @@ FormDialogContext.displayName = "FormDialogContext";
127
111
 
128
112
  // Create a context that will hold the parent theme
129
113
  const ParentThemeContext = createContext(null);
130
- const useParentTheme = () => useContext(ParentThemeContext);
131
114
  const ThemeBridge = ({ children }) => {
132
115
  const parentTheme = useTheme();
133
116
  const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
@@ -202,22 +185,22 @@ const FormDialogProvider = ({ children, ...value }) => {
202
185
  */
203
186
  const FormDialog = ({ formProps, children, open, onClose, ...dialogProps }) => {
204
187
  const PaperComponent = useCallback((props) => jsx(PaperForm, { formProps: formProps, ...props }), [formProps]);
205
- const baseDialogProps = useMemo(() => merge({
206
- actionsProps: { sx: { pt: 2.5 } },
207
- contentProps: {
208
- sx: {
209
- display: "flex",
210
- justifyContent: "center",
211
- boxSizing: "border-box",
212
- maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
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
+ },
213
201
  },
214
- },
215
- }, dialogProps), [dialogProps]);
216
- return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
217
- position: "absolute",
218
- top: 8,
219
- right: 8,
220
- }, 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 }) }));
202
+ }, dialogProps), children: children })), [open, onClose, dialogProps, children, PaperComponent]);
203
+ return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(FormDialogContent, {}) }));
221
204
  };
222
205
 
223
206
  // src/components/dialogs/FormDialog/hooks/useFormDialog.ts
@@ -294,8 +277,20 @@ const deepCompare = (a, b, equalEmpty = false) => {
294
277
  deepCompare.displayName = "deepCompare";
295
278
 
296
279
  function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cancelProps, variant = "iconText" }) {
280
+ // Max Attempts
297
281
  const maxAttempts = (submitProps === null || submitProps === void 0 ? void 0 : submitProps.maxAttempts) || Infinity;
298
282
  const hasMaxAttempts = isFinite(maxAttempts) && maxAttempts > 0;
283
+ // Grid Container
284
+ const gridContainerProps = {
285
+ justifyContent: "space-between",
286
+ minWidth: 275,
287
+ px: 1,
288
+ pb: 1.5,
289
+ columnGap: 1,
290
+ width: "100%",
291
+ ...gridProps,
292
+ };
293
+ // Reset Button
299
294
  let resetChildren = undefined;
300
295
  if (variant == "icon")
301
296
  resetChildren = jsx(Refresh, {});
@@ -306,15 +301,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
306
301
  ...(resetChildren ? { children: resetChildren } : {}),
307
302
  ...omit(resetProps, "disabled"),
308
303
  };
309
- const gridContainerProps = {
310
- justifyContent: "space-between",
311
- minWidth: 275,
312
- px: 1,
313
- pb: 1.5,
314
- columnGap: 1,
315
- width: "100%",
316
- ...gridProps,
317
- };
304
+ // Cancel Button
318
305
  let cancelChildren = undefined;
319
306
  if (variant == "icon")
320
307
  cancelChildren = jsx(Close, {});
@@ -324,6 +311,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
324
311
  ...(cancelChildren ? { children: cancelChildren } : {}),
325
312
  ...cancelProps,
326
313
  };
314
+ // Submit Button
327
315
  let submitChildren = {};
328
316
  if (variant == "icon")
329
317
  submitChildren = { children: jsx(Fragment$1, {}), altIcon: jsx(Save, {}) };
@@ -333,12 +321,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
333
321
  ...submitChildren,
334
322
  ...submitProps,
335
323
  };
336
- return {
337
- resetButtonProps,
338
- gridContainerProps,
339
- cancelButtonProps,
340
- submitButtonProps,
341
- };
324
+ return { resetButtonProps, gridContainerProps, cancelButtonProps, submitButtonProps };
342
325
  }
343
326
 
344
327
  const useMaxAttempts = ({ maxAttempts }) => {
@@ -513,20 +496,40 @@ const usePersistedForm = ({ formName = "" }) => {
513
496
  *
514
497
  * @example
515
498
  * // With initial configuration
516
- * const { dialogProps } = useDialog({ keepMounted: false });
499
+ * const { dialogProps } = useDialog({ keepMounted: true});
517
500
  *
518
501
  *
519
502
  * @param props - Optional configuration options
520
503
  */
521
504
  const useDialog = (props) => {
522
- var _a;
523
505
  const [open, setOpen] = useState(!!(props === null || props === void 0 ? void 0 : props.open));
524
- const onClose = useCallback(() => setOpen(false), []);
525
- const openDialog = useCallback(() => setOpen(true), []);
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
+ }, []);
526
521
  return {
527
522
  closeDialog: onClose,
528
523
  openDialog,
529
- dialogProps: { open, onClose, keepMounted: (_a = props === null || props === void 0 ? void 0 : props.keepMounted) !== null && _a !== void 0 ? _a : true }
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
+ }
530
533
  };
531
534
  };
532
535
 
@@ -644,16 +647,16 @@ FormCancelButton.displayName = "FormCancelButton";
644
647
  * Process Payment
645
648
  * </LoadingButton>
646
649
  */
647
- const LoadingButton = ({ children, loading, altIcon, ...props }) => {
650
+ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
648
651
  const theme = useTheme$1();
649
- return (jsxs(Button, { ...props, children: [!loading ? (jsx(Box, { sx: {
652
+ return (jsxs(Button, { ...props, children: [!loading ? altIcon : (jsx(Box, { sx: {
650
653
  display: "flex",
651
654
  alignItems: "center",
652
655
  justifyContent: "center",
653
656
  width: "100%",
654
657
  height: "auto",
655
658
  mr: 1,
656
- }, children: jsx(CircularProgress, { color: "inherit", size: theme.typography.fontSize }) })) : (altIcon), children] }));
659
+ }, children: jsx(CircularProgress, { color: "inherit", size: theme.typography.fontSize }) })), children] }));
657
660
  };
658
661
 
659
662
  /**
@@ -671,9 +674,6 @@ const LoadingButton = ({ children, loading, altIcon, ...props }) => {
671
674
  * - Explicit-disabled prop
672
675
  * - Form-wide disabled state from FormDialogContext
673
676
  *
674
- * @example
675
- * // Basic usage
676
- * <FormSubmitButton />
677
677
  *
678
678
  * @example
679
679
  * // With custom text and max attempts
@@ -696,7 +696,7 @@ const FormSubmitButton = memo(function ({ showAttempts, maxAttempts, children =
696
696
  const { disabled: disabledForm } = useFormDialog();
697
697
  const disabled = formState.isSubmitting || formState.isLoading || props.disabled || disabledForm;
698
698
  const hasMaxAttempts = maxAttempts && isFinite(maxAttempts);
699
- return (jsx(LoadingButton, { loading: !formState.isSubmitting || formState.isLoading, variant: "contained", type: "submit", size: "large", disabled: disabled, ...props, children: jsx(Badge, { badgeContent: formState.submitCount || (formState.disabled ? maxAttempts : undefined), color: disabled ? "error" : "warning", invisible: !hasMaxAttempts && !showAttempts, children: children }) }));
699
+ return (jsx(LoadingButton, { loading: formState.isSubmitting || formState.isLoading, variant: "contained", type: "submit", size: "large", disabled: disabled, ...props, children: jsx(Badge, { badgeContent: formState.submitCount || (formState.disabled ? maxAttempts : undefined), color: disabled ? "error" : "warning", invisible: !hasMaxAttempts && !showAttempts, children: children }) }));
700
700
  });
701
701
  FormSubmitButton.displayName = "FormSubmitButton";
702
702
 
@@ -717,10 +717,6 @@ FormSubmitButton.displayName = "FormSubmitButton";
717
717
  * - Form-wide disabled state from FormDialogContext
718
718
  *
719
719
  * @example
720
- * // Basic usage
721
- * <FormResetButton />
722
- *
723
- * @example
724
720
  * // With persistence integration
725
721
  * <FormResetButton formKey="user-profile-form" />
726
722
  *
@@ -742,7 +738,6 @@ const FormResetButton = memo(function (props) {
742
738
  const { reset } = useFormContext();
743
739
  const { isSubmitting, isLoading, isDirty } = useFormState();
744
740
  const { disabled: disabledForm } = useFormDialog();
745
- useParentTheme();
746
741
  const keepSubmitCount = !!(props === null || props === void 0 ? void 0 : props.keepCount);
747
742
  const handleOnClick = useCallback(() => {
748
743
  reset(undefined, { keepSubmitCount, keepIsSubmitted: keepSubmitCount });
@@ -804,7 +799,7 @@ FormResetButton.displayName = "FormResetButton";
804
799
  * </Grid>
805
800
  * </Grid>
806
801
  */
807
- const GridSpacer = () => jsx(Grid, { flex: "1 0 0" });
802
+ const GridSpacer = () => jsx(Grid, { flex: "1 0 0", sx: { w: 0 } });
808
803
 
809
804
  /**
810
805
  * Standard set of form dialog action buttons with consistent styling and behavior
@@ -888,5 +883,5 @@ const AutoGrid = ({ components, columnCount = 1, ...props }) => (jsx(Grid, { con
888
883
  xs: 12 / columnCount,
889
884
  }, children: child }, child.key))) }));
890
885
 
891
- export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, PaperForm, PersistForm, applyDefaultFormDialogProps, deepCompare, hasMaxAttempts, useDialog, useFormDialog, usePersistedForm };
886
+ export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog, usePersistedForm };
892
887
  //# 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/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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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
- import { createContext, useContext, useState, useEffect, useCallback, useMemo, Fragment, useRef, memo, Children } from 'react';
2
+ import { createContext, useState, useEffect, useCallback, useContext, Fragment, useRef, memo, 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
4
  import { FormContainer, useFormContext, useFormState } from 'react-hook-form-mui';
5
5
  import { useTheme } from '@mui/material/styles';
@@ -12,9 +12,9 @@ import { useFormContext as useFormContext$1 } from 'react-hook-form';
12
12
  /**
13
13
  * A component for rendering a modal dialog with an optional blackout effect.
14
14
  */
15
- const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, keepMounted = true, ...props }) => {
15
+ const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, ...props }) => {
16
16
  const sxProps = blackout ? { ...sx, backgroundColor: "black" } : sx;
17
- return (jsx(Dialog, { open: open, id: id, keepMounted: keepMounted, ...props, sx: sxProps, children: children }));
17
+ return (jsx(Dialog, { open: open, id: id, ...props, sx: sxProps, children: children }));
18
18
  };
19
19
 
20
20
  /**
@@ -36,27 +36,11 @@ const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog"
36
36
  * consistent styling and behavior.
37
37
  *
38
38
  * @example
39
- * // Basic usage with all sections
40
- * <BaseDialog
41
- * open={open}
42
- * onClose={handleClose}
43
- * title="Confirmation"
44
- * actions={
45
- * <>
46
- * <Button onClick={handleCancel}>Cancel</Button>
47
- * <Button onClick={handleConfirm}>Confirm</Button>
48
- * </>
49
- * }
50
- * >
51
- * Are you sure you want to proceed?
52
- * </BaseDialog>
53
- *
54
- * @example
55
39
  * // Customized with section props
56
40
  * <BaseDialog
57
41
  * open={isOpen}
58
42
  * title="Advanced Settings"
59
- * titleProps={{ sx: { bgcolor: 'primary.main', color: 'white' } }}
43
+ * titleProps={{ sx: { backgroundColor: 'primary.main', color: 'white' } }}
60
44
  * contentProps={{ sx: { p: 3 } }}
61
45
  * actionsProps={{ sx: { justifyContent: 'space-between' } }}
62
46
  * actions={<SettingsDialogActions />}
@@ -127,7 +111,6 @@ FormDialogContext.displayName = "FormDialogContext";
127
111
 
128
112
  // Create a context that will hold the parent theme
129
113
  const ParentThemeContext = createContext(null);
130
- const useParentTheme = () => useContext(ParentThemeContext);
131
114
  const ThemeBridge = ({ children }) => {
132
115
  const parentTheme = useTheme();
133
116
  const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
@@ -202,22 +185,22 @@ const FormDialogProvider = ({ children, ...value }) => {
202
185
  */
203
186
  const FormDialog = ({ formProps, children, open, onClose, ...dialogProps }) => {
204
187
  const PaperComponent = useCallback((props) => jsx(PaperForm, { formProps: formProps, ...props }), [formProps]);
205
- const baseDialogProps = useMemo(() => merge({
206
- actionsProps: { sx: { pt: 2.5 } },
207
- contentProps: {
208
- sx: {
209
- display: "flex",
210
- justifyContent: "center",
211
- boxSizing: "border-box",
212
- maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
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
+ },
213
201
  },
214
- },
215
- }, dialogProps), [dialogProps]);
216
- return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
217
- position: "absolute",
218
- top: 8,
219
- right: 8,
220
- }, 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 }) }));
202
+ }, dialogProps), children: children })), [open, onClose, dialogProps, children, PaperComponent]);
203
+ return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(FormDialogContent, {}) }));
221
204
  };
222
205
 
223
206
  // src/components/dialogs/FormDialog/hooks/useFormDialog.ts
@@ -294,8 +277,20 @@ const deepCompare = (a, b, equalEmpty = false) => {
294
277
  deepCompare.displayName = "deepCompare";
295
278
 
296
279
  function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cancelProps, variant = "iconText" }) {
280
+ // Max Attempts
297
281
  const maxAttempts = (submitProps === null || submitProps === void 0 ? void 0 : submitProps.maxAttempts) || Infinity;
298
282
  const hasMaxAttempts = isFinite(maxAttempts) && maxAttempts > 0;
283
+ // Grid Container
284
+ const gridContainerProps = {
285
+ justifyContent: "space-between",
286
+ minWidth: 275,
287
+ px: 1,
288
+ pb: 1.5,
289
+ columnGap: 1,
290
+ width: "100%",
291
+ ...gridProps,
292
+ };
293
+ // Reset Button
299
294
  let resetChildren = undefined;
300
295
  if (variant == "icon")
301
296
  resetChildren = jsx(Refresh, {});
@@ -306,15 +301,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
306
301
  ...(resetChildren ? { children: resetChildren } : {}),
307
302
  ...omit(resetProps, "disabled"),
308
303
  };
309
- const gridContainerProps = {
310
- justifyContent: "space-between",
311
- minWidth: 275,
312
- px: 1,
313
- pb: 1.5,
314
- columnGap: 1,
315
- width: "100%",
316
- ...gridProps,
317
- };
304
+ // Cancel Button
318
305
  let cancelChildren = undefined;
319
306
  if (variant == "icon")
320
307
  cancelChildren = jsx(Close, {});
@@ -324,6 +311,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
324
311
  ...(cancelChildren ? { children: cancelChildren } : {}),
325
312
  ...cancelProps,
326
313
  };
314
+ // Submit Button
327
315
  let submitChildren = {};
328
316
  if (variant == "icon")
329
317
  submitChildren = { children: jsx(Fragment$1, {}), altIcon: jsx(Save, {}) };
@@ -333,12 +321,7 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
333
321
  ...submitChildren,
334
322
  ...submitProps,
335
323
  };
336
- return {
337
- resetButtonProps,
338
- gridContainerProps,
339
- cancelButtonProps,
340
- submitButtonProps,
341
- };
324
+ return { resetButtonProps, gridContainerProps, cancelButtonProps, submitButtonProps };
342
325
  }
343
326
 
344
327
  const useMaxAttempts = ({ maxAttempts }) => {
@@ -513,20 +496,40 @@ const usePersistedForm = ({ formName = "" }) => {
513
496
  *
514
497
  * @example
515
498
  * // With initial configuration
516
- * const { dialogProps } = useDialog({ keepMounted: false });
499
+ * const { dialogProps } = useDialog({ keepMounted: true});
517
500
  *
518
501
  *
519
502
  * @param props - Optional configuration options
520
503
  */
521
504
  const useDialog = (props) => {
522
- var _a;
523
505
  const [open, setOpen] = useState(!!(props === null || props === void 0 ? void 0 : props.open));
524
- const onClose = useCallback(() => setOpen(false), []);
525
- const openDialog = useCallback(() => setOpen(true), []);
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
+ }, []);
526
521
  return {
527
522
  closeDialog: onClose,
528
523
  openDialog,
529
- dialogProps: { open, onClose, keepMounted: (_a = props === null || props === void 0 ? void 0 : props.keepMounted) !== null && _a !== void 0 ? _a : true }
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
+ }
530
533
  };
531
534
  };
532
535
 
@@ -644,16 +647,16 @@ FormCancelButton.displayName = "FormCancelButton";
644
647
  * Process Payment
645
648
  * </LoadingButton>
646
649
  */
647
- const LoadingButton = ({ children, loading, altIcon, ...props }) => {
650
+ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
648
651
  const theme = useTheme$1();
649
- return (jsxs(Button, { ...props, children: [!loading ? (jsx(Box, { sx: {
652
+ return (jsxs(Button, { ...props, children: [!loading ? altIcon : (jsx(Box, { sx: {
650
653
  display: "flex",
651
654
  alignItems: "center",
652
655
  justifyContent: "center",
653
656
  width: "100%",
654
657
  height: "auto",
655
658
  mr: 1,
656
- }, children: jsx(CircularProgress, { color: "inherit", size: theme.typography.fontSize }) })) : (altIcon), children] }));
659
+ }, children: jsx(CircularProgress, { color: "inherit", size: theme.typography.fontSize }) })), children] }));
657
660
  };
658
661
 
659
662
  /**
@@ -671,9 +674,6 @@ const LoadingButton = ({ children, loading, altIcon, ...props }) => {
671
674
  * - Explicit-disabled prop
672
675
  * - Form-wide disabled state from FormDialogContext
673
676
  *
674
- * @example
675
- * // Basic usage
676
- * <FormSubmitButton />
677
677
  *
678
678
  * @example
679
679
  * // With custom text and max attempts
@@ -696,7 +696,7 @@ const FormSubmitButton = memo(function ({ showAttempts, maxAttempts, children =
696
696
  const { disabled: disabledForm } = useFormDialog();
697
697
  const disabled = formState.isSubmitting || formState.isLoading || props.disabled || disabledForm;
698
698
  const hasMaxAttempts = maxAttempts && isFinite(maxAttempts);
699
- return (jsx(LoadingButton, { loading: !formState.isSubmitting || formState.isLoading, variant: "contained", type: "submit", size: "large", disabled: disabled, ...props, children: jsx(Badge, { badgeContent: formState.submitCount || (formState.disabled ? maxAttempts : undefined), color: disabled ? "error" : "warning", invisible: !hasMaxAttempts && !showAttempts, children: children }) }));
699
+ return (jsx(LoadingButton, { loading: formState.isSubmitting || formState.isLoading, variant: "contained", type: "submit", size: "large", disabled: disabled, ...props, children: jsx(Badge, { badgeContent: formState.submitCount || (formState.disabled ? maxAttempts : undefined), color: disabled ? "error" : "warning", invisible: !hasMaxAttempts && !showAttempts, children: children }) }));
700
700
  });
701
701
  FormSubmitButton.displayName = "FormSubmitButton";
702
702
 
@@ -717,10 +717,6 @@ FormSubmitButton.displayName = "FormSubmitButton";
717
717
  * - Form-wide disabled state from FormDialogContext
718
718
  *
719
719
  * @example
720
- * // Basic usage
721
- * <FormResetButton />
722
- *
723
- * @example
724
720
  * // With persistence integration
725
721
  * <FormResetButton formKey="user-profile-form" />
726
722
  *
@@ -742,7 +738,6 @@ const FormResetButton = memo(function (props) {
742
738
  const { reset } = useFormContext();
743
739
  const { isSubmitting, isLoading, isDirty } = useFormState();
744
740
  const { disabled: disabledForm } = useFormDialog();
745
- useParentTheme();
746
741
  const keepSubmitCount = !!(props === null || props === void 0 ? void 0 : props.keepCount);
747
742
  const handleOnClick = useCallback(() => {
748
743
  reset(undefined, { keepSubmitCount, keepIsSubmitted: keepSubmitCount });
@@ -804,7 +799,7 @@ FormResetButton.displayName = "FormResetButton";
804
799
  * </Grid>
805
800
  * </Grid>
806
801
  */
807
- const GridSpacer = () => jsx(Grid, { flex: "1 0 0" });
802
+ const GridSpacer = () => jsx(Grid, { flex: "1 0 0", sx: { w: 0 } });
808
803
 
809
804
  /**
810
805
  * Standard set of form dialog action buttons with consistent styling and behavior
@@ -888,5 +883,5 @@ const AutoGrid = ({ components, columnCount = 1, ...props }) => (jsx(Grid, { con
888
883
  xs: 12 / columnCount,
889
884
  }, children: child }, child.key))) }));
890
885
 
891
- export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, PaperForm, PersistForm, applyDefaultFormDialogProps, deepCompare, hasMaxAttempts, useDialog, useFormDialog, usePersistedForm };
886
+ export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog, usePersistedForm };
892
887
  //# sourceMappingURL=index.js.map