@saas-ui/modals 2.0.0-next.2 → 2.0.0-next.21

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/CHANGELOG.md CHANGED
@@ -1,5 +1,153 @@
1
1
  # @saas-ui/modals
2
2
 
3
+ ## 2.0.0-next.21
4
+
5
+ ### Patch Changes
6
+
7
+ - @saas-ui/forms@2.0.0-next.21
8
+
9
+ ## 2.0.0-next.20
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [a9ca90dd]
14
+ - @saas-ui/forms@2.0.0-next.20
15
+
16
+ ## 2.0.0-next.19
17
+
18
+ ### Patch Changes
19
+
20
+ - @saas-ui/forms@2.0.0-next.19
21
+
22
+ ## 2.0.0-next.18
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [01ac442f]
27
+ - @saas-ui/forms@2.0.0-next.18
28
+
29
+ ## 2.0.0-next.17
30
+
31
+ ### Patch Changes
32
+
33
+ - @saas-ui/forms@2.0.0-next.17
34
+
35
+ ## 2.0.0-next.16
36
+
37
+ ### Patch Changes
38
+
39
+ - cc713117: Fix issue where onCloseComplete would not be called
40
+ - @saas-ui/forms@2.0.0-next.16
41
+
42
+ ## 2.0.0-next.15
43
+
44
+ ### Minor Changes
45
+
46
+ - 2d18cdc2: New createFormDialog function to create Zod or Yup specific FormDialogs
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [2d18cdc2]
51
+ - @saas-ui/forms@2.0.0-next.15
52
+
53
+ ## 2.0.0-next.14
54
+
55
+ ### Patch Changes
56
+
57
+ - Fix esm bundle import
58
+ - Updated dependencies
59
+ - @saas-ui/react-utils@2.0.0-next.3
60
+ - @saas-ui/forms@2.0.0-next.14
61
+ - @saas-ui/hooks@2.0.0-next.4
62
+
63
+ ## 2.0.0-next.13
64
+
65
+ ### Patch Changes
66
+
67
+ - 1563cc9a: BaseDrawer now accepts header, content and footer props.
68
+ - Bump version
69
+ - Updated dependencies
70
+ - Updated dependencies [6c63217c]
71
+ - @saas-ui/react-utils@2.0.0-next.2
72
+ - @saas-ui/forms@2.0.0-next.13
73
+ - @saas-ui/hooks@2.0.0-next.3
74
+
75
+ ## 2.0.0-next.12
76
+
77
+ ### Patch Changes
78
+
79
+ - Updated dependencies [a7ef6dd9]
80
+ - @saas-ui/forms@2.0.0-next.12
81
+
82
+ ## 2.0.0-next.11
83
+
84
+ ### Patch Changes
85
+
86
+ - @saas-ui/forms@2.0.0-next.11
87
+
88
+ ## 2.0.0-next.10
89
+
90
+ ### Patch Changes
91
+
92
+ - @saas-ui/forms@2.0.0-next.10
93
+
94
+ ## 2.0.0-next.9
95
+
96
+ ### Minor Changes
97
+
98
+ - 84e59fec: Added new createModals method to create typesafe modals managers with support for custom modals
99
+ - 1177329d: BaseModal now accepts header, content and footer props
100
+
101
+ ### Patch Changes
102
+
103
+ - Updated dependencies [84e59fec]
104
+ - @saas-ui/forms@2.0.0-next.9
105
+
106
+ ## 2.0.0-next.8
107
+
108
+ ### Patch Changes
109
+
110
+ - Updated dependencies [6d3f5717]
111
+ - @saas-ui/forms@2.0.0-next.8
112
+
113
+ ## 2.0.0-next.7
114
+
115
+ ### Patch Changes
116
+
117
+ - @saas-ui/forms@2.0.0-next.7
118
+
119
+ ## 2.0.0-next.6
120
+
121
+ ### Patch Changes
122
+
123
+ - Updated dependencies [532011d6]
124
+ - Updated dependencies [532011d6]
125
+ - Updated dependencies [6dd737ce]
126
+ - Updated dependencies [c85541cb]
127
+ - Updated dependencies [39e778d8]
128
+ - @saas-ui/forms@2.0.0-next.6
129
+
130
+ ## 2.0.0-next.5
131
+
132
+ ### Patch Changes
133
+
134
+ - Updated dependencies [a8ea24da]
135
+ - @saas-ui/forms@2.0.0-next.5
136
+
137
+ ## 2.0.0-next.4
138
+
139
+ ### Patch Changes
140
+
141
+ - Updated dependencies [27a68bca]
142
+ - @saas-ui/hooks@2.0.0-next.2
143
+ - @saas-ui/forms@2.0.0-next.4
144
+
145
+ ## 2.0.0-next.3
146
+
147
+ ### Patch Changes
148
+
149
+ - @saas-ui/forms@2.0.0-next.3
150
+
3
151
  ## 2.0.0-next.2
