@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.
Files changed (85) hide show
  1. package/dist/PaginationState-Bmrrw0ky.d.mts +17 -0
  2. package/dist/PromiseState-8EAu4Zv4.d.mts +57 -0
  3. package/dist/StorageState-qapaHguM.d.mts +48 -0
  4. package/dist/aiem.d.mts +167 -0
  5. package/dist/aiem.mjs +5 -5
  6. package/dist/aiem.mjs.map +1 -1
  7. package/dist/{chunk-MPNSYZJU.mjs → chunk-2B3FO5P6.mjs} +5 -5
  8. package/dist/chunk-2B3FO5P6.mjs.map +1 -0
  9. package/dist/{chunk-2HNXZE3X.mjs → chunk-6HA5WR5H.mjs} +372 -401
  10. package/dist/chunk-6HA5WR5H.mjs.map +1 -0
  11. package/dist/{chunk-QA3E2PJT.mjs → chunk-AFXQRBS6.mjs} +3 -3
  12. package/dist/chunk-AFXQRBS6.mjs.map +1 -0
  13. package/dist/{chunk-O3FWAAEG.mjs → chunk-FLACAHWH.mjs} +7 -8
  14. package/dist/chunk-FLACAHWH.mjs.map +1 -0
  15. package/dist/chunk-GKAU4P5I.mjs +1 -1
  16. package/dist/chunk-GKAU4P5I.mjs.map +1 -1
  17. package/dist/{chunk-B7RV4C5E.mjs → chunk-GPPSD2BO.mjs} +4 -6
  18. package/dist/chunk-GPPSD2BO.mjs.map +1 -0
  19. package/dist/chunk-IMOLRP7I.mjs +1 -1
  20. package/dist/chunk-IMOLRP7I.mjs.map +1 -1
  21. package/dist/chunk-K7LFG5BA.mjs +2 -2
  22. package/dist/chunk-K7LFG5BA.mjs.map +1 -1
  23. package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
  24. package/dist/chunk-NCGC2KDE.mjs.map +1 -0
  25. package/dist/chunk-ONVPCAMQ.mjs +1 -1
  26. package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
  27. package/dist/{chunk-PZ3VSAOC.mjs → chunk-TEVYTENF.mjs} +3 -3
  28. package/dist/chunk-TEVYTENF.mjs.map +1 -0
  29. package/dist/{chunk-2WRRZVUW.mjs → chunk-UMFAEQ5S.mjs} +30 -55
  30. package/dist/chunk-UMFAEQ5S.mjs.map +1 -0
  31. package/dist/{chunk-R4N52NI2.mjs → chunk-VDDGCMCB.mjs} +38 -28
  32. package/dist/chunk-VDDGCMCB.mjs.map +1 -0
  33. package/dist/chunk-XSGTWROT.mjs +1 -1
  34. package/dist/chunk-XSGTWROT.mjs.map +1 -1
  35. package/dist/{chunk-R4SQKVDQ.mjs → chunk-YOSPWY5K.mjs} +2 -2
  36. package/dist/chunk-YOSPWY5K.mjs.map +1 -0
  37. package/dist/dev.d.mts +26 -0
  38. package/dist/dev.mjs +6 -8
  39. package/dist/dev.mjs.map +1 -1
  40. package/dist/experimental.d.mts +190 -0
  41. package/dist/experimental.mjs +6 -8
  42. package/dist/experimental.mjs.map +1 -1
  43. package/dist/form.d.mts +384 -0
  44. package/dist/form.mjs +15 -19
  45. package/dist/form.mjs.map +1 -1
  46. package/dist/index-CUKoRIdy.d.mts +3 -0
  47. package/dist/index.d.mts +90 -0
  48. package/dist/index.mjs +8 -8
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/inspector.d.mts +15 -0
  51. package/dist/inspector.mjs +3 -4
  52. package/dist/inspector.mjs.map +1 -1
  53. package/dist/jsoncomponent.d.mts +22 -0
  54. package/dist/jsoncomponent.mjs +2 -2
  55. package/dist/jsoncomponent.mjs.map +1 -1
  56. package/dist/jsontable.d.mts +126 -0
  57. package/dist/jsontable.mjs +5 -5
  58. package/dist/jsontable.mjs.map +1 -1
  59. package/dist/metrics.d.mts +121 -0
  60. package/dist/metrics.mjs +6 -6
  61. package/dist/metrics.mjs.map +1 -1
  62. package/dist/plugins.d.mts +118 -0
  63. package/dist/plugins.mjs +5 -5
  64. package/dist/plugins.mjs.map +1 -1
  65. package/dist/root-BPMUmS6H.d.mts +111 -0
  66. package/dist/ui.d.mts +29 -0
  67. package/dist/ui.mjs +5 -6
  68. package/dist/ui.mjs.map +1 -1
  69. package/dist/utils.d.mts +232 -0
  70. package/dist/utils.mjs +4 -4
  71. package/dist/utils.mjs.map +1 -1
  72. package/dist/wallet.d.mts +198 -0
  73. package/dist/wallet.mjs +58 -16
  74. package/dist/wallet.mjs.map +1 -1
  75. package/package.json +4 -3
  76. package/dist/chunk-2HNXZE3X.mjs.map +0 -1
  77. package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
  78. package/dist/chunk-2WRRZVUW.mjs.map +0 -1
  79. package/dist/chunk-B7RV4C5E.mjs.map +0 -1
  80. package/dist/chunk-MPNSYZJU.mjs.map +0 -1
  81. package/dist/chunk-O3FWAAEG.mjs.map +0 -1
  82. package/dist/chunk-PZ3VSAOC.mjs.map +0 -1
  83. package/dist/chunk-QA3E2PJT.mjs.map +0 -1
  84. package/dist/chunk-R4N52NI2.mjs.map +0 -1
  85. 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-PZ3VSAOC.mjs';
