@dappworks/kit 0.4.175 → 0.4.177

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/StorageState-qzikHBY8.d.ts +66 -0
  2. package/dist/aiem.d.mts +4 -4
  3. package/dist/aiem.mjs +3 -1228
  4. package/dist/aiem.mjs.map +1 -1
  5. package/dist/chunk-2EXDWOHY.mjs +58 -0
  6. package/dist/chunk-3DOB34HY.mjs +292 -0
  7. package/dist/chunk-3DOB34HY.mjs.map +1 -0
  8. package/dist/{chunk-3O7QI47S.mjs → chunk-3HD22664.mjs} +2 -2
  9. package/dist/chunk-5JMONDHE.mjs +436 -0
  10. package/dist/chunk-5JMONDHE.mjs.map +1 -0
  11. package/dist/chunk-L6XS2K2K.mjs +76 -0
  12. package/dist/chunk-L6XS2K2K.mjs.map +1 -0
  13. package/dist/{chunk-AIZ7XDNV.mjs → chunk-TQNAAA4I.mjs} +22 -21
  14. package/dist/chunk-TQNAAA4I.mjs.map +1 -0
  15. package/dist/{chunk-GKK6EXKY.mjs → chunk-XSLAZWOE.mjs} +4 -4
  16. package/dist/dev.d.mts +3 -3
  17. package/dist/dev.mjs +2 -2
  18. package/dist/experimental.d.mts +3 -3
  19. package/dist/experimental.mjs +1 -1
  20. package/dist/form.d.mts +15 -15
  21. package/dist/form.mjs +2 -2
  22. package/dist/form.mjs.map +1 -1
  23. package/dist/index.d.mts +6 -67
  24. package/dist/index.mjs +3 -291
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/inspector.d.mts +2 -2
  27. package/dist/inspector.mjs +1 -1
  28. package/dist/jsontable.d.mts +8 -8
  29. package/dist/jsontable.mjs +4 -4
  30. package/dist/metrics.d.mts +15 -15
  31. package/dist/metrics.mjs +4 -4
  32. package/dist/plugins.d.mts +11 -11
  33. package/dist/plugins.mjs +21 -83
  34. package/dist/plugins.mjs.map +1 -1
  35. package/dist/ui.d.mts +7 -7
  36. package/dist/ui.mjs +3 -3
  37. package/dist/utils.mjs +1 -1
  38. package/dist/wallet.d.mts +152 -0
  39. package/dist/wallet.mjs +3631 -0
  40. package/dist/wallet.mjs.map +1 -0
  41. package/package.json +13 -3
  42. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  43. package/dist/chunk-R4SQKVDQ.mjs +0 -35
  44. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-2EXDWOHY.mjs.map} +0 -0
  45. /package/dist/{chunk-3O7QI47S.mjs.map → chunk-3HD22664.mjs.map} +0 -0
  46. /package/dist/{chunk-GKK6EXKY.mjs.map → chunk-XSLAZWOE.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { S as Store } from './root-C3lZnoCI.js';
2
- import React from 'react';
2
+ import React__default from 'react';
3
3
  import { SlotsToClasses, ModalSlots, ButtonProps, SpinnerProps } from '@nextui-org/react';
4
4
  import { T as ThemeType } from './index-CUKoRIdy.js';
5
5
  import * as react_hot_toast from 'react-hot-toast';
@@ -9,7 +9,7 @@ import 'events';
9
9
 
10
10
  declare class ConfirmStore implements Store {
11
11
  sid: string;
12
- provider: () => React.JSX.Element;
12
+ provider: () => React__default.JSX.Element;
13
13
  isOpen: boolean;
14
14
  title?: string;
15
15
  description?: string;
@@ -29,7 +29,7 @@ declare class ConfirmStore implements Store {
29
29
 
30
30
  declare class ToastPlugin implements Store {
31
31
  sid: string;
32
- provider: () => React.JSX.Element;
32
+ provider: () => React__default.JSX.Element;
33
33
  success: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
34
34
  error: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
35
35
  loading: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: react_hot_toast.ToastOptions) => string;
@@ -45,7 +45,7 @@ declare class ToastPlugin implements Store {
45
45
 
46
46
  declare class DialogStore implements Store {
47
47
  sid: string;
48
- provider: () => React.JSX.Element;
48
+ provider: () => React__default.JSX.Element;
49
49
  isOpen: boolean;
50
50
  placement: "center" | "auto" | "top" | "bottom" | "top-center" | "bottom-center";
51
51
  title: string;
@@ -53,7 +53,7 @@ declare class DialogStore implements Store {
53
53
  className: string;
54
54
  classNames?: SlotsToClasses<ModalSlots>;
55
55
  theme: ThemeType;
56
- content: React.ReactNode | ((props: any) => React.ReactNode);
56
+ content: React__default.ReactNode | ((props: any) => React__default.ReactNode);
57
57
  isDismissable: boolean;
58
58
  constructor(args?: Partial<DialogStore>);
59
59
  setData(v: Partial<DialogStore>): void;
@@ -64,15 +64,15 @@ declare class DialogStore implements Store {
64
64
 
65
65
  type GroupOptions = {
66
66
  args?: any[];
67
- title: React.ReactNode;
67
+ title: React__default.ReactNode;
68
68
  }[];
69
69
  type DialogContentUIProps = {
70
70
  className?: string;
71
71
  itemClassName?: string;
72
72
  numberClassName?: string;
73
73
  spinnerProps?: SpinnerProps;
74
- SuccessIcon?: React.ReactNode;
75
- FailureIcon?: React.ReactNode;
74
+ SuccessIcon?: React__default.ReactNode;
75
+ FailureIcon?: React__default.ReactNode;
76
76
  };
77
77
  type StepUIProps = {
78
78
  className?: string;
@@ -81,8 +81,8 @@ type StepUIProps = {
81
81
  numberClassName?: string;
82
82
  activatedNumberClassName?: string;
83
83
  spinnerProps?: SpinnerProps;
84
- SuccessIcon?: React.ReactNode;
85
- FailureIcon?: React.ReactNode;
84
+ SuccessIcon?: React__default.ReactNode;
85
+ FailureIcon?: React__default.ReactNode;
86
86
  };
87
87
 
88
88
  declare class PromiseStateGroup {
@@ -108,7 +108,7 @@ declare class PromiseStateGroup {
108
108
  }>;
109
109
  onNext(): void;
110
110
  onPrevious(): void;
111
- render(props?: StepUIProps): React.JSX.Element;
111
+ render(props?: StepUIProps): React__default.JSX.Element;
112
112
  }
113
113
 
114
114
  export { ConfirmStore, DialogStore, PromiseStateGroup, ToastPlugin };
package/dist/plugins.mjs CHANGED
@@ -1,20 +1,22 @@
1
+ import { DialogStore } from './chunk-L6XS2K2K.mjs';
2
+ export { DialogStore } from './chunk-L6XS2K2K.mjs';
1
3
  export { ToastPlugin } from './chunk-IMOLRP7I.mjs';
2
4
  import { getStyle } from './chunk-K73JTEJQ.mjs';
3
- import { useStore, rootStore } from './chunk-XSGTWROT.mjs';
5
+ import { useStore } from './chunk-XSGTWROT.mjs';
4
6
  import './chunk-K7LFG5BA.mjs';
5
- import { cn } from './chunk-AIZ7XDNV.mjs';
6
- import { __spreadProps, __spreadValues } from './chunk-R4SQKVDQ.mjs';
7
+ import { cn } from './chunk-TQNAAA4I.mjs';
8
+ import { __spreadProps, __spreadValues } from './chunk-2EXDWOHY.mjs';
7
9
  import { makeAutoObservable, makeObservable } from 'mobx';
8
- import React5 from 'react';
10
+ import React3 from 'react';
9
11
  import { observer } from 'mobx-react-lite';
10
12
  import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Button, Spinner } from '@nextui-org/react';
11
13
  import { Check, X } from 'lucide-react';
12
14
 
13
15
  var ConfirmModal = observer(() => {
14
- const rootStore2 = useStore();
15
- const confirmStore = rootStore2.get(ConfirmStore);
16
+ const rootStore = useStore();
17
+ const confirmStore = rootStore.get(ConfirmStore);
16
18
  const { isOpen, title, description, size, className, classNames, cancelBtnProps, okBtnProps } = confirmStore;
17
- return /* @__PURE__ */ React5.createElement(
19
+ return /* @__PURE__ */ React3.createElement(
18
20
  Modal,
19
21
  {
20
22
  isOpen,
@@ -27,7 +29,7 @@ var ConfirmModal = observer(() => {
27
29
  }
28
30
  }
29
31
  },
30
- /* @__PURE__ */ React5.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React5.createElement(React5.Fragment, null, title && /* @__PURE__ */ React5.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React5.createElement(ModalBody, null, /* @__PURE__ */ React5.createElement("div", null, description)), /* @__PURE__ */ React5.createElement(ModalFooter, null, /* @__PURE__ */ React5.createElement(
32
+ /* @__PURE__ */ React3.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React3.createElement(React3.Fragment, null, title && /* @__PURE__ */ React3.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React3.createElement(ModalBody, null, /* @__PURE__ */ React3.createElement("div", null, description)), /* @__PURE__ */ React3.createElement(ModalFooter, null, /* @__PURE__ */ React3.createElement(
31
33
  Button,
32
34
  __spreadProps(__spreadValues({
33
35
  color: "primary",
@@ -40,7 +42,7 @@ var ConfirmModal = observer(() => {
40
42
  confirmStore.onCancel();
41
43
  }
42
44
  })
43
- ), /* @__PURE__ */ React5.createElement(
45
+ ), /* @__PURE__ */ React3.createElement(
44
46
  Button,
45
47
  __spreadProps(__spreadValues({
46
48
  color: "primary",
@@ -59,7 +61,7 @@ var Provider_default = ConfirmModal;
59
61
  var ConfirmStore = class {
60
62
  constructor() {
61
63
  this.sid = "ConfirmStore";
62
- this.provider = () => /* @__PURE__ */ React5.createElement(Provider_default, null);
64
+ this.provider = () => /* @__PURE__ */ React3.createElement(Provider_default, null);
63
65
  this.isOpen = false;
64
66
  this.title = "";
65
67
  this.description = "";
@@ -92,70 +94,6 @@ var ConfirmStore = class {
92
94
  this.okBtnProps = {};
93
95
  }
94
96
  };
95
- var Dialog = observer(() => {
96
- const rootStore2 = useStore();
97
- const modal = rootStore2.get(DialogStore);
98
- const { className, classNames, isOpen, placement, title, size, content, isDismissable } = modal;
99
- const Content = typeof content === "function" ? content : () => content;
100
- return /* @__PURE__ */ React5.createElement(
101
- Modal,
102
- {
103
- isOpen,
104
- size,
105
- placement,
106
- onOpenChange: (open) => {
107
- if (!open) {
108
- modal.close();
109
- }
110
- },
111
- className,
112
- classNames,
113
- isDismissable
114
- },
115
- /* @__PURE__ */ React5.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React5.createElement(React5.Fragment, null, title && /* @__PURE__ */ React5.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React5.createElement(ModalBody, null, /* @__PURE__ */ React5.createElement(Content, null))))
116
- );
117
- });
118
- var Provider_default2 = Dialog;
119
-
120
- // module/Dialog/index.tsx
121
- var DialogStore = class _DialogStore {
122
- constructor(args) {
123
- this.sid = "DialogStore";
124
- this.provider = () => /* @__PURE__ */ React5.createElement(Provider_default2, null);
125
- this.isOpen = false;
126
- this.title = "";
127
- this.size = "md";
128
- this.className = "";
129
- this.theme = "default";
130
- this.content = "";
131
- this.isDismissable = true;
132
- const modalStyle = getStyle((args == null ? void 0 : args.theme) || "default", "Modal");
133
- const classNames = __spreadValues(__spreadValues({}, modalStyle.classNames), args == null ? void 0 : args.classNames);
134
- Object.assign(this, args, { classNames });
135
- makeAutoObservable(this);
136
- }
137
- setData(v) {
138
- Object.assign(this, v);
139
- }
140
- close() {
141
- this.isOpen = false;
142
- this.title = "";
143
- this.content = "";
144
- this.size = "md";
145
- this.isDismissable = true;
146
- }
147
- static show(v) {
148
- const modalStyle = getStyle((v == null ? void 0 : v.theme) || "default", "Modal");
149
- const classNames = __spreadValues(__spreadValues({}, modalStyle.classNames), v == null ? void 0 : v.classNames);
150
- rootStore.get(_DialogStore).setData(__spreadProps(__spreadValues({}, v), {
151
- classNames,
152
- isOpen: true
153
- }));
154
- }
155
- static close() {
156
- rootStore.get(_DialogStore).close();
157
- }
158
- };
159
97
  var DialogContentUI = observer(({
160
98
  group,
161
99
  groupOptions,
@@ -168,10 +106,10 @@ var DialogContentUI = observer(({
168
106
  SuccessIcon,
169
107
  FailureIcon
170
108
  }) => {
171
- return /* @__PURE__ */ React5.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
109
+ return /* @__PURE__ */ React3.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
172
110
  const uiOptions = groupOptions[index];
173
111
  const no = index + 1;
174
- return /* @__PURE__ */ React5.createElement("div", { key: index, className: cn("w-full flex items-center justify-between", itemClassName) }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React5.createElement("div", { className: cn("w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2", numberClassName) }, no), uiOptions == null ? void 0 : uiOptions.title), promiseState.loading.value ? /* @__PURE__ */ React5.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React5.createElement(React5.Fragment, null, promiseState.value && (SuccessIcon || /* @__PURE__ */ React5.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && (FailureIcon || /* @__PURE__ */ React5.createElement(X, { size: 20, color: "red" }))));
112
+ return /* @__PURE__ */ React3.createElement("div", { key: index, className: cn("w-full flex items-center justify-between", itemClassName) }, /* @__PURE__ */ React3.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3.createElement("div", { className: cn("w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2", numberClassName) }, no), uiOptions == null ? void 0 : uiOptions.title), promiseState.loading.value ? /* @__PURE__ */ React3.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React3.createElement(React3.Fragment, null, promiseState.value && (SuccessIcon || /* @__PURE__ */ React3.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && (FailureIcon || /* @__PURE__ */ React3.createElement(X, { size: 20, color: "red" }))));
175
113
  }));
176
114
  });
177
115
  var StepUI = observer(({
@@ -189,10 +127,10 @@ var StepUI = observer(({
189
127
  SuccessIcon,
190
128
  FailureIcon
191
129
  }) => {
192
- return /* @__PURE__ */ React5.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
130
+ return /* @__PURE__ */ React3.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
193
131
  const uiOptions = groupOptions[index];
194
132
  const no = index + 1;
195
- return /* @__PURE__ */ React5.createElement(
133
+ return /* @__PURE__ */ React3.createElement(
196
134
  "div",
197
135
  {
198
136
  key: index,
@@ -202,7 +140,7 @@ var StepUI = observer(({
202
140
  itemClassName
203
141
  )
204
142
  },
205
- /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React5.createElement(
143
+ /* @__PURE__ */ React3.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3.createElement(
206
144
  "div",
207
145
  {
208
146
  className: cn(
@@ -213,7 +151,7 @@ var StepUI = observer(({
213
151
  },
214
152
  no
215
153
  ), uiOptions == null ? void 0 : uiOptions.title),
216
- promiseState.loading.value ? /* @__PURE__ */ React5.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React5.createElement(React5.Fragment, null, promiseState.value && no <= currentCallStepNo && (SuccessIcon || /* @__PURE__ */ React5.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || /* @__PURE__ */ React5.createElement(X, { size: 20, color: "red" })))
154
+ promiseState.loading.value ? /* @__PURE__ */ React3.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React3.createElement(React3.Fragment, null, promiseState.value && no <= currentCallStepNo && (SuccessIcon || /* @__PURE__ */ React3.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || /* @__PURE__ */ React3.createElement(X, { size: 20, color: "red" })))
217
155
  );
218
156
  }));
219
157
  });
@@ -269,7 +207,7 @@ var PromiseStateGroup = class {
269
207
  title: "",
270
208
  size: "md",
271
209
  isDismissable: false,
272
- content: /* @__PURE__ */ React5.createElement(
210
+ content: /* @__PURE__ */ React3.createElement(
273
211
  DialogContentUI,
274
212
  __spreadValues({
275
213
  group: this.group,
@@ -338,7 +276,7 @@ var PromiseStateGroup = class {
338
276
  }
339
277
  }
340
278
  render(props) {
341
- return /* @__PURE__ */ React5.createElement(
279
+ return /* @__PURE__ */ React3.createElement(
342
280
  StepUI,
343
281
  __spreadValues({
344
282
  group: this.group,
@@ -349,6 +287,6 @@ var PromiseStateGroup = class {
349
287
  }
350
288
  };
351
289
 
352
- export { ConfirmStore, DialogStore, PromiseStateGroup };
290
+ export { ConfirmStore, PromiseStateGroup };
353
291
  //# sourceMappingURL=out.js.map
354
292
  //# sourceMappingURL=plugins.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../module/Confirm/index.tsx","../module/Confirm/Provider.tsx","../module/Dialog/index.tsx","../module/Dialog/Provider.tsx","../module/PromiseStateGroup/index.tsx","../module/PromiseStateGroup/ui.tsx"],"names":["rootStore","React","makeAutoObservable","Modal","ModalBody","ModalContent","ModalHeader","observer","Provider_default"],"mappings":"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","sourcesContent":["import { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable } from \"mobx\";\nimport Provider from \"./Provider\";\nimport React from \"react\";\nimport { ButtonProps, ModalSlots, SlotsToClasses } from \"@nextui-org/react\";\nimport { getStyle, ThemeType } from \"../../themes\";\n\nexport class ConfirmStore implements Store {\n sid = 'ConfirmStore';\n provider = () => <Provider />;\n\n isOpen: boolean = false;\n title?: string = '';\n description?: string = '';\n size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl' = 'md';\n className: string = '';\n classNames?: SlotsToClasses<ModalSlots>;\n theme: ThemeType = \"default\";\n cancelBtnProps?: ButtonProps = {}\n okBtnProps?: ButtonProps = {}\n\n constructor() {\n makeAutoObservable(this);\n }\n\n toggleOpen(val: boolean) {\n this.isOpen = val;\n }\n\n onOk() { }\n\n onCancel() { }\n\n show(confirmProps: Partial<ConfirmStore>) {\n const modalStyle = getStyle(confirmProps?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...confirmProps?.classNames\n }\n Object.assign(this, confirmProps, { classNames });\n\n this.toggleOpen(true);\n }\n\n close() {\n this.isOpen = false;\n this.title = '';\n this.description = '';\n this.size = 'md';\n this.cancelBtnProps = {}\n this.okBtnProps = {}\n }\n}\n","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@nextui-org/react';\nimport { useStore } from \"../../store\";\nimport { ConfirmStore } from \".\";\n\nconst ConfirmModal = observer(() => {\n const rootStore = useStore();\n const confirmStore = rootStore.get(ConfirmStore);\n const { isOpen, title, description, size, className, classNames, cancelBtnProps, okBtnProps } = confirmStore;\n return (\n <Modal\n isOpen={isOpen}\n size={size}\n className={className}\n classNames={classNames}\n onOpenChange={(open: boolean) => {\n if (!open) {\n confirmStore.close();\n }\n }}\n >\n <ModalContent className=\"max-h-screen overflow-auto\">\n {() => (\n <>\n {title && <ModalHeader className=\"flex flex-col gap-1\">{title}</ModalHeader>}\n <ModalBody>\n <div>{description}</div>\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"primary\"\n variant=\"flat\"\n size=\"sm\"\n children=\"Cancel\"\n {...cancelBtnProps}\n onClick={() => {\n confirmStore.close();\n confirmStore.onCancel();\n }}\n />\n <Button\n color=\"primary\"\n size=\"sm\"\n children=\"Apply\"\n {...okBtnProps}\n onPress={() => {\n confirmStore.close();\n confirmStore.onOk();\n }}\n />\n </ModalFooter>\n </>\n )}\n </ModalContent>\n </Modal>\n );\n});\n\nexport default ConfirmModal;","import React from \"react\";\nimport { makeAutoObservable } from \"mobx\";\nimport { rootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport Provider from \"./Provider\";\nimport { ModalSlots, SlotsToClasses } from \"@nextui-org/react\";\nimport { getStyle, ThemeType } from \"../../themes\";\n\nexport class DialogStore implements Store {\n sid = \"DialogStore\";\n provider = () => <Provider />;\n\n isOpen = false;\n placement: \"center\" | \"auto\" | \"top\" | \"bottom\" | \"top-center\" | \"bottom-center\";\n title = \"\";\n size: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\" | \"xs\" | \"3xl\" | \"4xl\" | \"5xl\" = \"md\";\n className: string = \"\";\n classNames?: SlotsToClasses<ModalSlots>;\n theme: ThemeType = \"default\";\n content: React.ReactNode | ((props: any) => React.ReactNode) = \"\";\n isDismissable = true;\n\n constructor(args?: Partial<DialogStore>) {\n const modalStyle = getStyle(args?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...args?.classNames\n }\n Object.assign(this, args, { classNames });\n makeAutoObservable(this);\n }\n\n\n setData(v: Partial<DialogStore>) {\n Object.assign(this, v);\n }\n\n close() {\n this.isOpen = false;\n this.title = \"\";\n this.content = \"\";\n this.size = \"md\";\n this.isDismissable = true;\n }\n\n static show(v: Partial<DialogStore>) {\n const modalStyle = getStyle(v?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...v?.classNames\n }\n rootStore.get(DialogStore).setData({\n ...v,\n classNames,\n isOpen: true,\n\n });\n }\n\n static close() {\n rootStore.get(DialogStore).close();\n }\n}\n","import React from \"react\";\nimport { Modal, ModalBody, ModalContent, ModalHeader } from \"@nextui-org/react\";\nimport { observer } from \"mobx-react-lite\";\nimport { DialogStore } from \".\";\nimport { useStore } from \"../../store/index\";\n\nconst Dialog = observer(() => {\n const rootStore = useStore();\n const modal = rootStore.get(DialogStore);\n const { className, classNames, isOpen, placement, title, size, content, isDismissable } = modal;\n const Content = typeof content === 'function' ? content : () => content;\n return (\n <Modal\n isOpen={isOpen}\n size={size}\n placement={placement}\n onOpenChange={(open: boolean) => {\n if (!open) {\n modal.close();\n }\n }}\n className={className}\n classNames={classNames}\n isDismissable={isDismissable}\n >\n <ModalContent className=\"max-h-screen overflow-auto\">\n {() => (\n <>\n {title && <ModalHeader className=\"flex flex-col gap-1\">{title}</ModalHeader>}\n <ModalBody>\n <Content />\n </ModalBody>\n </>\n )}\n </ModalContent>\n </Modal >\n );\n});\n\nexport default Dialog;","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { DialogStore } from '../Dialog';\nimport { DialogContentUI, DialogContentUIProps, GroupOptions, StepUI, StepUIProps } from './ui';\nimport { makeObservable } from 'mobx';\n\nexport class PromiseStateGroup {\n group: PromiseState<any, any>[] = [];\n groupOptions: GroupOptions = [];\n currentCallStepNo = 1;\n\n constructor({ group, groupOptions = [] }: { group: PromiseState<any, any>[]; groupOptions: GroupOptions }) {\n group.forEach((p) => {\n Object.assign(p, {\n autoAlert: false,\n value: p.defaultValue,\n errMsg: '',\n });\n });\n Object.assign(this, {\n group,\n groupOptions\n });\n makeObservable(this, {\n currentCallStepNo: true,\n });\n }\n\n async call() {\n let result: any[] = [];\n let errMsg: string = '';\n for (let i = 0; i < this.group.length; i++) {\n this.currentCallStepNo = i + 1;\n const promiseState = this.group[i];\n if (promiseState) {\n try {\n const options = this.groupOptions[i];\n const args = options?.args || [];\n const data = await promiseState.call(...args);\n result.push(data);\n } catch (e) {\n errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n break;\n }\n }\n }\n return {\n result,\n errMsg,\n };\n }\n\n showDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps) {\n DialogStore.show({\n title: '',\n size: 'md',\n isDismissable: false,\n content:\n <DialogContentUI\n group={this.group}\n groupOptions={this.groupOptions}\n {...dialogContentOptions}\n />,\n ...dialogOptions,\n });\n return this;\n }\n\n closeDialog() {\n DialogStore.close();\n }\n\n async stepCall(stepNo: number) {\n const index = stepNo - 1;\n if (index < 0 || index >= this.group.length) {\n return {\n result: null,\n errMsg: 'Invalid step number',\n };\n }\n\n const prePromiseState = this.group[index - 1];\n if (prePromiseState && prePromiseState.errMsg) {\n return {\n result: null,\n errMsg: prePromiseState.errMsg,\n };\n }\n\n this.currentCallStepNo = stepNo;\n\n const promiseState = this.group[index];\n if (promiseState && !promiseState.loading.value) {\n const options = this.groupOptions[index];\n const args = options?.args || [];\n try {\n const result = await promiseState.call(...args);\n return {\n result,\n errMsg: '',\n };\n } catch (e) {\n let errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n return {\n result: null,\n errMsg,\n };\n }\n }\n }\n\n onNext() {\n if (this.currentCallStepNo < this.group.length) {\n this.currentCallStepNo += 1;\n }\n }\n\n onPrevious() {\n if (this.currentCallStepNo > 1) {\n\n // reset value and errMsg of the current promiseState\n const index = this.currentCallStepNo - 1;\n const promiseState = this.group[index];\n if (promiseState) {\n promiseState.value = '';\n promiseState.errMsg = '';\n }\n\n // go to the previous step\n this.currentCallStepNo -= 1;\n }\n }\n\n render(props?: StepUIProps) {\n return (\n <StepUI\n group={this.group}\n groupOptions={this.groupOptions}\n currentCallStepNo={this.currentCallStepNo}\n {...props}\n />\n )\n }\n}\n","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { Spinner, SpinnerProps } from '@nextui-org/react';\nimport { Check, X } from 'lucide-react';\nimport { observer } from 'mobx-react-lite';\nimport { cn } from '../../lib/utils';\n\nexport type GroupOptions = {\n args?: any[];\n title: React.ReactNode;\n}[];\n\n\nexport type DialogContentUIProps = {\n className?: string;\n itemClassName?: string;\n numberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const DialogContentUI = observer(({\n group,\n groupOptions,\n className,\n itemClassName,\n numberClassName,\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n} & DialogContentUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div key={index} className={cn(\"w-full flex items-center justify-between\", itemClassName)}>\n <div className='flex items-center justify-between'>\n <div className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2', numberClassName)}>{no}</div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n\nexport type StepUIProps = {\n className?: string;\n itemClassName?: string;\n activatedItemClassName?: string;\n numberClassName?: string;\n activatedNumberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const StepUI = observer(({\n group,\n groupOptions,\n currentCallStepNo,\n className,\n itemClassName,\n activatedItemClassName = '',\n numberClassName,\n activatedNumberClassName = '',\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n currentCallStepNo?: number;\n} & StepUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div\n key={index}\n className={cn(\"w-full flex items-center justify-between text-[#909091] dark:text-[#6b6c6c]\",\n no <= currentCallStepNo ? `text-[#000] dark:text-[#fff] ${activatedItemClassName}` : '',\n itemClassName\n )}\n >\n <div className='flex items-center justify-between'>\n <div\n className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#909091] dark:border-[#6b6c6c] mr-2',\n no <= currentCallStepNo ? `border-[#000] dark:border-[#fff] ${activatedNumberClassName}` : '',\n numberClassName\n )}\n >\n {no}\n </div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && no <= currentCallStepNo && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n"]}
1
+ {"version":3,"sources":["../module/Confirm/index.tsx","../module/Confirm/Provider.tsx","../module/PromiseStateGroup/index.tsx","../module/PromiseStateGroup/ui.tsx"],"names":["React","observer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,0BAA0B;;;ACDnC,OAAO,WAAW;AAClB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,OAAO,WAAW,cAAc,aAAa,mBAAmB;AAIjF,IAAM,eAAe,SAAS,MAAM;AAClC,QAAM,YAAY,SAAS;AAC3B,QAAM,eAAe,UAAU,IAAI,YAAY;AAC/C,QAAM,EAAE,QAAQ,OAAO,aAAa,MAAM,WAAW,YAAY,gBAAgB,WAAW,IAAI;AAChG,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,CAAC,SAAkB;AAC/B,YAAI,CAAC,MAAM;AACT,uBAAa,MAAM;AAAA,QACrB;AAAA,MACF;AAAA;AAAA,IAEA,oCAAC,gBAAa,WAAU,gCACrB,MACC,0DACG,SAAS,oCAAC,eAAY,WAAU,yBAAuB,KAAM,GAC9D,oCAAC,iBACC,oCAAC,aAAK,WAAY,CACpB,GACA,oCAAC,mBACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,UAAS;AAAA,SACL,iBALL;AAAA,QAMC,SAAS,MAAM;AACb,uBAAa,MAAM;AACnB,uBAAa,SAAS;AAAA,QACxB;AAAA;AAAA,IACF,GACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,UAAS;AAAA,SACL,aAJL;AAAA,QAKC,SAAS,MAAM;AACb,uBAAa,MAAM;AACnB,uBAAa,KAAK;AAAA,QACpB;AAAA;AAAA,IACF,CACF,CACF,CAEJ;AAAA,EACF;AAEJ,CAAC;AAED,IAAO,mBAAQ;;;ADxDf,OAAOA,YAAW;AAIX,IAAM,eAAN,MAAoC;AAAA,EAczC,cAAc;AAbd,eAAM;AACN,oBAAW,MAAM,gBAAAA,OAAA,cAAC,sBAAS;AAE3B,kBAAkB;AAClB,iBAAiB;AACjB,uBAAuB;AACvB,gBAAkF;AAClF,qBAAoB;AAEpB,iBAAmB;AACnB,0BAA+B,CAAC;AAChC,sBAA2B,CAAC;AAG1B,uBAAmB,IAAI;AAAA,EACzB;AAAA,EAEA,WAAW,KAAc;AACvB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAO;AAAA,EAAE;AAAA,EAET,WAAW;AAAA,EAAE;AAAA,EAEb,KAAK,cAAqC;AACxC,UAAM,aAAa,UAAS,6CAAc,UAAS,WAAW,OAAO;AACrE,UAAM,aAAa,kCACd,WAAW,aACX,6CAAc;AAEnB,WAAO,OAAO,MAAM,cAAc,EAAE,WAAW,CAAC;AAEhD,SAAK,WAAW,IAAI;AAAA,EACtB;AAAA,EAEA,QAAQ;AACN,SAAK,SAAS;AACd,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,OAAO;AACZ,SAAK,iBAAiB,CAAC;AACvB,SAAK,aAAa,CAAC;AAAA,EACrB;AACF;;;AEpDA,OAAOA,YAAW;;;ACAlB,OAAOA,YAAW;AAElB,SAAS,eAA6B;AACtC,SAAS,OAAO,SAAS;AACzB,SAAS,YAAAC,iBAAgB;AAkBlB,IAAM,kBAAkBA,UAAS,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,MAG6B;AAC3B,SACE,gBAAAD,OAAA,cAAC,SAAI,WAAW,GAAG,aAAa,SAAS,KACtC,MAAM,IAAI,CAAC,cAAc,UAAU;AAClC,UAAM,YAAY,aAAa,KAAK;AACpC,UAAM,KAAK,QAAQ;AACnB,WACE,gBAAAA,OAAA,cAAC,SAAI,KAAK,OAAO,WAAW,GAAG,4CAA4C,aAAa,KACtF,gBAAAA,OAAA,cAAC,SAAI,WAAU,uCACb,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,sHAAsH,eAAe,KAAI,EAAG,GAC9J,uCAAW,KACd,GACC,aAAa,QAAQ,QACpB,gBAAAA,OAAA,cAAC,4BAAY,aAAc,IAE3B,gBAAAA,OAAA,cAAAA,OAAA,gBACG,aAAa,UAAU,eAAe,gBAAAA,OAAA,cAAC,SAAM,MAAM,IAAI,OAAM,WAAU,IACvE,aAAa,WAAW,eAAe,gBAAAA,OAAA,cAAC,KAAE,MAAM,IAAI,OAAM,OAAM,EACnE,CAEJ;AAAA,EAEJ,CAAC,CACH;AAEJ,CAAC;AAcM,IAAM,SAASC,UAAS,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,yBAAyB;AAAA,EACzB;AAAA,EACA,2BAA2B;AAAA,EAC3B,eAAe;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,MAIoB;AAClB,SACE,gBAAAD,OAAA,cAAC,SAAI,WAAW,GAAG,aAAa,SAAS,KACtC,MAAM,IAAI,CAAC,cAAc,UAAU;AAClC,UAAM,YAAY,aAAa,KAAK;AACpC,UAAM,KAAK,QAAQ;AACnB,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,WAAW;AAAA,UAAG;AAAA,UACZ,MAAM,oBAAoB,gCAAgC,sBAAsB,KAAK;AAAA,UACrF;AAAA,QACF;AAAA;AAAA,MAEA,gBAAAA,OAAA,cAAC,SAAI,WAAU,uCACb,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YAAG;AAAA,YACZ,MAAM,oBAAoB,oCAAoC,wBAAwB,KAAK;AAAA,YAC3F;AAAA,UACF;AAAA;AAAA,QAEC;AAAA,MACH,GACC,uCAAW,KACd;AAAA,MACC,aAAa,QAAQ,QACpB,gBAAAA,OAAA,cAAC,4BAAY,aAAc,IAE3B,gBAAAA,OAAA,cAAAA,OAAA,gBACG,aAAa,SAAS,MAAM,sBAAsB,eAAe,gBAAAA,OAAA,cAAC,SAAM,MAAM,IAAI,OAAM,WAAU,IAClG,aAAa,UAAU,MAAM,sBAAsB,eAAe,gBAAAA,OAAA,cAAC,KAAE,MAAM,IAAI,OAAM,OAAM,EAC9F;AAAA,IAEJ;AAAA,EAEJ,CAAC,CACH;AAEJ,CAAC;;;AD/HD,SAAS,sBAAsB;AAExB,IAAM,oBAAN,MAAwB;AAAA,EAK7B,YAAY,EAAE,OAAO,eAAe,CAAC,EAAE,GAAoE;AAJ3G,iBAAkC,CAAC;AACnC,wBAA6B,CAAC;AAC9B,6BAAoB;AAGlB,UAAM,QAAQ,CAAC,MAAM;AACnB,aAAO,OAAO,GAAG;AAAA,QACf,WAAW;AAAA,QACX,OAAO,EAAE;AAAA,QACT,QAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AACD,WAAO,OAAO,MAAM;AAAA,MAClB;AAAA,MACA;AAAA,IACF,CAAC;AACD,mBAAe,MAAM;AAAA,MACnB,mBAAmB;AAAA,IACrB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OAAO;AACX,QAAI,SAAgB,CAAC;AACrB,QAAI,SAAiB;AACrB,aAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,WAAK,oBAAoB,IAAI;AAC7B,YAAM,eAAe,KAAK,MAAM,CAAC;AACjC,UAAI,cAAc;AAChB,YAAI;AACF,gBAAM,UAAU,KAAK,aAAa,CAAC;AACnC,gBAAM,QAAO,mCAAS,SAAQ,CAAC;AAC/B,gBAAM,OAAO,MAAM,aAAa,KAAK,GAAG,IAAI;AAC5C,iBAAO,KAAK,IAAI;AAAA,QAClB,SAAS,GAAG;AACV,mBAAS,EAAE;AACX,eAAI,iCAAQ,SAAS,iCAAgC,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,eAAe,GAAG;AACtG,qBAAS;AAAA,UACX;AACA,uBAAa,SAAS;AACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,WACE,eACA,sBAA6C;AAC7C,gBAAY,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,eAAe;AAAA,MACf,SACE,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,KAAK;AAAA,UACZ,cAAc,KAAK;AAAA,WACf;AAAA,MACN;AAAA,OACC,cACJ;AACD,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,gBAAY,MAAM;AAAA,EACpB;AAAA,EAEA,MAAM,SAAS,QAAgB;AAC7B,UAAM,QAAQ,SAAS;AACvB,QAAI,QAAQ,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC3C,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,UAAM,kBAAkB,KAAK,MAAM,QAAQ,CAAC;AAC5C,QAAI,mBAAmB,gBAAgB,QAAQ;AAC7C,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ,gBAAgB;AAAA,MAC1B;AAAA,IACF;AAEA,SAAK,oBAAoB;AAEzB,UAAM,eAAe,KAAK,MAAM,KAAK;AACrC,QAAI,gBAAgB,CAAC,aAAa,QAAQ,OAAO;AAC/C,YAAM,UAAU,KAAK,aAAa,KAAK;AACvC,YAAM,QAAO,mCAAS,SAAQ,CAAC;AAC/B,UAAI;AACF,cAAM,SAAS,MAAM,aAAa,KAAK,GAAG,IAAI;AAC9C,eAAO;AAAA,UACL;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,SAAS,GAAG;AACV,YAAI,SAAS,EAAE;AACf,aAAI,iCAAQ,SAAS,iCAAgC,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,eAAe,GAAG;AACtG,mBAAS;AAAA,QACX;AACA,qBAAa,SAAS;AACtB,eAAO;AAAA,UACL,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,QAAI,KAAK,oBAAoB,KAAK,MAAM,QAAQ;AAC9C,WAAK,qBAAqB;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,aAAa;AACX,QAAI,KAAK,oBAAoB,GAAG;AAG9B,YAAM,QAAQ,KAAK,oBAAoB;AACvC,YAAM,eAAe,KAAK,MAAM,KAAK;AACrC,UAAI,cAAc;AAChB,qBAAa,QAAQ;AACrB,qBAAa,SAAS;AAAA,MACxB;AAGA,WAAK,qBAAqB;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,OAAO,OAAqB;AAC1B,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,KAAK;AAAA,QACZ,cAAc,KAAK;AAAA,QACnB,mBAAmB,KAAK;AAAA,SACpB;AAAA,IACN;AAAA,EAEJ;AACF","sourcesContent":["import { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable } from \"mobx\";\nimport Provider from \"./Provider\";\nimport React from \"react\";\nimport { ButtonProps, ModalSlots, SlotsToClasses } from \"@nextui-org/react\";\nimport { getStyle, ThemeType } from \"../../themes\";\n\nexport class ConfirmStore implements Store {\n sid = 'ConfirmStore';\n provider = () => <Provider />;\n\n isOpen: boolean = false;\n title?: string = '';\n description?: string = '';\n size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl' = 'md';\n className: string = '';\n classNames?: SlotsToClasses<ModalSlots>;\n theme: ThemeType = \"default\";\n cancelBtnProps?: ButtonProps = {}\n okBtnProps?: ButtonProps = {}\n\n constructor() {\n makeAutoObservable(this);\n }\n\n toggleOpen(val: boolean) {\n this.isOpen = val;\n }\n\n onOk() { }\n\n onCancel() { }\n\n show(confirmProps: Partial<ConfirmStore>) {\n const modalStyle = getStyle(confirmProps?.theme || 'default', 'Modal');\n const classNames = {\n ...modalStyle.classNames,\n ...confirmProps?.classNames\n }\n Object.assign(this, confirmProps, { classNames });\n\n this.toggleOpen(true);\n }\n\n close() {\n this.isOpen = false;\n this.title = '';\n this.description = '';\n this.size = 'md';\n this.cancelBtnProps = {}\n this.okBtnProps = {}\n }\n}\n","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@nextui-org/react';\nimport { useStore } from \"../../store\";\nimport { ConfirmStore } from \".\";\n\nconst ConfirmModal = observer(() => {\n const rootStore = useStore();\n const confirmStore = rootStore.get(ConfirmStore);\n const { isOpen, title, description, size, className, classNames, cancelBtnProps, okBtnProps } = confirmStore;\n return (\n <Modal\n isOpen={isOpen}\n size={size}\n className={className}\n classNames={classNames}\n onOpenChange={(open: boolean) => {\n if (!open) {\n confirmStore.close();\n }\n }}\n >\n <ModalContent className=\"max-h-screen overflow-auto\">\n {() => (\n <>\n {title && <ModalHeader className=\"flex flex-col gap-1\">{title}</ModalHeader>}\n <ModalBody>\n <div>{description}</div>\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"primary\"\n variant=\"flat\"\n size=\"sm\"\n children=\"Cancel\"\n {...cancelBtnProps}\n onClick={() => {\n confirmStore.close();\n confirmStore.onCancel();\n }}\n />\n <Button\n color=\"primary\"\n size=\"sm\"\n children=\"Apply\"\n {...okBtnProps}\n onPress={() => {\n confirmStore.close();\n confirmStore.onOk();\n }}\n />\n </ModalFooter>\n </>\n )}\n </ModalContent>\n </Modal>\n );\n});\n\nexport default ConfirmModal;","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { DialogStore } from '../Dialog';\nimport { DialogContentUI, DialogContentUIProps, GroupOptions, StepUI, StepUIProps } from './ui';\nimport { makeObservable } from 'mobx';\n\nexport class PromiseStateGroup {\n group: PromiseState<any, any>[] = [];\n groupOptions: GroupOptions = [];\n currentCallStepNo = 1;\n\n constructor({ group, groupOptions = [] }: { group: PromiseState<any, any>[]; groupOptions: GroupOptions }) {\n group.forEach((p) => {\n Object.assign(p, {\n autoAlert: false,\n value: p.defaultValue,\n errMsg: '',\n });\n });\n Object.assign(this, {\n group,\n groupOptions\n });\n makeObservable(this, {\n currentCallStepNo: true,\n });\n }\n\n async call() {\n let result: any[] = [];\n let errMsg: string = '';\n for (let i = 0; i < this.group.length; i++) {\n this.currentCallStepNo = i + 1;\n const promiseState = this.group[i];\n if (promiseState) {\n try {\n const options = this.groupOptions[i];\n const args = options?.args || [];\n const data = await promiseState.call(...args);\n result.push(data);\n } catch (e) {\n errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n break;\n }\n }\n }\n return {\n result,\n errMsg,\n };\n }\n\n showDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps) {\n DialogStore.show({\n title: '',\n size: 'md',\n isDismissable: false,\n content:\n <DialogContentUI\n group={this.group}\n groupOptions={this.groupOptions}\n {...dialogContentOptions}\n />,\n ...dialogOptions,\n });\n return this;\n }\n\n closeDialog() {\n DialogStore.close();\n }\n\n async stepCall(stepNo: number) {\n const index = stepNo - 1;\n if (index < 0 || index >= this.group.length) {\n return {\n result: null,\n errMsg: 'Invalid step number',\n };\n }\n\n const prePromiseState = this.group[index - 1];\n if (prePromiseState && prePromiseState.errMsg) {\n return {\n result: null,\n errMsg: prePromiseState.errMsg,\n };\n }\n\n this.currentCallStepNo = stepNo;\n\n const promiseState = this.group[index];\n if (promiseState && !promiseState.loading.value) {\n const options = this.groupOptions[index];\n const args = options?.args || [];\n try {\n const result = await promiseState.call(...args);\n return {\n result,\n errMsg: '',\n };\n } catch (e) {\n let errMsg = e.message;\n if (errMsg?.includes('User rejected the request') || String(e).toLowerCase().includes('user rejected')) {\n errMsg = 'User rejected the request';\n }\n promiseState.errMsg = errMsg;\n return {\n result: null,\n errMsg,\n };\n }\n }\n }\n\n onNext() {\n if (this.currentCallStepNo < this.group.length) {\n this.currentCallStepNo += 1;\n }\n }\n\n onPrevious() {\n if (this.currentCallStepNo > 1) {\n\n // reset value and errMsg of the current promiseState\n const index = this.currentCallStepNo - 1;\n const promiseState = this.group[index];\n if (promiseState) {\n promiseState.value = '';\n promiseState.errMsg = '';\n }\n\n // go to the previous step\n this.currentCallStepNo -= 1;\n }\n }\n\n render(props?: StepUIProps) {\n return (\n <StepUI\n group={this.group}\n groupOptions={this.groupOptions}\n currentCallStepNo={this.currentCallStepNo}\n {...props}\n />\n )\n }\n}\n","import React from 'react';\nimport { PromiseState } from '../../store/standard/PromiseState';\nimport { Spinner, SpinnerProps } from '@nextui-org/react';\nimport { Check, X } from 'lucide-react';\nimport { observer } from 'mobx-react-lite';\nimport { cn } from '../../lib/utils';\n\nexport type GroupOptions = {\n args?: any[];\n title: React.ReactNode;\n}[];\n\n\nexport type DialogContentUIProps = {\n className?: string;\n itemClassName?: string;\n numberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const DialogContentUI = observer(({\n group,\n groupOptions,\n className,\n itemClassName,\n numberClassName,\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n} & DialogContentUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div key={index} className={cn(\"w-full flex items-center justify-between\", itemClassName)}>\n <div className='flex items-center justify-between'>\n <div className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2', numberClassName)}>{no}</div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n\n\nexport type StepUIProps = {\n className?: string;\n itemClassName?: string;\n activatedItemClassName?: string;\n numberClassName?: string;\n activatedNumberClassName?: string;\n spinnerProps?: SpinnerProps;\n SuccessIcon?: React.ReactNode;\n FailureIcon?: React.ReactNode;\n};\n\nexport const StepUI = observer(({\n group,\n groupOptions,\n currentCallStepNo,\n className,\n itemClassName,\n activatedItemClassName = '',\n numberClassName,\n activatedNumberClassName = '',\n spinnerProps = {\n size: 'sm'\n },\n SuccessIcon,\n FailureIcon\n}: {\n group: PromiseState<any, any>[];\n groupOptions: GroupOptions;\n currentCallStepNo?: number;\n} & StepUIProps) => {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {group.map((promiseState, index) => {\n const uiOptions = groupOptions[index];\n const no = index + 1;\n return (\n <div\n key={index}\n className={cn(\"w-full flex items-center justify-between text-[#909091] dark:text-[#6b6c6c]\",\n no <= currentCallStepNo ? `text-[#000] dark:text-[#fff] ${activatedItemClassName}` : '',\n itemClassName\n )}\n >\n <div className='flex items-center justify-between'>\n <div\n className={cn('w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#909091] dark:border-[#6b6c6c] mr-2',\n no <= currentCallStepNo ? `border-[#000] dark:border-[#fff] ${activatedNumberClassName}` : '',\n numberClassName\n )}\n >\n {no}\n </div>\n {uiOptions?.title}\n </div>\n {promiseState.loading.value ? (\n <Spinner {...spinnerProps} />\n ) : (\n <>\n {promiseState.value && no <= currentCallStepNo && (SuccessIcon || <Check size={20} color=\"#605BFF\" />)}\n {promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || <X size={20} color=\"red\" />)}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n});\n"]}
package/dist/ui.d.mts CHANGED
@@ -1,29 +1,29 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { SlotsToClasses } from '@nextui-org/react';
3
3
 
4
4
  declare const PanelCard: ({ className, title, content }: {
5
5
  className?: string;
6
- title: React.ReactNode;
7
- content?: React.ReactNode;
8
- }) => React.JSX.Element;
6
+ title: React__default.ReactNode;
7
+ content?: React__default.ReactNode;
8
+ }) => React__default.JSX.Element;
9
9
 
10
10
  declare const Copy: ({ className, value, iconSize, iconClassName }: {
11
11
  className?: string;
12
12
  value: string;
13
13
  iconSize?: number;
14
14
  iconClassName?: string;
15
- }) => React.JSX.Element;
15
+ }) => React__default.JSX.Element;
16
16
 
17
17
  declare function JSONHighlight({ jsonStr, className }: {
18
18
  jsonStr: string;
19
19
  className?: string;
20
- }): React.JSX.Element;
20
+ }): React__default.JSX.Element;
21
21
 
22
22
  declare const SkeletonBox: ({ line, className, skClassName, skClassNames }: {
23
23
  line?: number;
24
24
  className?: string;
25
25
  skClassName?: string;
26
26
  skClassNames?: SlotsToClasses<"base" | "content">;
27
- }) => React.JSX.Element;
27
+ }) => React__default.JSX.Element;
28
28
 
29
29
  export { Copy, JSONHighlight, PanelCard, SkeletonBox };
package/dist/ui.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { SkeletonBox } from './chunk-3O7QI47S.mjs';
2
- import { cn } from './chunk-AIZ7XDNV.mjs';
3
- import './chunk-R4SQKVDQ.mjs';
1
+ export { SkeletonBox } from './chunk-3HD22664.mjs';
2
+ import { cn } from './chunk-TQNAAA4I.mjs';
3
+ import './chunk-2EXDWOHY.mjs';
4
4
  import React, { useState, useEffect } from 'react';
5
5
  import { Card } from '@nextui-org/react';
6
6
  import copyToClipboard from 'copy-to-clipboard';
package/dist/utils.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  export { cache } from './chunk-7MDKCI65.mjs';
2
2
  export { helper } from './chunk-UPGWJHSO.mjs';
3
3
  import './chunk-K7LFG5BA.mjs';
4
- import './chunk-R4SQKVDQ.mjs';
4
+ import './chunk-2EXDWOHY.mjs';
5
5
  //# sourceMappingURL=out.js.map
6
6
  //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1,152 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+ import { a as PromiseHookData, B as BigNumberState, S as StorageState } from './StorageState-qzikHBY8.js';
4
+ import { S as Store } from './root-C3lZnoCI.js';
5
+ import { WalletClient, PublicClient, HttpTransport, TransactionReceipt } from 'viem';
6
+ import EventEmitter from 'events';
7
+ import { SwitchChainMutate } from 'wagmi/query';
8
+ import * as wagmi from 'wagmi';
9
+ import { Config } from 'wagmi';
10
+ import { Chain } from '@rainbow-me/rainbowkit';
11
+ import * as _rainbow_me_rainbowkit_dist_config_getDefaultConfig from '@rainbow-me/rainbowkit/dist/config/getDefaultConfig';
12
+ import 'mobx';
13
+ import 'bignumber.js';
14
+ import 'typed-emitter';
15
+
16
+ declare const WalletProvider: (({ children, theme, appName }: {
17
+ children: React__default.ReactNode;
18
+ theme?: "dark" | "light";
19
+ appName?: string;
20
+ }) => React__default.JSX.Element) & {
21
+ displayName: string;
22
+ };
23
+
24
+ type NetworkObject = {
25
+ name: string;
26
+ chainId: number;
27
+ rpcUrl: string;
28
+ logoUrl: string;
29
+ explorerUrl: string;
30
+ explorerName: string;
31
+ nativeCoin: string;
32
+ type: 'mainnet' | 'testnet';
33
+ };
34
+ type WalletTransactionHistoryType = {
35
+ chainId: number;
36
+ tx?: string;
37
+ msg: string;
38
+ timestamp: number;
39
+ type: 'Approve' | 'Swap' | 'Liquidity' | 'Transfer';
40
+ status: 'loading' | 'success' | 'fail';
41
+ };
42
+
43
+ declare class WalletStore implements Store {
44
+ sid: string;
45
+ autoObservable: boolean;
46
+ account: `0x${string}`;
47
+ isSuccessDialogOpen: boolean;
48
+ isInSafeApp: boolean;
49
+ isConnect: boolean;
50
+ walletClient: WalletClient;
51
+ event: EventEmitter<[never]>;
52
+ switchChain: SwitchChainMutate<Config, unknown> | undefined;
53
+ updateTicker: number;
54
+ chain: Chain | undefined;
55
+ get supportedChains(): Chain[];
56
+ openConnectModal: any;
57
+ balance: PromiseHookData<() => Promise<BigNumberState>, Promise<BigNumberState>>;
58
+ constructor(args?: Partial<WalletStore>);
59
+ get reconnectOnMount(): boolean;
60
+ use(): void;
61
+ get publicClient(): PublicClient<HttpTransport, Chain, any, any>;
62
+ set(args: Partial<WalletStore>): void;
63
+ toJSON(): {
64
+ account: `0x${string}`;
65
+ };
66
+ prepare(chainId?: number): Promise<WalletStore>;
67
+ waitForTransactionReceipt({ hash }: {
68
+ hash: any;
69
+ }): Promise<TransactionReceipt>;
70
+ static SendTx(...args: Parameters<WalletStore['sendTx']>): Promise<TransactionReceipt>;
71
+ static SendRawTx(...args: Parameters<WalletStore['sendRawTx']>): Promise<TransactionReceipt>;
72
+ sendTx({ chainId, tx, autoAlert, loadingText, successText, onError, historyItem, showSuccessDialog, }: {
73
+ chainId: number | string;
74
+ tx: any;
75
+ autoAlert?: boolean;
76
+ loadingText?: string;
77
+ successText?: string;
78
+ showSuccessDialog?: boolean;
79
+ historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;
80
+ onError?: (error: any) => void;
81
+ }): Promise<TransactionReceipt>;
82
+ sendRawTx({ chainId, address, data, value, autoAlert, onSended, onSuccess, onError, historyItem, loadingText, showSuccessDialog, }: {
83
+ loadingText?: string;
84
+ chainId: number | string;
85
+ address: string;
86
+ data: string | null;
87
+ value?: string;
88
+ autoRefresh?: boolean;
89
+ autoAlert?: boolean;
90
+ historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;
91
+ showTransactionSubmitDialog?: boolean;
92
+ showSuccessDialog?: boolean;
93
+ onSended?: ({ res }: {
94
+ res: TransactionReceipt;
95
+ }) => void;
96
+ onSuccess?: ({ res }: {
97
+ res: TransactionReceipt;
98
+ }) => void;
99
+ onError?: ({ res }: {
100
+ res: TransactionReceipt;
101
+ }) => void;
102
+ }): Promise<TransactionReceipt | undefined>;
103
+ }
104
+
105
+ declare class WalletRpcStore implements Store {
106
+ sid: string;
107
+ autoObservable: boolean;
108
+ curRpc: StorageState<unknown>;
109
+ isAutoSelectRpc: StorageState<unknown>;
110
+ customRpc: string;
111
+ rpcList: StorageState<unknown>;
112
+ showCustomRpc: boolean;
113
+ get currentRpc(): any;
114
+ addCustomRpc(): string;
115
+ addToMetamask(url: any): Promise<void>;
116
+ refresh(): void;
117
+ latencyColor(latency: number): "text-red-500" | "text-green-500" | "text-yellow-500";
118
+ testRpcFunction(url: string): Promise<{
119
+ url: string;
120
+ lentency: number;
121
+ height: number;
122
+ }>;
123
+ testRpc(): void;
124
+ removeRpc(name: string): void;
125
+ scoreIcon(score: number): React.JSX.Element;
126
+ get wallet(): WalletStore;
127
+ autoSelectRpc(): Promise<void>;
128
+ }
129
+ declare class WalletHistoryStore implements Store {
130
+ sid: string;
131
+ isRender: boolean;
132
+ autoObservable: boolean;
133
+ set(params: Partial<WalletHistoryStore>): void;
134
+ private history;
135
+ get historyList(): WalletTransactionHistoryType[];
136
+ recordHistory(item: WalletTransactionHistoryType): void;
137
+ updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail'): void;
138
+ clearHistory(): void;
139
+ }
140
+
141
+ declare class WalletConfigStore implements Store {
142
+ sid: string;
143
+ autoObservable: boolean;
144
+ appName: string;
145
+ projectId: string;
146
+ supportedChains: Chain[];
147
+ defaultChainId: number;
148
+ set(params: Partial<WalletConfigStore>): void;
149
+ get rainbowKitConfig(): wagmi.Config<_rainbow_me_rainbowkit_dist_config_getDefaultConfig._chains, _rainbow_me_rainbowkit_dist_config_getDefaultConfig._transports>;
150
+ }
151
+
152
+ export { type NetworkObject, WalletConfigStore, WalletHistoryStore, WalletProvider, WalletRpcStore, WalletStore, type WalletTransactionHistoryType };