4
152
 
5
153
  ### Patch Changes
@@ -33,6 +181,33 @@
33
181
  - @saas-ui/hooks@2.0.0-next.0
34
182
  - @saas-ui/react-utils@2.0.0-next.0
35
183
 
184
+ ## 1.5.7
185
+
186
+ ### Patch Changes
187
+
188
+ - Fix types path
189
+ - Updated dependencies
190
+ - @saas-ui/button@1.4.2
191
+ - @saas-ui/forms@1.5.5
192
+ - @saas-ui/menu@1.4.3
193
+
194
+ ## 1.5.6
195
+
196
+ ### Patch Changes
197
+
198
+ - b2302a3: Add types to package.json exports
199
+ - Updated dependencies [b2302a3]
200
+ - @saas-ui/button@1.4.1
201
+ - @saas-ui/forms@1.5.4
202
+ - @saas-ui/menu@1.4.2
203
+
204
+ ## 1.5.5
205
+
206
+ ### Patch Changes
207
+
208
+ - Updated dependencies [382e095]
209
+ - @saas-ui/forms@1.5.3
210
+
36
211
  ## 1.5.4
37
212
 
38
213
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,21 +1,28 @@
1
- import * as React from 'react';
2
- import { AlertDialogProps, ButtonProps, ButtonGroupProps, DrawerProps as DrawerProps$1, ModalProps, MenuListProps } from '@chakra-ui/react';
1
+ import * as React$1 from 'react';
2
+ import { AlertDialogProps, ButtonProps, ButtonGroupProps, DrawerProps as DrawerProps$1, ModalHeaderProps, ModalContentProps, ModalFooterProps, ModalProps, MenuListProps } from '@chakra-ui/react';
3
+ import { MaybeRenderProp } from '@chakra-ui/react-utils';
3
4
  import * as _chakra_ui_system_dist_system_types from '@chakra-ui/system/dist/system.types';
4
- import { FieldValues, FormProps, FieldResolver } from '@saas-ui/forms';
5
+ import * as _saas_ui_forms from '@saas-ui/forms';
6
+ import { DefaultFieldOverrides, FieldValues, FieldProps, FormProps, FieldResolver, FormType, WithFields } from '@saas-ui/forms';
7
+ import { YupFormType, AnyObjectSchema } from '@saas-ui/forms/yup';
8
+ import { ZodFormType } from '@saas-ui/forms/zod';
9
+ import * as _chakra_ui_button_dist_button from '@chakra-ui/button/dist/button';
10
+ import { z } from 'zod';
11
+ import { InferType } from 'yup';
5
12
 