2
- export { DialogStore } from './chunk-PZ3VSAOC.mjs';
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-2HNXZE3X.mjs';
9
- import { __spreadProps, __spreadValues } from './chunk-R4SQKVDQ.mjs';
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=out.js.map
317
+ //# sourceMappingURL=plugins.mjs.map
318
318
  //# sourceMappingURL=plugins.mjs.map
@@ -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-QA3E2PJT.mjs';
2
- import { cn } from './chunk-2HNXZE3X.mjs';
3
- import './chunk-R4SQKVDQ.mjs';
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, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
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=out.js.map
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":";;;;;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,YAAY;AAEd,IAAM,YAAY,CAAC,EAAE,WAAW,OAAO,QAAQ,MAAkF;AACtI,SACE,oCAAC,QAAK,WAAW,GAAG,2DAA2D,SAAS,KACtF,oCAAC,OAAE,WAAU,gDAA8C,KAAM,GACjE,oCAAC,SAAI,WAAW,GAAG,2EAA2E,KAAI,OAAQ,CAC5G;AAEJ;;;ACXA,OAAOA,UAAS,WAAW,gBAAgB;AAC3C,OAAO,qBAAqB;AAC5B,SAAS,QAAQ,UAAU,iBAAiB;AAGrC,IAAM,OAAO,CAAC;AAAA,EACnB,YAAY;AAAA,EACZ;AAAA,EACA,WAAW;AAAA,EACX,gBAAgB;AAClB,MAKM;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,YAAM,QAAQ,WAAW,MAAM;AAC7B,kBAAU,KAAK;AAAA,MACjB,GAAG,GAAI;AACP,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACX,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,2DAA2D,SAAS;AAAA,MAClF,SAAS,CAAC,MAAM;AACd,UAAE,eAAe;AACjB,wBAAgB,KAAK;AACrB,kBAAU,IAAI;AAAA,MAChB;AAAA;AAAA,IACC,SAAS,gBAAAA,OAAA,cAAC,aAAU,MAAM,UAAU,WAAW,eAAe,IAAK,gBAAAA,OAAA,cAAC,YAAS,MAAM,UAAU,WAAW,eAAe;AAAA,EAC1H;AAEJ;;;ACpCA,OAAOA,YAAW;AAGX,SAAS,cAAc,EAAE,SAAS,UAAU,GAA4C;AAC7F,MAAI,CAAC;AAAS,WAAO;AACrB,YAAU,QAAQ,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,MAAM,MAAM;AACnF,QAAM,MAAM,QAAQ,QAAQ,0GAA0G,SAAU,OAAO;AAErJ,QAAI,MAAM;AACV,QAAI,KAAK,KAAK,KAAK,GAAG;AACpB,UAAI,KAAK,KAAK,KAAK,GAAG;AAEpB,cAAM;AAAA,MACR,OAAO;AAEL,cAAM;AAAA,MACR;AAAA,IACF,WAAW,aAAa,KAAK,KAAK,GAAG;AAEnC,YAAM;AAAA,IACR,WAAW,OAAO,KAAK,KAAK,GAAG;AAE7B,YAAM;AAAA,IACR;AACA,WAAO,gBAAgB,GAAG,KAAK,KAAK;AAAA,EACtC,CAAC;AAED,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,0CAA0C,SAAS,GAAG,yBAAyB,EAAE,QAAQ,IAAI,GAAG;AAEvH","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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\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"]}
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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\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"]}