@dappworks/kit 0.5.40 → 0.5.42
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/PaginationState-Bmrrw0ky.d.mts +17 -0
- package/dist/PromiseState-8EAu4Zv4.d.mts +57 -0
- package/dist/StorageState-qapaHguM.d.mts +48 -0
- package/dist/aiem.d.mts +167 -0
- package/dist/aiem.mjs +5 -5
- package/dist/aiem.mjs.map +1 -1
- package/dist/{chunk-MPNSYZJU.mjs → chunk-2B3FO5P6.mjs} +5 -5
- package/dist/chunk-2B3FO5P6.mjs.map +1 -0
- package/dist/{chunk-2HNXZE3X.mjs → chunk-6HA5WR5H.mjs} +372 -401
- package/dist/chunk-6HA5WR5H.mjs.map +1 -0
- package/dist/{chunk-QA3E2PJT.mjs → chunk-AFXQRBS6.mjs} +3 -3
- package/dist/chunk-AFXQRBS6.mjs.map +1 -0
- package/dist/{chunk-O3FWAAEG.mjs → chunk-FLACAHWH.mjs} +7 -8
- package/dist/chunk-FLACAHWH.mjs.map +1 -0
- package/dist/chunk-GKAU4P5I.mjs +1 -1
- package/dist/chunk-GKAU4P5I.mjs.map +1 -1
- package/dist/{chunk-B7RV4C5E.mjs → chunk-GPPSD2BO.mjs} +4 -6
- package/dist/chunk-GPPSD2BO.mjs.map +1 -0
- package/dist/chunk-IMOLRP7I.mjs +1 -1
- package/dist/chunk-IMOLRP7I.mjs.map +1 -1
- package/dist/chunk-K7LFG5BA.mjs +2 -2
- package/dist/chunk-K7LFG5BA.mjs.map +1 -1
- package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
- package/dist/chunk-NCGC2KDE.mjs.map +1 -0
- package/dist/chunk-ONVPCAMQ.mjs +1 -1
- package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
- package/dist/{chunk-PZ3VSAOC.mjs → chunk-TEVYTENF.mjs} +3 -3
- package/dist/chunk-TEVYTENF.mjs.map +1 -0
- package/dist/{chunk-2WRRZVUW.mjs → chunk-UMFAEQ5S.mjs} +30 -55
- package/dist/chunk-UMFAEQ5S.mjs.map +1 -0
- package/dist/{chunk-R4N52NI2.mjs → chunk-VDDGCMCB.mjs} +38 -28
- package/dist/chunk-VDDGCMCB.mjs.map +1 -0
- package/dist/chunk-XSGTWROT.mjs +1 -1
- package/dist/chunk-XSGTWROT.mjs.map +1 -1
- package/dist/{chunk-R4SQKVDQ.mjs → chunk-YOSPWY5K.mjs} +2 -2
- package/dist/chunk-YOSPWY5K.mjs.map +1 -0
- package/dist/dev.d.mts +26 -0
- package/dist/dev.mjs +6 -8
- package/dist/dev.mjs.map +1 -1
- package/dist/experimental.d.mts +190 -0
- package/dist/experimental.mjs +6 -8
- package/dist/experimental.mjs.map +1 -1
- package/dist/form.d.mts +384 -0
- package/dist/form.mjs +15 -19
- package/dist/form.mjs.map +1 -1
- package/dist/index-CUKoRIdy.d.mts +3 -0
- package/dist/index.d.mts +90 -0
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +1 -1
- package/dist/inspector.d.mts +15 -0
- package/dist/inspector.mjs +3 -4
- package/dist/inspector.mjs.map +1 -1
- package/dist/jsoncomponent.d.mts +22 -0
- package/dist/jsoncomponent.mjs +2 -2
- package/dist/jsoncomponent.mjs.map +1 -1
- package/dist/jsontable.d.mts +126 -0
- package/dist/jsontable.mjs +5 -5
- package/dist/jsontable.mjs.map +1 -1
- package/dist/metrics.d.mts +121 -0
- package/dist/metrics.mjs +6 -6
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.d.mts +118 -0
- package/dist/plugins.mjs +5 -5
- package/dist/plugins.mjs.map +1 -1
- package/dist/root-BPMUmS6H.d.mts +111 -0
- package/dist/ui.d.mts +29 -0
- package/dist/ui.mjs +5 -6
- package/dist/ui.mjs.map +1 -1
- package/dist/utils.d.mts +232 -0
- package/dist/utils.mjs +4 -4
- package/dist/utils.mjs.map +1 -1
- package/dist/wallet.d.mts +198 -0
- package/dist/wallet.mjs +58 -16
- package/dist/wallet.mjs.map +1 -1
- package/package.json +4 -3
- package/dist/chunk-2HNXZE3X.mjs.map +0 -1
- package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
- package/dist/chunk-2WRRZVUW.mjs.map +0 -1
- package/dist/chunk-B7RV4C5E.mjs.map +0 -1
- package/dist/chunk-MPNSYZJU.mjs.map +0 -1
- package/dist/chunk-O3FWAAEG.mjs.map +0 -1
- package/dist/chunk-PZ3VSAOC.mjs.map +0 -1
- package/dist/chunk-QA3E2PJT.mjs.map +0 -1
- package/dist/chunk-R4N52NI2.mjs.map +0 -1
- package/dist/chunk-R4SQKVDQ.mjs.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { S as Store } from './root-BPMUmS6H.mjs';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { SlotsToClasses, ModalSlots, ButtonProps, SpinnerProps } from '@nextui-org/react';
|
|
4
|
+
import { T as ThemeType } from './index-CUKoRIdy.mjs';
|
|
5
|
+
import * as react_hot_toast from 'react-hot-toast';
|
|
6
|
+
import { P as PromiseState } from './PromiseState-8EAu4Zv4.mjs';
|
|
7
|
+
import 'typed-emitter';
|
|
8
|
+
import 'events';
|
|
9
|
+
|
|
10
|
+
declare class ConfirmStore implements Store {
|
|
11
|
+
sid: string;
|
|
12
|
+
provider: () => React.JSX.Element;
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
title?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl';
|
|
17
|
+
className: string;
|
|
18
|
+
classNames?: SlotsToClasses<ModalSlots>;
|
|
19
|
+
theme: ThemeType;
|
|
20
|
+
cancelBtnProps?: ButtonProps;
|
|
21
|
+
okBtnProps?: ButtonProps;
|
|
22
|
+
constructor();
|
|
23
|
+
toggleOpen(val: boolean): void;
|
|
24
|
+
onOk(): void;
|
|
25
|
+
onCancel(): void;
|
|
26
|
+
show(confirmProps: Partial<ConfirmStore>): void;
|
|
27
|
+
close(): void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare class ToastPlugin implements Store {
|
|
31
|
+
sid: string;
|
|
32
|
+
provider: () => React.JSX.Element;
|
|
33
|
+
success: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
|
|
34
|
+
error: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
|
|
35
|
+
loading: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
|
|
36
|
+
custom: (message: react_hot_toast.Renderable | react_hot_toast.ValueFunction<react_hot_toast.Renderable, react_hot_toast.Toast>, options?: Partial<Pick<react_hot_toast.Toast, "id" | "icon" | "duration" | "ariaProps" | "className" | "style" | "position" | "iconTheme" | "toasterId" | "removeDelay">>) => string;
|
|
37
|
+
dismiss: (toastId?: string, toasterId?: string) => void;
|
|
38
|
+
remove: (toastId?: string, toasterId?: string) => void;
|
|
39
|
+
promise: <T>(promise: Promise<T> | (() => Promise<T>), msgs: {
|
|
40
|
+
loading: react_hot_toast.Renderable;
|
|
41
|
+
success?: react_hot_toast.ValueOrFunction<react_hot_toast.Renderable, T>;
|
|
42
|
+
error?: react_hot_toast.ValueOrFunction<react_hot_toast.Renderable, any>;
|
|
43
|
+
}, opts?: react_hot_toast.DefaultToastOptions) => Promise<T>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class DialogStore implements Store {
|
|
47
|
+
sid: string;
|
|
48
|
+
provider: () => React.JSX.Element;
|
|
49
|
+
isOpen: boolean;
|
|
50
|
+
placement: "center" | "auto" | "top" | "bottom" | "top-center" | "bottom-center";
|
|
51
|
+
title: string;
|
|
52
|
+
size: "sm" | "md" | "lg" | "xl" | "2xl" | "full" | "xs" | "3xl" | "4xl" | "5xl";
|
|
53
|
+
className: string;
|
|
54
|
+
classNames?: SlotsToClasses<ModalSlots>;
|
|
55
|
+
theme: ThemeType;
|
|
56
|
+
content: React.ReactNode | ((props: any) => React.ReactNode);
|
|
57
|
+
isDismissable: boolean;
|
|
58
|
+
constructor(args?: Partial<DialogStore>);
|
|
59
|
+
setData(v: Partial<DialogStore>): void;
|
|
60
|
+
close(): void;
|
|
61
|
+
static show(v: Partial<DialogStore>): void;
|
|
62
|
+
static close(): void;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
type GroupOptions = {
|
|
66
|
+
args?: any[];
|
|
67
|
+
title: React.ReactNode;
|
|
68
|
+
}[];
|
|
69
|
+
type DialogContentUIProps = {
|
|
70
|
+
className?: string;
|
|
71
|
+
itemClassName?: string;
|
|
72
|
+
numberClassName?: string;
|
|
73
|
+
spinnerProps?: SpinnerProps;
|
|
74
|
+
SuccessIcon?: React.ReactNode;
|
|
75
|
+
FailureIcon?: React.ReactNode;
|
|
76
|
+
};
|
|
77
|
+
type StepUIProps = {
|
|
78
|
+
className?: string;
|
|
79
|
+
itemClassName?: string;
|
|
80
|
+
activatedItemClassName?: string;
|
|
81
|
+
numberClassName?: string;
|
|
82
|
+
activatedNumberClassName?: string;
|
|
83
|
+
spinnerProps?: SpinnerProps;
|
|
84
|
+
SuccessIcon?: React.ReactNode;
|
|
85
|
+
FailureIcon?: React.ReactNode;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
declare class PromiseStateGroup {
|
|
89
|
+
group: PromiseState<any, any>[];
|
|
90
|
+
groupOptions: GroupOptions;
|
|
91
|
+
currentCallStepNo: number;
|
|
92
|
+
constructor({ group, groupOptions }: {
|
|
93
|
+
group: PromiseState<any, any>[];
|
|
94
|
+
groupOptions: GroupOptions;
|
|
95
|
+
});
|
|
96
|
+
call(): Promise<{
|
|
97
|
+
result: any[];
|
|
98
|
+
errMsg: string;
|
|
99
|
+
}>;
|
|
100
|
+
callWithDialog(dialogOptions?: Partial<DialogStore>, dialogContentOptions?: DialogContentUIProps, successMsg?: string, autoClose?: boolean): Promise<{
|
|
101
|
+
result: any[];
|
|
102
|
+
errMsg: string;
|
|
103
|
+
}>;
|
|
104
|
+
showDialog(dialogOptions?: Partial<DialogStore>, dialogContentOptions?: DialogContentUIProps): this;
|
|
105
|
+
closeDialog(): void;
|
|
106
|
+
stepCall(stepNo: number): Promise<{
|
|
107
|
+
result: any;
|
|
108
|
+
errMsg: string;
|
|
109
|
+
} | {
|
|
110
|
+
result: any;
|
|
111
|
+
errMsg: any;
|
|
112
|
+
}>;
|
|
113
|
+
onNext(): void;
|
|
114
|
+
onPrevious(): void;
|
|
115
|
+
render(props?: StepUIProps): React.JSX.Element;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export { ConfirmStore, DialogStore, PromiseStateGroup, ToastPlugin };
|
package/dist/plugins.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { DialogStore } from './chunk-
|
|
2
|
-
export { DialogStore } from './chunk-
|
|
1
|
+
import { DialogStore } from './chunk-TEVYTENF.mjs';
|
|
2
|
+
export { DialogStore } from './chunk-TEVYTENF.mjs';
|
|
3
3
|
import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
|
|
4
4
|
export { ToastPlugin } from './chunk-IMOLRP7I.mjs';
|
|
5
5
|
import { getStyle } from './chunk-GKAU4P5I.mjs';
|
|
6
6
|
import { useStore, RootStore } from './chunk-XSGTWROT.mjs';
|
|
7
7
|
import './chunk-K7LFG5BA.mjs';
|
|
8
|
-
import { cn } from './chunk-
|
|
9
|
-
import { __spreadProps, __spreadValues } from './chunk-
|
|
8
|
+
import { cn } from './chunk-6HA5WR5H.mjs';
|
|
9
|
+
import { __spreadProps, __spreadValues } from './chunk-YOSPWY5K.mjs';
|
|
10
10
|
import { makeAutoObservable, makeObservable } from 'mobx';
|
|
11
11
|
import React3 from 'react';
|
|
12
12
|
import { observer } from 'mobx-react-lite';
|
|
@@ -314,5 +314,5 @@ var PromiseStateGroup = class {
|
|
|
314
314
|
};
|
|
315
315
|
|
|
316
316
|
export { ConfirmStore, PromiseStateGroup };
|
|
317
|
-
//# sourceMappingURL=
|
|
317
|
+
//# sourceMappingURL=plugins.mjs.map
|
|
318
318
|
//# sourceMappingURL=plugins.mjs.map
|
package/dist/plugins.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../module/Confirm/index.tsx","../module/Confirm/Provider.tsx","../module/PromiseStateGroup/index.tsx","../module/PromiseStateGroup/ui.tsx"],"names":["React","observer"],"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 { PromiseState } from '../../store/standard/PromiseState';\nimport { DialogStore } from '../Dialog';\nimport { DialogContentUI, DialogContentUIProps, GroupOptions, StepUI, StepUIProps } from './ui';\nimport { makeObservable } from 'mobx';\nimport { ToastPlugin } from '../Toast/Toast';\nimport { RootStore } from '../../store';\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 async callWithDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps,\n successMsg?: string,\n autoClose: boolean = true\n ) {\n this.showDialog(dialogOptions, dialogContentOptions);\n const {\n result,\n errMsg,\n } = await this.call()\n if (errMsg) {\n RootStore.Get(ToastPlugin).error(errMsg)\n this.closeDialog()\n return {\n result,\n errMsg,\n }\n }\n if (successMsg) {\n RootStore.Get(ToastPlugin).success(successMsg)\n }\n if (autoClose) {\n this.closeDialog()\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\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/Provider.tsx","../module/Confirm/index.tsx","../module/PromiseStateGroup/ui.tsx","../module/PromiseStateGroup/index.tsx"],"names":["React","observer"],"mappings":"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","file":"plugins.mjs","sourcesContent":["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 { 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 { 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","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';\nimport { ToastPlugin } from '../Toast/Toast';\nimport { RootStore } from '../../store';\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 async callWithDialog(\n dialogOptions?: Partial<DialogStore>,\n dialogContentOptions?: DialogContentUIProps,\n successMsg?: string,\n autoClose: boolean = true\n ) {\n this.showDialog(dialogOptions, dialogContentOptions);\n const {\n result,\n errMsg,\n } = await this.call()\n if (errMsg) {\n RootStore.Get(ToastPlugin).error(errMsg)\n this.closeDialog()\n return {\n result,\n errMsg,\n }\n }\n if (successMsg) {\n RootStore.Get(ToastPlugin).success(successMsg)\n }\n if (autoClose) {\n this.closeDialog()\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\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"]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import TypedEmitter from 'typed-emitter';
|
|
2
|
+
|
|
3
|
+
declare abstract class Store {
|
|
4
|
+
sid?: string;
|
|
5
|
+
stype?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
autoObservable?: boolean;
|
|
8
|
+
autoAsyncable?: boolean;
|
|
9
|
+
_active?: number;
|
|
10
|
+
stores?: Store[];
|
|
11
|
+
private pannel?;
|
|
12
|
+
devtools?: {
|
|
13
|
+
enable?: boolean;
|
|
14
|
+
started?: boolean;
|
|
15
|
+
panels: Store["pannel"][];
|
|
16
|
+
};
|
|
17
|
+
private slot?;
|
|
18
|
+
slots?: Record<string, Store["slot"]>;
|
|
19
|
+
events?: Record<string, {
|
|
20
|
+
name: string;
|
|
21
|
+
handler(args: {
|
|
22
|
+
e: MouseEvent;
|
|
23
|
+
v?: any;
|
|
24
|
+
}): any;
|
|
25
|
+
}>;
|
|
26
|
+
provider?({ rootStore }: {
|
|
27
|
+
rootStore: RootStore;
|
|
28
|
+
}): any;
|
|
29
|
+
onNewStore?({ rootStore, store }: {
|
|
30
|
+
rootStore: RootStore;
|
|
31
|
+
store: Store;
|
|
32
|
+
}): void;
|
|
33
|
+
onAddedStores?({ rootStore }: {
|
|
34
|
+
rootStore: RootStore;
|
|
35
|
+
}): void;
|
|
36
|
+
onAdded?({ rootStore }: {
|
|
37
|
+
rootStore: RootStore;
|
|
38
|
+
}): void;
|
|
39
|
+
init?(): void;
|
|
40
|
+
JSONView?: Record<string, {
|
|
41
|
+
name: string;
|
|
42
|
+
render: React.FC;
|
|
43
|
+
}>;
|
|
44
|
+
onKeyBindings?: () => {
|
|
45
|
+
key: string;
|
|
46
|
+
fn: () => void;
|
|
47
|
+
}[];
|
|
48
|
+
constructor();
|
|
49
|
+
}
|
|
50
|
+
type StoreClass<T extends Store> = new (...args: any[]) => T;
|
|
51
|
+
interface BaseState {
|
|
52
|
+
value: number;
|
|
53
|
+
setValue(value: any): any;
|
|
54
|
+
}
|
|
55
|
+
declare class StringState<T extends string> {
|
|
56
|
+
value: T;
|
|
57
|
+
constructor(args?: Partial<StringState<T>>);
|
|
58
|
+
setValue(value: T): void;
|
|
59
|
+
}
|
|
60
|
+
declare class BooleanState {
|
|
61
|
+
value: boolean;
|
|
62
|
+
constructor(args?: Partial<BooleanState>);
|
|
63
|
+
setValue(value: boolean): void;
|
|
64
|
+
}
|
|
65
|
+
declare class NumberState {
|
|
66
|
+
value: number;
|
|
67
|
+
constructor(args?: Partial<NumberState>);
|
|
68
|
+
setValue(value: number): void;
|
|
69
|
+
}
|
|
70
|
+
declare class ValueState<T> {
|
|
71
|
+
_value: T;
|
|
72
|
+
constructor(args?: Partial<ValueState<T>>);
|
|
73
|
+
get value(): T;
|
|
74
|
+
set value(value: T);
|
|
75
|
+
getValue: (value: T) => T;
|
|
76
|
+
setValue(value: T): void;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
type EventMap = {
|
|
80
|
+
"*": (args: any) => void;
|
|
81
|
+
add: (store: Store) => void;
|
|
82
|
+
};
|
|
83
|
+
declare class RootStore<T extends EventMap = any> {
|
|
84
|
+
instanceMap: Map<Function, Map<string, Store>>;
|
|
85
|
+
instance: Record<string, Store>;
|
|
86
|
+
providers: Store[];
|
|
87
|
+
events: TypedEmitter<T>;
|
|
88
|
+
isInited: boolean;
|
|
89
|
+
static init<T extends EventMap>(args?: Partial<RootStore<T>>): RootStore<T>;
|
|
90
|
+
add(store: Store, { sid }?: {
|
|
91
|
+
sid?: string;
|
|
92
|
+
}): void;
|
|
93
|
+
addStores(store: Store[]): this;
|
|
94
|
+
get<T extends Store>(store: StoreClass<T>, config?: {
|
|
95
|
+
sid?: string;
|
|
96
|
+
args?: Partial<T>;
|
|
97
|
+
}): T;
|
|
98
|
+
has(store: Function): boolean;
|
|
99
|
+
constructor(args?: Partial<RootStore<T>>);
|
|
100
|
+
crawlStore(obj: Object): void;
|
|
101
|
+
static Get<T extends Store>(store: StoreClass<T>, config?: {
|
|
102
|
+
sid?: string;
|
|
103
|
+
args?: Partial<T>;
|
|
104
|
+
}): T;
|
|
105
|
+
static Local<T>(func: () => T, config?: {
|
|
106
|
+
sid?: string;
|
|
107
|
+
args?: Partial<T>;
|
|
108
|
+
}, ann?: any): T;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export { type BaseState as B, type EventMap as E, NumberState as N, RootStore as R, Store as S, ValueState as V, type StoreClass as a, StringState as b, BooleanState as c };
|
package/dist/ui.d.mts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SlotsToClasses } from '@nextui-org/react';
|
|
3
|
+
|
|
4
|
+
declare const PanelCard: ({ className, title, content }: {
|
|
5
|
+
className?: string;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
content?: React.ReactNode;
|
|
8
|
+
}) => React.JSX.Element;
|
|
9
|
+
|
|
10
|
+
declare const Copy: ({ className, value, iconSize, iconClassName }: {
|
|
11
|
+
className?: string;
|
|
12
|
+
value: string;
|
|
13
|
+
iconSize?: number;
|
|
14
|
+
iconClassName?: string;
|
|
15
|
+
}) => React.JSX.Element;
|
|
16
|
+
|
|
17
|
+
declare function JSONHighlight({ jsonStr, className }: {
|
|
18
|
+
jsonStr: string;
|
|
19
|
+
className?: string;
|
|
20
|
+
}): React.JSX.Element;
|
|
21
|
+
|
|
22
|
+
declare const SkeletonBox: ({ line, className, skClassName, skClassNames }: {
|
|
23
|
+
line?: number;
|
|
24
|
+
className?: string;
|
|
25
|
+
skClassName?: string;
|
|
26
|
+
skClassNames?: SlotsToClasses<"base" | "content">;
|
|
27
|
+
}) => React.JSX.Element;
|
|
28
|
+
|
|
29
|
+
export { Copy, JSONHighlight, PanelCard, SkeletonBox };
|
package/dist/ui.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { SkeletonBox } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { SkeletonBox } from './chunk-AFXQRBS6.mjs';
|
|
2
|
+
import { cn } from './chunk-6HA5WR5H.mjs';
|
|
3
|
+
import './chunk-YOSPWY5K.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';
|
|
@@ -38,8 +38,7 @@ var Copy = ({
|
|
|
38
38
|
);
|
|
39
39
|
};
|
|
40
40
|
function JSONHighlight({ jsonStr, className }) {
|
|
41
|
-
if (!jsonStr)
|
|
42
|
-
return null;
|
|
41
|
+
if (!jsonStr) return null;
|
|
43
42
|
jsonStr = jsonStr.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
44
43
|
const str = jsonStr.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function(match) {
|
|
45
44
|
let cls = "text-blue-500";
|
|
@@ -60,5 +59,5 @@ function JSONHighlight({ jsonStr, className }) {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
export { Copy, JSONHighlight, PanelCard };
|
|
63
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=ui.mjs.map
|
|
64
63
|
//# sourceMappingURL=ui.mjs.map
|
package/dist/ui.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/Common/PanelCard/index.tsx","../components/Common/Copy/index.tsx","../components/Common/JSONHighlight/index.tsx"],"names":["React"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../components/Common/PanelCard/index.tsx","../components/Common/Copy/index.tsx","../components/Common/JSONHighlight/index.tsx"],"names":["React","CopyIcon"],"mappings":"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","file":"ui.mjs","sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card } from '@nextui-org/react';\n\nexport const PanelCard = ({ className, title, content }: { className?: string; title: React.ReactNode; content?: React.ReactNode; }) => {\n return (\n <Card className={cn('flex flex-col justify-between border-none p-4 shadow-sm', className)}>\n <p className=\"text-[#6B7280] dark:text-[#cecdcd] text-sm\">{title}</p>\n <div className={cn('mt-2 break-all text-[#374151] dark:text-[#cecdcd] text-base font-semibold')}>{content}</div>\n </Card>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport copyToClipboard from \"copy-to-clipboard\";\nimport { Copy as CopyIcon, CopyCheck } from \"lucide-react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport const Copy = ({\n className = '',\n value,\n iconSize = 20,\n iconClassName = ''\n}: {\n className?: string;\n value: string;\n iconSize?: number,\n iconClassName?: string\n}) => {\n const [copied, setCopied] = useState(false);\n useEffect(() => {\n if (copied) {\n const timer = setTimeout(() => {\n setCopied(false);\n }, 2000);\n return () => clearTimeout(timer);\n }\n }, [copied]);\n return (\n <button\n className={cn(\"rounded-sm p-1 hover:bg-gray-300 dark:hover:bg-gray-600\", className)}\n onClick={(e) => {\n e.preventDefault();\n copyToClipboard(value);\n setCopied(true);\n }}>\n {copied ? <CopyCheck size={iconSize} className={iconClassName} /> : <CopyIcon size={iconSize} className={iconClassName} />}\n </button>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport function JSONHighlight({ jsonStr, className }: { jsonStr: string, className?: string }) {\n if (!jsonStr) return null;\n jsonStr = jsonStr.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n const str = jsonStr.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function (match) {\n // number\n let cls = 'text-blue-500';\n if (/^\"/.test(match)) {\n if (/:$/.test(match)) {\n // key\n cls = 'text-gray-700 dark:text-gray-400';\n } else {\n // string\n cls = 'text-green-600';\n }\n } else if (/true|false/.test(match)) {\n // boolean\n cls = 'text-purple-500';\n } else if (/null/.test(match)) {\n // null\n cls = 'text-red-400';\n }\n return `<span class=\"${cls}\">${match}</span>`;\n });\n\n return (\n <pre className={cn('w-full overflow-auto text-xs font-bold', className)} dangerouslySetInnerHTML={{ __html: str }} />\n )\n}\n"]}
|