6
13
  interface ConfirmDialogProps extends Omit<AlertDialogProps, 'leastDestructiveRef'> {
7
14
  /**
8
15
  * The dialog title
9
16
  */
10
- title?: React.ReactNode;
17
+ title?: React$1.ReactNode;
11
18
  /**
12
19
  * The cancel button label
13
20
  */
14
- cancelLabel?: React.ReactNode;
21
+ cancelLabel?: React$1.ReactNode;
15
22
  /**
16
23
  * The confirm button label
17
24
  */
18
- confirmLabel?: React.ReactNode;
25
+ confirmLabel?: React$1.ReactNode;
19
26
  /**
20
27
  * The cancel button props
21
28
  */
@@ -52,13 +59,24 @@ interface ConfirmDialogProps extends Omit<AlertDialogProps, 'leastDestructiveRef
52
59
  */
53
60
  onConfirm?: () => void;
54
61
  }
55
- declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
62
+ declare const ConfirmDialog: React$1.FC<ConfirmDialogProps>;
56
63
 
57
64
  interface BaseDrawerProps extends Omit<DrawerProps$1, 'children'> {
58
65
  /**
59
66
  * The drawer title
60
67
  */
61
- title: React.ReactNode;
68
+ title: React$1.ReactNode;
69
+ /**
70
+ * The modal children
71
+ */
72
+ children: MaybeRenderProp<{
73
+ isOpen: boolean;
74
+ onClose: () => void;
75
+ }>;
76
+ /**
77
+ * The modal footer
78
+ */
79
+ footer?: React$1.ReactNode;
62
80
  /**
63
81
  * Hide the close button
64
82
  */
@@ -67,26 +85,44 @@ interface BaseDrawerProps extends Omit<DrawerProps$1, 'children'> {
67
85
  * Hide the overflow
68
86
  */
69
87
  hideOverlay?: boolean;
70
- children?: React.ReactNode;
88
+ /**
89
+ * Props for the modal header
90
+ */
91
+ headerProps?: ModalHeaderProps;
92
+ /**
93
+ * Props for the modal content
94
+ */
95
+ contentProps?: ModalContentProps;
96
+ /**
97
+ * Props for the modal footer
98
+ */
99
+ footerProps?: ModalFooterProps;
71
100
  }
72
- declare const BaseDrawer: React.FC<BaseDrawerProps>;
101
+ declare const BaseDrawer: React$1.FC<BaseDrawerProps>;
73
102
  interface DrawerProps extends BaseDrawerProps {
74
103
  /**
75
104
  * Drawer footer content, wrapped with `DrawerFooter`
76
105
  */
77
- footer?: React.ReactNode;
106
+ footer?: React$1.ReactNode;
78
107
  }
79
- declare const Drawer: React.FC<DrawerProps>;
108
+ declare const Drawer: React$1.FC<DrawerProps>;
80
109
 
81
- interface BaseModalProps extends ModalProps {
110
+ interface BaseModalProps extends Omit<ModalProps, 'children'> {
82
111
  /**
83
112
  * The modal title
84
113
  */
85
- title?: React.ReactNode;
114
+ title?: React$1.ReactNode;
115
+ /**
116
+ * The modal children
117
+ */
118
+ children: MaybeRenderProp<{
119
+ isOpen: boolean;
120
+ onClose: () => void;
121
+ }>;
86
122
  /**
87
123
  * The modal footer
88
124
  */
89
- footer?: React.ReactNode;
125
+ footer?: React$1.ReactNode;
90
126
  /**
91
127
  * Hide the close button
92
128
  */
@@ -95,72 +131,115 @@ interface BaseModalProps extends ModalProps {
95
131
  * Hide the overlay
96
132
  */
97
133
  hideOverlay?: boolean;
134
+ /**
135
+ * Props for the modal header
136
+ */
137
+ headerProps?: ModalHeaderProps;
138
+ /**
139
+ * Props for the modal content
140
+ */
141
+ contentProps?: ModalContentProps;
142
+ /**
143
+ * Props for the modal footer
144
+ */
145
+ footerProps?: ModalFooterProps;
98
146
  }
99
- declare const BaseModal: React.FC<BaseModalProps>;
100
- declare const Modal: React.FC<BaseModalProps>;
147
+ declare const BaseModal: React$1.FC<BaseModalProps>;
148
+ declare const Modal: React$1.FC<BaseModalProps>;
101
149
 
102
150
  interface MenuDialogProps extends BaseModalProps {
103
151
  /**
104
152
  * The modal footer, wrapped with `ModalFooter`
105
153
  */
106
- footer?: React.ReactNode;
154
+ footer?: React$1.ReactNode;
107
155
  }
108
- declare const MenuDialog: React.FC<MenuDialogProps>;
156
+ declare const MenuDialog: React$1.FC<MenuDialogProps>;
109
157
  interface MenuDialogListProps extends Omit<BaseModalProps, 'isOpen' | 'onClose' | 'children' | 'scrollBehavior'>, Omit<MenuListProps, 'title'> {
110
158
  }
111
159
  declare const MenuDialogList: _chakra_ui_system_dist_system_types.ComponentWithAs<"div", MenuDialogListProps>;
112
160
 
113
- interface FormDialogProps<TFieldValues extends FieldValues = FieldValues, TContext extends object = object> extends Omit<BaseModalProps, 'children'>, Pick<FormProps<TFieldValues, TContext>, 'schema' | 'defaultValues' | 'values' | 'context' | 'onChange' | 'onSubmit' | 'onError' | 'resolver' | 'mode' | 'reValidateMode' | 'shouldFocusError' | 'shouldUnregister' | 'shouldUseNativeValidation' | 'criteriaMode' | 'delayError'> {
161
+ type FormDialogFieldOverrides = DefaultFieldOverrides & {
162
+ cancel?: ButtonProps;
163
+ };
164
+ interface FormDialogProps<TSchema = any, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends Omit<BaseModalProps, 'children'>, Pick<FormProps<TSchema, TFieldValues, TContext, TFieldTypes>, 'schema' | 'defaultValues' | 'values' | 'context' | 'onChange' | 'onSubmit' | 'onError' | 'resolver' | 'mode' | 'reValidateMode' | 'shouldFocusError' | 'shouldUnregister' | 'shouldUseNativeValidation' | 'criteriaMode' | 'delayError' | 'resetOptions' | 'children'> {
114
165
  /**
115
166
  * The modal footer, will be wrapped with `ModalFooter`.
116
167
  * Defaults to a cancel and submit button.
117
168
  */
118
- footer?: React.ReactNode;
119
- /**
120
- * The cancel button label
121
- * @default "Cancel"
122
- */
123
- cancelLabel?: React.ReactNode;
124
- /**
125
- * The submit button label
126
- * @default "Submit"
127
- */
128
- submitLabel?: React.ReactNode;
129
- /**
130
- * If no children are passed, this will auto render fields based on the supplied schema.
131
- */
132
- children?: React.ReactNode;
169
+ footer?: React$1.ReactNode;
133
170
  /**
134
171
  * A schema field resolver used to auto generate form fields.
135
172
  */
136
173
  fieldResolver?: FieldResolver;
174
+ /**
175
+ * Field overrides
176
+ */
177
+ fields?: FormDialogFieldOverrides;
137
178
  }
138
- declare const FormDialog: <TFieldValues extends FieldValues>(props: FormDialogProps<TFieldValues, object> & {
139
- ref?: React.ForwardedRef<HTMLFormElement> | undefined;
140
- }) => React.ReactElement;
179
+ /**
180
+ * @todo make this dynamic to support other schema types
181
+ */
182
+ type MergeDialogProps<T> = T extends YupFormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides, 'yup'> ? YupFormType<FieldDefs, ExtraProps & Omit<BaseModalProps, 'children'>, ExtraOverrides & FormDialogFieldOverrides> : T extends ZodFormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides, 'zod'> ? ZodFormType<FieldDefs, ExtraProps & Omit<BaseModalProps, 'children'>, ExtraOverrides & FormDialogFieldOverrides> : T extends FormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides> ? FormType<FieldDefs, ExtraProps & Omit<BaseModalProps, 'children'>, ExtraOverrides & FormDialogFieldOverrides> : never;
183
+ type DefaultFormType<FieldDefs = any, ExtraProps = object, ExtraOverrides = FormDialogFieldOverrides> = (<TSchema = unknown, TFieldValues extends Record<string, any> = any, TContext extends object = object>(props: any) => React$1.ReactElement) & {
184
+ displayName?: string;
185
+ id?: string;
186
+ };
187
+ declare function createFormDialog<FieldDefs = any, ExtraProps = object, ExtraOverrides = FormDialogFieldOverrides, TFormType extends DefaultFormType<FieldDefs, ExtraProps, ExtraOverrides> = DefaultFormType<FieldDefs, ExtraProps, ExtraOverrides>>(Form: TFormType): MergeDialogProps<TFormType>;
188
+ /**
189
+ * Can be used to quickly request information from people without leaving the current page.
190
+ *
191
+ * @see Docs https://saas-ui.dev/docs/components/overlay/form-dialog
192
+ */
193
+ declare const FormDialog: FormType<unknown, object & Omit<BaseModalProps, "children">, object & DefaultFieldOverrides & {
194
+ cancel?: ButtonProps | undefined;
195
+ }>;
141
196
 
142
- interface ModalsContextValue {
143
- open: (options: OpenOptions) => ModalId;
197
+ type FormDialogHandler<T> = T extends YupFormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides, 'yup'> ? YupHandler<FieldDefs, object, ExtraOverrides & FormDialogFieldOverrides> : T extends ZodFormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides, 'zod'> ? ZodHandler<FieldDefs, object, ExtraOverrides & FormDialogFieldOverrides> : T extends FormType<infer FieldDefs, infer ExtraProps, infer ExtraOverrides> ? FormHandler<FieldDefs, object, ExtraOverrides & FormDialogFieldOverrides> : never;
198
+ type ZodHandler<FieldDefs, ExtraProps = object, ExtraOverrides = object, Type extends 'zod' = 'zod'> = <TSchema extends z.AnyZodObject = z.AnyZodObject, TFieldValues extends z.infer<TSchema> = z.infer<TSchema>, TContext extends object = object>(props: WithFields<FormProps<TSchema, TFieldValues, TContext>, FieldDefs, ExtraOverrides> & {
199
+ ref?: React.ForwardedRef<HTMLFormElement>;
200
+ } & ExtraProps) => ModalId;
201
+ type FormHandler<FieldDefs, ExtraProps = object, ExtraOverrides = object> = <TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props: WithFields<FormProps<TSchema, TFieldValues, TContext>, FieldDefs, ExtraOverrides> & {
202
+ ref?: React.ForwardedRef<HTMLFormElement>;
203
+ } & ExtraProps) => ModalId;
204
+ type YupHandler<FieldDefs, ExtraProps = object, ExtraOverrides = object, Type extends 'yup' = 'yup'> = <TSchema extends AnyObjectSchema = AnyObjectSchema, TFieldValues extends InferType<TSchema> = InferType<TSchema>, // placeholder
205
+ TContext extends object = object>(props: WithFields<FormProps<TFieldValues, TContext, TSchema>, FieldDefs, ExtraOverrides> & {
206
+ ref?: React.ForwardedRef<HTMLFormElement>;
207
+ } & ExtraProps) => ModalId;
208
+
209
+ interface ModalsContextValue<TModals extends Record<string, React$1.FC<any>> = Record<string, React$1.FC<any>>, TTypes extends Extract<keyof TModals, string> = Extract<keyof TModals, string>> {
210
+ open: <T extends OpenOptions<TTypes>>(componentOrOptions: T extends {
211
+ component: infer TComponent extends React$1.FC<any>;
212
+ } ? WithModalOptions<React$1.ComponentPropsWithRef<TComponent>> : T extends {
213
+ type: infer TType extends keyof TModals;
214
+ } ? WithModalOptions<React$1.ComponentPropsWithRef<TModals[TType]>> : T, options?: T extends React$1.FC<any> ? WithModalOptions<React$1.ComponentPropsWithRef<T>> : never) => ModalId;
144
215
  drawer: (options: DrawerOptions) => ModalId;
145
216
  alert: (options: ConfirmDialogOptions) => ModalId;
146
217
  confirm: (options: ConfirmDialogOptions) => ModalId;
147
218
  menu: (options: MenuDialogOptions) => ModalId;
148
- form: (options: FormDialogOptions) => ModalId;
219
+ form: FormDialogHandler<TModals['form']>;
149
220
  close: (id: ModalId) => void;
150
221
  closeAll: () => void;
151
222
  }
152
- declare const ModalsContext: React.Context<ModalsContextValue | null>;
153
- interface ModalsProviderProps {
154
- children: React.ReactNode;
155
- modals?: Record<string, React.FC<any>>;
223
+ declare const ModalsContext: React$1.Context<ModalsContextValue<{
224
+ alert: React$1.FC<ConfirmDialogProps>;
225
+ confirm: React$1.FC<ConfirmDialogProps>;
226
+ drawer: React$1.FC<DrawerProps>;
227
+ modal: React$1.FC<BaseModalProps>;
228
+ menu: React$1.FC<MenuDialogProps>;
229
+ form: FormType<unknown, object & Omit<BaseModalProps, "children">, object & _saas_ui_forms.DefaultFieldOverrides & {
230
+ cancel?: _chakra_ui_button_dist_button.ButtonProps | undefined;
231
+ }>;
232
+ }, "confirm" | "form" | "menu" | "alert" | "modal" | "drawer"> | null>;
233
+ interface ModalsProviderProps<TModals extends Record<string, React$1.FC<any>> = Record<string, React$1.FC<any>>> {
234
+ children: React$1.ReactNode;
235
+ modals?: TModals;
156
236
  }
157
237
  type ModalId = string | number;
158
- interface ModalOptions extends Omit<BaseModalProps, 'onClose' | 'isOpen' | 'children'> {
238
+ type WithModalOptions<T> = Omit<T, 'isOpen' | 'onClose'> & ModalOptions;
239
+ interface ModalOptions extends Omit<BaseModalProps, 'isOpen' | 'onClose' | 'children'> {
159
240
  onClose?: (args: {
160
241
  force?: boolean;
161
242
  }) => Promise<boolean | undefined> | void;
162
- body?: React.ReactNode;
163
- children?: React.ReactNode;
164
243
  [key: string]: any;
165
244
  }
166
245
  interface DrawerOptions extends ModalOptions, Omit<DrawerProps, 'onClose' | 'isOpen' | 'children' | 'title' | 'size'> {
@@ -171,13 +250,12 @@ interface MenuDialogOptions extends ModalOptions, Omit<MenuDialogProps, 'onClose
171
250
  }
172
251
  interface FormDialogOptions extends ModalOptions, Omit<FormDialogProps, 'onClose' | 'isOpen' | 'children'> {
173
252
  }
174
- interface OpenOptions extends ModalOptions {
175
- type?: ModalTypes;
253
+ interface OpenOptions<TModalTypes extends string> extends ModalOptions {
254
+ type?: TModalTypes;
176
255
  scope?: ModalScopes;
177
256
  }
178
257
  type ModalScopes = 'modal' | 'alert';
179
- type ModalTypes = 'modal' | 'drawer' | 'alert' | 'confirm' | 'menu' | string;
180
- interface ModalConfig<TModalOptions extends ModalOptions = ModalOptions> {
258
+ interface ModalConfig<TModalOptions extends ModalOptions = ModalOptions, TModalTypes extends string = string> {
181
259
  /**
182
260
  * The modal id, autogenerated when not set.
183
261
  * Can be used to close modals.
@@ -199,12 +277,12 @@ interface ModalConfig<TModalOptions extends ModalOptions = ModalOptions> {
199
277
  *
200
278
  * Custom types can be configured using the `modals` prop of `ModalProvider`
201
279
  */
202
- type?: ModalTypes;
280
+ type?: TModalTypes;
203
281
  /**
204
282
  * Render a custom modal component.
205
283
  * This will ignore the `type` param.
206
284
  */
207
- component?: React.FC<BaseModalProps>;
285
+ component?: React$1.FC<BaseModalProps>;
208
286
  /**
209
287
  * Whether the modal is open or not.
210
288
  * This is used internally to keep track of the modal state.
@@ -212,7 +290,24 @@ interface ModalConfig<TModalOptions extends ModalOptions = ModalOptions> {
212
290
  isOpen?: boolean;
213
291
  }
214
292
  declare function ModalsProvider({ children, modals }: ModalsProviderProps): JSX.Element;
215
- declare const useModalsContext: () => ModalsContextValue;
216
- declare const useModals: () => ModalsContextValue;
293
+ declare const useModalsContext: () => ModalsContextValue<Record<string, React$1.FC<any>>, string>;
294
+ declare const useModals: () => ModalsContextValue<Record<string, React$1.FC<any>>, string>;
295
+
296
+ interface CreateModalsOptions<TModalDefs extends Record<string, React.FC<any>>> {
297
+ modals: TModalDefs;
298
+ }
299
+ declare const createModals: <TModalDefs extends Record<string, React$1.FC<any>>>(options: CreateModalsOptions<TModalDefs>) => {
300
+ ModalsProvider: (props: Omit<ModalsProviderProps, 'modals'>) => JSX.Element;
301
+ useModals: () => ModalsContextValue<{
302
+ alert: React$1.FC<ConfirmDialogProps>;
303
+ confirm: React$1.FC<ConfirmDialogProps>;
304
+ drawer: React$1.FC<DrawerProps>;
305
+ modal: React$1.FC<BaseModalProps>;
306
+ menu: React$1.FC<MenuDialogProps>;
307
+ form: _saas_ui_forms.FormType<unknown, object & Omit<BaseModalProps, "children">, object & _saas_ui_forms.DefaultFieldOverrides & {
308
+ cancel?: _chakra_ui_button_dist_button.ButtonProps | undefined;
309
+ }>;
310
+ } & TModalDefs, "confirm" | "form" | "menu" | "alert" | "modal" | "drawer" | Extract<keyof TModalDefs, string>>;
311
+ };
217
312
 
218
- export { BaseDrawer, BaseDrawerProps, BaseModal, BaseModalProps, ConfirmDialog, ConfirmDialogOptions, ConfirmDialogProps, Drawer, DrawerOptions, DrawerProps, FormDialog, FormDialogOptions, FormDialogProps, MenuDialog, MenuDialogList, MenuDialogListProps, MenuDialogOptions, MenuDialogProps, Modal, ModalConfig, ModalId, ModalScopes, ModalTypes, ModalsContext, ModalsContextValue, ModalsProvider, OpenOptions, useModals, useModalsContext };
313
+ export { BaseDrawer, BaseDrawerProps, BaseModal, BaseModalProps, ConfirmDialog, ConfirmDialogOptions, ConfirmDialogProps, CreateModalsOptions, DefaultFormType, Drawer, DrawerOptions, DrawerProps, FormDialog, FormDialogFieldOverrides, FormDialogOptions, FormDialogProps, MenuDialog, MenuDialogList, MenuDialogListProps, MenuDialogOptions, MenuDialogProps, Modal, ModalConfig, ModalId, ModalScopes, ModalsContext, ModalsContextValue, ModalsProvider, ModalsProviderProps, OpenOptions, createFormDialog, createModals, useModals, useModalsContext };