@moriajs/ui 0.4.34 → 0.4.35
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/.turbo/turbo-build.log +1 -1
- package/README.md +63 -3
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +128 -0
package/.turbo/turbo-build.log
CHANGED
package/README.md
CHANGED
|
@@ -6,13 +6,73 @@ A collection of premium UI components for MoriaJS apps.
|
|
|
6
6
|
|
|
7
7
|
- **Toast**: Beautiful notifications (`toast`, `Toaster`).
|
|
8
8
|
- **Modal**: Interactive modal dialogs with smooth animations.
|
|
9
|
+
- **Confirmation**: Imperative confirmation dialogs (`confirm`, `ConfirmationRegistry`).
|
|
9
10
|
- **MoriaUI**: Aggregate export for easy discovery.
|
|
10
11
|
|
|
11
12
|
## Usage
|
|
12
13
|
|
|
14
|
+
### 1. Root Setup
|
|
15
|
+
|
|
16
|
+
Mount the `Toaster` and `ConfirmationRegistry` once in your application's root layout to enable global notifications and confirmations.
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import m from 'mithril';
|
|
20
|
+
import { Toaster, ConfirmationRegistry } from '@moriajs/ui';
|
|
21
|
+
|
|
22
|
+
const Layout = {
|
|
23
|
+
view(vnode) {
|
|
24
|
+
return m('div', [
|
|
25
|
+
m(Toaster),
|
|
26
|
+
m(ConfirmationRegistry),
|
|
27
|
+
m('main', vnode.children),
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Notifications
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { toast } from '@moriajs/ui';
|
|
37
|
+
|
|
38
|
+
toast.success('Project saved!');
|
|
39
|
+
toast.error('Connection failed');
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 3. Confirmations (Imperative)
|
|
43
|
+
|
|
44
|
+
The `confirm()` utility returns a Promise that resolves to `true` if the user confirms, and `false` if they cancel or close the modal.
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
import { confirm } from '@moriajs/ui';
|
|
48
|
+
|
|
49
|
+
async function handleDelete() {
|
|
50
|
+
const confirmed = await confirm({
|
|
51
|
+
title: 'Delete everything?',
|
|
52
|
+
message: 'This action is irreversible. Continue?',
|
|
53
|
+
confirmText: 'Yes, delete it',
|
|
54
|
+
cancelText: 'No, wait',
|
|
55
|
+
type: 'danger',
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
if (confirmed) {
|
|
59
|
+
// Perform deletion...
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 4. Modal (Declarative)
|
|
65
|
+
|
|
13
66
|
```ts
|
|
14
|
-
import {
|
|
67
|
+
import { Modal } from '@moriajs/ui';
|
|
68
|
+
|
|
69
|
+
let isOpen = false;
|
|
15
70
|
|
|
16
|
-
|
|
17
|
-
|
|
71
|
+
m(Modal, {
|
|
72
|
+
isOpen,
|
|
73
|
+
title: 'Information',
|
|
74
|
+
onClose: () => { isOpen = false; },
|
|
75
|
+
}, [
|
|
76
|
+
m('p', 'This is a declarative modal.'),
|
|
77
|
+
]);
|
|
18
78
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -73,12 +73,45 @@ export interface ModalAttrs {
|
|
|
73
73
|
* ```
|
|
74
74
|
*/
|
|
75
75
|
export declare const Modal: m.Component<ModalAttrs>;
|
|
76
|
+
export interface ConfirmationOptions {
|
|
77
|
+
title?: string;
|
|
78
|
+
message: string;
|
|
79
|
+
confirmText?: string;
|
|
80
|
+
cancelText?: string;
|
|
81
|
+
type?: 'info' | 'warning' | 'danger';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Show a confirmation dialog.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { confirm } from '@moriajs/ui';
|
|
89
|
+
*
|
|
90
|
+
* const confirmed = await confirm({
|
|
91
|
+
* title: 'Delete User',
|
|
92
|
+
* message: 'Are you sure you want to delete this user? This action cannot be undone.',
|
|
93
|
+
* confirmText: 'Delete',
|
|
94
|
+
* type: 'danger',
|
|
95
|
+
* });
|
|
96
|
+
*
|
|
97
|
+
* if (confirmed) {
|
|
98
|
+
* // Proceed with deletion
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare const confirm: (options: string | ConfirmationOptions) => Promise<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* ConfirmationRegistry component.
|
|
105
|
+
* Mount once in your app layout to handle imperative confirmation calls.
|
|
106
|
+
*/
|
|
107
|
+
export declare const ConfirmationRegistry: m.Component;
|
|
76
108
|
/**
|
|
77
109
|
* Aggregate of all UI components for easier discovery.
|
|
78
110
|
*/
|
|
79
111
|
export declare const MoriaUI: {
|
|
80
112
|
Toaster: m.Component<{}, {}>;
|
|
81
113
|
Modal: m.Component<ModalAttrs, {}>;
|
|
114
|
+
ConfirmationRegistry: m.Component<{}, {}>;
|
|
82
115
|
toast: {
|
|
83
116
|
show(message: string, type?: ToastType, duration?: number): string;
|
|
84
117
|
success(message: string, duration?: number): string;
|
|
@@ -88,5 +121,6 @@ export declare const MoriaUI: {
|
|
|
88
121
|
dismiss(id: string): void;
|
|
89
122
|
clear(): void;
|
|
90
123
|
};
|
|
124
|
+
confirm: (options: string | ConfirmationOptions) => Promise<boolean>;
|
|
91
125
|
};
|
|
92
126
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AAIxB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK;kBACA,MAAM,SAAQ,SAAS;qBAiBpB,MAAM,aAAa,MAAM;mBAG3B,MAAM,aAAa,MAAM;qBAGvB,MAAM,aAAa,MAAM;kBAG5B,MAAM,aAAa,MAAM;gBAG3B,MAAM;;CAWrB,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,SAqCvB,CAAC;AAIF,MAAM,WAAW,UAAU;IACvB,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAgEzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,SAAS,CAAC;AAIxB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK;kBACA,MAAM,SAAQ,SAAS;qBAiBpB,MAAM,aAAa,MAAM;mBAG3B,MAAM,aAAa,MAAM;qBAGvB,MAAM,aAAa,MAAM;kBAG5B,MAAM,aAAa,MAAM;gBAG3B,MAAM;;CAWrB,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,SAqCvB,CAAC;AAIF,MAAM,WAAW,UAAU;IACvB,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAgEzC,CAAC;AAIF,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;CACxC;AASD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,GAAG,mBAAmB,KAAG,OAAO,CAAC,OAAO,CAY9E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,SAsEpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;sBAnUF,MAAM,SAAQ,SAAS;yBAiBpB,MAAM,aAAa,MAAM;uBAG3B,MAAM,aAAa,MAAM;yBAGvB,MAAM,aAAa,MAAM;sBAG5B,MAAM,aAAa,MAAM;oBAG3B,MAAM;;;uBAyMW,MAAM,GAAG,mBAAmB,KAAG,OAAO,CAAC,OAAO,CAAC;CAmG/E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -173,12 +173,116 @@ export const Modal = {
|
|
|
173
173
|
]));
|
|
174
174
|
},
|
|
175
175
|
};
|
|
176
|
+
const confirmations = [];
|
|
177
|
+
/**
|
|
178
|
+
* Show a confirmation dialog.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```ts
|
|
182
|
+
* import { confirm } from '@moriajs/ui';
|
|
183
|
+
*
|
|
184
|
+
* const confirmed = await confirm({
|
|
185
|
+
* title: 'Delete User',
|
|
186
|
+
* message: 'Are you sure you want to delete this user? This action cannot be undone.',
|
|
187
|
+
* confirmText: 'Delete',
|
|
188
|
+
* type: 'danger',
|
|
189
|
+
* });
|
|
190
|
+
*
|
|
191
|
+
* if (confirmed) {
|
|
192
|
+
* // Proceed with deletion
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
export const confirm = (options) => {
|
|
197
|
+
const config = typeof options === 'string' ? { message: options } : options;
|
|
198
|
+
const id = `confirm-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
199
|
+
return new Promise((resolve) => {
|
|
200
|
+
confirmations.push({
|
|
201
|
+
...config,
|
|
202
|
+
id,
|
|
203
|
+
resolve,
|
|
204
|
+
});
|
|
205
|
+
m.redraw();
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* ConfirmationRegistry component.
|
|
210
|
+
* Mount once in your app layout to handle imperative confirmation calls.
|
|
211
|
+
*/
|
|
212
|
+
export const ConfirmationRegistry = {
|
|
213
|
+
view() {
|
|
214
|
+
return m('.moria-confirmation-registry', confirmations.map((c) => m(Modal, {
|
|
215
|
+
isOpen: true,
|
|
216
|
+
title: c.title || 'Confirm',
|
|
217
|
+
onClose: () => {
|
|
218
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
219
|
+
if (index !== -1) {
|
|
220
|
+
confirmations.splice(index, 1);
|
|
221
|
+
c.resolve(false);
|
|
222
|
+
m.redraw();
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
}, [
|
|
226
|
+
m('p', { style: { marginBottom: '1.5rem', color: '#374151' } }, c.message),
|
|
227
|
+
m('.moria-modal-actions', {
|
|
228
|
+
style: {
|
|
229
|
+
display: 'flex',
|
|
230
|
+
justifyContent: 'flex-end',
|
|
231
|
+
gap: '0.75rem',
|
|
232
|
+
}
|
|
233
|
+
}, [
|
|
234
|
+
m('button', {
|
|
235
|
+
style: {
|
|
236
|
+
padding: '0.5rem 1rem',
|
|
237
|
+
borderRadius: '0.375rem',
|
|
238
|
+
border: '1px solid #d1d5db',
|
|
239
|
+
background: '#fff',
|
|
240
|
+
color: '#374151',
|
|
241
|
+
cursor: 'pointer',
|
|
242
|
+
fontSize: '0.875rem',
|
|
243
|
+
fontWeight: '500',
|
|
244
|
+
},
|
|
245
|
+
onclick: () => {
|
|
246
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
247
|
+
if (index !== -1) {
|
|
248
|
+
confirmations.splice(index, 1);
|
|
249
|
+
c.resolve(false);
|
|
250
|
+
m.redraw();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}, c.cancelText || 'Cancel'),
|
|
254
|
+
m('button', {
|
|
255
|
+
style: {
|
|
256
|
+
padding: '0.5rem 1rem',
|
|
257
|
+
borderRadius: '0.375rem',
|
|
258
|
+
border: 'none',
|
|
259
|
+
background: c.type === 'danger' ? '#dc2626' : (c.type === 'warning' ? '#d97706' : '#2563eb'),
|
|
260
|
+
color: '#fff',
|
|
261
|
+
cursor: 'pointer',
|
|
262
|
+
fontSize: '0.875rem',
|
|
263
|
+
fontWeight: '500',
|
|
264
|
+
},
|
|
265
|
+
onclick: () => {
|
|
266
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
267
|
+
if (index !== -1) {
|
|
268
|
+
confirmations.splice(index, 1);
|
|
269
|
+
c.resolve(true);
|
|
270
|
+
m.redraw();
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}, c.confirmText || 'Confirm'),
|
|
274
|
+
])
|
|
275
|
+
])));
|
|
276
|
+
}
|
|
277
|
+
};
|
|
176
278
|
/**
|
|
177
279
|
* Aggregate of all UI components for easier discovery.
|
|
178
280
|
*/
|
|
179
281
|
export const MoriaUI = {
|
|
180
282
|
Toaster,
|
|
181
283
|
Modal,
|
|
284
|
+
ConfirmationRegistry,
|
|
182
285
|
toast,
|
|
286
|
+
confirm,
|
|
183
287
|
};
|
|
184
288
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -229,12 +229,140 @@ export const Modal: m.Component<ModalAttrs> = {
|
|
|
229
229
|
},
|
|
230
230
|
};
|
|
231
231
|
|
|
232
|
+
// ─── Confirmation ──────────────────────────────────────
|
|
233
|
+
|
|
234
|
+
export interface ConfirmationOptions {
|
|
235
|
+
title?: string;
|
|
236
|
+
message: string;
|
|
237
|
+
confirmText?: string;
|
|
238
|
+
cancelText?: string;
|
|
239
|
+
type?: 'info' | 'warning' | 'danger';
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
interface Confirmation extends ConfirmationOptions {
|
|
243
|
+
id: string;
|
|
244
|
+
resolve: (value: boolean) => void;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const confirmations: Confirmation[] = [];
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Show a confirmation dialog.
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```ts
|
|
254
|
+
* import { confirm } from '@moriajs/ui';
|
|
255
|
+
*
|
|
256
|
+
* const confirmed = await confirm({
|
|
257
|
+
* title: 'Delete User',
|
|
258
|
+
* message: 'Are you sure you want to delete this user? This action cannot be undone.',
|
|
259
|
+
* confirmText: 'Delete',
|
|
260
|
+
* type: 'danger',
|
|
261
|
+
* });
|
|
262
|
+
*
|
|
263
|
+
* if (confirmed) {
|
|
264
|
+
* // Proceed with deletion
|
|
265
|
+
* }
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
export const confirm = (options: string | ConfirmationOptions): Promise<boolean> => {
|
|
269
|
+
const config: ConfirmationOptions = typeof options === 'string' ? { message: options } : options;
|
|
270
|
+
const id = `confirm-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
271
|
+
|
|
272
|
+
return new Promise((resolve) => {
|
|
273
|
+
confirmations.push({
|
|
274
|
+
...config,
|
|
275
|
+
id,
|
|
276
|
+
resolve,
|
|
277
|
+
});
|
|
278
|
+
m.redraw();
|
|
279
|
+
});
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* ConfirmationRegistry component.
|
|
284
|
+
* Mount once in your app layout to handle imperative confirmation calls.
|
|
285
|
+
*/
|
|
286
|
+
export const ConfirmationRegistry: m.Component = {
|
|
287
|
+
view() {
|
|
288
|
+
return m(
|
|
289
|
+
'.moria-confirmation-registry',
|
|
290
|
+
confirmations.map((c) =>
|
|
291
|
+
m(Modal, {
|
|
292
|
+
isOpen: true,
|
|
293
|
+
title: c.title || 'Confirm',
|
|
294
|
+
onClose: () => {
|
|
295
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
296
|
+
if (index !== -1) {
|
|
297
|
+
confirmations.splice(index, 1);
|
|
298
|
+
c.resolve(false);
|
|
299
|
+
m.redraw();
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
}, [
|
|
303
|
+
m('p', { style: { marginBottom: '1.5rem', color: '#374151' } }, c.message),
|
|
304
|
+
m('.moria-modal-actions', {
|
|
305
|
+
style: {
|
|
306
|
+
display: 'flex',
|
|
307
|
+
justifyContent: 'flex-end',
|
|
308
|
+
gap: '0.75rem',
|
|
309
|
+
}
|
|
310
|
+
}, [
|
|
311
|
+
m('button', {
|
|
312
|
+
style: {
|
|
313
|
+
padding: '0.5rem 1rem',
|
|
314
|
+
borderRadius: '0.375rem',
|
|
315
|
+
border: '1px solid #d1d5db',
|
|
316
|
+
background: '#fff',
|
|
317
|
+
color: '#374151',
|
|
318
|
+
cursor: 'pointer',
|
|
319
|
+
fontSize: '0.875rem',
|
|
320
|
+
fontWeight: '500',
|
|
321
|
+
},
|
|
322
|
+
onclick: () => {
|
|
323
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
324
|
+
if (index !== -1) {
|
|
325
|
+
confirmations.splice(index, 1);
|
|
326
|
+
c.resolve(false);
|
|
327
|
+
m.redraw();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}, c.cancelText || 'Cancel'),
|
|
331
|
+
m('button', {
|
|
332
|
+
style: {
|
|
333
|
+
padding: '0.5rem 1rem',
|
|
334
|
+
borderRadius: '0.375rem',
|
|
335
|
+
border: 'none',
|
|
336
|
+
background: c.type === 'danger' ? '#dc2626' : (c.type === 'warning' ? '#d97706' : '#2563eb'),
|
|
337
|
+
color: '#fff',
|
|
338
|
+
cursor: 'pointer',
|
|
339
|
+
fontSize: '0.875rem',
|
|
340
|
+
fontWeight: '500',
|
|
341
|
+
},
|
|
342
|
+
onclick: () => {
|
|
343
|
+
const index = confirmations.findIndex((conf) => conf.id === c.id);
|
|
344
|
+
if (index !== -1) {
|
|
345
|
+
confirmations.splice(index, 1);
|
|
346
|
+
c.resolve(true);
|
|
347
|
+
m.redraw();
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}, c.confirmText || 'Confirm'),
|
|
351
|
+
])
|
|
352
|
+
])
|
|
353
|
+
)
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
|
|
232
358
|
/**
|
|
233
359
|
* Aggregate of all UI components for easier discovery.
|
|
234
360
|
*/
|
|
235
361
|
export const MoriaUI = {
|
|
236
362
|
Toaster,
|
|
237
363
|
Modal,
|
|
364
|
+
ConfirmationRegistry,
|
|
238
365
|
toast,
|
|
366
|
+
confirm,
|
|
239
367
|
};
|
|
240
368
|
|